Skip to content
Paul Ganssle edited this page Feb 22, 2019 · 1 revision

Overview:

Thank you for participating in this dateutil sprint event. In addition to the issues on the issue tracker (which have been organized by labels), other general improvements - particularly to the documentation, build and test - would be very useful.

Two talks that might be useful, particularly for those who want to improve the documentation:

  • PyGotham 2016 - Overview of dateutil library (~30m): Video, Slides
  • PyBay 2017 - Deeper dive into time zones and how they work (~40m): Video, Slides
  • PyLondinium 2018 - Shorter version of the PyBay talk (~20m): Video, Slides

Useful information

Useful labels:

  • help wanted - Issues that have been vetted and where a PR (or other solution) would be welcome.
  • good first issue - These are issues that would probably be good for a first-time open source contributor.
  • low difficulty - These are issues where the implementation should be fairly straightforward.
  • medium difficulty - These are issues where the implementation is somewhat complex (though almost all of them can likely be accomplished in less than a day for intermediate to advanced Python users)

Help wanted by subject:

Highlighted issues

These are some important issues that I would very much like in the next release. They are all medium or medium-high difficulty.

Uncompleted PRs

  1. Adding no-zoneinfo build options. This is basically already done and needs some additional testing. This is a medium-high difficulty item.
  2. Implementation of the skip option in rrule. This is very important and very nearly done.

Build and documentation improvements

  1. Start testing against pypy on Windows - again, medium high difficulty.

General (no issue) improvements

We also welcome other general improvements for which there is no specific issue. The biggest "unstructured" improvements to be made are around test coverage and documentation.

Test coverage

The easiest thing to do to improve the testing is getting coverage to 100% (#521). This can be done by navigating through the codecov coverage report and finding lines untouched by the current test suite.

We could also use:

  1. More hypothesis tests, see for example the existing property tests. One thing that would be amenable to hypothesis testing would be testing that rrulestr(str(rrule)) works for any given rrule, see, for example, this helper in the rrule test suite; note that that helper only works well for finite rrules.
  2. Converting unittest-style tests over to using pytest. See for example this PR, or this more ambitious one that also parametrizes some tests.

Documentation

In general, the documentation's organization needs to seriously improved. Some possible workflows for general documentation improvements:

  1. Navigate to the documentation and try to get a sense for what the module does, what it is capable of and how it works. If you are confused or find it hard to navigate, take note of this and see if it can be improved.

  2. View either my PyGotham (slides) or PyBay (slides) talks and try to read the relevant sections of the documentation. If the documentation does not give you the same understanding as the talks, note how it might be improved.

  3. Work through one or more of the documentation exercises, using only the dateutil documentation to guide you, and see where it falls short.

  4. Go through the __all__ attribute in each of the modules and check it against the documentation. There are some completely undocumented classes and functions.

Useful links: