cyclebane 24.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. cyclebane-24.5.0/.copier-answers.yml +13 -0
  2. cyclebane-24.5.0/.github/dependabot.yml +13 -0
  3. cyclebane-24.5.0/.github/workflows/ci.yml +56 -0
  4. cyclebane-24.5.0/.github/workflows/docs.yml +73 -0
  5. cyclebane-24.5.0/.github/workflows/nightly_at_main.yml +33 -0
  6. cyclebane-24.5.0/.github/workflows/nightly_at_release.yml +40 -0
  7. cyclebane-24.5.0/.github/workflows/python-version-ci +1 -0
  8. cyclebane-24.5.0/.github/workflows/release.yml +113 -0
  9. cyclebane-24.5.0/.github/workflows/test.yml +61 -0
  10. cyclebane-24.5.0/.github/workflows/unpinned.yml +40 -0
  11. cyclebane-24.5.0/.gitignore +40 -0
  12. cyclebane-24.5.0/.pre-commit-config.yaml +46 -0
  13. cyclebane-24.5.0/CODE_OF_CONDUCT.md +134 -0
  14. cyclebane-24.5.0/CONTRIBUTING.md +20 -0
  15. cyclebane-24.5.0/LICENSE +29 -0
  16. cyclebane-24.5.0/MANIFEST.in +1 -0
  17. cyclebane-24.5.0/PKG-INFO +94 -0
  18. cyclebane-24.5.0/README.md +40 -0
  19. cyclebane-24.5.0/conda/meta.yaml +53 -0
  20. cyclebane-24.5.0/docs/_static/anaconda-icon.js +13 -0
  21. cyclebane-24.5.0/docs/_templates/class-template.rst +31 -0
  22. cyclebane-24.5.0/docs/_templates/doc_version.html +2 -0
  23. cyclebane-24.5.0/docs/_templates/module-template.rst +66 -0
  24. cyclebane-24.5.0/docs/about/index.md +26 -0
  25. cyclebane-24.5.0/docs/api-reference/index.md +29 -0
  26. cyclebane-24.5.0/docs/conf.py +261 -0
  27. cyclebane-24.5.0/docs/developer/coding-conventions.md +117 -0
  28. cyclebane-24.5.0/docs/developer/dependency-management.md +13 -0
  29. cyclebane-24.5.0/docs/developer/getting-started.md +91 -0
  30. cyclebane-24.5.0/docs/developer/index.md +16 -0
  31. cyclebane-24.5.0/docs/index.md +16 -0
  32. cyclebane-24.5.0/pyproject.toml +105 -0
  33. cyclebane-24.5.0/requirements/base.in +5 -0
  34. cyclebane-24.5.0/requirements/base.txt +9 -0
  35. cyclebane-24.5.0/requirements/basetest.in +8 -0
  36. cyclebane-24.5.0/requirements/basetest.txt +39 -0
  37. cyclebane-24.5.0/requirements/ci.in +4 -0
  38. cyclebane-24.5.0/requirements/ci.txt +56 -0
  39. cyclebane-24.5.0/requirements/dev.in +11 -0
  40. cyclebane-24.5.0/requirements/dev.txt +137 -0
  41. cyclebane-24.5.0/requirements/docs.in +10 -0
  42. cyclebane-24.5.0/requirements/docs.txt +235 -0
  43. cyclebane-24.5.0/requirements/make_base.py +66 -0
  44. cyclebane-24.5.0/requirements/mypy.in +2 -0
  45. cyclebane-24.5.0/requirements/mypy.txt +14 -0
  46. cyclebane-24.5.0/requirements/nightly.in +4 -0
  47. cyclebane-24.5.0/requirements/nightly.txt +10 -0
  48. cyclebane-24.5.0/requirements/static.in +1 -0
  49. cyclebane-24.5.0/requirements/static.txt +28 -0
  50. cyclebane-24.5.0/requirements/test.in +4 -0
  51. cyclebane-24.5.0/requirements/test.txt +9 -0
  52. cyclebane-24.5.0/requirements/wheels.in +1 -0
  53. cyclebane-24.5.0/requirements/wheels.txt +17 -0
  54. cyclebane-24.5.0/setup.cfg +4 -0
  55. cyclebane-24.5.0/src/cyclebane/__init__.py +16 -0
  56. cyclebane-24.5.0/src/cyclebane/graph.py +461 -0
  57. cyclebane-24.5.0/src/cyclebane/node_values.py +400 -0
  58. cyclebane-24.5.0/src/cyclebane/py.typed +0 -0
  59. cyclebane-24.5.0/src/cyclebane.egg-info/PKG-INFO +94 -0
  60. cyclebane-24.5.0/src/cyclebane.egg-info/SOURCES.txt +64 -0
  61. cyclebane-24.5.0/src/cyclebane.egg-info/dependency_links.txt +1 -0
  62. cyclebane-24.5.0/src/cyclebane.egg-info/requires.txt +1 -0
  63. cyclebane-24.5.0/src/cyclebane.egg-info/top_level.txt +1 -0
  64. cyclebane-24.5.0/tests/graph_test.py +882 -0
  65. cyclebane-24.5.0/tests/package_test.py +7 -0
  66. cyclebane-24.5.0/tox.ini +67 -0
