Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

REL: release 0.4.0 #139

Merged
merged 6 commits into from
Dec 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 61 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Release
on: [workflow_dispatch]

jobs:
build_wheels:
build-wheels:
name: Build Wheels for ${{matrix.platform_id}} on ${{matrix.os}}
runs-on: ${{ matrix.os }}
strategy:
Expand Down Expand Up @@ -34,6 +34,15 @@ jobs:
with:
platforms: arm64

- name: Set macOS Deployment Target
if: ${{startsWith(matrix.os, 'macos')}}
run: |
if [[ "${{ matrix.os }}" == "macos-13" ]]; then
echo "MACOSX_DEPLOYMENT_TARGET=13.0" >> $GITHUB_ENV
elif [[ "${{ matrix.os }}" == "macos-14" ]]; then
echo "MACOSX_DEPLOYMENT_TARGET=14.0" >> $GITHUB_ENV
fi

- name: Build wheels
uses: pypa/[email protected]
env: # Can specify per os - e.g. CIBW_BEFORE_ALL_LINUX, CIBW_BEFORE_ALL_MACOS, CIBW_BEFORE_ALL_WINDOWS
Expand All @@ -51,9 +60,57 @@ jobs:
name: cibw-wheels-${{ matrix.platform_id }}
path: ./wheelhouse/*.whl

release_test:
build-iqtree:
name: Fetch or Build IQ-TREE 2 Static Library
runs-on: ubuntu-latest
steps:
- uses: "actions/checkout@v4"
with:
fetch-depth: 0
submodules: recursive

- id: build
uses: ./.github/actions/build-iqtree
with:
os: ubuntu-latest

outputs:
iqtree2-sha: ${{steps.build.outputs.iqtree2-sha}}

build-docs:
runs-on: ubuntu-latest
needs: build-iqtree
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive

- uses: ./.github/actions/setup-piqtree
with:
python-version: "3.12"
cache-key: libiqtree-ubuntu-latest-${{ needs.build-iqtree.outputs.iqtree2-sha }}

- name: Install Docs Dependencies
run: |
pip install .[doc]

- name: Build documentation
run: |
echo `pwd`
mkdocs build
working-directory: ${{ github.workspace }}

- name: Upload documentation artifact
uses: actions/upload-artifact@v4
with:
name: piqtree-docs-html
path: site

release-test:
name: Release to Test PyPI
needs: build_wheels
needs: [build-wheels, build-docs]
environment: release
runs-on: ubuntu-latest
permissions:
Expand All @@ -74,7 +131,7 @@ jobs:

release:
name: Release to PyPI
needs: release_test
needs: release-test
environment: release
runs-on: ubuntu-latest
permissions:
Expand Down
31 changes: 31 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,35 @@

<a id='changelog-0.4.0'></a>
# Changes in release "0.4.0"

## Contributors

- @rmcar17 integrated new functions from IQ-TREE in Python, added multithreading support, and wrote the API refererence and quickstart.
- @thomaskf exposed all new functions from IQ-TREE to be available from Python, and worked on multithreading support.
- @GavinHuttley worked on setting up and writing the documentation and associated devtools, ModelFinder, and integration with `cogent3` apps.
- @YapengLang worked on bootstrapping support and extracting model parameters
- @KatherineCaley worked on processing the ModelFinder results.

## ENH

- piqtree2 renamed piqtree to support future major releases of IQ-TREE.
- piqtree now supports multithreading!
- New function `nj_tree` constructs a rapid neighbour-joining tree from a pairwise distance matrix.
- New function `model_finder` finds the best model for a given alignment.
- New function `jc_distances` constructs a pairwise JC distance matrix from an alignment.
- New function `make_model` allows converting an IQ-TREE string representation of a model to a `Model` class.
- API for `random_trees` has changed - new order (`num_trees`, `num_taxa`, `tree_mode`, then `rand_seed`).
- API for `robinson_foulds` has changed - now accepts a Sequence of trees.
- Model parameters are now extracted from IQ-TREE where for now possible.
- `build_tree` now supports ultrafast bootstrapping.
- `Model` creation is now more robust.
- Use `piqtree.__iqtree_version__` to see what version of piqtree is being used.
- See what can now be done in our [new documentation](https://piqtree.readthedocs.io)!

## DOC

- [Documentation](https://piqtree.readthedocs.io) is now on readthedocs!

<a id='changelog-0.3.1'></a>
# Changes in release "0.3.1"

Expand Down
2 changes: 1 addition & 1 deletion src/piqtree/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
make_model,
)

__version__ = "0.3.2"
__version__ = "0.4.0"

__all__ = [
"Model",
Expand Down
Loading