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

New build system #243

Merged
merged 44 commits into from May 16, 2020
Merged
Changes from 1 commit
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
f6544d9
new implementation of parsing and serialization
N-Coder Mar 29, 2020
8466e3a
fixed Timespan end/due extra param handling and further small issues
N-Coder Mar 29, 2020
b05ce7d
ensure that event modifications times are in UTC
N-Coder Mar 29, 2020
dc8923c
pass params and context to ValueConverter for timezone handling
N-Coder Apr 4, 2020
eae493d
rename Event.name to the RFC compliant summary
N-Coder Apr 4, 2020
537823d
make mypy happy with ExtraParams and EmptyParams and their defaults
N-Coder Apr 4, 2020
827088e
warn when a modification of EmptyDictType is attempted
N-Coder Apr 4, 2020
f846543
bring back __str__ and fix doctests
N-Coder Apr 5, 2020
3cafe53
make zip safe using importlib_resources
N-Coder Apr 6, 2020
e44e4b3
improved handling of escaped strings, testing
N-Coder Apr 10, 2020
c79fd0b
fix handling of quoted params
N-Coder Apr 10, 2020
aeb575e
migrate repo structure to poetry
N-Coder Apr 10, 2020
92e8a9e
fix src path for pytest
N-Coder Apr 10, 2020
5a4e681
add doc skeleton
N-Coder Apr 10, 2020
f608e0c
implement handling of attachments
N-Coder Apr 10, 2020
f5c6a16
import project files
N-Coder Apr 10, 2020
19b058f
set version
N-Coder Apr 10, 2020
6166169
fix sphinx build with poetry
N-Coder Apr 10, 2020
00cd53c
don't use poetry within tox
N-Coder Apr 10, 2020
03d9ffa
fix timezone tests
N-Coder Apr 10, 2020
7b4ec8e
change coveralls action
N-Coder Apr 10, 2020
7d76bec
try codecov
N-Coder Apr 10, 2020
b9e6ab9
bugfixes
N-Coder Apr 11, 2020
03c549c
add bumpversion
N-Coder Apr 11, 2020
20bade0
Bump version: 0.8.0-dev → 0.8.0
N-Coder Apr 11, 2020
9fb5bdf
Bump version: 0.8.0 → 0.9.0-dev
N-Coder Apr 11, 2020
07a2577
Bump version: 0.9.0-dev → 0.9.0
N-Coder Apr 11, 2020
aab3444
separate src inspection (flake8+mypy src/) from package testing (pyte…
N-Coder Apr 11, 2020
c7f193d
bugfixes
N-Coder Apr 11, 2020
109f1ad
Bump version: 0.9.0 → 0.9.1
N-Coder Apr 11, 2020
4e7b553
Bump version: 0.9.1 → 0.9.2-dev
N-Coder Apr 11, 2020
6673720
Merge branch 'master' into new-parser-impl
N-Coder Apr 11, 2020
281c9f6
remove old files
N-Coder Apr 11, 2020
3365faf
add dev and publish instructions
N-Coder Apr 12, 2020
aa0447e
checker happiness
N-Coder Apr 12, 2020
83bda5c
more checker happiness
N-Coder Apr 12, 2020
4927e0f
Apply suggestions from code review
N-Coder Apr 21, 2020
eff8add
use gitignore directly from github instead of gitignore.io
N-Coder Apr 22, 2020
6c4169a
Apply suggestions from code review to tox.ini
N-Coder Apr 22, 2020
547b241
fix tox.ini
N-Coder Apr 22, 2020
9bc16c5
add pypy support
N-Coder May 10, 2020
28848f8
update developing documentation
N-Coder May 10, 2020
5519b7a
fix non-ASCII whitespace handling
N-Coder May 11, 2020
fdb9aa2
update test/dev dependencies
N-Coder May 16, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
21 changes: 12 additions & 9 deletions CONTRIBUTING.rst
Expand Up @@ -43,9 +43,6 @@ There are three Python tools required to develop, test, and release ics.py:
* `bumpversion <https://pypi.org/project/bumpversion/>`_ to help with making a release.

Their respective configuration files are :file:`pyproject.toml`, :file:`tox.ini` and :file:`.bumpversion.cfg`.
The ``poetry.lock`` file optionally locks the dependency versions against which we want to develop,
which is independent from the versions the library pulls in when installed as a dependency itself (where we are pretty liberal),
and the versions we test against (which is always the latest releases installed by tox).
Install the tools via pip:

.. code-block:: bash
Expand Down Expand Up @@ -73,6 +70,11 @@ Now you are ready to setup your development environment using the following comm
This will create a new virtualenv and install the dependencies for using ics.py.
Furthermore, the current source of the ics.py package will be available similar to running ``./setup.py develop``.
To access the virtualenv, use ``poetry run python`` or ``poetry shell``.
The :file:`poetry.lock` file locks the versions of dependencies in the development environment set up by poetry, so that this environment is the same for everyone.
The file is only read by poetry and not included in any distributions, so these restrictions don't apply when running ``pip install ics``.
As tox manages its own environments and also doesn't read the lock file, it just installs the latest versions of dependencies for testing.
More details on the poetry side can be found `here <https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control>`_.

N-Coder marked this conversation as resolved.
Show resolved Hide resolved
If you made some changes and now want to lint your code, run the testsuite, or build the documentation, run tox.
You don't have to worry about which versions in which venvs are installed and whether you're directly testing against the sources or against a built package, tox handles all that for you:

Expand All @@ -89,15 +91,16 @@ To run a single task and not the whole testsuite, use the ``-e`` flag:
To get a list of all available tasks, run :command:`tox -av`.

.. note::
If you want to run any tasks of tox manually, you need to make sure that you also have all the dependencies of the task installed.
This is easily ensured by also installing the "dev" extra dependencies into you main environment:
If you want to run any tasks of tox manually, you need to make sure that you also have all the testing dependencies of the task listed in ``tox.ini`` installed.
N-Coder marked this conversation as resolved.
Show resolved Hide resolved
You can also let tox `set up <https://tox.readthedocs.io/en/latest/example/devenv.html#creating-development-environments-using-the-devenv-option>`_ your development environment or re-use one of its test environments:

.. code-block:: bash

$ poetry install --extras "dev"
$ poetry shell
(.venv) $ pytest
(.venv) $ cd doc && sphinx-build
$ tox -e py38
$ source .tox/py38/bin/activate
(py38) $ pytest

This also works without having poetry installed.

If you are fixing a bug
^^^^^^^^^^^^^^^^^^^^^^^
Expand Down