From 18563a687a66db4a04d5d3ae2d75914cc1db2150 Mon Sep 17 00:00:00 2001 From: Stefan Verhoeven Date: Tue, 18 Oct 2022 12:04:31 +0200 Subject: [PATCH 1/5] Add code of conduct and contributing docs + move build and publish to contributing --- CODE_OF_CONDUCT.md | 78 +++++++++++++++++++++++++++++++ CONTRIBUTING.md | 114 +++++++++++++++++++++++++++++++++++++++++++++ README.md | 37 ++------------- 3 files changed, 195 insertions(+), 34 deletions(-) create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..563245b --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,78 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our +project and our community a harassment-free experience for everyone, +regardless of age, body size, disability, ethnicity, gender identity and +expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +- The use of sexualized language or imagery and unwelcome sexual + attention or advances +- Trolling, insulting/derogatory comments, and personal or political + attacks +- Public or private harassment +- Publishing others\' private information, such as a physical or + electronic address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in + a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of +acceptable behavior and are expected to take appropriate and fair +corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, +or reject comments, commits, code, wiki edits, issues, and other +contributions that are not aligned to this Code of Conduct, or to ban +temporarily or permanently any contributor for other behaviors that they +deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public +spaces when an individual is representing the project or its community. +Examples of representing a project or community include using an +official project e-mail address, posting via an official social media +account, or acting as an appointed representative at an online or +offline event. Representation of a project may be further defined and +clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may +be reported by contacting the project team at +. All complaints will be reviewed and +investigated and will result in a response that is deemed necessary and +appropriate to the circumstances. The project team is obligated to +maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted +separately. + +Project maintainers who do not follow or enforce the Code of Conduct in +good faith may face temporary or permanent repercussions as determined +by other members of the project\'s leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor +Covenant](https://www.contributor-covenant.org), version 1.4, available +at + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..2d5bf17 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,114 @@ +# Contributing guidelines + +We welcome any kind of contributions to our software, from simple +comment or question to a full fledged [pull +request](https://help.github.com/articles/about-pull-requests/). Please +read and follow our [Code of Conduct](CODE_OF_CONDUCT.md). + +A contribution can be one of the following cases: + +1. you have a question; +2. you think you may have found a bug (including unexpected behavior); +3. 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). +4. you want to make a release + +The sections below outline the steps in each case. + +## You have a question + +1. use the search functionality + [here](https://github.com/setup-apptainer/setup-apptainer/issues) to see if + someone already filed the same issue; +2. if your issue search did not yield any relevant results, make a new + issue; +3. apply the \"Question\" label; apply other labels when relevant. + +## You think you may have found a bug + +1. use the search functionality + [here](https://github.com/setup-apptainer/setup-apptainer/issues) to see if + someone already filed the same issue; +2. 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](https://help.github.com/articles/autolinked-references-and-urls/#commit-shas) + 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; +3. apply relevant labels to the newly created issue. + +## You want to make some kind of change to the code base + +1. (**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; +2. (**important**) wait until some kind of consensus is reached about + your idea being a good idea; +3. 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](https://help.github.com/articles/configuring-a-remote-for-a-fork/) + and [here](https://help.github.com/articles/syncing-a-fork/)); +4. install the package dependencies with + `npm install`; +5. make sure the existing tests still work by running `npm run test`; +6. add your own tests (if necessary); +7. update or expand the documentation; Please add [Google Style Python + docstrings](https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings). +8. [push](http://rogerdudler.github.io/git-guide/) your feature branch + to (your fork of) the ewatercycle repository on GitHub; +9. create the pull request, e.g. following the instructions + [here](https://help.github.com/articles/creating-a-pull-request/). + +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. + +## You want to make a release + +This section is for maintainers of the setup-apptainer action. + +### Build + +> First, you'll need to have a reasonably modern version of `node` handy. This won't work with versions older than 16, for instance. + +Install the dependencies +```bash +$ npm install +``` + +Build the typescript and package it for distribution +```bash +$ npm run build && npm run package +``` + +### Publish + +Actions are run from GitHub repos so we will checkin the packed dist folder. + +Then run [ncc](https://github.com/zeit/ncc) and push the results: +```bash +$ npm run build && npm run package +$ git add dist +$ git commit -a -m "prod dependencies" +``` + +Create a release on https://github.com/setup-apptainer/setup-apptainer/releases/new with semantic versioning. + +Create short tag (`v`) with +``` +git pull +git tag -fa v2 -m "Update v2 tag" +git push origin v2 --force +``` + +Your action is now published! :rocket: + +See the [versioning documentation](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md) diff --git a/README.md b/README.md index ef07608..6f4f9af 100644 --- a/README.md +++ b/README.md @@ -26,38 +26,7 @@ steps: run: apptainer run docker://alpine cat /etc/os-release ``` -## Build +## Contributing -For developers of setup-apptainer action. - -> First, you'll need to have a reasonably modern version of `node` handy. This won't work with versions older than 9, for instance. - -Install the dependencies -```bash -$ npm install -``` - -Build the typescript and package it for distribution -```bash -$ npm run build && npm run package -``` - -## Publish to a distribution branch - -Actions are run from GitHub repos so we will checkin the packed dist folder. - -Then run [ncc](https://github.com/zeit/ncc) and push the results: -```bash -$ npm run build && npm run package -$ git add dist -$ git commit -a -m "prod dependencies" -$ git push origin releases/v1 -``` - -Your action is now published! :rocket: - -See the [versioning documentation](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md) - -## Usage: - -After testing you can [create a v1 tag](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md) to reference the stable and latest V1 action +If you want to contribute to the development of apptainer-setup action, +have a look at the [contribution guidelines](CONTRIBUTING.md). From e9d7f8f3e3808b71229f296addad649ef9ded2e3 Mon Sep 17 00:00:00 2001 From: Stefan Verhoeven Date: Tue, 18 Oct 2022 12:09:58 +0200 Subject: [PATCH 2/5] Better doc contrib --- CONTRIBUTING.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2d5bf17..338c800 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -57,8 +57,7 @@ The sections below outline the steps in each case. `npm install`; 5. make sure the existing tests still work by running `npm run test`; 6. add your own tests (if necessary); -7. update or expand the documentation; Please add [Google Style Python - docstrings](https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings). +7. update or expand the documentation; Make sure the `inputs` in [action.yml](action.yml) file are in-sync with their descriptions in [README.md#inputs](README.md#inputs); 8. [push](http://rogerdudler.github.io/git-guide/) your feature branch to (your fork of) the ewatercycle repository on GitHub; 9. create the pull request, e.g. following the instructions From 6b0989b681cf210c6928e197aca3aab535884c34 Mon Sep 17 00:00:00 2001 From: Stefan Verhoeven Date: Tue, 18 Oct 2022 16:03:35 +0200 Subject: [PATCH 3/5] Explain build and package + add push + major tag steps --- CONTRIBUTING.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 338c800..8b5ea5d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -92,20 +92,22 @@ $ npm run build && npm run package Actions are run from GitHub repos so we will checkin the packed dist folder. -Then run [ncc](https://github.com/zeit/ncc) and push the results: +Then build (transpile Typescript to Javascript), package (bundle dependencies and code together) and push the results: ```bash $ npm run build && npm run package $ git add dist $ git commit -a -m "prod dependencies" +$ git push ``` Create a release on https://github.com/setup-apptainer/setup-apptainer/releases/new with semantic versioning. Create short tag (`v`) with -``` -git pull -git tag -fa v2 -m "Update v2 tag" -git push origin v2 --force +```bash +$ git pull +$ git checkout main +$ git tag -fa v2 -m "Update v2 tag" +$ git push origin v2 --force ``` Your action is now published! :rocket: From 509b7527f220b5e3ef3f347a14ce2bb75affd956 Mon Sep 17 00:00:00 2001 From: Stefan Verhoeven Date: Tue, 18 Oct 2022 16:05:49 +0200 Subject: [PATCH 4/5] Update CONTRIBUTING.md Co-authored-by: Peter Kalverla --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 338c800..2d2562c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -101,7 +101,7 @@ $ git commit -a -m "prod dependencies" Create a release on https://github.com/setup-apptainer/setup-apptainer/releases/new with semantic versioning. -Create short tag (`v`) with +Following the [documentation](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md), 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" From 7be876f6a1ae772975aa027963f9d81aec0e7251 Mon Sep 17 00:00:00 2001 From: Stefan Verhoeven Date: Tue, 18 Oct 2022 16:10:33 +0200 Subject: [PATCH 5/5] Add extra intro --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 6f4f9af..107df18 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ typescript-action status [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7097122.svg)](https://doi.org/10.5281/zenodo.7097122) +This action enables you to easily use apptainer images in your GitHub action workflows. + # GitHub Action to setup apptainer To use [apptainer](https://apptainer.org/) containers in a workflow you need to install it first. This GitHub Action downloads and installs it for you.