Skip to content

Commit

Permalink
Merge pull request #23 from eWaterCycle/community-standards
Browse files Browse the repository at this point in the history
Community standards
  • Loading branch information
sverhoeven authored Oct 25, 2022
2 parents 2d6b9c4 + 7be876f commit 4bb22c5
Show file tree
Hide file tree
Showing 3 changed files with 195 additions and 34 deletions.
78 changes: 78 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -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
<[email protected]>. 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
<https://www.contributor-covenant.org/version/1/4/code-of-conduct.html>
112 changes: 112 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# 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; 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
[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 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.

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"
git push origin v2 --force
```

Your action is now published! :rocket:
39 changes: 5 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
<a href="https://github.com/ewatercycle/setup-apptainer/actions"><img alt="typescript-action status" src="https://github.com/ewatercycle/setup-apptainer/workflows/build-test/badge.svg"></a>
[![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.
Expand All @@ -26,38 +28,7 @@ steps:
run: apptainer run docker://alpine cat /etc/os-release
```
## Build
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:
## Contributing
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).

0 comments on commit 4bb22c5

Please sign in to comment.