diff --git a/README.md b/README.md index e1496f6..84cf03e 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,10 @@ > Automate your GitHub, pypi and conda releases +[![PyPI](https://img.shields.io/pypi/v/easyrelease?color=yellow&label=pypi%20version)](https://pypi.org/project/easyrelease/#description) +[![conda](https://anaconda.org/pablormira/easyrelease/badges/version.svg)](https://anaconda.org/pablormira/easyrelease) +[![plattform](https://anaconda.org/pablormira/easyrelease/badges/platforms.svg)](https://anaconda.org/pablormira/easyrelease) + ## How to install Via pip @@ -82,6 +86,17 @@ username = Your Anaconda username password = Your Anaconda password ``` +#### CONDA_BLD_PATH + +> Only for Linux users and only in case of problems + +In case of problems concerning permission errors building your package via `build-conda-package` you may need to add the following line to your `~/.bashrc` + +```bash +export CONDA_BLD_PATH=/tmp/conda-bld +``` + + ### Getting started #### For applications @@ -93,6 +108,15 @@ Only once: 2. Edit your in the previous step generated file `settings.ini` 3. Edit your in the previous step generated file `.gh-release-config.yaml` +`.gh-release-config.yaml` sets the title and keyword that will be used to assign your commits to a certain section in your GitHub release notes and changelog. So if for example you want all commits to be in your release notes without keyword matching, you could modify `.gh-release-config.yaml` as + +```yaml +gh_categories: + - title: "### Commits:" + keyword: "" +``` + + Each time you want to make a GitHub release: 1. Run `gh-release` to make a GitHub release @@ -117,3 +141,31 @@ Each time you want to release / publish your package: * (Optionally recommended): Check your meta.yaml 5. Run `build-conda-package` to build your conda package 7. Run `upload-conda-package` to publish your conda package + +## Versioning + +We version our package via [semantic versioning](https://semver.org), i.e., + +* We use three digits separated by points x1.x2.x3, e.g. 0.5.1 +* We increase x1 (the major version) if we introduce breaking changes + * Exception: Versions with 0 at the beginning (e.g. 0.5.1) mean that the package is not stable yet and therefore every new feature could be a breaking change +* We increase x2 (the minor version) if we introduce a new feature +* We increase x3 (the patch version) if we fix a bug + +New documentation, refactoring / maintenance of code and admin tasks do not change the versions. + +You can follow the changes introduced by each version in our [CHANGELOG](https://github.com/PabloRMira/easyrelease/blob/main/CHANGELOG.md) + +## Differences to [fastrelease](https://github.com/fastai/fastrelease) + +This package was inspired by the [fastrelease](https://github.com/fastai/fastrelease) package but it differs from it in the way it generates the release notes. + +`easyrelease` generates the release notes out of the commit messages whereas `fastrelease` generates the release notes out of GitHub issues. + +This package was also motivated by the fact that `fastrelease` did not work for me out of the box in my first attempt and I really liked the idea of automating releases and package publishing. + +## Compatibility with [nbdev](https://github.com/fastai/nbdev) + +This package was developed and is compatible with the [nbdev](https://github.com/fastai/nbdev) framework but it also works for ordinary project development without notebooks. + +In the case you want to develop your project with `nbdev` you need to first initialize your project via `nbdev` and afterwards run `easyrelease-init`. This is because the `settings.ini` we initialize for your project is a proper / strict subset of the `settings.ini` from `nbdev` diff --git a/docs/index.html b/docs/index.html index 1211a21..ba2b18d 100644 --- a/docs/index.html +++ b/docs/index.html @@ -29,6 +29,15 @@ {% endraw %} +
+
+

PyPI +conda +plattform

+ +
+
+

How to install

@@ -98,6 +107,11 @@

Anaconda credentials
username = Your Anaconda username
 password = Your Anaconda password
 

+

CONDA_BLD_PATH

Only for Linux users and only in case of problems

+
+

In case of problems concerning permission errors building your package via build-conda-package you may need to add the following line to your ~/.bashrc

+
export CONDA_BLD_PATH=/tmp/conda-bld
+
@@ -111,6 +125,11 @@

Getting started
gh_categories:
+  - title: "### Commits:"
+    keyword: ""
+

Each time you want to make a GitHub release:

  1. Run gh-release to make a GitHub release
  2. @@ -137,6 +156,41 @@

    For packages <
  3. Run upload-conda-package to publish your conda package
+ + + +
+
+

Versioning

We version our package via semantic versioning, i.e.,

+
    +
  • We use three digits separated by points x1.x2.x3, e.g. 0.5.1
  • +
  • We increase x1 (the major version) if we introduce breaking changes
      +
    • Exception: Versions with 0 at the beginning (e.g. 0.5.1) mean that the package is not stable yet and therefore every new feature could be a breaking change
    • +
    +
  • +
  • We increase x2 (the minor version) if we introduce a new feature
  • +
  • We increase x3 (the patch version) if we fix a bug
  • +
+

New documentation, refactoring / maintenance of code and admin tasks do not change the versions.

+

You can follow the changes introduced by each version in our CHANGELOG

+ +
+
+
+
+
+

Differences to fastrelease

This package was inspired by the fastrelease package but it differs from it in the way it generates the release notes.

+

easyrelease generates the release notes out of the commit messages whereas fastrelease generates the release notes out of GitHub issues.

+

This package was also motivated by the fact that fastrelease did not work for me out of the box in my first attempt and I really liked the idea of automating releases and package publishing.

+ +
+
+
+
+
+

Compatibility with nbdev

This package was developed and is compatible with the nbdev framework but it also works for ordinary project development without notebooks.

+

In the case you want to develop your project with nbdev you need to first initialize your project via nbdev and afterwards run easyrelease-init. This is because the settings.ini we initialize for your project is a proper / strict subset of the settings.ini from nbdev

+
diff --git a/nbs/index.ipynb b/nbs/index.ipynb index 1be3360..0e5ac8a 100644 --- a/nbs/index.ipynb +++ b/nbs/index.ipynb @@ -1,5 +1,14 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[![PyPI](https://img.shields.io/pypi/v/easyrelease?color=yellow&label=pypi%20version)](https://pypi.org/project/easyrelease/#description)\n", + "[![conda](https://anaconda.org/pablormira/easyrelease/badges/version.svg)](https://anaconda.org/pablormira/easyrelease)\n", + "[![plattform](https://anaconda.org/pablormira/easyrelease/badges/platforms.svg)](https://anaconda.org/pablormira/easyrelease)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -111,7 +120,17 @@ "```ini\n", "username = Your Anaconda username\n", "password = Your Anaconda password\n", - "```" + "```\n", + "\n", + "#### CONDA_BLD_PATH\n", + "\n", + "> Only for Linux users and only in case of problems\n", + "\n", + "In case of problems concerning permission errors building your package via `build-conda-package` you may need to add the following line to your `~/.bashrc`\n", + "\n", + "```bash\n", + "export CONDA_BLD_PATH=/tmp/conda-bld\n", + "```\n" ] }, { @@ -129,6 +148,15 @@ "2. Edit your in the previous step generated file `settings.ini`\n", "3. Edit your in the previous step generated file `.gh-release-config.yaml`\n", "\n", + "`.gh-release-config.yaml` sets the title and keyword that will be used to assign your commits to a certain section in your GitHub release notes and changelog. So if for example you want all commits to be in your release notes without keyword matching, you could modify `.gh-release-config.yaml` as\n", + "\n", + "```yaml\n", + "gh_categories:\n", + " - title: \"### Commits:\"\n", + " keyword: \"\"\n", + "```\n", + "\n", + "\n", "Each time you want to make a GitHub release:\n", "\n", "1. Run `gh-release` to make a GitHub release\n", @@ -154,6 +182,49 @@ "5. Run `build-conda-package` to build your conda package\n", "7. Run `upload-conda-package` to publish your conda package" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Versioning\n", + "\n", + "We version our package via [semantic versioning](https://semver.org), i.e., \n", + "\n", + "* We use three digits separated by points x1.x2.x3, e.g. 0.5.1\n", + "* We increase x1 (the major version) if we introduce breaking changes\n", + " * Exception: Versions with 0 at the beginning (e.g. 0.5.1) mean that the package is not stable yet and therefore every new feature could be a breaking change\n", + "* We increase x2 (the minor version) if we introduce a new feature\n", + "* We increase x3 (the patch version) if we fix a bug\n", + "\n", + "New documentation, refactoring / maintenance of code and admin tasks do not change the versions.\n", + "\n", + "You can follow the changes introduced by each version in our [CHANGELOG](https://github.com/PabloRMira/easyrelease/blob/main/CHANGELOG.md)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Differences to [fastrelease](https://github.com/fastai/fastrelease)\n", + "\n", + "This package was inspired by the [fastrelease](https://github.com/fastai/fastrelease) package but it differs from it in the way it generates the release notes. \n", + "\n", + "`easyrelease` generates the release notes out of the commit messages whereas `fastrelease` generates the release notes out of GitHub issues.\n", + "\n", + "This package was also motivated by the fact that `fastrelease` did not work for me out of the box in my first attempt and I really liked the idea of automating releases and package publishing." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Compatibility with [nbdev](https://github.com/fastai/nbdev)\n", + "\n", + "This package was developed and is compatible with the [nbdev](https://github.com/fastai/nbdev) framework but it also works for ordinary project development without notebooks.\n", + "\n", + "In the case you want to develop your project with `nbdev` you need to first initialize your project via `nbdev` and afterwards run `easyrelease-init`. This is because the `settings.ini` we initialize for your project is a proper / strict subset of the `settings.ini` from `nbdev`" + ] } ], "metadata": {