diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..b701ed3 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,17 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "github-actions" # See documentation for possible values + directory: ".github/workflows" # Location of package manifests + schedule: + interval: "monthly" + groups: + actions: + patterns: + - "*" + cooldown: + default-days: 7 diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index b0e8f86..16af96f 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -1,16 +1,15 @@ -name: Publish to PyPI +name: build on: release: - types: [released] + types: [ released ] + pull_request: + workflow_dispatch: jobs: - publish: - uses: spacetelescope/action-publish_to_pypi/.github/workflows/workflow.yml@master + build: + uses: OpenAstronomy/github-actions-workflows/.github/workflows/publish_pure_python.yml@99401c364fa51c9c507d3cd6d272049278ac0b2c # v2.4.0 with: - test: false - build_platform_wheels: false # Set to true if your package contains a C extension + upload_to_pypi: ${{ (github.event_name == 'release') && (github.event.action == 'released') }} secrets: - user: ${{ secrets.PYPI_USERNAME_STSCI_MAINTAINER }} - password: ${{ secrets.PYPI_PASSWORD_STSCI_MAINTAINER }} # WARNING: Do not hardcode secret values here! If you want to use a different user or password, you can override this secret by creating one with the same name in your Github repository settings. - test_password: ${{ secrets.PYPI_PASSWORD_STSCI_MAINTAINER_TEST }} + pypi_token: ${{ secrets.PYPI_PASSWORD_STSCI_MAINTAINER }} diff --git a/.gitignore b/.gitignore index cb3a762..6edb919 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ docs/build dist __pycache__ pip-wheel-metadata +version.py +coverage.xml diff --git a/README.md b/README.md index a7ef434..1cb851e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # COSTools -[![Build status](https://dev.azure.com/spacetelescope/costools/_apis/build/status/spacetelescope.costools?branchName=master)](https://dev.azure.com/spacetelescope/costools/_build/latest?definitionId=5&branchName=master) +[![build](https://github.com/spacetelescope/costools/actions/workflows/publish-to-pypi.yml/badge.svg?branch=master)](https://github.com/spacetelescope/costools/actions/workflows/publish-to-pypi.yml) +[![tests](https://github.com/spacetelescope/costools/actions/workflows/tests.yml/badge.svg?branch=master)](https://github.com/spacetelescope/costools/actions/workflows/tests.yml) [![Codecov](https://codecov.io/gh/spacetelescope/costools/branch/master/graph/badge.svg)](https://codecov.io/gh/spacetelescope/costools) [![ReadtheDocs](https://readthedocs.org/projects/costools/badge/?version=latest)(http://costools.readthedocs.io/en/latest/) [![Powered by Astropy](http://img.shields.io/badge/powered%20by-AstroPy-orange.svg?style=flat)(http://www.astropy.org) diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index f66f204..0000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,37 +0,0 @@ -trigger: -- master - -pool: - vmImage: 'ubuntu-latest' -strategy: - matrix: - Python310: - python.version: '3.10' - Python311: - python.version: '3.11' - -steps: -- task: UsePythonVersion@0 - inputs: - versionSpec: '$(python.version)' - displayName: 'Python $(python.version)' - -- script: | - python -m pip install --upgrade pip - pip install -e ".[test]" - displayName: 'Install dependencies' - -- script: | - python -m pip freeze - displayName: 'Package listing' - -- script: | - python -m pip install pytest pytest-azurepipelines - pytest --cov=./ - coverage xml - curl -Os https://uploader.codecov.io/latest/linux/codecov - chmod +x codecov - ./codecov -t "$CODECOV" - displayName: 'pytest' - env: - CODECOV: $(codecov) diff --git a/pyproject.toml b/pyproject.toml index 113da5d..c6ec824 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,65 @@ +[project] +name = "costools" +description = "Tools for COS (Cosmic Origins Spectrograph)" +authors = [ + { name = "Warren Hack" }, + { name = "Nadezhda Dencheva" }, + { name = "Phil Hodge" }, +] +classifiers = [ + "Intended Audience :: Science/Research", + "Operating System :: OS Independent", + "Programming Language :: Python", + "Topic :: Scientific/Engineering :: Astronomy", + "Topic :: Software Development :: Libraries :: Python Modules", +] +dependencies = [ + "astropy", + "calcos", + "numpy", + "stsci.tools", +] +dynamic = [ + "version", +] +license = "BSD-3-Clause" +license-files = [ + "LICENSE.txt" +] +readme = "README.md" + +[project.optional-dependencies] +docs = [ + "sphinx", + "numpydoc", + "sphinx_rtd_theme>1.2.0", +] +test = [ + "pytest", + "pytest-cov", +] + +[project.scripts] +timefilter = "costools.timefilter:main" +add_cos_s_region = "costools.add_cos_s_region:call_main" + [build-system] requires = [ "setuptools>=38.2.5", "setuptools_scm", "wheel", ] +build-backend = "setuptools.build_meta" + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.package-data] +costools = [ + "pars/*", + "*.help", +] + +[tool.setuptools_scm] +version_file = "src/costools/version.py" + diff --git a/setup.py b/setup.py deleted file mode 100755 index 0f06371..0000000 --- a/setup.py +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env python -from setuptools import find_packages -from setuptools import setup - - -PACKAGENAME = 'costools' - -setup( - name=PACKAGENAME, - use_scm_version={'write_to': 'costools/version.py'}, - setup_requires=['setuptools_scm'], - install_requires=[ - 'astropy', - 'calcos', - 'numpy', - 'stsci.tools', - ], - extras_require={ - 'docs': [ - 'sphinx', - 'numpydoc', - 'sphinx_rtd_theme>1.2.0', - ], - 'test': [ - 'pytest', - 'pytest-cov', - ], - }, - packages=find_packages(), - package_data={ - PACKAGENAME: [ - 'pars/*', - '*.help', - ], - }, - entry_points={ - 'console_scripts': [ - 'timefilter = {0}.timefilter:main'.format(PACKAGENAME), - 'add_cos_s_region = {}.add_cos_s_region:call_main'.format(PACKAGENAME), - ], - }, - scripts=[ - 'costools/add_cos_s_region.py', - ], - author='Warren Hack, Nadezhda Dencheva, Phil Hodge', - description='Tools for COS (Cosmic Origins Spectrograph)', - long_description='README.md', - long_description_content_type='text/x-rst', - url='https://github.com/spacetelescope/costools', - license='BSD', - classifiers=[ - 'Intended Audience :: Science/Research', - 'License :: OSI Approved :: BSD License', - 'Operating System :: OS Independent', - 'Programming Language :: Python', - 'Topic :: Scientific/Engineering :: Astronomy', - 'Topic :: Software Development :: Libraries :: Python Modules', - ], -) diff --git a/costools/__init__.py b/src/costools/__init__.py similarity index 100% rename from costools/__init__.py rename to src/costools/__init__.py diff --git a/costools/add_cos_s_region.py b/src/costools/add_cos_s_region.py similarity index 100% rename from costools/add_cos_s_region.py rename to src/costools/add_cos_s_region.py diff --git a/costools/costoolsutil.py b/src/costools/costoolsutil.py similarity index 100% rename from costools/costoolsutil.py rename to src/costools/costoolsutil.py diff --git a/costools/pars/splittag.cfg b/src/costools/pars/splittag.cfg similarity index 100% rename from costools/pars/splittag.cfg rename to src/costools/pars/splittag.cfg diff --git a/costools/pars/splittag.cfgspc b/src/costools/pars/splittag.cfgspc similarity index 100% rename from costools/pars/splittag.cfgspc rename to src/costools/pars/splittag.cfgspc diff --git a/costools/pars/timefilter.cfg b/src/costools/pars/timefilter.cfg similarity index 100% rename from costools/pars/timefilter.cfg rename to src/costools/pars/timefilter.cfg diff --git a/costools/pars/timefilter.cfgspc b/src/costools/pars/timefilter.cfgspc similarity index 100% rename from costools/pars/timefilter.cfgspc rename to src/costools/pars/timefilter.cfgspc diff --git a/costools/pars/x1dcorr.cfg b/src/costools/pars/x1dcorr.cfg similarity index 100% rename from costools/pars/x1dcorr.cfg rename to src/costools/pars/x1dcorr.cfg diff --git a/costools/pars/x1dcorr.cfgspc b/src/costools/pars/x1dcorr.cfgspc similarity index 100% rename from costools/pars/x1dcorr.cfgspc rename to src/costools/pars/x1dcorr.cfgspc diff --git a/costools/saamodel.py b/src/costools/saamodel.py similarity index 100% rename from costools/saamodel.py rename to src/costools/saamodel.py diff --git a/costools/splittag.help b/src/costools/splittag.help similarity index 100% rename from costools/splittag.help rename to src/costools/splittag.help diff --git a/costools/splittag.py b/src/costools/splittag.py similarity index 100% rename from costools/splittag.py rename to src/costools/splittag.py diff --git a/costools/tests/__init__.py b/src/costools/tests/__init__.py similarity index 100% rename from costools/tests/__init__.py rename to src/costools/tests/__init__.py diff --git a/costools/tests/test_noop.py b/src/costools/tests/test_noop.py similarity index 100% rename from costools/tests/test_noop.py rename to src/costools/tests/test_noop.py diff --git a/costools/timefilter.help b/src/costools/timefilter.help similarity index 100% rename from costools/timefilter.help rename to src/costools/timefilter.help diff --git a/costools/timefilter.py b/src/costools/timefilter.py similarity index 100% rename from costools/timefilter.py rename to src/costools/timefilter.py diff --git a/costools/x1dcorr.help b/src/costools/x1dcorr.help similarity index 100% rename from costools/x1dcorr.help rename to src/costools/x1dcorr.help diff --git a/costools/x1dcorr.py b/src/costools/x1dcorr.py similarity index 100% rename from costools/x1dcorr.py rename to src/costools/x1dcorr.py