User Tools

Site Tools


wiki:development:roadmap

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
wiki:development:roadmap [2013/03/14 21:25]
sunweaver
wiki:development:roadmap [2017/05/11 09:45] (current)
stefanbaur New section: NX-Libs (missing) features table
Line 1: Line 1:
 +====== ΞX2Go Developer Meetings ======
 +{{:wiki:development:x2go-mascot-ccc.png?nolink&100 |}}
 +  * [[wiki:development:planning:start|Planning the next meeting]].
 +  * [[wiki:development:planning:meetings_list|Past ΞX2Go Developer Meetings]]
 +
 +
 +----
 +
 +
 +
 ====== X2Go Roadmap ====== ====== X2Go Roadmap ======
  
-===== Still pending TODOs from April 2011 ===== 
  
-  * **Communication:** +===== Pending X2Go Tasks/Features =====
-    * FIXME Wiki accounts for: John Sullivan, Alexander Crössmann (HEINZ?) +
-    * send Wiki Changes to x2go-commits(?) -> Heinz (todo) +
-     +
-===== Work in Progress =====+
  
-<task> +We have a pool of ideas that will be started working on some time in the futureAnyone who wants to start working on those ideas is welcome to contact us via IRC or the x2go-dev mailing list.
-TITLE: Improve Documentation +
-PRIORITY: High +
-ESTIMATE: 3 months +
-PROGRESS: 5% +
-ASSIGNED: Heinz, Morty, Mike, John, Alexander, ...  +
-DESCRIPTION: Use this Wiki to provide a good documentation for X2go +
-</task>+
  
-        * write man pages for scripts in $PREFIX/bin and $PREFIX/sbin (Mike -> DONE) +View our brainstorm pool for X2Go [[wiki:development:new-feature-brainstorming|here]].
-        * improve Python API documentation (Mike -> DONE) +
-        * rework and update Wiki pages (everyone -> TODO)+
  
-<task> +===== Active X2Go Tasks/Features =====
-TITLE: X2go Communications API definition +
-PRIORITY: Normal +
-ESTIMATE: 3 month +
-PROGRESS: 40% +
-ASSIGNED: Reinhard, Mike, Alex +
-DESCRIPTION: Restructure the build method for NX libraries and x2goagent +
-</task> +
-Restructure build concept of NX libraries + x2goagent...+
  
 +==== Sponsored Improvement Requests ====
  
-<task> +We have received funding from an anonymous donor that wishes to see the following issues fixed/features added:
-TITLE: X2go Communications API definition +
-PRIORITY: Normal +
-ESTIMATE: 3 month +
-PROGRESS: 35% +
-ASSIGNED: Mike, Basma, Felix, Dick +
-DESCRIPTION: Provide X2go with a standard way of communication between the client and the server +
-</task> +
-Currently the communication between server and client is done by issuing commands to a shell of the server on the client that is accessed using ssh. To do that, a lot of data is transferred from server to client and back. This generates extra traffic and makes the client more complex than necessary. In fact most commands should be issued on the server instead of in the client. To allow for this a proper protocol should be defined and implemented. This project does exactly that. The protocol will be implemented using json, to allow for easy incorporation in the current clients. The server part is implemented in python and can be implemented in a coming version of x2go. A complete working implementation will be made using pyhoca-cli.+
  
