Skip to content

Commit

Permalink
Merge pull request #673 from EducationalTestingService/release/2.5
Browse files Browse the repository at this point in the history
Preparing for v2.5 release
  • Loading branch information
desilinguist authored Feb 26, 2021
2 parents 43bbcda + 48be271 commit d590ece
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 56 deletions.
16 changes: 10 additions & 6 deletions conda-recipe/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
How to create and test conda package.
### How to create and test conda package

1. To create the SKLL conda package run:
`conda build -c defaults -c conda-forge --numpy=1.17 .`
2. Upload the package to anaconda.org using `anaconda upload --user ets <path>`.
3. Test the package:
`conda create -n foobar -c conda-forge -c ets skll=2.1`
1. To create the SKLL conda package run: `conda build -c conda-forge .`

2. This will create python 3.7, 3.8, and 3.9 packages for your native platform, e.g., `osx-64`.

3. Convert these built packages for the other two platforms. For example, if you ran the above command on macOS, run `conda convert -p linux-64 -p win-64 <packages files>`, where `<packages_files>` are the package files that were created in step 2.

4. Upload all 9 package files (3 Python versions x 3 platforms) to anaconda.org using `anaconda upload --user ets <path_to_files>`.

5. Test the package: `conda create -n foobar -c conda-forge -c ets python=3.9 skll`. This should _always_ install the latest package.
9 changes: 9 additions & 0 deletions conda-recipe/skll/conda_build_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
python:
- 3.7
- 3.8
- 3.9
numpy: 1.20.0
pin_run_as_build:
numpy:
max_pin: x
ignore_version: numpy
60 changes: 30 additions & 30 deletions conda-recipe/skll/meta.yaml
Original file line number Diff line number Diff line change
@@ -1,60 +1,60 @@
package:
name: skll
version: 2.1
version: 2.5

source:
path: ../../../skll

build:
number: 0
noarch: python
script:
- cd $SRC_DIR
- "{{ PYTHON }} -m pip install . --no-deps -vv"
entry_points:
- compute_eval_from_predictions = skll.utilities.compute_eval_from_predictions:main
- filter_features = skll.utilities.filter_features:main
- generate_predictions = skll.utilities.generate_predictions:main
- join_features = skll.utilities.join_features:main
- plot_learning_curves = skll.utilities.plot_learning_curves:main
- print_model_weights = skll.utilities.print_model_weights:main
- run_experiment = skll.utilities.run_experiment:main
- skll_convert = skll.utilities.skll_convert:main
- summarize_results = skll.utilities.summarize_results:main
- compute_eval_from_predictions = skll.utilities.compute_eval_from_predictions:main
- filter_features = skll.utilities.filter_features:main
- generate_predictions = skll.utilities.generate_predictions:main
- join_features = skll.utilities.join_features:main
- plot_learning_curves = skll.utilities.plot_learning_curves:main
- print_model_weights = skll.utilities.print_model_weights:main
- run_experiment = skll.utilities.run_experiment:main
- skll_convert = skll.utilities.skll_convert:main
- summarize_results = skll.utilities.summarize_results:main
- compute_eval_from_predictions = skll.utils.commandline.compute_eval_from_predictions:main
- filter_features = skll.utils.commandline.filter_features:main
- generate_predictions = skll.utils.commandline.generate_predictions:main
- join_features = skll.utils.commandline.join_features:main
- plot_learning_curves = skll.utils.commandline.plot_learning_curves:main
- print_model_weights = skll.utils.commandline.print_model_weights:main
- run_experiment = skll.utils.commandline.run_experiment:main
- skll_convert = skll.utils.commandline.skll_convert:main
- summarize_results = skll.utils.commandline.summarize_results:main
- compute_eval_from_predictions = skll.utils.commandline.compute_eval_from_predictions:main
- filter_features = skll.utils.commandline.filter_features:main
- generate_predictions = skll.utils.commandline.generate_predictions:main
- join_features = skll.utils.commandline.join_features:main
- plot_learning_curves = skll.utils.commandline.plot_learning_curves:main
- print_model_weights = skll.utils.commandline.print_model_weights:main
- run_experiment = skll.utils.commandline.run_experiment:main
- skll_convert = skll.utils.commandline.skll_convert:main
- summarize_results = skll.utils.commandline.summarize_results:main

requirements:
build:
- python
- pip
- setuptools
- beautifulsoup4
- joblib >=0.8
- numpy
- joblib
- numpy {{ numpy }}
- pandas
- python >=3.6
- ruamel.yaml
- scikit-learn >=0.23.1,<=0.23.2
- scikit-learn >=0.24.1,<=0.24.2
- scipy
- seaborn
- setuptools
- tabulate

run:
- python
- beautifulsoup4
- joblib >=0.8
- joblib
- numpy
- pandas
- python >=3.6
- ruamel.yaml
- scikit-learn >=0.23.1,<=0.23.2
- seaborn
- scikit-learn >=0.24.1,<=0.24.2
- scipy
- seaborn
- tabulate

