Skip to content

Commit

Permalink
Add conda build, __version__, and license (#33)
Browse files Browse the repository at this point in the history
  • Loading branch information
hoxbro authored Oct 2, 2023
1 parent bb1a2b3 commit 5aa7e71
Show file tree
Hide file tree
Showing 7 changed files with 139 additions and 3 deletions.
34 changes: 34 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,37 @@ jobs:
- name: Publish
if: github.event_name == 'release' && github.event.action == 'published'
run: hatch publish --user __token__ --auth ${{ secrets.pypi_password }}
conda-build:
runs-on: ubuntu-latest
env:
CONDA_UPLOAD_TOKEN: ${{ secrets.CONDA_UPLOAD_TOKEN }}
defaults:
run:
shell: bash -el {0}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set output
id: vars
run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT
- uses: conda-incubator/setup-miniconda@v2
with:
python-version: "3.10"
channels: pyviz/label/dev,conda-forge
- name: Install packages
run: |
conda install -y conda-build hatch anaconda-client
- name: Build conda package
run: |
hatch run conda:build
- name: Publish conda dev
if: (github.event_name == 'release' && github.event.action == 'published' && (contains(steps.vars.outputs.tag, 'a') || contains(steps.vars.outputs.tag, 'b') || contains(steps.vars.outputs.tag, 'rc')))
run: |
FILE="$CONDA_PREFIX/conda-bld/noarch/holonote-$(hatch version)-py_0.tar.bz2"
anaconda --token $CONDA_UPLOAD_TOKEN upload --user pyviz --label=dev $FILE
- name: Publish conda main
if: (github.event_name == 'release' && github.event.action == 'published' && !(contains(steps.vars.outputs.tag, 'a') || contains(steps.vars.outputs.tag, 'b') || contains(steps.vars.outputs.tag, 'rc')))
run: |
FILE="$CONDA_PREFIX/conda-bld/noarch/holonote-$(hatch version)-py_0.tar.bz2"
# anaconda --token $CONDA_UPLOAD_TOKEN upload --user pyviz --label=dev --label=main $FILE
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ __pycache__/
.pytest_cache
dist
scratch/
holonote/_version.py
30 changes: 30 additions & 0 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
Copyright (c) 2023, HoloViz team (holoviz.org).
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the
distribution.

* Neither the name of the copyright holder nor the names of any
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
10 changes: 10 additions & 0 deletions conda/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env bash

set -euxo pipefail

git status

hatch build --clean

export VERSION="$(hatch version)"
conda build conda/recipe --no-test --no-anaconda-upload --no-verify
30 changes: 30 additions & 0 deletions conda/recipe/meta.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{% set data = load_file_data('../../pyproject.toml', from_recipe_dir=True) %}


package:
name: holonote
version: {{ VERSION }}

source:
url: ../../dist/holonote-{{ VERSION }}-py3-none-any.whl

build:
noarch: python
script:
- {{ PYTHON }} -m pip install -vv holonote-{{ VERSION }}-py3-none-any.whl

requirements:
host:
- python {{ data['project']['requires-python']}}

run:
- python {{ data['project']['requires-python']}}

{% for dep in data['project']['dependencies'] %}
- {{ dep.lower() }}
{% endfor %}

about:
license: BSD-3-Clause
summary: {{ data['project']['description'] }}
description: {{ data['project']['readme'] }}
18 changes: 18 additions & 0 deletions holonote/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
from __future__ import annotations

from . import annotate, editor # noqa: F401

# Define '__version__'
try:
# If setuptools_scm is installed (e.g. in a development environment with
# an editable install), then use it to determine the version dynamically.
from setuptools_scm import get_version

# This will fail with LookupError if the package is not installed in
# editable mode or if Git is not installed.
__version__ = get_version(root="..", relative_to=__file__)
except (ImportError, LookupError):
# As a fallback, use the version that is hard-coded in the file.
try:
from ._version import __version__
except ModuleNotFoundError:
# The user is probably trying to run this without having installed
# the package.
__version__ = "0.0.0+unknown"
19 changes: 16 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ name = "holonote"
readme = "README.md"
description = "Annotate your data"
requires-python = ">=3.9"
license = { file = "LICENSE.txt" }
keywords = ["annotation", "holoviews", "tools"]
dynamic = ["version"]
classifiers = [
Expand All @@ -17,16 +18,28 @@ classifiers = [
]
dependencies = ["holoviews >=1.18.0a1", "pandas <2.1"]

[tool.hatch.version]
source = "vcs"
[project.optional-dependencies]
dev = [
"pre-commit",
"setuptools_scm",
"pytest",
]

[tool.hatch]
version.source = "vcs"
build.hooks.vcs.version-file = "holonote/_version.py"

[tool.hatch.envs.conda]
detached = true
scripts.build = "bash conda/build.sh"

[tool.hatch.envs.test]
dependencies = ["pytest"]
scripts.run = "python -m pytest holonote/tests"
matrix = [{ python = ["3.9", "3.10", "3.11"] }]

[tool.hatch.envs.fmt]
dependencies = ["pre-commit"]
detached = true
scripts.run = "pre-commit run --all"
scripts.update = "pre-commit autoupdate"

Expand Down

0 comments on commit 5aa7e71

Please sign in to comment.