-      * Define API -> DONE (is committed in GIT+=== Prio #1 (not started yet=== 
-      Reach consensus on the api -> DONE (Well, we didn't get feedback from EVERYONE) +**Fix Lockup of OS X client when running multiple sessions //sequentially//**
-      Produce unittests (use cases) -> ALMOST DONE +
-      Implement server-side -> ALMOST DONE (We still need to incorporate some errorchecking and some authorisation) The first version has been committed to GIT                                  +
-      * Implement client-side -> We started with some investigation +
-      Test+
  
 +At present, X2GoClient on OS X goes into an endless loop and has to be force-terminated after the second or third connection attempt.
  
-====== Somewhen (post-Baikal) ====== +Task assigned toMihai
-  * Review [[wiki:security:start#x2goprint|x2goprinting]] +
-  * Review pulseaudio (If and how to add a pulse-server running on the server and not only the client) +
-  * Merge x2go...bindings package into one Git project x2godesktopbindings that will heavily use xdg commands etc.+
  
 +**Run multiple instances of X2GoClient**, or multiple sessions from one instance, all simultaneously (kind of how pyhoca-gui works)
  
 +must work on
 +  * Windows
 +  * OS X
 +  * Linux (probably already does)
  
-===== NEAR FUTURE =====+Stefan would love to see X2GoClient gain the multi-session feature from PyHoCa.  In fact, the GUI design of the taskbar icon's context menu hasn't made sense from the start, if X2GoClient is and will always be 
 +limited to one session.  
  
-==== January 2012 ====+Please look at the following screenshots/mockups for a display of the current situation and two alternatives: 
 +^ X2GoClient current look ^ X2GoClient single-session ^ X2GoClient multi-session ^ 
 +| {{:wiki:development:x2goclient-current-look-notgood.png?200|}} | {{:wiki:development:x2goclient-if-limited-to-one-session.png?200|}} | {{:wiki:development:x2goclient-multiple-sessions.png?200|}} |
  
-  * Move over to AGPL licensing for nearly all X2go Git projects. Here is a list: +If that is impossible, we need to make sure that multiple instances of x2goclient can co-exist in RAM
-    * cups-x2go.git (TODO) +Which will be a challenge for OS X.
-    * ltsp-pyhocathinclient.git (TODO) +
-    * pinentry-x2go.git (Is it possible? Does the original code license allow that?) +
-    * pyhoca-cli.git (TODO: Mike) +
-    * pyhoca-gui.git (TODO: Mike) +
-    * python-x2go.git (DONE for python-x2go >= 0.1.2.0) +
-    * x2goadmincenter.git (TODO) +
-    * x2goagent.git (possible?+
-    * x2goclient.git (TODO) +
-    * x2godesktopsharing.git (TODO) +
-    * x2gognomebindings.git (TODO) +
-    * x2golxdebindings.git (DONE) +
-    * x2goplasmabindings.git (TODO) +
-    * x2goserver.git (TODO) +
-    * x2gothinclient.git (TODO) +
-    * x2gotrinitybindings.git (DONE) +
-  * Make some progress on the bugtracker discussion...+
  
 +h1 has a design in mind that addresses multi-sesson support in one X2Go Client instance (also x2goclient2.git on git.x2go.org is capable of that, but at the moment it is half-baked and probably temporarily discontinued).
  
-===== DONE =====+Steps: 
 +  - Fix Multi-Instance on Windows 
 +  - Write wrapper to turn Multi-Instance into Multi-Session mode (especially important for OS X, where Multi-Instance isn't supported)
  
-==== August 2011 ====+Task assigned to: Mihai, Mihai, and again, Mihai - with some help by Mike#2 for the Windows client 
 + 
 +=== Prio #2 (not started yet) ===  
 +**Rebase the "Pulseaudio on Mac" code** 
 +//Side note: You need to coordinate your efforts with Mike#2 regarding the microphone mute function.// 
 + 
 +Task assigned to: Mihai 
 + 
 + 
 +**Improve x2go-broker functionality (shadowing, stable release)** 
 + 
 +Task assigned to: Mike#1 (8h) 
 + 
 + 
 +**Improve x2go-broker documentation** 
 + 
 +Task assigned to: Mike#1, Stefan (12-16h) 
 + 
 + 
 +**General improvement on documentation** 
 + 
 +Task assigned to: Stefan, aided by Mike#1 (hard to say, Mike#1 will coach Stefan for an equivalent of 4h to get things straight, no matter how long it takes) 
 + 
 +<del>**HTML5 Client**</del> tagged as unrealistic given current budget 
 + 
 +If budget remains, a HTML5 client would be nice. 
 + 
 +//There seems to be a disagreement amongst the developers regarding how such a client should be implemented.// 
 +  - One option would be to copy what other remote solutions are using - which means sub-par performance compared to our native NX/X2Go speeds. 
 +  - A from-scratch approach would bring native speeds, but is a time and money sinkhole. 
 + 
 +Task assigned to: <none yet> - could be Alex, Mihai, ...? 
 + 
 + 
 +<del>**Alternative to NX-Rewrite**</del> tagged as unrealistic given current budget 
 + 
 +h1 has some ideas what other F/LOSS codebases might be suitable as a time- and money-saving alternative to doing the NX-Rewrite. 
 +He should mention them on x2go-dev to get more feedback, then a competent C/C++ coder should look at the alternatives and evaluate them for suitability. 
 + 
 +Task assigned to: <none yet> - could be Alex, Mihai, ...? 
 + 
 +=== Work in Progress === 
 + 
 +**Infrastructure and procedures** for regularly releasing a new Mac client, at least in the next 1-3 years. 
 +(jenkins build slave, cloud-based OS X hosting) 
 + 
 +Task assigned to: Stefan (currently researching hosting options); might be expanded to Mike#1, Mihai, Alex and Mike#2 
 + 
 + 
 +==== Improve Documentation ====
  
 <task> <task>
-TITLE: X2goServer Cleanup +TITLE: General Documentation 
-PRIORITY: Medium +PRIORITY: High 
-ESTIMATE: 1 month +ESTIMATE: 3 months 
-PROGRESS: 100+PROGRESS: 5
-ASSIGNED: Morty, Mike +ASSIGNED: Everyone 
-DESCRIPTION: Cleanup X2goServer, place non-bin files in lib/ or share/+DESCRIPTION: Use this wiki to provide a good documentation for X2Go
 </task> </task>
  
 +  * write man pages for scripts in $PREFIX/bin and $PREFIX/sbin (Mike -> DONE)
 +  * improve Python API documentation (Mike -> DONE)
 +  * rework and update Wiki pages (everyone -> TODO)
 +  * enrol as many people as possible in helping with the docs (Mike -> TODO)
  
-      * ENTERING TESTING PHASE!!! (as of 20110728) -TODO ALL!!!!!!+<task> 
 +TITLE: Documentation of X2Go Session Handshake 
 +PRIORITY: Medium 
 +ESTIMATE: 3 months 
 +PROGRESS: 10% 
 +ASSIGNED: Mike, ...  
 +DESCRIPTION: Make the X2Go session handshake more transparent 
 +</task>
  
-      Makefile currently should be fixed. -> DONE +  [[wiki:development:session-handshake|X2Go session handshake documentation]]
-      * Now dh_install and Makefile copy scripts either to /usr/bin or /usr/lib/x2go, depending on their use case: +
-        * a script that is called from the client is in /usr/bin -> DONE +
-        * a script used internally in the x2goserver is in /usr/lib/x2go -> DONE +
-      * A package x2goserver-compat has been added to take up old compatibility scripts. The x2goserver-compat package is only suggested by the x2goserver package, that ishas to be installed explicitly. -> DONE +
-      * Move files from /usr/bin to appropriate directories -> DONE +
-        * $PREFIX/bin (PACKAGE: x2goserver): -> DONE +
-          * x2golistdesktops +
-          * x2golistsessions +
-          * x2gomountdirs +
-          * x2goprint +
-          * x2goruncommand +
-          * x2gosessionlimit +
-          * x2gostartagent +
-          * x2goumount +
-          * x2goresume +
-          * x2goresume-session +
-          * x2gosuspend-session +
-          * x2goterminate-session +
-          * x2goumount-session +
-            * keeping Symlink from x2goumount_session -> x2goumount-session as the rename would break recent x2goclients +
-          * x2goshowblocks +
-          * x2gocmdexitmessage +
-        * $PREFIX/bin (PACKAGE: x2goserver-compat): -> DONE         +
-          * x2gosuspend -> wrapper for x2gosuspend-session +
-          * x2goterminate +
-          * x2goumount_session -> x2goumount-session +
-          * x2gosuspend-agent +
-        * $PREFIX/sbin: (PACKAGE: x2goserver): -> DONE +
-          * x2gocleansessions +
-          * x2godbadmin +
-          * x2golistsessions_root +
-        * $PREFIX/lib: -> DONE +
-          * x2gochangestatus +
-          * x2gocreatesession +
-          * x2godbwrapper.pm +
-          * x2gogetagent +
-          * x2gogetdisplays +
-          * x2gogetports +
-          * x2gogetservers +
-          * x2goinsertport +
-          * x2goinsertsession +
-          * x2gosqlitewrapper +
-          * x2golistsessions_sql +
-        * write man pages for scripts in $PREFIX/bin and $PREFIX/sbin -> CREATED, need more content +
-        * create separate folders in source project: bin/, sbin/, lib/, etc/ -> DONE +
-        * rename x2gosuspend-session to x2gosuspend (Mike: CAVE, this can cause compat problems with older clients) +
-          * Morty: Rename it and make a symlink -> DONE, wrapper script +
- +
-==== July 2011 ====+
  
 <task> <task>
-TITLE: X2go ThinCLientEnvironment+TITLE: Documentation of X2Go Session Broker
 PRIORITY: High PRIORITY: High
-ESTIMATE: 1 month +ESTIMATE: 2 weeks 
-PROGRESS: 100+PROGRESS: 90
-ASSIGNED: Morty, Mike, Markus +ASSIGNED: Mike 
-DESCRIPTION: Provide X2go TCE for Debian squeeze, use tmpfs and probably aufs+DESCRIPTION: Make X2Go Session Broker usable by site admins
 </task> </task>
  
-    Change the way the Thinclient works (Morty, Mike)  +  * [[wiki:advanced:x2gobroker:start|X2Go Session Broker documentation]]
-      * First steps are made the change the ramdisk to tmpfs: [[:wiki:components:tce|Available documentation in Wiki]] (DONE) +
-      * Get audio working out of the box -> DONE +
-      * Get the x2go client working without ldap (copy profile to home) -> DONE +
-      * Get rid of x2gothinclientd package? -> no, other solution found -> DONE +
-      * Create scripts that support the configuration of dhcp, tftpd and nfs (e.g. crate snippets with the right information about paths) -> DONE for tftpd/PXElinux, not planned anymore for dhcp, nfs -> DONE +
-      * X2go CD Manager must work -> DONE +
-      * X2go USB mount must work -> DONE +
-      * X2go Smart Card Rules must work -> TESTED, delay between logins +
-      * X2go Thin Shutdown must work -> DONE+
  
-==== June 2011 ====+==== License Change ====
  
-  * **Communication:** +<task> 
-    * sync at least x2go-commits@lists.berlios.de to GMANE (other lists as well?-> Mike (DONE) +TITLEMove over to AGPL-3+ 
-    * Grant code.x2go.org access to Heinz+Alex -> Mike needs SSH keys... (Heinz -> DONE, Alex -> DONE) +PRIORITY: Low 
-    * x2gothinclientfeedback needed from Heinz+Alex if Morty's x2gothinclient approach can be worked into Git on code.x2go.org (DONE)-> tmpfs branch has become master branch on 2011-06-29 +ESTIMATE: 1-2 years 
-    * x2gothinclient: feedback needed from Heinz+Alex if Mike shall add local session profile support to x2gothinclient (DONE) -> default thin client setup uses local session profiles now +PROGRESS: 70% 
-    * Start discussion on X2go Bugtracker (on x2go-dev, in progress) +ASSIGNED: Heinz, Oleksandr, Mike...  
-    * handle mail obfuscation at GMANE (Heinz? -DONE by Mike)+DESCRIPTIONMove from GPL-2+ to AGPL-3+ where applicable 
 +</task>
  
-==== May 2011 ====+  * X2Go Client (todo) 
 +  * X2Go Server (todo) 
 +  * Python X2Go (done) 
 +  * PyHoca-GUI (done) 
 +  * PyHoca-CLI (done) 
 +  * X2Go Session Broker (done) 
 +  * (other X2Go components?)
  
-  * **Patches, change-of-concepts:** 
-    * x2goprint (merged to x2goserver/master - merged by Mike, OK, DONE) 
-    * x2godropbox (merged to x2goserver/master - merged by Mike)... renamed to x2gomimebox (OK, DONE) 
  
-  * **Packaging:** +==== X2Go Protocols ====
-    * Move installation-logic from debian/rules to Makefile (Mike -> mostly DONE) +
-    * Contact pkg-x2go-devel to announce official X2go upstream Git (Mike, DONE)+
  
-==== April 2011 ====+<task> 
 +TITLE: Review X2Go Session Handshake 
 +PRIORITY: Low 
 +ESTIMATE: 1-2 years 
 +PROGRESS: 0% 
 +ASSIGNED: Oleksandr, Mike, Morty, ...  
 +DESCRIPTION: Take a closer look at problem in the session handshake 
 +</task>
  
-  * **Communication:** 
-    * allow git-admin@x2go.org to send posts to x2go-announcement@lists.berlios.de -> Heinz (DONE) 
-    * Announce Git officially on x2go-dev -> Heinz (DONE by Mike) 
  
-  * **Packaging:** +  * Review [[wiki:security:start#x2goprint|X2Go Printing]] 
-    * build up X2go-internal reprepro Repository (DebianMike), stable and nightly-built packages (DONE) +  Review pulseaudio (If and how to add a pulse-server running on the server and not only the client)
-    Stable (TODO) and nightly-Builds (DONE) for Ubuntu (Morty/Reinhard) on Launchpad +
-    * Grant Reinhard and Mike administrative access for Ubuntu X2go PPA (DONE)+
  
 +==== X2Go Server Add-Ons ====
  
-==== March 2011 ====+<task> 
 +TITLE: X2Go Desktop Applet 
 +PRIORITY: Low 
 +ESTIMATE: 1-2 years 
 +PROGRESS: 0% 
 +ASSIGNED: Oleksandr, Mike, ... 
 +DESCRIPTION: Provide a universal replacement for the currently available desktop bindings 
 +</task>
  
-  * **GIT:** Cleanup work of Uni-Erlangen (Morty) +==== X2Go Session Broker ==== 
-    * [[http://i4git.informatik.uni-erlangen.de/x2goclient.git/shortlog/refs/heads/cleanup|x2goclient]] - done + 
-    * [[http://i4git.informatik.uni-erlangen.de/x2goserver.git/shortlog/refs/heads/cleanup|x2goserver]] - done +<task> 
-    * [[http://i4git.informatik.uni-erlangen.de/nxcomp.git/shortlog/refs/heads/upstream|nxcomp]] - done +TITLEX2Go Session Broker integration into LightDM 
-    * [[http://i4git.informatik.uni-erlangen.de/nxcompext.git/shortlog/refs/heads/cleanup|nxcompext]] - done +PRIORITYhigh 
-    * [[http://i4git.informatik.uni-erlangen.de/nxcompshad.git/shortlog/refs/heads/cleanup|nxcompshad]] - done +ESTIMATE1 month 
-    * [[http://i4git.informatik.uni-erlangen.de/nxproxy.git/shortlog/refs/heads/cleanup|nxproxy]] - done +PROGRESS100% 
-    * [[http://i4git.informatik.uni-erlangen.de/x2goagent.git/shortlog/refs/heads/cleanup|x2goagent]] - done +ASSIGNEDMike, ... 
-    * [[http://i4git.informatik.uni-erlangen.de/x2gognomebindings.git/shortlog/refs/heads/cleanup|x2gognomebindings]] - done +DESCRIPTIONReplace UCCS in LightDM's remote login by X2Go Session Broker (sponsored project) 
-    * [[http://i4git.informatik.uni-erlangen.de/x2gothinclientsystem.git/shortlog/refs/heads/cleanup|x2gothinclientsystem]] - done - rename to x2gothinclient? +</task>
-    * [[http://i4git.informatik.uni-erlangen.de/pinentry-x2go.git/shortlog/refs/heads/cleanup|pinentry-x2go]] - done +
-  * **GIT:** Move clean branches to git.x2go.org (Mike) +
-    * [[http://code.x2go.org/gitweb?p=x2goclient.git;a=summary|x2goclient]] - done +
-    * [[http://code.x2go.org/gitweb?p=x2goserver.git;a=summary|x2goserver]] - done +
-    * [[http://code.x2go.org/gitweb?p=nxcomp.git;a=summary|nxcomp]] - done +
-    * [[http://code.x2go.org/gitweb?p=nxcompext.git;a=summary|nxcompext]] - done +
-    * [[http://code.x2go.org/gitweb?p=nxcompshad.git;a=summary|nxcompshad]] - done +
-    * [[http://code.x2go.org/gitweb?p=nxproxy.git;a=summary|nxproxy]] - done +
-    * [[http://code.x2go.org/gitweb?p=x2goagent.git;a=summary|x2goagent]] - done +
-    * [[http://code.x2go.org/gitweb?p=x2gognomebindings.git;a=summary|x2gognomebindings]] - done +
-    * [[http://code.x2go.org/gitweb?p=x2gothinclient.git;a=summary|x2gothinclient]] - done - renamed from x2gothinclientsystem to x2gothinclientno tags yet because of change-of-concept (Mike) +
-    * [[http://code.x2go.org/gitweb?p=pinentry-x2go.git;a=summary|pinentry-x2go]] - done   +
-  * **Patches, change-of-concepts:** +
-    * Check x2goserver package integrity (tarball releases 3.0.99-3 + 3.0.99-4-> Morty: new [[http://code.x2go.org/gitweb?p=x2goserver.git;a=shortlog;h=refs/heads/3.0.99|3.0.99 branch ]] (done) -> Merge with master -> Arw - done +
-  * **Communication:** +
-    * feedback from Heinz pending about new version numbering scheme (refer to tags on git.x2go.org) -> Heinz (done) -OK+
  
  
 +==== first attempt at documenting missing NX-libs features for certain applications and desktop environments ====
 +^Feature/Application or DE^NX-libs Version^V. req'd for Gnome 3.14^V. req'd for KDE5 ^
 +|XServer: RANDR| | | |
 +|XServer: RENDER| | | |
 +|XServer: Composite| | | |
 +|XServer: GLX| | | |
 +|XServer: DRI| | | |
 +|XServer: BIGREQUESTS| | | |
 +|Client: libXrandr| | | |
 +|Client: libXrender| | | |
 +|Xinerama| | | |
 +|MESA| | | |
 +|VirtualGL| | | |
  
wiki/development/roadmap.1363296345.txt.gz · Last modified: 2013/03/14 21:25 by sunweaver