test:
Expand All @@ -75,6 +75,6 @@ test:

about:
home: http://github.com/EducationalTestingService/skll
license: BSD-3-Clause
license: BSD
license_file: LICENSE.txt
summary: SciKit-Learn Laboratory makes it easier to run machine learning experiments with scikit-learn.
34 changes: 15 additions & 19 deletions doc/internal/release.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,38 +17,34 @@ This document is only meant for the project administrators, not users and develo

e. update the README and this release documentation, if necessary.

3. Run the following command in the ``conda-recipe`` directory to build the conda package::
3. Build and upload the conda packages by following instructions in ``conda-recipe/README.md``.

conda build -c conda-forge --numpy=1.17 .
4. Build the PyPI source distribution using ``python setup.py sdist build``.

4. Upload the package to anaconda.org using ``anaconda upload --user ets <package tarball>``. You will need to have the appropriate permissions for the ``ets`` organization.
5. Upload the source distribution to TestPyPI using ``twine upload --repository testpypi dist/*``. You will need to have the ``twine`` package installed and set up your ``$HOME/.pypirc`` correctly. See details `here <https://packaging.python.org/guides/using-testpypi/>`__.

5. Build the PyPI source distribution using ``python setup.py sdist build``.
6. Test the conda package by creating a new environment on different platforms with this package installed and then running SKLL examples or tests from a SKLL working copy. If the package works, then move on to the next step. If it doesn't, figure out why and rebuild and re-upload the package.

6. Upload the source distribution to TestPyPI using ``twine upload --repository testpypi dist/*``. You will need to have the ``twine`` package installed and set up your ``$HOME/.pypirc`` correctly. See details `here <https://packaging.python.org/guides/using-testpypi/>`__.

7. Test the conda package by creating a new environment on different platforms with this package installed and then running SKLL examples or tests from a SKLL working copy. If the package works, then move on to the next step. If it doesn't, figure out why and rebuild and re-upload the package.

8. Test the TestPyPI package by installing it as follows::
7. Test the TestPyPI package by installing it as follows::

pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple skll

9. Then run some SKLL examples or tests from a SKLL working copy. If the TestPyPI package works, then move on to the next step. If it doesn't, figure out why and rebuild and re-upload the package.
8. Then run some SKLL examples or tests from a SKLL working copy. If the TestPyPI package works, then move on to the next step. If it doesn't, figure out why and rebuild and re-upload the package.

10. Create pull requests on the `skll-conda-tester <https://github.com/EducationalTestingService/skll-conda-tester/>`_ and `skll-pip-tester <https://github.com/EducationalTestingService/skll-pip-tester/>`_ repositories to test the conda and TestPyPI packages on Linux and Windows.
9. Create pull requests on the `skll-conda-tester <https://github.com/EducationalTestingService/skll-conda-tester/>`_ and `skll-pip-tester <https://github.com/EducationalTestingService/skll-pip-tester/>`_ repositories to test the conda and TestPyPI packages on Linux and Windows.

11. Draft a release on GitHub while the Linux and Windows package tester builds are running.
10. Draft a release on GitHub while the Linux and Windows package tester builds are running.

12. Once both builds have passed, make a pull request with the release branch to be merged into ``main`` and request code review.
11. Once both builds have passed, make a pull request with the release branch to be merged into ``main`` and request code review.

13. Once the build for the PR passes and the reviewers approve, merge the release branch into ``main``.
12. Once the build for the PR passes and the reviewers approve, merge the release branch into ``main``.

14. Upload source and wheel packages to PyPI using ``python setup.py sdist upload`` and ``python setup.py bdist_wheel upload``
13. Upload source and wheel packages to PyPI using ``python setup.py sdist upload`` and ``python setup.py bdist_wheel upload``

15. Make sure that the ReadTheDocs build for ``main`` passes.
14. Make sure that the ReadTheDocs build for ``main`` passes.

16. Tag the latest commit in ``main`` with the appropriate release tag and publish the release on GitHub.
15. Tag the latest commit in ``main`` with the appropriate release tag and publish the release on GitHub.

17. Send an email around at ETS announcing the release and the changes.
16. Send an email around at ETS announcing the release and the changes.

18. Post release announcement on Twitter/LinkedIn.
17. Post release announcement on Twitter/LinkedIn.
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ def requirements():
'Operating System :: Unix',
'Operating System :: MacOS',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
],
zip_safe=False)
1 change: 1 addition & 0 deletions skll/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
in one place. Based on the suggestion `here. <http://bit.ly/16LbuJF>`_
:author: Dan Blanchard ([email protected])
:author: Nitin Madnani ([email protected])
:organization: ETS
"""

Expand Down

0 comments on commit d590ece

Please sign in to comment.