Join The ModelGUI Community

It is our hope that ModelGUI will become a broad community project, including both end users and developers. Clearly, the larger the community, the better we can realize some of the functionality we have on our extensive wishlist. This page introduces the organization of the project and describes how you can apply to join up as a developer and/or observer on the Launchpad site.


Launchpad is a website maintained by Canonical Ltd., and is intended as a means of hosting and organizing community software projects, in a way which works both for small projects, and scales well into larger ones (see the Wikipedia page for a concise description). Notably, Launchpad is currently host to the communities supporting the Ubuntu, MySQL, and Inkscape projects.

Launchpad is driven by Bazaar, which is an SVN-like version control system that allows source code to be shared and systematically updated by a large community of developers. Launchpad provides a free service to non-commercial projects such as ModelGUI, providing a systematic means of collaborating, setting goals and blueprints, reporting and assigning bugs, and updating the main code trunk. Prospective collaborators should first acquaint themselves with both Launchpad and Bazaar before applying to join the project — just so you know what you're getting into :)

The Overview page for the ModelGUI project can be found here:

The GNU Public License (GPL v. 3)

The GPL (version 3) is a general license created by the GNU Project. The basic intention of this license is to provide a legal means of ensuring a body of code remains open source and freely available to the community at large. Since ModelGUI is licensed under the GPL, this means that all code this is contributed to the project, as well as any code which makes use of the code in this project, must remain open source and freely available. Ultimately, this prevents anyone from building proprietary code based upon any part of the ModelGUI code set. It does not, however, prevent anyone from profiting from this code, provided it is not through proprietary means.

An excellent introduction to Free / Open Source Software (FOSS) is provided by Karl Fogel, and can be found here. It is a good idea to familiarize yourself with these concepts before joining the project.

Contributor License Agreement (CLA)

CLAs are described by Fogel as:

CLAs probably offer the best tradeoff between safety and convenience. A CLA is typically an electronic form that a developer fills out and sends in to the project. In many jurisdictions, email submission is enough. A secure digital signature may or may not be required… Most projects use two slightly different CLAs, one for individuals, and one for corporate contributors. But in both types, the core language is the same: the contributor grants the project "…perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute [the] Contributions and such derivative works."

When you request CLAs from contributors, make sure to emphasize that you are not asking for actual copyright assignment. In fact, many CLAs start out by reminding the reader of this: "This is a license agreement only; it does not transfer copyright ownership and does not change your rights to use your own Contributions for any other purpose."

With this in mind, if you want to join the ModelGUI Project, we ask that you complete a sign the simple contributor license agreement which can be obtained here. This agreement basically ensures that any contributions you make to the project are (1) yours to make, and (2) irrevocable after they are contributed. It does not in any way change your rights to use these contributions for your own purposes. See here for more information on contributor license agreements.

This agreement is also provided in full below. It is based, verbatim, on the CLA used by the Apache Foundation (see here).


Still interested in joining? :)

Launchpad works by assigning "development teams" to specific projects, so the way to join is to apply to a team which is assigned to ModelGUI. This requires two steps:

1. Email us at moc.oohay|yllacipyt#moc.oohay|yllacipyt, and introduce yourself. We'd like to hear from our prospective contributors and get an idea where they're coming from and what they expect out of the project. Also, please complete, scan, and email the contributor license agreement.

2. Register with Launchpad: This may also require that you set up an ssh key, as described here.

3. Apply to join the mgui-core development team: This will give you access to the ModelGUI project, effectively registering you as a contributor

4. Install and get acquainted with Bazaar: which will allow you to pull the source code from the Launchpad repository and start working with it locally

5. If you haven't already, you may also want to get yourself set up with a Java-friendly IDE, such as Eclipse or Netbeans

6. Download the dependencies from the Launchpad site: these are the libraries which are necessary for ModelGUI to build and run; they are all contained in a single "lib" directory and can be easily added to the classpath

7. Finally, get to know the ModelGUI API. You can access the API specification, or consult the Developer's Manual, from the links at the left of this page. The best way to start is to try one of the tutorials.

8. Let us know if you have any issues! We will be maintaining a mailing list as well as a developer forum and a bug tracker.

9. Get involved! Let us know if you have any ideas for improvements, file bug reports, contribute blueprints, and participate in discussions over the direction of the project and its priorities. This is the crux of a community-based project.

Appendix: ModelGUI CLA

Here is the full text of the ModelGUI contributor license agreement:

                      The ModelGUI Project
     Individual Contributor License Agreement ("Agreement") V1.0

