Skip to content

Commit

Permalink
Update docs build (#253)
Browse files Browse the repository at this point in the history
* Rename workflow, update actions

* Update .readthedocs

* Rename build and deploy script, update to modern actions

* Add dependabot

* Drop python 3.6 support

* WIP: unpin the dependencies for now

* Remove deprecated numpy code

* Use tuples instead of lists in min_max scaler tests

* Use scipy.sparse.random_array instead of deprecated scipy.sparse.random

scipy.sparse.random produces a random matrix with a deprecated matrix constructor. This instead uses a np.array style constructor.

* Update sparse tests

* Drop python 3.7 support

* Inlcude ipykernel in docs deps

* Update GH action

* Add files, modify scripts

* Add regex for csv files in conf.py

* Use pathlib

* Make gallery columns larger

* Attempt to fix gallery clipping

* Make gallery wider

* Replace uint8 with built-in int for colorscale

* Update RELEASE.md
  • Loading branch information
catanzaromj authored Jul 6, 2024
1 parent ece5d47 commit e7db6e7
Show file tree
Hide file tree
Showing 24 changed files with 32,681 additions and 156 deletions.
9 changes: 9 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Set update schedule for GitHub Actions

version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
# Check for updates to GitHub Actions every week
interval: "weekly"
52 changes: 52 additions & 0 deletions .github/workflows/build_and_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# This workflows will upload a Python Package using Twine when a release is created
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries

name: Build and Upload Python Package

on:
workflow_dispatch:
pull_request:
push:
branches:
- main
release:
types:
- published

jobs:
build_wheel_and_sdist:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Build SDist and wheel
run: pipx run build

- uses: actions/upload-artifact@v4
with:
name: Packages
path: dist/*

- name: Check metadata
run: pipx run twine check dist/*

upload_pypi:
name: Upload release to PyPI
needs: [build_wheel_and_sdist]
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/kmapper
permissions:
id-token: write
if: github.event_name == 'release' && github.event.action == 'published'
steps:
- uses: actions/download-artifact@v4
with:
name: Packages
path: dist

- uses: pypa/gh-action-pypi-publish@release/v1
41 changes: 0 additions & 41 deletions .github/workflows/python-app.yml

This file was deleted.

30 changes: 0 additions & 30 deletions .github/workflows/python-publish.yml

This file was deleted.

41 changes: 41 additions & 0 deletions .github/workflows/python-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Python application

on:
push:
branches: [master]
pull_request:
branches: [master]

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]

steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8 pytest-cov
pip install -e ".[testing]"
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest
run: |
pytest --cov kmapper
- name: Upload coverage results
run: |
bash <(curl -s https://codecov.io/bash)
16 changes: 10 additions & 6 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
version: 2

build:
os: "ubuntu-22.04"
tools:
python: "3.11"

python:
version: 3.7
install:
- method: pip
path: .
extra_requirements:
- docs
install:
- method: pip
path: .
extra_requirements:
- docs
27 changes: 23 additions & 4 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
# Release log


## Unreleased

### Added

- ability to live-update the min-intersection threshold for edges on the d3 vis (#231)

### Fixed/Changed

- Update docs and sphinx-gallery to build again.
- Update CI/CD runners to test modern versions of python; drop python 3.7 compatibility.
- Change visual tests to use built-in `int` type rather than `np.uint8`.

## 2.0.1

Expand All @@ -22,7 +27,6 @@
during an AND or OR search query again directly reflects the number of items within the node. (#227)
- The default search mode is now AND -- because that's the expected behavior, because that's how the google works (#227)


## 2.0.0

### Visualization
Expand All @@ -46,7 +50,7 @@ All of the below changes apply to kmapper's D3 html visualization.
- multiple `color_values` arrays can be passed, and switched between interactively in the display.
- the node color function can be specified, as a string, to any function available on the numpy base class (e.g.,
'mean', 'median', 'max', 'min'. (Before, the only available function was `np.mean`.
- Multiple node color functions can be specified, and toggled between interactively in the display.
- Multiple node color functions can be specified, and toggled between interactively in the display.
- The toolbar display now uses css flexbox, which avoids overlap-problems on smaller viewports.

### Kmapper
Expand All @@ -55,63 +59,73 @@ All of the below changes apply to kmapper's D3 html visualization.
- only support python >= 3.6

## 1.4.1

- New CI/CD pipeline

## 1.4

- More flexible visualization coloring (PR 190)
- Better support for sparse matrices (PR 189)
- Better support for precomputed distance matrices (PR 184)

## 1.3.x

- A series of releases to support JOSS submission

## 1.3.0 (October 12, 2019)

- JOSS Release -- final revision
- Allow sparse matrices in `map` function (PR #163)
- Use sphinx-gallery for documentation examples (#164)
- Removed mutable arguments (#165)

## 1.2.0 (Feb 18, 2019)

- New implementation of the cover API makes it consistent with the literature (your % overlap will probably have to be decreased when updating).
- New documentation website (kepler-mapper.scikit-tda.org).

## 1.1.6 (Nov 8, 2018)

- Plotly visualization interface.
- Networkx adapter
- Bug fixes
- Scikit-tda integration

## 1.1.2

- Bug fix, setup.py did not include static directory so installation visualizations did not work when installed from pypi.
- Add Jupyter notebook support

## 1.1

- Massive visualization upgrades
- Separation of HTML, JS, CSS, and Python code
- New nerves and covers API
- Documentation site

## 1.0.1

- Convert versioning scheme to major.minor.micro
- Restructure library to be compatible with PyPi installation
- Minor bug fixes
- Include preliminary unit test suite
- Refactor, extract helper classes and helper functions


# Release log - Pre-alpha

## v00009

## v00008

## v00007

- Add L2^Norm Lens
- Add Winsconsin Breast Cancer Data Anomaly Detection Example
- Fixed bug: k-means with set number of clusters higher than min_cluster_samples
- Add self.inverse_X for new future feature: transforming on unseen data.

## v00006

- Removed link_local functionality
- Halved the number of edges drawn (no two-way edges)
- Added support for clustering on the inverse image
Expand All @@ -121,20 +135,23 @@ All of the below changes apply to kmapper's D3 html visualization.
- Added 7 projections/lenses from statistics

## v00005

- Made Python 3 compatible
- Ability to turn off title, meta and tooltips
- Ability to set the window height and width of HTML output
- Added basic support for another color function: average signal
- De-emphasized link_local functionality, since its current implementation is no good.

## v00004

- Added dimensionality reduction
- Added "digits" case study
- changed fit to fit_transform and return of data
- added tooltips
- added support for custom tooltips

## v00003

- Refactored dimension index to use a list of arbitrary dimensions
- Improved verbosity
- Added levels of verbosity
Expand All @@ -144,6 +161,7 @@ All of the below changes apply to kmapper's D3 html visualization.
- Added a gallery in the example directory

## v00002

- Added a multi-dimensional mode: use all dimensions.
- Added case study: 3D point cloud data for animals
- Added case study: Make circles
Expand All @@ -154,6 +172,7 @@ All of the below changes apply to kmapper's D3 html visualization.
- Added release log

## v00001

- Wrote class
- Wrote documentation
- Added license
17 changes: 10 additions & 7 deletions docs/_static/gallery-override.css
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
.sphx-glr-thumbcontainer {
min-height: 280px !important;
margin: 20px !important;
min-height: 320px !important;
margin: 20px !important;
}
.sphx-glr-thumbcontainer .figure {
width: 280px !important;
width: 320px !important;
}
.sphx-glr-thumbcontainer img {
max-height: 280px !important;
width: 280px !important;
max-width: 280px;
max-height: 250px !important;
width: 250px !important;
max-width: 320px;
}
.sphx-glr-thumbcontainer a.internal {
padding: 220px 10px 0 !important;
padding: 220px 10px 0 !important;
}
.sphx-glr-thumbnails {
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
}
Loading

0 comments on commit e7db6e7

Please sign in to comment.