@@ -0,0 +1,13 @@
1
+ # Changes here will be overwritten by Copier; NEVER EDIT MANUALLY
2
+ _commit: 9bb9876
3
+ _src_path: gh:scipp/copier_template
4
+ description: Transform directed acyclic graphs using map-reduce and groupby operations
5
+ max_python: '3.12'
6
+ min_python: '3.10'
7
+ namespace_package: ''
8
+ nightly_deps: networkx/networkx
9
+ orgname: scipp
10
+ prettyname: Cyclebane
11
+ projectname: cyclebane
12
+ related_projects: Sciline
13
+ year: 2024
@@ -0,0 +1,13 @@
1
+ version: 2
2
+ updates:
3
+ # Note: We are not listing package-ecosystem: "github-actions". This causes
4
+ # noise in all template instances. Instead dependabot.yml in scipp/copier_template
5
+ # triggers updates of github-actions in the *template*. We then use `copier update`
6
+ # in template instances.
7
+ - package-ecosystem: "pip"
8
+ directory: "/requirements"
9
+ schedule:
10
+ interval: "daily"
11
+ allow:
12
+ - dependency-name: "scipp"
13
+ dependency-type: "direct"
@@ -0,0 +1,56 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - release
8
+ pull_request:
9
+
10
+ jobs:
11
+ formatting:
12
+ name: Formatting and static analysis
13
+ runs-on: 'ubuntu-22.04'
14
+ outputs:
15
+ min_python: ${{ steps.vars.outputs.min_python }}
16
+ min_tox_env: ${{ steps.vars.outputs.min_tox_env }}
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - name: Get Python version for other CI jobs
20
+ id: vars
21
+ run: |
22
+ echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT
23
+ echo "min_tox_env=py$(cat .github/workflows/python-version-ci | sed 's/\.//g')" >> $GITHUB_OUTPUT
24
+ - uses: actions/setup-python@v5
25
+ with:
26
+ python-version-file: '.github/workflows/python-version-ci'
27
+ - uses: pre-commit/action@v3.0.1
28
+ with:
29
+ extra_args: --all-files
30
+ - uses: pre-commit-ci/lite-action@v1.0.2
31
+ if: always()
32
+ with:
33
+ msg: Apply automatic formatting
34
+
35
+ tests:
36
+ name: Tests
37
+ needs: formatting
38
+ strategy:
39
+ matrix:
40
+ os: ['ubuntu-22.04']
41
+ python:
42
+ - version: '${{needs.formatting.outputs.min_python}}'
43
+ tox-env: '${{needs.formatting.outputs.min_tox_env}}'
44
+ uses: ./.github/workflows/test.yml
45
+ with:
46
+ os-variant: ${{ matrix.os }}
47
+ python-version: ${{ matrix.python.version }}
48
+ tox-env: ${{ matrix.python.tox-env }}
49
+
50
+ docs:
51
+ needs: tests
52
+ uses: ./.github/workflows/docs.yml
53
+ with:
54
+ publish: false
55
+ linkcheck: ${{ contains(matrix.variant.os, 'ubuntu') && github.ref == 'refs/heads/main' }}
56
+ branch: ${{ github.head_ref == '' && github.ref_name || github.head_ref }}
@@ -0,0 +1,73 @@
1
+ name: Docs
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ publish:
7
+ default: false
8
+ type: boolean
9
+ version:
10
+ default: ''
11
+ required: false
12
+ type: string
13
+ branch:
14
+ description: 'Branch/tag with documentation source. If not set, the current branch will be used.'
15
+ default: ''
16
+ required: false
17
+ type: string
18
+ workflow_call:
19
+ inputs:
20
+ publish:
21
+ default: false
22
+ type: boolean
23
+ version:
24
+ default: ''
25
+ required: false
26
+ type: string
27
+ branch:
28
+ description: 'Branch/tag with documentation source. If not set, the current branch will be used.'
29
+ default: ''
30
+ required: false
31
+ type: string
32
+ linkcheck:
33
+ description: 'Run the link checker. If not set the link checker will not be run.'
34
+ default: false
35
+ required: false
36
+ type: boolean
37
+
38
+ env:
39
+ VERSION: ${{ inputs.version }}
40
+
41
+ jobs:
42
+ docs:
43
+ name: Build documentation
44
+ runs-on: 'ubuntu-22.04'
45
+ steps:
46
+ - run: sudo apt install --yes graphviz pandoc
47
+ - uses: actions/checkout@v4
48
+ with:
49
+ ref: ${{ inputs.branch == '' && github.ref_name || inputs.branch }}
50
+ repository: ${{ github.event.pull_request.head.repo.full_name }}
51
+ fetch-depth: 0 # history required so cmake can determine version
52
+ - uses: actions/setup-python@v5
53
+ with:
54
+ python-version-file: '.github/workflows/python-version-ci'
55
+ - run: python -m pip install --upgrade pip
56
+ - run: python -m pip install -r requirements/ci.txt
57
+ - run: tox -e releasedocs -- ${VERSION}
58
+ if: ${{ inputs.version != '' }}
59
+ - run: tox -e docs
60
+ if: ${{ inputs.version == '' }}
61
+ - run: tox -e linkcheck
62
+ if: ${{ inputs.linkcheck }}
63
+ - uses: actions/upload-artifact@v4
64
+ with:
65
+ name: docs_html
66
+ path: html/
67
+
68
+ - uses: JamesIves/github-pages-deploy-action@v4.6.1
69
+ if: ${{ inputs.publish }}
70
+ with:
71
+ branch: gh-pages
72
+ folder: html
73
+ single-commit: true
@@ -0,0 +1,33 @@
1
+ name: Nightly test at main branch
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ schedule:
6
+ - cron: '30 1 * * 1-5'
7
+
8
+ jobs:
9
+ setup:
10
+ name: Setup variables
11
+ runs-on: 'ubuntu-22.04'
12
+ outputs:
13
+ min_python: ${{ steps.vars.outputs.min_python }}
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ - name: Get Python version for other CI jobs
17
+ id: vars
18
+ run: echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT
19
+
20
+ tests:
21
+ name: Tests
22
+ needs: setup
23
+ strategy:
24
+ matrix:
25
+ os: ['ubuntu-22.04']
26
+ python:
27
+ - version: '${{needs.setup.outputs.min_python}}'
28
+ tox-env: 'nightly'
29
+ uses: ./.github/workflows/test.yml
30
+ with:
31
+ os-variant: ${{ matrix.os }}
32
+ python-version: ${{ matrix.python.version }}
33
+ tox-env: ${{ matrix.python.tox-env }}
@@ -0,0 +1,40 @@
1
+ name: Nightly tests at latest release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ schedule:
6
+ - cron: '0 1 * * 1-5'
7
+
8
+ jobs:
9
+ setup:
10
+ name: Setup variables
11
+ runs-on: 'ubuntu-22.04'
12
+ outputs:
13
+ min_python: ${{ steps.vars.outputs.min_python }}
14
+ release_tag: ${{ steps.release.outputs.release_tag }}
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ with:
18
+ fetch-depth: 0 # history required so we can determine latest release tag
19
+ - name: Get last release tag from git
20
+ id: release
21
+ run: echo "release_tag=$(git describe --tags --abbrev=0 --match '[0-9]*.[0-9]*.[0-9]*')" >> $GITHUB_OUTPUT
22
+ - name: Get Python version for other CI jobs
23
+ id: vars
24
+ run: echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT
25
+
26
+ tests:
27
+ name: Tests
28
+ needs: setup
29
+ strategy:
30
+ matrix:
31
+ os: ['ubuntu-22.04']
32
+ python:
33
+ - version: '${{needs.setup.outputs.min_python}}'
34
+ tox-env: 'nightly'
35
+ uses: ./.github/workflows/test.yml
36
+ with:
37
+ os-variant: ${{ matrix.os }}
38
+ python-version: ${{ matrix.python.version }}
39
+ tox-env: ${{ matrix.python.tox-env }}
40
+ checkout_ref: ${{ needs.setup.outputs.release_tag }}
@@ -0,0 +1,113 @@
1
+ name: Release
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+ workflow_dispatch:
7
+
8
+ defaults:
9
+ run:
10
+ shell: bash -l {0} # required for conda env
11
+
12
+ jobs:
13
+ build_conda:
14
+ name: Conda build
15
+ runs-on: 'ubuntu-22.04'
16
+
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ with:
20
+ submodules: true
21
+ fetch-depth: 0 # history required so setuptools_scm can determine version
22
+
23
+ - uses: mamba-org/setup-micromamba@v1
24
+ with:
25
+ environment-name: build-env
26
+ create-args: >-
27
+ conda-build
28
+ boa
29
+ - run: conda mambabuild --channel conda-forge --channel scipp --no-anaconda-upload --override-channels --output-folder conda/package conda
30
+
31
+ - uses: actions/upload-artifact@v4
32
+ with:
33
+ name: conda-package-noarch
34
+ path: conda/package/noarch/*.tar.bz2
35
+
36
+ build_wheels:
37
+ name: Wheels
38
+ runs-on: 'ubuntu-22.04'
39
+
40
+ steps:
41
+ - uses: actions/checkout@v4
42
+ with:
43
+ fetch-depth: 0 # history required so setuptools_scm can determine version
44
+
45
+ - uses: actions/setup-python@v5
46
+ with:
47
+ python-version-file: '.github/workflows/python-version-ci'
48
+
49
+ - run: python -m pip install --upgrade pip
50
+ - run: python -m pip install -r requirements/wheels.txt
51
+
52
+ - name: Build wheels
53
+ run: python -m build
54
+
55
+ - name: Upload wheels
56
+ uses: actions/upload-artifact@v4
57
+ with:
58
+ name: dist
59
+ path: dist
60
+
61
+ upload_pypi:
62
+ name: Deploy PyPI
63
+ needs: [build_wheels, build_conda]
64
+ runs-on: 'ubuntu-22.04'
65
+ environment: release
66
+ permissions:
67
+ id-token: write
68
+ if: github.event_name == 'release' && github.event.action == 'published'
69
+ steps:
70
+ - uses: actions/download-artifact@v4
71
+ - uses: pypa/gh-action-pypi-publish@v1.8.14
72
+
73
+ upload_conda:
74
+ name: Deploy Conda
75
+ needs: [build_wheels, build_conda]
76
+ runs-on: 'ubuntu-22.04'
77
+ if: github.event_name == 'release' && github.event.action == 'published'
78
+
79
+ steps:
80
+ - uses: actions/download-artifact@v4
81
+ - uses: mamba-org/setup-micromamba@v1
82
+ with:
83
+ environment-name: upload-env
84
+ # frozen python due to breaking removal of 'imp' in 3.12
85
+ create-args: >-
86
+ anaconda-client
87
+ python=3.11
88
+ - run: anaconda --token ${{ secrets.ANACONDATOKEN }} upload --user scipp --label main $(ls conda-package-noarch/*.tar.bz2)
89
+
90
+ docs:
91
+ needs: [upload_conda, upload_pypi]
92
+ uses: ./.github/workflows/docs.yml
93
+ with:
94
+ publish: ${{ github.event_name == 'release' && github.event.action == 'published' }}
95
+ secrets: inherit
96
+
97
+ assets:
98
+ name: Upload docs
99
+ needs: docs
100
+ runs-on: 'ubuntu-22.04'
101
+ permissions:
102
+ contents: write # This is needed so that the action can upload the asset
103
+ steps:
104
+ - uses: actions/download-artifact@v4
105
+ - name: Zip documentation
106
+ run: |
107
+ mv docs_html documentation-${{ github.ref_name }}
108
+ zip -r documentation-${{ github.ref_name }}.zip documentation-${{ github.ref_name }}
109
+ - name: Upload release assets
110
+ uses: svenstaro/upload-release-action@v2
111
+ with:
112
+ file: ./documentation-${{ github.ref_name }}.zip
113
+ overwrite: false
@@ -0,0 +1,61 @@
1
+ name: Test
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ os-variant:
7
+ default: 'ubuntu-22.04'
8
+ type: string
9
+ python-version:
10
+ type: string
11
+ tox-env:
12
+ default: 'test'
13
+ type: string
14
+ pip-recipe:
15
+ default: 'requirements/ci.txt'
16
+ type: string
17
+ coverage-report:
18
+ default: false
19
+ type: boolean
20
+ checkout_ref:
21
+ default: ''
22
+ type: string
23
+ workflow_call:
24
+ inputs:
25
+ os-variant:
26
+ default: 'ubuntu-22.04'
27
+ type: string
28
+ python-version:
29
+ type: string
30
+ tox-env:
31
+ default: 'test'
32
+ type: string
33
+ pip-recipe:
34
+ default: 'requirements/ci.txt'
35
+ type: string
36
+ coverage-report:
37
+ default: false
38
+ type: boolean
39
+ checkout_ref:
40
+ default: ''
41
+ type: string
42
+
43
+ jobs:
44
+ test:
45
+ runs-on: ${{ inputs.os-variant }}
46
+
47
+ steps:
48
+ - uses: actions/checkout@v4
49
+ with:
50
+ ref: ${{ inputs.checkout_ref }}
51
+ - uses: actions/setup-python@v5
52
+ with:
53
+ python-version: ${{ inputs.python-version }}
54
+ - run: python -m pip install --upgrade pip
55
+ - run: python -m pip install -r ${{ inputs.pip-recipe }}
56
+ - run: tox -e ${{ inputs.tox-env }}
57
+ - uses: actions/upload-artifact@v4
58
+ if: ${{ inputs.coverage-report }}
59
+ with:
60
+ name: CoverageReport
61
+ path: coverage_html/
@@ -0,0 +1,40 @@
1
+ name: Unpinned tests at latest release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ schedule:
6
+ - cron: '0 2 * * 1'
7
+
8
+ jobs:
9
+ setup:
10
+ name: Setup variables
11
+ runs-on: 'ubuntu-22.04'
12
+ outputs:
13
+ min_python: ${{ steps.vars.outputs.min_python }}
14
+ release_tag: ${{ steps.release.outputs.release_tag }}
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ with:
18
+ fetch-depth: 0 # history required so we can determine latest release tag
19
+ - name: Get last release tag from git
20
+ id: release
21
+ run: echo "release_tag=$(git describe --tags --abbrev=0 --match '[0-9]*.[0-9]*.[0-9]*')" >> $GITHUB_OUTPUT
22
+ - name: Get Python version for other CI jobs
23
+ id: vars
24
+ run: echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT
25
+
26
+ tests:
27
+ name: Tests
28
+ needs: setup
29
+ strategy:
30
+ matrix:
31
+ os: ['ubuntu-22.04']
32
+ python:
33
+ - version: '${{needs.setup.outputs.min_python}}'
34
+ tox-env: 'unpinned'
35
+ uses: ./.github/workflows/test.yml
36
+ with:
37
+ os-variant: ${{ matrix.os }}
38
+ python-version: ${{ matrix.python.version }}
39
+ tox-env: ${{ matrix.python.tox-env }}
40
+ checkout_ref: ${{ needs.setup.outputs.release_tag }}
@@ -0,0 +1,40 @@
1
+ # Build artifacts
2
+ build
3
+ dist
4
+ html
5
+ .tox
6
+ *.egg-info
7
+
8
+ *.sw?
9
+
10
+ # Environments
11
+ venv
12
+
13
+ # Caches
14
+ .clangd/
15
+ *.ipynb_checkpoints
16
+ __pycache__/
17
+ .vs/
18
+ .virtual_documents
19
+ .hypothesis
20
+ .pytest_cache
21
+ .mypy_cache
22
+ docs/generated/
23
+
24
+ # Editor settings
25
+ .idea/
26
+ .vscode/
27
+
28
+ # Data files
29
+ *.data
30
+ *.dat
31
+ *.csv
32
+ *.xye
33
+ *.h5
34
+ *.hdf5
35
+ *.hdf
36
+ *.nxs
37
+ *.raw
38
+ *.cif
39
+ *.rcif
40
+ *.ort
@@ -0,0 +1,46 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v4.5.0
4
+ hooks:
5
+ - id: check-added-large-files
6
+ - id: check-json
7
+ exclude: asv.conf.json
8
+ - id: check-merge-conflict
9
+ - id: check-toml
10
+ - id: check-yaml
11
+ exclude: conda/meta.yaml
12
+ - id: detect-private-key
13
+ - id: trailing-whitespace
14
+ args: [ --markdown-linebreak-ext=md ]
15
+ exclude: '\.svg'
16
+ - repo: https://github.com/kynan/nbstripout
17
+ rev: 0.6.0
18
+ hooks:
19
+ - id: nbstripout
20
+ types: [ "jupyter" ]
21
+ args: [ "--drop-empty-cells",
22
+ "--extra-keys 'metadata.language_info.version cell.metadata.jp-MarkdownHeadingCollapsed cell.metadata.pycharm'" ]
23
+ - repo: https://github.com/astral-sh/ruff-pre-commit
24
+ rev: v0.4.3
25
+ hooks:
26
+ - id: ruff
27
+ args: [ --fix ]
28
+ types_or: [ python, pyi, jupyter ]
29
+ - id: ruff-format
30
+ types_or: [ python, pyi ]
31
+ - repo: https://github.com/codespell-project/codespell
32
+ rev: v2.2.6
33
+ hooks:
34
+ - id: codespell
35
+ additional_dependencies:
36
+ - tomli
37
+ - repo: https://github.com/pre-commit/pygrep-hooks
38
+ rev: v1.10.0
39
+ hooks:
40
+ - id: python-no-eval
41
+ - id: python-no-log-warn
42
+ - id: python-use-type-annotations
43
+ - id: rst-backticks
44
+ - id: rst-directive-colons
45
+ - id: rst-inline-touching-normal
46
+ - id: text-unicode-replacement-char
@@ -0,0 +1,134 @@
1
+
2
+ # Contributor Covenant Code of Conduct
3
+
4
+ ## Our Pledge
5
+
6
+ We as members, contributors, and leaders pledge to make participation in our
7
+ community a harassment-free experience for everyone, regardless of age, body
8
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
9
+ identity and expression, level of experience, education, socio-economic status,
10
+ nationality, personal appearance, race, caste, color, religion, or sexual
11
+ identity and orientation.
12
+
13
+ We pledge to act and interact in ways that contribute to an open, welcoming,
14
+ diverse, inclusive, and healthy community.
15
+
16
+ ## Our Standards
17
+
18
+ Examples of behavior that contributes to a positive environment for our
19
+ community include:
20
+
21
+ * Demonstrating empathy and kindness toward other people
22
+ * Being respectful of differing opinions, viewpoints, and experiences
23
+ * Giving and gracefully accepting constructive feedback
24
+ * Accepting responsibility and apologizing to those affected by our mistakes,
25
+ and learning from the experience
26
+ * Focusing on what is best not just for us as individuals, but for the overall
27
+ community
28
+
29
+ Examples of unacceptable behavior include:
30
+
31
+ * The use of sexualized language or imagery, and sexual attention or advances of
32
+ any kind
33
+ * Trolling, insulting or derogatory comments, and personal or political attacks
34
+ * Public or private harassment
35
+ * Publishing others' private information, such as a physical or email address,
36
+ without their explicit permission
37
+ * Other conduct which could reasonably be considered inappropriate in a
38
+ professional setting
39
+
40
+ ## Enforcement Responsibilities
41
+
42
+ Community leaders are responsible for clarifying and enforcing our standards of
43
+ acceptable behavior and will take appropriate and fair corrective action in
44
+ response to any behavior that they deem inappropriate, threatening, offensive,
45
+ or harmful.
46
+
47
+ Community leaders have the right and responsibility to remove, edit, or reject
48
+ comments, commits, code, wiki edits, issues, and other contributions that are
49
+ not aligned to this Code of Conduct, and will communicate reasons for moderation
50
+ decisions when appropriate.
51
+
52
+ ## Scope
53
+
54
+ This Code of Conduct applies within all community spaces, and also applies when
55
+ an individual is officially representing the community in public spaces.
56
+ Examples of representing our community include using an official e-mail address,
57
+ posting via an official social media account, or acting as an appointed
58
+ representative at an online or offline event.
59
+
60
+ ## Enforcement
61
+
62
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
63
+ reported to the community leaders responsible for enforcement at
64
+ scipp[at]ess.eu.
65
+ All complaints will be reviewed and investigated promptly and fairly.
66
+
67
+ All community leaders are obligated to respect the privacy and security of the
68
+ reporter of any incident.
69
+
70
+ ## Enforcement Guidelines
71
+
72
+ Community leaders will follow these Community Impact Guidelines in determining
73
+ the consequences for any action they deem in violation of this Code of Conduct:
74
+
75
+ ### 1. Correction
76
+
77
+ **Community Impact**: Use of inappropriate language or other behavior deemed
78
+ unprofessional or unwelcome in the community.
79
+
80
+ **Consequence**: A private, written warning from community leaders, providing
81
+ clarity around the nature of the violation and an explanation of why the
82
+ behavior was inappropriate. A public apology may be requested.
83
+
84
+ ### 2. Warning
85
+
86
+ **Community Impact**: A violation through a single incident or series of
87
+ actions.
88
+
89
+ **Consequence**: A warning with consequences for continued behavior. No
90
+ interaction with the people involved, including unsolicited interaction with
91
+ those enforcing the Code of Conduct, for a specified period of time. This
92
+ includes avoiding interactions in community spaces as well as external channels
93
+ like social media. Violating these terms may lead to a temporary or permanent
94
+ ban.
95
+
96
+ ### 3. Temporary Ban
97
+
98
+ **Community Impact**: A serious violation of community standards, including
99
+ sustained inappropriate behavior.
100
+
101
+ **Consequence**: A temporary ban from any sort of interaction or public
102
+ communication with the community for a specified period of time. No public or
103
+ private interaction with the people involved, including unsolicited interaction
104
+ with those enforcing the Code of Conduct, is allowed during this period.
105
+ Violating these terms may lead to a permanent ban.
106
+
107
+ ### 4. Permanent Ban
108
+
109
+ **Community Impact**: Demonstrating a pattern of violation of community
110
+ standards, including sustained inappropriate behavior, harassment of an
111
+ individual, or aggression toward or disparagement of classes of individuals.
112
+
113
+ **Consequence**: A permanent ban from any sort of public interaction within the
114
+ community.
115
+
116
+ ## Attribution
117
+
118
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
119
+ version 2.1, available at
120
+ [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
121
+
122
+ Community Impact Guidelines were inspired by
123
+ [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
124
+
125
+ For answers to common questions about this code of conduct, see the FAQ at
126
+ [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
127
+ [https://www.contributor-covenant.org/translations][translations].
128
+
129
+ [homepage]: https://www.contributor-covenant.org
130
+ [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
131
+ [Mozilla CoC]: https://github.com/mozilla/diversity
132
+ [FAQ]: https://www.contributor-covenant.org/faq
133
+ [translations]: https://www.contributor-covenant.org/translations
134
+
@@ -0,0 +1,20 @@
1
+ ## Contributing to Cyclebane
2
+
3
+ Welcome to the developer side of Cyclebane!
4
+
5
+ Contributions are always welcome.
6
+ This includes reporting bugs or other issues, submitting pull requests, requesting new features, etc.
7
+
8
+ If you need help with using Cyclebane or contributing to it, have a look at the GitHub [discussions](https://github.com/scipp/cyclebane/discussions) and start a new [Q&A discussion](https://github.com/scipp/cyclebane/discussions/categories/q-a) if you can't find what you are looking for.
9
+
10
+ For bug reports and other problems, please open an [issue](https://github.com/scipp/cyclebane/issues/new) in GitHub.
11
+
12
+ You are welcome to submit pull requests at any time.
13
+ But to avoid having to make large modifications during review or even have your PR rejected, please first open an issue first to discuss your idea!
14
+
15
+ Check out the subsections of the [Developer documentation](https://scipp.github.io/cyclebane/developer/index.html) for details on how Cyclebane is developed.
16
+
17
+ ## Code of conduct
18
+
19
+ This project is a community effort, and everyone is welcome to contribute.
20
+ Everyone within the community is expected to abide by our [code of conduct](https://github.com/scipp/cyclebane/blob/main/CODE_OF_CONDUCT.md).