Thank you for your interest in the ModelGUI Project ("ModelGUI"). 
In order to clarify the intellectual property license
granted with Contributions from any person or entity, ModelGUI
must have a Contributor License Agreement ("CLA") on file that has
been signed by each Contributor, indicating agreement to the license
terms below. This license is for your protection as a Contributor as
well as the protection of ModelGUI and its users; it does not
change your rights to use your own Contributions for any other purpose.
If you have not already done so, please complete and sign, then scan
and email a pdf file of this Agreement to
Please read this document carefully before signing and keep a copy 
for your records.

  Full name: ______________________________________________________

  (optional) Public name: _________________________________________

  Mailing Address: ________________________________________________


  Country:   ______________________________________________________

  Telephone: ______________________________________________________

  E-Mail:    ______________________________________________________

  ModelGUI id(s): _________________________________________________

You accept and agree to the following terms and conditions for Your
present and future Contributions submitted to ModelGUI. In
return, ModelGUI shall not use Your Contributions in a way that
is contrary to the public benefit or inconsistent with its nonprofit
status and bylaws in effect at the time of the Contribution. Except
for the license granted herein to ModelGUI and recipients of
software distributed by ModelGUI, You reserve all right, title,
and interest in and to Your Contributions.

1. Definitions.

   "You" (or "Your") shall mean the copyright owner or legal entity
   authorized by the copyright owner that is making this Agreement
   with ModelGUI. For legal entities, the entity making a
   Contribution and all other entities that control, are controlled
   by, or are under common control with that entity are considered to
   be a single Contributor. For the purposes of this definition,
   "control" means (i) the power, direct or indirect, to cause the
   direction or management of such entity, whether by contract or
   otherwise, or (ii) ownership of fifty percent (50%) or more of the
   outstanding shares, or (iii) beneficial ownership of such entity.

   "Contribution" shall mean any original work of authorship,
   including any modifications or additions to an existing work, that
   is intentionally submitted by You to ModelGUI for inclusion
   in, or documentation of, any of the products owned or managed by
   ModelGUI (the "Work"). For the purposes of this definition,
   "submitted" means any form of electronic, verbal, or written
   communication sent to ModelGUI or its representatives,
   including but not limited to communication on electronic mailing
   lists, source code control systems, and issue tracking systems that
   are managed by, or on behalf of, ModelGUI for the purpose of
   discussing and improving the Work, but excluding communication that
   is conspicuously marked or otherwise designated in writing by You
   as "Not a Contribution."

2. Grant of Copyright License. Subject to the terms and conditions of
   this Agreement, You hereby grant to ModelGUI and to
   recipients of software distributed by ModelGUI a perpetual,
   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
   copyright license to reproduce, prepare derivative works of,
   publicly display, publicly perform, sublicense, and distribute Your
   Contributions and such derivative works.

3. Grant of Patent License. Subject to the terms and conditions of
   this Agreement, You hereby grant to ModelGUI and to
   recipients of software distributed by ModelGUI a perpetual,
   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
   (except as stated in this section) patent license to make, have
   made, use, offer to sell, sell, import, and otherwise transfer the
   Work, where such license applies only to those patent claims
   licensable by You that are necessarily infringed by Your
   Contribution(s) alone or by combination of Your Contribution(s)
   with the Work to which such Contribution(s) was submitted. If any
   entity institutes patent litigation against You or any other entity
   (including a cross-claim or counterclaim in a lawsuit) alleging
   that your Contribution, or the Work to which you have contributed,
   constitutes direct or contributory patent infringement, then any
   patent licenses granted to that entity under this Agreement for
   that Contribution or Work shall terminate as of the date such
   litigation is filed.

4. You represent that you are legally entitled to grant the above
   license. If your employer(s) has rights to intellectual property
   that you create that includes your Contributions, you represent
   that you have received permission to make Contributions on behalf
   of that employer, that your employer has waived such rights for
   your Contributions to ModelGUI, or that your employer has
   executed a separate Corporate CLA with ModelGUI.

5. You represent that each of Your Contributions is Your original
   creation (see section 7 for submissions on behalf of others).  You
   represent that Your Contribution submissions include complete
   details of any third-party license or other restriction (including,
   but not limited to, related patents and trademarks) of which you
   are personally aware and which are associated with any part of Your

6. You are not expected to provide support for Your Contributions,
   except to the extent You desire to provide support. You may provide
   support for free, for a fee, or not at all. Unless required by
   applicable law or agreed to in writing, You provide Your
   OF ANY KIND, either express or implied, including, without
   limitation, any warranties or conditions of TITLE, NON-

7. Should You wish to submit work that is not Your original creation,
   You may submit it to ModelGUI separately from any
   Contribution, identifying the complete details of its source and of
   any license or other restriction (including, but not limited to,
   related patents, trademarks, and license agreements) of which you
   are personally aware, and conspicuously marking the work as
   "Submitted on behalf of a third-party: [named here]".

8. You agree to notify ModelGUI of any facts or circumstances of
   which you become aware that would make these representations
   inaccurate in any respect.

Please sign: __________________________________ Date: ________________
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License