We welcome any kind of contributions to our software, from simple comment or question to a full fledged pull request. Please read and follow our Code of Conduct.
A contribution can be one of the following cases:
- you have a question;
- you think you may have found a bug (including unexpected behavior);
- you want to make some kind of change to the code base (e.g. to fix a bug, to add a new feature, to update documentation).
- you want to make a release
The sections below outline the steps in each case.
- use the search functionality here to see if someone already filed the same issue;
- if your issue search did not yield any relevant results, make a new issue;
- apply the "Question" label; apply other labels when relevant.
- use the search functionality here to see if someone already filed the same issue;
- if your issue search did not yield any relevant results, make a new issue, making sure to provide enough information to the rest of the community to understand the cause and context of the problem. Depending on the issue, you may want to include: - the SHA hashcode of the commit that is causing your problem; - some identifying information (name and version number) for dependencies you're using; - information about the operating system;
- apply relevant labels to the newly created issue.
- (important) announce your plan to the rest of the community before you start working. This announcement should be in the form of a (new) issue;
- (important) wait until some kind of consensus is reached about your idea being a good idea;
- if needed, fork the repository to your own Github profile and create your own feature branch off of the latest main commit. While working on your feature branch, make sure to stay up to date with the main branch by pulling in changes, possibly from the 'upstream' repository (follow the instructions here and here);
- install the package dependencies with
npm install
; - make sure the existing tests still work by running
npm run test
; - add your own tests (if necessary);
- update or expand the documentation; Make sure the
inputs
in action.yml file are in-sync with their descriptions in README.md#inputs; - push your feature branch to (your fork of) the ewatercycle repository on GitHub;
- create the pull request, e.g. following the instructions here.
In case you feel like you've made a valuable contribution, but you don't know how to write or run tests for it, or how to generate the documentation: don't let this discourage you from making the pull request; we can help you! Just go ahead and submit the pull request, but keep in mind that you might be asked to append additional commits to your pull request.
This section is for maintainers of the setup-apptainer action.
First, you'll need to have a reasonably modern version of
node
handy. This won't work with versions older than 20, for instance.
Install the dependencies
$ npm install
Build the typescript and package it for distribution
$ npm run build && npm run package
Actions are run from GitHub repos so we will checkin the packed dist folder.
Then build (transpile Typescript to Javascript), package (bundle dependencies and code together) and push the results:
$ npm run build && npm run package
$ git add dist
$ git commit -a -m "prod dependencies"
$ git push
Create a release on https://github.com/eWaterCycle/setup-apptainer/releases/new with semantic versioning.
Following the documentation, add a short tag, such that the major version tag points to the latest stable release for that major version:
git pull
git tag -fa v2 -m "Update v2 tag"
git push origin v2 --force
Your action is now published! 🚀