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

Add workflows for Python 3.12 #329

Merged
merged 4 commits into from
Jan 30, 2024
Merged

Add workflows for Python 3.12 #329

merged 4 commits into from
Jan 30, 2024

Conversation

chrisjkuch
Copy link
Contributor

Closes #328

@chrisjkuch chrisjkuch changed the base branch from master to v2 November 9, 2023 21:57
@chrisjkuch chrisjkuch changed the title Add tests for Python 3.12 Add workflows for Python 3.12 Nov 9, 2023
@chrisjkuch chrisjkuch marked this pull request as draft November 9, 2023 22:12
@chrisjkuch
Copy link
Contributor Author

chrisjkuch commented Jan 11, 2024

Currently breaks with following error:

using config {
  "python_version_number": "3.12",
  "environment_manager": "conda",
  "dependency_file": "environment.yml",
  "pydata_packages": "basic",
  "project_name": "my_test_project",
  "repo_name": "my-test-repo-5",
  "module_name": "project_module",
  "author_name": "DrivenData",
  "description": "A test project",
  "dataset_storage": {
    "azure": {
      "container": "container-name"
    }
  },
  "open_source_license": "BSD-3-Clause",
  "include_code_scaffold": "No",
  "docs": "none"
}

...

+ make create_environment
Examining conflict for setuptools ipython flake8 matplotlib pip wheel scikit-learn isort python:   0%|   Examining conflict for setuptools ipython flake8 pandas matplotlib pip numpy black wheel scikit-learn jupExamining conflict for setuptools ipython flake8 pandas matplotlib pip numpy black wheel scikit-learn jupExamining conflict for setuptools ipython flake8 matplotlib pip wheel isort:  12%|█▎        | 2/16 [00:12Examining conflict for setuptools ipython flake8 matplotlib pip wheel isort:  19%|█▉        | 3/16 [00:12Examining conflict for setuptools ipython flake8 pandas matplotlib pip numpy black wheel scikit-learn isoExamining conflict for setuptools ipython flake8 pandas matplotlib pip numpy black wheel scikit-learn isoExamining conflict for setuptools ipython flake8 pandas matplotlib pip numpy wheel scikit-learn jupyter iExamining conflict for setuptools ipython flake8 pandas matplotlib pip numpy wheel scikit-learn jupyter iExamining conflict for ipython jupyter:  31%|███▏      | 5/16 [00:34<01:04,  5.86s/it]                   Examining conflict for ipython pandas matplotlib numpy scikit-learn:  62%|██████▎   | 10/16 [00:37<00:13,Examining conflict for ipython pandas matplotlib numpy scikit-learn:  69%|██████▉   | 11/16 [00:37<00:07,Examining conflict for ipython flake8:  69%|██████▉   | 11/16 [00:47<00:07,  1.59s/it]                   Examining conflict for numpy scikit-learn pandas matplotlib:  94%|█████████▍| 15/16 [00:47<00:01,  1.50s/Examining conflict for pandas matplotlib: 100%|██████████| 16/16 [00:55<00:00,  1.50s/it]                Examining conflict for setuptools ipython flake8 matplotlib pip wheel scikit-learn isort python:   0%|   Examining conflict for setuptools ipython flake8 pandas matplotlib pip numpy black wheel scikit-learn jupExamining conflict for setuptools ipython flake8 pandas matplotlib pip numpy black wheel scikit-learn jupExamining conflict for setuptools ipython flake8 matplotlib pip wheel isort:  12%|█▎        | 2/16 [00:13Examining conflict for setuptools ipython flake8 matplotlib pip wheel isort:  19%|█▉        | 3/16 [00:13Examining conflict for setuptools ipython flake8 pandas matplotlib pip numpy black wheel scikit-learn isoExamining conflict for setuptools ipython flake8 pandas matplotlib pip numpy black wheel scikit-learn isoExamining conflict for setuptools ipython flake8 pandas matplotlib pip numpy wheel scikit-learn jupyter iExamining conflict for setuptools ipython flake8 pandas matplotlib pip numpy wheel scikit-learn jupyter iExamining conflict for ipython jupyter:  31%|███▏      | 5/16 [00:36<01:08,  6.19s/it]                   Examining conflict for ipython pandas matplotlib numpy scikit-learn:  62%|██████▎   | 10/16 [00:39<00:13,Examining conflict for ipython pandas matplotlib numpy scikit-learn:  69%|██████▉   | 11/16 [00:39<00:08,Examining conflict for ipython flake8:  69%|██████▉   | 11/16 [00:49<00:08,  1.68s/it]                   Examining conflict for numpy scikit-learn pandas matplotlib:  94%|█████████▍| 15/16 [00:50<00:01,  1.59s/Examining conflict for pandas matplotlib: 100%|██████████| 16/16 [00:58<00:00,  1.59s/it]
UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versions

Package typing conflicts for:
flake8 -> typing
black -> mypy_extensions -> typing[version='>=3.7.4']
ipython -> typing_extensions -> typing[version='>=3.7.4']

Package numpy conflicts for:
pandas -> bottleneck[version='>=1.3.4'] -> numpy[version='>=1.16.4,<2.0a0|>=1.22.3,<2.0a0']
matplotlib -> matplotlib-base[version='>=3.8.0,<3.8.1.0a0'] -> numpy[version='>=1.15.4,<2.0a0|>=1.16.6,<2.0a0|>=1.20|>=1.21.5,<2.0a0|>=1.23.5,<2.0a0|>=1.26.0,<2.0a0|>=1.22.3,<2.0a0|>=1.19.2,<2.0a0|>=1.21.2,<2.0a0']
pandas -> numpy[version='>=1.11.3,<2.0a0|>=1.12.1,<2.0a0|>=1.13.3,<2.0a0|>=1.14.6,<2.0a0|>=1.15.4,<2.0a0|>=1.16,<2.0a0|>=1.20.3,<2.0a0|>=1.21.5,<2.0a0|>=1.23.5,<2.0a0|>=1.26.2,<2.0a0|>=1.26.0,<2.0a0|>=1.23,<2.0a0|>=1.21,<2.0a0|>=1.19.2,<2.0a0|>=1.21.2,<2.0a0|>=1.20.2,<2.0a0|>=1.16.6,<2.0a0|>=1.9.3,<2.0a0|>=1.9.3,<1.10.0a0|>=1.9']
matplotlib -> numpy[version='>=1.14.6,<2.0a0']
numpy
scikit-learn -> scipy[version='>=1.5.0'] -> numpy[version='>=1.15.1,<2.0a0|>=1.16,<1.23|>=1.19,<1.25.0|>=1.19,<1.26.0|>=1.19.5,<1.27.0|>=1.21.5,<1.28|>=1.26.2,<1.28|>=1.23.5,<1.28|>=1.26.0,<1.28|>=1.23,<1.27.0|>=1.21,<1.27.0|>=1.23,<1.26.0|>=1.21,<1.26.0|>=1.21,<1.25.0|>=1.21,<1.23|>=1.21.2,<1.23.0|>=1.16.6,<1.23.0']
scikit-learn -> numpy[version='<1.25|>=1.21.5,<2.0a0|>=1.26.0,<2.0a0|>=1.23.5,<2.0a0|>=1.19.5,<2.0a0|>=1.19.2,<2.0a0|>=1.16.6,<2.0a0|>=1.21.2,<2.0a0|>=1.14.6,<2.0a0|>=1.11.3,<2.0a0|>=1.9.3,<2.0a0']

Package pip conflicts for:
isort -> python[version='>=3.6.1,<4.0'] -> pip
matplotlib -> python[version='>=3.12,<3.13.0a0'] -> pip
ipython -> python[version='>=3.10,<3.11.0a0'] -> pip
wheel -> python[version='>=3.12,<3.13.0a0'] -> pip
scikit-learn -> python[version='>=3.12,<3.13.0a0'] -> pip
pandas -> python[version='>=3.10,<3.11.0a0'] -> pip
jupyter -> python[version='>=3.11,<3.12.0a0'] -> pip
pip
python=3.12 -> pip
flake8 -> python[version='>=3.12,<3.13.0a0'] -> pip
black -> python[version='>=3.12,<3.13.0a0'] -> pip
numpy -> python[version='>=3.12,<3.13.0a0'] -> pip

Package expat conflicts for:
numpy -> python[version='>=3.12,<3.13.0a0'] -> expat[version='>=2.5.0,<3.0a0']
wheel -> python[version='>=3.12,<3.13.0a0'] -> expat[version='>=2.5.0,<3.0a0']
python=3.12 -> expat[version='>=2.5.0,<3.0a0']
scikit-learn -> python[version='>=3.12,<3.13.0a0'] -> expat[version='>=2.5.0,<3.0a0']
setuptools -> python[version='>=3.12,<3.13.0a0'] -> expat[version='>=2.5.0,<3.0a0']
flake8 -> python[version='>=3.12,<3.13.0a0'] -> expat[version='>=2.5.0,<3.0a0']
ipython -> python[version='>=3.12,<3.13.0a0'] -> expat[version='>=2.5.0,<3.0a0']
isort -> python[version='>=3.6.1,<4.0'] -> expat[version='>=2.5.0,<3.0a0']
pip -> python[version='>=3.12,<3.13.0a0'] -> expat[version='>=2.5.0,<3.0a0']
matplotlib -> python[version='>=3.12,<3.13.0a0'] -> expat[version='>=2.5.0,<3.0a0']
pandas -> python[version='>=3.12,<3.13.0a0'] -> expat[version='>=2.5.0,<3.0a0']
black -> python[version='>=3.12,<3.13.0a0'] -> expat[version='>=2.5.0,<3.0a0']

Package entrypoints conflicts for:
flake8 -> entrypoints[version='>=0.3.0,<0.4.0']
jupyter -> nbconvert -> entrypoints[version='>=0.2.2']

Package backports conflicts for:
matplotlib -> backports.functools_lru_cache -> backports
isort -> backports.functools_lru_cache -> backports
ipython -> backports.shutil_get_terminal_size -> backports
flake8 -> configparser -> backports

Package certifi conflicts for:
wheel -> setuptools -> certifi[version='>=2016.09|>=2016.9.26']
flake8 -> setuptools[version='>=30.0.0'] -> certifi[version='>=2016.09|>=2016.9.26']
isort -> setuptools -> certifi[version='>=2016.09|>=2016.9.26']
ipython -> setuptools[version='>=18.5'] -> certifi[version='>=2016.09|>=2016.9.26']
pip -> setuptools -> certifi[version='>=2016.09|>=2016.9.26']
setuptools -> certifi[version='>=2016.09|>=2016.9.26']
matplotlib -> tornado -> certifi[version='>=2016.09|>=2016.9.26|>=2020.06.20']

Package enum34 conflicts for:
flake8 -> enum34
ipython -> traitlets[version='>=4.2'] -> enum34

Package flit-core conflicts for:
black -> typing_extensions[version='>=4.0.1'] -> flit-core[version='>=3.6,<4']
ipython -> typing_extensions -> flit-core[version='>=3.6,<4']

Package six conflicts for:
scikit-learn -> mkl-service[version='>=2,<3.0a0'] -> six
pandas -> python-dateutil[version='>=2.8.2'] -> six[version='>=1.5']
numpy -> mkl-service[version='>=2.3.0,<3.0a0'] -> six
ipython -> prompt-toolkit[version='>3.0.1,<3.1.0'] -> six[version='>=1.9.0']
matplotlib -> cycler[version='>=0.10'] -> six[version='>=1.5']

Package importlib_resources conflicts for:
matplotlib -> matplotlib-base[version='>=3.8.0,<3.8.1.0a0'] -> importlib_resources[version='>=3.2.0|>=5.2.0']
jupyter -> jupyterlab -> importlib_resources[version='>=1.4']

Package tomli conflicts for:
jupyter -> jupyterlab -> tomli
black -> tomli[version='>=1.1.0']

Package ca-certificates conflicts for:
pip -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates
isort -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates
jupyter -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates
pandas -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates
ipython -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates
numpy -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates
flake8 -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates
scikit-learn -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates
python=3.12 -> openssl[version='>=3.0.11,<4.0a0'] -> ca-certificates
wheel -> python -> ca-certificates
matplotlib -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates
setuptools -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates

Package functools32 conflicts for:
flake8 -> functools32
matplotlib -> functools32

Package setuptools conflicts for:
pip -> setuptools
ipython -> pygments[version='>=2.4.0'] -> setuptools
setuptools
isort -> setuptools
flake8 -> pyflakes[version='>=1.5.0,<1.7.0'] -> setuptools
ipython -> setuptools[version='>=18.5']
wheel -> setuptools
matplotlib -> setuptools
scikit-learn -> joblib -> setuptools
flake8 -> setuptools[version='>=30.0.0']
python=3.12 -> pip -> setuptools

Package typing_extensions conflicts for:
ipython -> typing_extensions
matplotlib -> kiwisolver -> typing_extensions
flake8 -> importlib-metadata -> typing_extensions[version='>=3.6.4']
black -> typing_extensions[version='>=3.10.0.0|>=4.0.1']

Package importlib-metadata conflicts for:
black -> click[version='>=8.0.0'] -> importlib-metadata
jupyter -> ipykernel -> importlib-metadata[version='<5|>=4.8.3|>=3.6']
flake8 -> importlib-metadata

Package packaging conflicts for:
matplotlib -> matplotlib-base[version='>=3.8.0,<3.8.1.0a0'] -> packaging[version='>=20.0']
pandas -> numexpr[version='>=2.8.0'] -> packaging
jupyter -> ipykernel -> packaging
black -> packaging[version='>=22.0']

Package backports.functools_lru_cache conflicts for:
isort -> backports.functools_lru_cache
matplotlib -> backports.functools_lru_cache

Package llvm-openmp conflicts for:
scikit-learn -> llvm-openmp[version='>=10.0.0|>=12.0.0|>=14.0.6']
numpy -> libgfortran5[version='>=11.2.0'] -> llvm-openmp[version='>=8.0.0']

Package python-dateutil conflicts for:
matplotlib -> matplotlib-base[version='>=3.8.0,<3.8.1.0a0'] -> python-dateutil[version='>=2.1|>=2.7']
pandas -> python-dateutil[version='>=2.5.*|>=2.6.1|>=2.7.3|>=2.8.1|>=2.8.2']
matplotlib -> python-dateutil

Package futures conflicts for:
matplotlib -> tornado[version='>=5'] -> futures
jupyter -> jupyterlab -> futures
isort -> futures

Package libcxxabi conflicts for:
pandas -> libcxx[version='>=4.0.1'] -> libcxxabi==4.0.1[build='hcfea43d_1|hebd6815_0']
matplotlib -> libcxx[version='>=4.0.1'] -> libcxxabi==4.0.1[build='hcfea43d_1|hebd6815_0']
scikit-learn -> libcxx[version='>=4.0.1'] -> libcxxabi==4.0.1[build='hcfea43d_1|hebd6815_0']

Package wheel conflicts for:
python=3.12 -> pip -> wheel
pip -> wheel
wheel

Package ipython conflicts for:
jupyter -> ipykernel -> ipython[version='>=4.0.0|>=4.0|>=5.0|>=7.23.1|>=7.23.1,<8.0|>=6.1.0']
ipythonThe following specifications were found to be incompatible with your system:

  - feature:/osx-64::__osx==10.16=0
  - feature:|@/osx-64::__osx==10.16=0
  - matplotlib -> matplotlib-base[version='>=3.8.0,<3.8.1.0a0'] -> __osx[version='>=10.11|>=10.12']

Your installed version is: 10.16

@chrisjkuch chrisjkuch requested a review from jayqi January 29, 2024 19:24
Copy link

render bot commented Jan 29, 2024

@jayqi
Copy link
Member

jayqi commented Jan 30, 2024

Okay, got this working by:

  1. Replacing the weird jupyter metapackage with both jupyterlab and notebook directly. I'm not really sure what the point of this is—it is actually owned by Jupyter project people—but it's an extra layer of something to go wrong that both seems worth removing and seems to actually make things go wrong.
  2. Changing to conda-forge. It still wasn't working with defaults channel.
    • As has been pointed out elsewhere, in 2020 Anaconda changed their TOS to make the defaults channel some form of free-for-noncommercial-use. It's probably a better opinionated default to direct people to conda-forge.
    • For whatever reason, this is building faster than when I was experimenting in Add windows to CI #319. Maybe getting rid of the juptyer metapackage was the key. 🤷

@pjbull Not sure if you have any opinions about conda-forge or not.

@jayqi jayqi marked this pull request as ready for review January 30, 2024 04:00
Copy link
Member

@pjbull pjbull left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the decisions here—they make sense. Will add a note on that to the opinions/discussion as well.

Thanks for tracking down the problematic package!

@pjbull pjbull merged commit 6a1374e into v2 Jan 30, 2024
19 checks passed
@pjbull pjbull deleted the 328-python-312 branch January 30, 2024 22:36
@chrisjkuch chrisjkuch mentioned this pull request Jan 31, 2024
2 tasks
pjbull added a commit that referenced this pull request May 22, 2024
* [WIP] New version with cleaner options (#162)

* WIP - New version with cleaner options

* Fix find-replace error (#177)

* Remove unnecessary .gitkeep

* Remove unused tox.ini

* Split reqs into dev/non-dev

* Add basic packages support

* Add tests for testing environment creation and requirements

* Set up CI with Azure Pipelines (#194)

* Change archived asciinema example (#163)

* Change archived asciinema example

* Update README.md

Fix Asciinema powerline error

* Update docs to show updated asciinema example

* Added source and destination to Make data target (#169)

* Fix broken Airflow link (#182)

* Fixed: Typo in Makefile (#184)

Fixed typo in Makefile, section "Set up python interpreter environment": intalled --> installed

* Set up CI with Azure Pipelines

[skip ci]

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* str paths for windows support

* handle multiple data providers (#199)

* Add missing env directory bin/activate path

* Remove version from PYTHON_INTERPRETER command

* Search for virtualenvwrapper.sh path if executable not found

* Try chardet for character encoding detection

* Specify python and virtualenv binaries for virtualenvwrapper

* Add shebang to virtualenvwrapper.sh

* Diagnostic

* Try virtualenvwrapper-win

* Set encoding if detected None

* Fixes to Mac and Windows tests on Azure pipelines (#217)

* Temporarily comment out py36

* Update azure-pipelines.yml

* Fix tests on Windows and Mac (#1)

* Temporarily remove py37

* Update virtualenv_harness.sh

* put py37 back in

* Set encoding to utf-8

* Comment out rmvirtualenv

* Update test_creation.py

* Update virtualenv_harness.sh

* Add --show-capture

* Update azure-pipelines.yml

* Update azure-pipelines.yml

* Update test_creation.py

* Update virtualenv_harness.sh

* Update virtualenv_harness.sh

* Update virtualenv_harness.sh

* Update virtualenv_harness.sh

* Update Makefile

* Update virtualenv_harness.sh

* Update cookiecutter.json

* Update cookiecutter.json

* Update virtualenv_harness.sh

* Update Makefile

* Update Makefile

* Update Makefile

* Update virtualenv_harness.sh

* Update virtualenv_harness.sh

* Update virtualenv_harness.sh

* Update virtualenv_harness.sh

* Update virtualenv_harness.sh

* Update virtualenv_harness.sh

* Update virtualenv_harness.sh

* Update virtualenv_harness.sh

* Update Makefile

* Update Makefile

* Update Makefile

* Update Makefile

* Update virtualenv_harness.sh

* Update virtualenv_harness.sh

* Update virtualenv_harness.sh

* Update Makefile

* Update Makefile

* Update virtualenv_harness.sh

* Update Makefile

* Update virtualenv_harness.sh

* Update virtualenv_harness.sh

* Update test_creation.py

* Update azure-pipelines.yml

* Update virtualenv_harness.sh

* Update virtualenv_harness.sh

* Update virtualenv_harness.sh

* Update virtualenv_harness.sh

* Update cookiecutter.json

* Update conda_harness.sh

* Update conda_harness.sh

* Update conda_harness.sh

Co-authored-by: Eric Jalbert <ericmjalbert@users.noreply.github.com>
Co-authored-by: Jonathan Raviotta <jraviotta@users.noreply.github.com>
Co-authored-by: Wes Roach <wesr000@gmail.com>
Co-authored-by: Christopher Geis <16896724+geisch@users.noreply.github.com>
Co-authored-by: Peter Bull <pjbull@gmail.com>
Co-authored-by: Ian Preston <17241371+ianepreston@users.noreply.github.com>
Co-authored-by: Jay Qi <jayqi@users.noreply.github.com>
Co-authored-by: inchiosa <4316698+inchiosa@users.noreply.github.com>

* More graceful deprecation

* Make tests pass locally

* test version match installed version

* Remove unused imports

* Unremove used import

* Move to GH Actions

* Fix typo

* Test non-windows

* Add netlify configs

* Update suggestion to keep using deprecated cookiecutter template (#231)

* Add mkdocs requirements file to docs directory

* Try setting python version in runtime txt for netlify

* Trigger build

* Python 3.8 netlify

* Python 3.6 netlify

* Do not specify python runtime for netlify

* Use 3.7

This reverts commit 898d7d3.

Co-authored-by: James Myatt <james@jamesmyatt.co.uk>
Co-authored-by: drivendata <info@drivendata.org>
Co-authored-by: Eric Jalbert <ericmjalbert@users.noreply.github.com>
Co-authored-by: Jonathan Raviotta <jraviotta@users.noreply.github.com>
Co-authored-by: Wes Roach <wesr000@gmail.com>
Co-authored-by: Christopher Geis <16896724+geisch@users.noreply.github.com>
Co-authored-by: Ian Preston <17241371+ianepreston@users.noreply.github.com>
Co-authored-by: Jay Qi <jayqi@users.noreply.github.com>
Co-authored-by: inchiosa <4316698+inchiosa@users.noreply.github.com>
Co-authored-by: Robert Gibboni <robert@drivendata.org>

* docs: add dev-requirements, remove tox.ini (#254)

* Formatting

* Docs and test cleanup

* 3.10 specificaiton

* Passing tests and lint

* testing improvements and hooks refactor

* Lint, format, license (#247)

* format config files

* make format

* update readme

* no license, py version, update lint format commands

* revert accidental lic removal

Co-authored-by: Peter Bull <pjbull@gmail.com>

* Updating the Makefile

* Removing deprecation message from v2

* update pip, reqs, test CI commands

* Update docs build

* Revert netlify changes

* Use default netlify build runtime

* make gsutil rsync recursive (#297)

* make gsutil rsync recursive

* reformatted with black

* add threaded flag for gsutil rsync

* V2 bug fixes, modernization, house-keeping, and README update (#313)

* Escape single quotes in sphinx conf. Fixes #142

* Use pyproject.toml package metadata. Fix quote escaping. Fixes #248

* Remove unnecessary pep8 configuration

* Update gitignores

* Use pyproject.toml for package metadata

* Update README for v2

* Add Python 3.11 and 3.12 to CI

* Remove unneeded requirements file reference

* Docs updates

* Update linting and tests

* Fix lint

* Missed one

* Split out code quality job

* Hold on 3.12 for now

* Fix wrong conda environment command

* Fix option name

* Change back and remove python spec since it should already be in environment.yml

* Change hyperlinks to https that support it

* Update joblib link. Supersedes #251

* Remove Python 3.12 for now

* Pin Python version in project package metadata

* Use compatible release operator

---------

Co-authored-by: Jay Qi <jayqi@users.noreply.github.com>

* Add windows to CI (#319)

* Add windows to CI

* Try different shebang per actions/runner-images#7253 (comment)

* Revert "Try different shebang per actions/runner-images#7253 (comment)"

This reverts commit 4a8f093.

* Try setting PATH

* Reduce matrix for testing

* Set default shell to bash

* Fix wrong syntax

* Explicitly set bash path in test

* Fix syntax error

* Fix mistake

* Try installing GNU make instead of using available mingw32-make

* Undo explicit bash executable

* Set conda executable

* Fix black

* Add conda directory to system paths

* Clearer phony declaration

* Add diagnostic printing

* More printing

* Check which make

* Try adding Git bin directory to path

* Explicit bash shell

* Try adding explicit PATH

* Try making path style consistent

* Explicit conda executable

* try using which

* Try Scripts directory for adding to PATH

* Try removing unnecessary conda stuff

* Separate check step

* Install from conda-forge

* Missing colon

* Try setup miniconda to see if it's faster

* Change default shell

* Use conda environment

* Skip which conda

* Add to path anyways

* Try micromamba

* Use mamba as conda executable

* Fix typo

* micromamba shell hook

* Missing quote

* Full micromamba path; add caching

* Try path instead

* Remove backslash

* Use mambaforge instead of micromamba

* Add conda to PATH

* Use conda activate

* Try permissions hack

* Remove unneeded packages

* Use different repo name per config

* Cleanup

* Fallbacks

* Fix backwards check

* Print test durations

* Try conda and defaults again

* Don't change shell

* Normal shell

* Clean up

* More cleanup

* More cleanup

---------

Co-authored-by: Jay Qi <jayqi@users.noreply.github.com>

* Optionally remove boilerplate in initial setup (#286)

* Make skeleton code optional

* Updates to skeleton code

* make lint pass

* add --profile black to isort command for black compatibility

* add --profile black to generated Makefile

* remove setup.py from linting/formatting;

* fix code scaffold tests; revert adding isort to project makefile

---------

Co-authored-by: Peter Bull <pjbull@gmail.com>

* Replace sphinx with mkdocs as default docs option, add none option (#295)

* create alternative mkdocs docs path and add option to use sphinx, mkdocs, or none

* add tests that docs folder looks correct

* add author if provided to mkdocs config

* fix yml typo

* make mkdocs default, do not remove sphinx yet

* reconfigure tests to cycle through all possible values for fields that are nominally independent

* change formatting

* cast docs paths to strings to satisfy shutil move in python 3.8

* remove sphinx

* remove docs folder tree; make docs removal generic

* Create new screencast automatically on docs build (#339)

* Create new screencast automatically on docs build

* dev reqs

* Remove tree from replay

* Update docs/scripts/generate-termynal.py

Co-authored-by: Chris Kucharczyk <chris@drivendata.org>

* Update docs/scripts/generate-termynal.py

Co-authored-by: Chris Kucharczyk <chris@drivendata.org>

* Apply suggestions from code review

Co-authored-by: Chris Kucharczyk <chris@drivendata.org>

* Apply suggestions from code review

Co-authored-by: Chris Kucharczyk <chris@drivendata.org>

---------

Co-authored-by: Chris Kucharczyk <chris@drivendata.org>

* Update Makefile help command to work on all platforms (#335)

* update python script and variable reference so help printing works on all platforms

* add blank make command testing output of available commands

* add test for makefile help text

* Update docs to material theme (#341)

* update docs to material theme

* update style and logo

* rearrange and update content

* docs/requirements.txt

* update workflow to skip if docs-only change, remove netlify config

* write to tempfile instead of hardcoded dir to prevent unintended persistent files from mkdocs-gen-files

* Update docs to use multiple pages (#344)

* change site structure to use multiple pages

* add navigation.instant

* remove padding override

* remove toc.follow

* revert content change

* Add workflows for Python 3.12 (#329)

* add python 3.12 vm env to test suite and update pyproject.toml classifiers to indicate support

* Bump actions versions

* Swap out fake/abandoned jupyter metapackage for jupyterlab and notebook

* Try conda-forge

---------

Co-authored-by: Jay Qi <jayqi@users.noreply.github.com>

* Update opinions (#345)

* update opinions

* fix dag link

* typos and formatting

* Update docs/docs/opinions.md

Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>

* Update docs/docs/opinions.md

Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>

* Update docs/docs/opinions.md

Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>

* Update docs/docs/opinions.md

Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>

* Update docs/docs/opinions.md

Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>

* Update docs/docs/opinions.md

Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>

* Update docs/docs/opinions.md

Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>

* Update docs/docs/opinions.md

Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>

* try rewrite of dag section

* formatting nits and adding subtitles

* Update docs/docs/opinions.md

Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>

* Update docs/docs/opinions.md

Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>

* Update docs/docs/opinions.md

Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>

* Update docs/docs/opinions.md

Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>

* Update docs/docs/opinions.md

Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>

* Update docs/docs/opinions.md

Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>

* Update docs/docs/opinions.md

Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>

* Update docs/docs/opinions.md

Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>

* Update docs/docs/opinions.md

Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>

* fix link to contributing page

---------

Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>

* Badge + docs updates (#348)

* Badge on docs updates

* default to CCDS template

* Style updates

* darken links a bit

* block quotes

* formatting and bare ccds

* Apply suggestions from code review

Co-authored-by: Chris Kucharczyk <chris@drivendata.org>

---------

Co-authored-by: Chris Kucharczyk <chris@drivendata.org>

* Minor CSS Tweaks (#349)

* tweak code block formatting and color correctness

* update note infobox styles

* Add commandline options table (#350)

* Add commandline options table

* wack isort ordering

* Make sections

* Format

* Use shutil.copytree instead of distutils (#353)

Co-authored-by: Jay Qi <jayqi@users.noreply.github.com>

* Add documentation about Make on Windows (#355)

* Fix typo

* Add instructions for Make on Windows

* Fix typo

* Copy edits

* Add note about help

* Consistent code formatting

---------

Co-authored-by: Jay Qi <jayqi@users.noreply.github.com>

* V2 Modernize boilerplate (#354)

* WIP

* Remove setuptools, add tqdm

* Lint

* Don't need setuptools or wheel

* Add comment fences

* Can't believe E266 is a thing

* Whitespace

* Add linting to tests

* Remove template from project linting and formatting

* Reorganize boilerplate modules

* Get rid of editable check

* Actually run linting

* Actually test linting

* Update verify_files test

* Update verify_folders

* Remove duplicate file

* Fix lint

---------

Co-authored-by: Jay Qi <jayqi@users.noreply.github.com>

* Updates from review of V2 docs (#362)

* Review comments

* 3.8 minimum

* macos-13

* try setting up conda

* don't use imported variable

* Update docs/docs/opinions.md

Co-authored-by: Chris Kucharczyk <chris@drivendata.org>

---------

Co-authored-by: Chris Kucharczyk <chris@drivendata.org>

---------

Co-authored-by: James Myatt <james@jamesmyatt.co.uk>
Co-authored-by: drivendata <info@drivendata.org>
Co-authored-by: Eric Jalbert <ericmjalbert@users.noreply.github.com>
Co-authored-by: Jonathan Raviotta <jraviotta@users.noreply.github.com>
Co-authored-by: Wes Roach <wesr000@gmail.com>
Co-authored-by: Christopher Geis <16896724+geisch@users.noreply.github.com>
Co-authored-by: Ian Preston <17241371+ianepreston@users.noreply.github.com>
Co-authored-by: Jay Qi <jayqi@users.noreply.github.com>
Co-authored-by: inchiosa <4316698+inchiosa@users.noreply.github.com>
Co-authored-by: Robert Gibboni <robert@drivendata.org>
Co-authored-by: Phil <4689707+tgrrr@users.noreply.github.com>
Co-authored-by: Tammy Glazer <47676359+tamara-glazer@users.noreply.github.com>
Co-authored-by: AllenDowney <downey@allendowney.com>
Co-authored-by: Kristian Bodolai <69843715+KBodolai@users.noreply.github.com>
Co-authored-by: Jay Qi <2721979+jayqi@users.noreply.github.com>
Co-authored-by: Chris Kucharczyk <chris@drivendata.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add Python 3.12 support
3 participants