Grid5000:Grid5000-code: Difference between revisions

From Grid5000
Jump to navigation Jump to search
No edit summary
No edit summary
 
(5 intermediate revisions by 2 users not shown)
Line 17: Line 17:


Everybody is strongly encouraged to contribute new scripts and improve existing scripts.
Everybody is strongly encouraged to contribute new scripts and improve existing scripts.
The scripts are hosted in the grid5000-code SVN repository on <code class='host'>gforge.inria.fr</code>.
 
See http://gforge.inria.fr/projects/grid5000-code/ for more info.
The scripts are hosted in the grid5000-code GitLab repository repository on <code class='host'>gitlab.inria.fr</code>.
See https://gitlab.inria.fr/grid5000/grid5000-code/ for more info.
Note that the technical team doesn't provide support for those tools.
Note that the technical team doesn't provide support for those tools.
A new version of grid5000-code is deployed on all sites when:
# a tag is pushed on the master branch of the repository '''AND'''
# a maintainer press the deploy button of the CI


== Contact ==
== Contact ==


Mailing-list: <code>grid5000-code-devel@lists.gforge.inria.fr</code> (no subscription required to post)
Grid5000 users mailing-list: <code>users@lists.grid5000.fr</code>
 
You can subscribe at http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/grid5000-code-devel


== External tools ==
== External tools ==


Some tools are identified as being useful for Grid'5000 users, but are not provided through Grid'5000 code. Here is a list.
Some tools are identified as being useful for Grid'5000 users, but are not provided through Grid'5000 code. Here is a list.
* <i>list empty for now</i>
* <i>list empty for now</i>


== FAQ ==
== FAQ ==
Line 36: Line 40:
=== When are the scripts replicated to Grid'5000? ===
=== When are the scripts replicated to Grid'5000? ===


The scripts in <code class='file'>staging/</code> are automatically replicated to Grid'5000 frontends when someone (you?) execute <code class='file'>g5kcode-update</code>.
The scripts are automatically replicated to Grid'5000 frontends when a tag is associated to a commit on the master branch of the repository ''and'' one of the project developpers manually launch the deployment pipeline.


The scripts in <code class='file'>bin/</code> are replicated to Grid'5000 on an on-demand basis, when a release is decided.
Discussions on this topic happen on <code>users@lists.grid5000.fr</code>.


Discussions on this topic happen on <code>grid5000-code-devel@lists.gforge.inria.fr</code>.
=== How do I get write-access to the grid5000-code repository? ===


=== How do I get write-access to the SVN repository? ===
Drop a mail to one of the maintainer of the grid5000-code project.
 
Join the grid5000-code project at http://gforge.inria.fr/projects/grid5000-code/
 
Follow the instructions on http://gforge.inria.fr/scm/?group_id=1425


=== How do I contribute a new script? ===
=== How do I contribute a new script? ===


Commit it to the <code class='file'>staging/</code> directory. Follow a sane naming convention,
In a branch, commit it to the <code class='file'>staging/</code> directory. Follow a sane naming convention,
and include in the script:
and include in the script:
* a summary of what the script does
* a summary of what the script does
* contact information (with email address, institution information)
* contact information (with email address, institution information)
* a copyright and license statement (you might want to copy it from other scripts, like bin/katapult)
* a copyright and license statement (you might want to copy it from other scripts, like bin/katapult)
Then, submit a merge request.


=== What about licensing and copyright? ===
=== What about licensing and copyright? ===
Line 68: Line 70:
=== How do I improve an existing script? ===
=== How do I improve an existing script? ===


Normal behaviour rules apply: you should contact the script's author,
Normal behavior rules apply: you should contact the script's author,
and ask him if he/she is interested in integrating your changes, or
and ask him if he/she is interested in integrating your changes, or
ask for the permission to commit them yourself. In the meantime, you
ask for the permission to commit them yourself. In the meantime, you
Line 75: Line 77:
=== How do I move the script from staging/ to bin/? ===
=== How do I move the script from staging/ to bin/? ===


Contact the mailing list (<code>grid5000-code-devel@lists.gforge.inria.fr</code>)
Contact the mailing list (<code>users@lists.grid5000.fr</code>)
and ask for an informal review. Please make sure that your script is
and ask for an informal review. Please make sure that your script is
in a good state before starting the process. In particular, make sure
in a good state before starting the process. In particular, make sure
that its behaviour towards the platform is sane (do not DOS OAR, for
that its behavior towards the platform is sane (do not DOS OAR, for
example), and that it provides enough documentation (through a --help
example), and that it provides enough documentation (through a --help
option, for example) for everybody to be able to use it.
option, for example) for everybody to be able to use it.
=== How do I make a file executable?  ===
Execute the following command on the script:
svn propset svn:executable <code class='replace'><script></code>

Latest revision as of 21:43, 16 December 2019


Grid5000-code

Grid5000-code is a repository of user-contributed scripts and tools that aim at improving the daily life of Grid'5000 users, by making the platform easier to use.

The scripts are distributed automatically on all Grid'5000 frontends, in /grid5000/code. The scripts are divided in two categories:

  • public scripts: located in the bin/ subdirectory, that is also part of the default $PATH. Those scripts are considered good enough for everybody to try and use them.
  • 'tentative' scripts, located in the staging/ subdirectory. While you might find very interesting scripts in this directory, there is no guarantee about the quality of this software.

For more information about the various scripts, see bin/README and staging/README.

Everybody is strongly encouraged to contribute new scripts and improve existing scripts.

The scripts are hosted in the grid5000-code GitLab repository repository on gitlab.inria.fr. See https://gitlab.inria.fr/grid5000/grid5000-code/ for more info. Note that the technical team doesn't provide support for those tools.

A new version of grid5000-code is deployed on all sites when:

  1. a tag is pushed on the master branch of the repository AND
  2. a maintainer press the deploy button of the CI

Contact

Grid5000 users mailing-list: users@lists.grid5000.fr

External tools

Some tools are identified as being useful for Grid'5000 users, but are not provided through Grid'5000 code. Here is a list.

  • list empty for now

FAQ

When are the scripts replicated to Grid'5000?

The scripts are automatically replicated to Grid'5000 frontends when a tag is associated to a commit on the master branch of the repository and one of the project developpers manually launch the deployment pipeline.

Discussions on this topic happen on users@lists.grid5000.fr.

How do I get write-access to the grid5000-code repository?

Drop a mail to one of the maintainer of the grid5000-code project.

How do I contribute a new script?

In a branch, commit it to the staging/ directory. Follow a sane naming convention, and include in the script:

  • a summary of what the script does
  • contact information (with email address, institution information)
  • a copyright and license statement (you might want to copy it from other scripts, like bin/katapult)

Then, submit a merge request.

What about licensing and copyright?

Each script can have its own copyright and license. However, it is strongly recommended that you choose a common Free Software license for your script.

If no licensing information is provided on a script committed to SVN, It is assumed that the script is distributed under the terms of the GNU General Public License, version 2, or any later version.

How do I improve an existing script?

Normal behavior rules apply: you should contact the script's author, and ask him if he/she is interested in integrating your changes, or ask for the permission to commit them yourself. In the meantime, you can temporarily "fork" the original script, by renaming it.

How do I move the script from staging/ to bin/?

Contact the mailing list (users@lists.grid5000.fr) and ask for an informal review. Please make sure that your script is in a good state before starting the process. In particular, make sure that its behavior towards the platform is sane (do not DOS OAR, for example), and that it provides enough documentation (through a --help option, for example) for everybody to be able to use it.