Skip to content

Commit 26ec18f

Browse files
committed
initial commit of package
0 parents  commit 26ec18f

52 files changed

Lines changed: 1919 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.codecov.yml‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
coverage:
2+
status:
3+
project: # more options at https://docs.codecov.com/docs/commit-status
4+
default:
5+
target: auto # use the coverage from the base commit, fail if coverage is lower
6+
threshold: 0% # allow the coverage to drop by
7+
8+
comment:
9+
layout: " diff, flags, files"
10+
behavior: default
11+
require_changes: false
12+
require_base: false # [true :: must have a base report to post]
13+
require_head: false # [true :: must have a head report to post]
14+
hide_project_coverage: false # [true :: only show coverage on the git diff aka patch coverage]

‎.codespell/ignore_lines.txt‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
;; Please include filenames and explanations for each ignored line.
2+
;; See https://docs.openverse.org/meta/codespell.html for docs.

‎.codespell/ignore_words.txt‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
;; Please include explanations for each ignored word (lowercase).
2+
;; See https://docs.openverse.org/meta/codespell.html for docs.
3+
4+
;; abbreviation for "materials" often used in a journal title
5+
mater
6+
7+
;; Frobenius norm used in np.linalg.norm
8+
fro

‎.flake8‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# As of now, flake8 does not natively support configuration via pyproject.toml
2+
# https://github.com/microsoft/vscode-flake8/issues/135
3+
[flake8]
4+
exclude =
5+
.git,
6+
__pycache__,
7+
build,
8+
dist,
9+
docs/source/conf.py
10+
max-line-length = 79
11+
# Ignore some style 'errors' produced while formatting by 'black'
12+
# https://black.readthedocs.io/en/stable/guides/using_black_with_other_tools.html#labels-why-pycodestyle-warnings
13+
extend-ignore = E203
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
name: Bug Report or Feature Request
3+
about: Report a bug or suggest a new feature!
4+
title: ""
5+
labels: ""
6+
assignees: ""
7+
---
8+
9+
### Problem
10+
11+
<!--
12+
For a bug report, please copy and paste any error messages from the application or command-line here.
13+
For a feature request, please state how the new functionality could benefit the community.
14+
-->
15+
16+
### Proposed solution
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
name: Release
3+
about: Checklist and communication channel for PyPI and GitHub release
4+
title: "Ready for <version-number> PyPI/GitHub release"
5+
labels: "release"
6+
assignees: ""
7+
---
8+
9+
### PyPI/GitHub rc-release preparation checklist:
10+
11+
- [ ] All PRs/issues attached to the release are merged.
12+
- [ ] All the badges on the README are passing.
13+
- [ ] License information is verified as correct. If you are unsure, please comment below.
14+
- [ ] Locally rendered documentation contains all appropriate pages, tutorials, and other human-written text is up-to-date with any changes in the code.
15+
- [ ] All API references are included. To check this, run `conda install scikit-package` and then `package build api-doc`. Review any edits made by rerendering the docs locally.
16+
- [ ] Installation instructions in the README, documentation, and the website are updated.
17+
- [ ] Successfully run any tutorial examples or do functional testing with the latest Python version.
18+
- [ ] Grammar and writing quality are checked (no typos).
19+
- [ ] Install `pip install build twine`, run `python -m build` and `twine check dist/*` to ensure that the package can be built and is correctly formatted for PyPI release.
20+
- [ ] Dispatch matrix testing to test the release on all Python versions and systems. If you do not have permission to run this workflow, tag the maintainer and say `@maintainer, please dispatch matrix testing workflow`.
21+
22+
Please tag the maintainer (e.g., @username) in the comment here when you are ready for the PyPI/GitHub release. Include any additional comments necessary, such as version information and details about the pre-release here:
23+
24+
### PyPI/GitHub full-release preparation checklist:
25+
26+
- [ ] Create a new conda environment and install the rc from PyPI (`pip install <package-name>==??`)
27+
- [ ] License information on PyPI is correct.
28+
- [ ] Docs are deployed successfully to `https://<github-username-or-orgname>/<package-name>`.
29+
- [ ] Successfully run all tests, tutorial examples or do functional testing.
30+
31+
Please let the maintainer know that all checks are done and the package is ready for full release.
32+
33+
### conda-forge release preparation checklist:
34+
35+
<!-- After the maintainer releases the PyPI package, please check the following when creating a PR for conda-forge release.-->
36+
37+
- [ ] Ensure that the full release has appeared on PyPI successfully.
38+
- [ ] New package dependencies listed in `conda.txt` and `tests.txt` are added to `meta.yaml` in the feedstock.
39+
- [ ] Close any open issues on the feedstock. Reach out to the maintainer if you have questions.
40+
- [ ] Tag the maintainer for conda-forge release.
41+
42+
### Post-release checklist
43+
44+
<!-- Before closing this issue, please complete the following: -->
45+
46+
- [ ] Run tutorial examples and conduct functional testing using the installation guide in the README. Attach screenshots/results as comments.
47+
- [ ] Documentation (README, tutorials, API references, and websites) is deployed without broken links or missing figures.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
### What problem does this PR address?
2+
3+
<!-- Provide a brief overview and link to the issue. Attach outputs, including screenshots (before/after), if helpful for the reviewer. -->
4+
5+
### What should the reviewer(s) do?
6+
7+
<!-- Merge the code, provide feedback, initiate a discussion, etc. -->
8+
9+
<!--
10+
Use the following checklist items when applicable (select only what applies):
11+
- [ ] This PR introduces a public-facing change (e.g., figures, CLI input/output, API).
12+
- [ ] Documentation (e.g., tutorials, examples, README) has been updated.
13+
- [ ] A tracking issue or plan to update documentation exists.
14+
- [ ] This PR affects internal functionality only (no user-facing change).
15+
-->
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Build and Publish Docs on Dispatch
2+
3+
on:
4+
workflow_dispatch:
5+
6+
jobs:
7+
get-python-version:
8+
uses: scikit-package/release-scripts/.github/workflows/_get-python-version-latest.yml@v0
9+
with:
10+
python_version: 0
11+
12+
docs:
13+
uses: scikit-package/release-scripts/.github/workflows/_release-docs.yml@v0
14+
with:
15+
project: diffpy.cmistructure
16+
c_extension: false
17+
headless: false
18+
python_version: ${{ fromJSON(needs.get-python-version.outputs.latest_python_version) }}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: Build Wheel and Release
2+
3+
# Trigger on tag push or manual dispatch.
4+
# Tag and release privilege are verified inside the reusable workflow.
5+
on:
6+
workflow_dispatch:
7+
push:
8+
tags:
9+
- "*"
10+
11+
# ── Release modality ──────────────────────────────────────────────────────────
12+
# Three options are provided below. Only ONE job should be active at a time.
13+
# To switch: comment out the active job and uncomment your preferred option,
14+
# then commit the change to main before tagging a release.
15+
# ─────────────────────────────────────────────────────────────────────────────
16+
17+
jobs:
18+
# Option 1 (default): Release to GitHub, publish to PyPI, and deploy docs.
19+
#
20+
# The wheel is uploaded to PyPI so users can install with `pip install`.
21+
# A GitHub release is created with the changelog as the release body, and
22+
# the Sphinx documentation is rebuilt and deployed to GitHub Pages.
23+
#
24+
# Choose this for open-source packages distributed via PyPI and/or
25+
# conda-forge where broad public availability is the goal.
26+
build-release:
27+
uses: scikit-package/release-scripts/.github/workflows/_build-wheel-release-upload.yml@v0
28+
with:
29+
project: diffpy.cmistructure
30+
c_extension: false
31+
maintainer_github_username: sbillinge
32+
secrets:
33+
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
34+
PAT_TOKEN: ${{ secrets.PAT_TOKEN }}
35+
36+
# Option 2: Release to GitHub and deploy docs, without publishing to PyPI.
37+
#
38+
# A GitHub release is created and the Sphinx docs are deployed, but the
39+
# wheel is not uploaded to PyPI. The source code remains publicly visible
40+
# on GitHub and can be installed directly from there.
41+
#
42+
# Choose this when the package is public but you prefer to keep it off the
43+
# default pip index — for example, if you distribute via conda-forge only,
44+
# or if the package is not yet ready for a permanent PyPI presence.
45+
#
46+
# To use: comment out Option 1 above and uncomment the lines below.
47+
# build-release-no-pypi:
48+
# uses: scikit-package/release-scripts/.github/workflows/_build-release-github-no-pypi.yml@v0
49+
# with:
50+
# project: diffpy.cmistructure
51+
# c_extension: false
52+
# maintainer_github_username: sbillinge
53+
# secrets:
54+
# PAT_TOKEN: ${{ secrets.PAT_TOKEN }}
55+
56+
# Option 3: Release to GitHub with wheel, license, and instructions bundled
57+
# as a downloadable zip attached to the GitHub release asset.
58+
#
59+
# The wheel is built and packaged together with INSTRUCTIONS.txt and the
60+
# LICENSE file into a zip that is attached directly to the GitHub release.
61+
# Users with access to the (private) repo download the zip, follow the
62+
# instructions inside, and install locally with pip. No PyPI or conda-forge
63+
# upload occurs, and no docs are deployed.
64+
#
65+
# Choose this for private or restricted packages where distribution must be
66+
# controlled: only users with repo access can download the release asset,
67+
# making the GitHub release itself the distribution channel.
68+
#
69+
# To use: comment out Option 1 above and uncomment the lines below.
70+
# build-release-private:
71+
# uses: scikit-package/release-scripts/.github/workflows/_build-release-github-private-pure.yml@v0
72+
# with:
73+
# project: diffpy.cmistructure
74+
# maintainer_github_username: sbillinge
75+
# secrets:
76+
# PAT_TOKEN: ${{ secrets.PAT_TOKEN }}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: Check for News
2+
3+
on:
4+
pull_request_target:
5+
branches:
6+
- main # GitHub does not evaluate expressions in trigger filters; edit this value if your base branch is not main
7+
8+
jobs:
9+
check-news-item:
10+
uses: scikit-package/release-scripts/.github/workflows/_check-news-item.yml@v0
11+
with:
12+
project: diffpy.cmistructure

0 commit comments

Comments
 (0)