1. 22 Oct, 2019 1 commit
  2. 23 Sep, 2019 3 commits
  3. 13 Sep, 2019 1 commit
  4. 06 Sep, 2019 2 commits
  5. 30 Aug, 2019 1 commit
  6. 29 Aug, 2019 6 commits
  7. 28 Aug, 2019 9 commits
  8. 27 Aug, 2019 1 commit
  9. 26 Aug, 2019 8 commits
    • Raphaël Barrois's avatar
      Deprecate support for 'partial' versions. · 87006060
      Raphaël Barrois authored
      Their comparison semantics were ill-defined, and mostly an
      implementation detail for the old, 'native' specs.
      87006060
    • Raphaël Barrois's avatar
      Adjust docs for readthedocs. · 5c1abbef
      Raphaël Barrois authored
      - Use proper theme in development
      - Use ReadTheDocs version numbers in titles
      5c1abbef
    • Raphaël Barrois's avatar
      Add `Version.precedence_key`. · c415ee4c
      Raphaël Barrois authored
      This will be used in `sort(..., key=lambda v: v.precedence_key)`.
      Remove previous comparison/ordering implementation.
      
      The current implementation relies on a 4-tuple:
      - major, minor, patch (as integers) - natural order matches precedence
        rules
      - a tuple of identifiers for the prerelease component.
      
      The identifiers for the prerelease components are based on:
      - A `NumericIdentifier` class, that compares number using their natural
        order, and always compares lower than non-numeric identifiers
      - A `AlphaIdentifier` class for non-numeric identifiers; it compares
        versions using ASCII ordering.
      - A `MaxIdentifier` class, that compares higher to any other identifier;
        used to ensure that a non-prerelease version is greater than any of
        its prereleases.
      c415ee4c
    • Raphaël Barrois's avatar
      Rename the 'setup' Makefile target. · 47fc7229
      Raphaël Barrois authored
      Using `make update` is closer to common patterns than `make
      install-deps`; it is also suitable to update the local development
      environment.
      47fc7229
    • Raphaël Barrois's avatar
      Add some docstrings. · dbc2d7ec
      Raphaël Barrois authored
      dbc2d7ec
    • Raphaël Barrois's avatar
      Add deprecations for Spec/SpecItem. · 7688b54c
      Raphaël Barrois authored
      The internal features from those classes will be removed in future
      versions:
      
      - The `Spec` class is incompatible with the support of multiple syntaxes
      - The `SpecItem` class was an implementation detail, but doesn't support
        complex `Range` combinations.
      7688b54c
    • Raphaël Barrois's avatar
      Add support for NPM-style version ranges. · c4c6ab0e
      Raphaël Barrois authored
      The code follows closely the specification available at
      https://docs.npmjs.com/misc/semver.html.
      
      Despite similarities, the matching logic is fully separate from the
      `native` code, since both might evolve at their own scales.
      c4c6ab0e
    • Raphaël Barrois's avatar
      Refactor spec/version matching. · 5b9174ae
      Raphaël Barrois authored
      Instead of choosing the comparison on each `.match()` call, the
      expression is converted to a combination of `Range()` expressions
      (simple comparison to a semver-compliant `Version`).
      
      `Range()` objects can be combined with `And` and `Or` through the
      `AnyOf` and `AllOf` clauses (sticking to Python's naming scheme).
      
      Some specific flags have been provided to those range, allowing users to
      subtly alter the matching behaviour - thus accomodating different
      versioning schemes:
      - `<0.1.2` won't match `0.1.2-rc1`, unless the prerelease_policy flag is
        set to either `always` or `same-patch`
      - `<0.1.2` will match `0.1.1-rc1`, unless the `prerelease_policy` flag
        is set to `same-patch`
      - `==0.1.2` will always match `0.1.2+build44`, unless the `build_policy`
        is set to `strict`.
      
      The `Spec` item has been updated, alongside `SpecItem`.
      Those objects keep the original expression as attributes, but don't use
      them for comparisons.
      5b9174ae
  10. 24 Aug, 2019 8 commits