Skip to content

Commit

Permalink
Update ADMIN doc.
Browse files Browse the repository at this point in the history
  • Loading branch information
Shyue Ping Ong committed Oct 4, 2023
1 parent ebd7769 commit a7ee2d2
Showing 1 changed file with 13 additions and 47 deletions.
60 changes: 13 additions & 47 deletions ADMIN.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,26 @@
# Introduction

This documentation provides a guide for `pymatgen` administrators. The
following assumes you are using `miniconda` or Anaconda.
This documentation provides a guide for `pymatgen` administrators. The following assumes you are using `miniconda`
or Anaconda.

## Releases

The general procedure for releasing `pymatgen` comprises the following
steps:
The general procedure for releasing `pymatgen` comprises the following steps:

1. Make sure all CI checks are green. We don't want to release known bugs.
1. Update changelog.
1. Run `invoke make-doc` to update the HTML docs.
1. Tag the latest commit with `git tag v<yyyy.mm.dd>`.
1. Make a GitHub release with auto-generated release notes.
1. Make sure the release action runs that publishes the new version to PyPI and conda-forge runs to completion.
2. Update changelog.
3. Run `invoke make-doc` to update the HTML docs.
4. Tag the latest commit with `git tag v<yyyy.mm.dd>`.
5. Make a GitHub release with auto-generated release notes.
6. Make sure the release action runs that publishes the new version to PyPI and conda-forge runs to completion.

## Initial setup

Pymatgen uses [`invoke`](http://pyinvoke.org) to automate releases.
Pymatgen uses [invoke](http://pyinvoke.org) to automate releases.
You will also need `sphinx` and `doc2dash`.

```sh
pip install --upgrade invoke sphinx doc2dash
pip install --upgrade invoke sphinx
```

## Doing the release
Expand All @@ -32,43 +31,10 @@ First update the change log. The autogenerated change log is simply a list of co
invoke update-changelog
```

Then, do the release with the following sequence of commands (you can put them in a bash script in your PATH somewhere):
Then, do the release:

```sh
invoke release --notest --nodoc
invoke update-doc
python setup.py develop
invoke release
```

Double check that the releases are properly done on Pypi. If you are releasing on a Mac, you should see a pymatgen.version.tar.gz and two wheels (Py37 and P). There will be a py37 wheel for Windows that is generated by Appveyor.

## Materials.sh

Fork and clone the [materials.sh](https://github.com/materialsvirtuallab/materials.sh). This repo contains the `conda` skeletons to build the `conda` versions for various matsci codes on the Anaconda [matsci channel](https://anaconda.org/matsci).

The first time this is run, you may need to `pip install beautifulsoup4`.

If you doing this for the first time, make sure conda-build and
anaconda-client are installed:

```sh
conda install --yes conda-build anaconda-client
```

Update the pymatgen meta.yaml:

```sh
invoke update-pypi pymatgen
```

Build the mac versions manually:

```sh
invoke build-conda pymatgen
```

Commit and push to repo, which will build the Linux and Windows
versions.

Check that the [matsci channel](https://anaconda.org/matsci) versions
are properly updated.
Double check that the releases are properly done on Pypi.

0 comments on commit a7ee2d2

Please sign in to comment.