<commit_before>Roadmap
=======

This document is intended to help guide what features are upcoming in degasolv.
Some of these features are aspirational; that is, we want to implement them,
but may not be able to or may decide later that we didn't really want that
after all. Nevertheless, for what it's worth, here is the current roadmap.

2.1.0
-----

- **Minimum Version Selection**: Implement minimum version selection as an
  option pack. Supporting features:
    - Version suggestion: when trying different candidates, if a matching id is
      in the  return of a candidate, put the suggestions in the list to loop
      through.
    - Skip unlikely candidates: Keep a set of problem ids different candidates
      are tried. If the current alternative's ID is not in that set, and if the
      dependencies are the same as the previous candidate, then skip the
      candidate; do not try it.
    - Minimum version preference: In generate repo index, add option to sort
      packages the other way.
    - Proper documentation surrounding order of encounter, that for example for
      subproc degasolv will honor the order of packages found in the repo index
      and that this enables things like MVS.

- **Git package system**: Implement git package system that knows how to
  read bitbucket, bitbucket server, github, github server, gitlab, gitlab
  server, and raw git repos.

- **Inclusive/Absent corner case**: In the case that ``conflict-strat`` is
  inclusive, a case may arise where an absence is required, but then another
  requirement asks for the same package to be present at a conflicting version.
  basically, what do requirements of absence mean within and inclusive context.
  because right now when absence requirements are given, they hold force even
  in inclusive contexts. This seems silly. Requirements of absence should just
  be ignored when ``conflict-strat`` is ``inclusive``.

Future Features
---------------<commit_msg>Add to roadmap<commit_after>Roadmap
=======

This document is intended to help guide what features are upcoming in degasolv.
Some of these features are aspirational; that is, we want to implement them,
but may not be able to or may decide later that we didn't really want that
after all. Nevertheless, for what it's worth, here is the current roadmap.

2.1.0
-----

- **Minimum Version Selection**: Implement minimum version selection as an
  option pack. Supporting features:
    - Version suggestion: when trying different candidates, if a matching id is
      in the  return of a candidate, put the suggestions in the list to loop
      through.
    - Skip unlikely candidates: Keep a set of problem ids different candidates
      are tried. If the current alternative's ID is not in that set, and if the
      dependencies are the same as the previous candidate, then skip the
      candidate; do not try it.
    - Minimum version preference: In generate repo index, add option to sort
      packages the other way.
    - Proper documentation surrounding order of encounter, that for example for
      subproc degasolv will honor the order of packages found in the repo index
      and that this enables things like MVS.

- **Git package system**: Implement git package system that knows how to
  read bitbucket, bitbucket server, github, github server, gitlab, gitlab
  server, and raw git repos.

- **Inclusive/Absent corner case**: In the case that ``conflict-strat`` is
  inclusive, a case may arise where an absence is required, but then another
  requirement asks for the same package to be present at a conflicting version.
  basically, what do requirements of absence mean within and inclusive context.
  because right now when absence requirements are given, they hold force even
  in inclusive contexts. This seems silly. Requirements of absence should just
  be ignored when ``conflict-strat`` is ``inclusive``.

- Fix #17, it is awful.

Future Features
---------------
{'fraction_non_alphanumeric': 0.058346017250126836, 'fraction_numerical': 0.0020294266869609334, 'mean_word_length': 3.532183908045977, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1627668', 'n_tokens_mistral': 948, 'n_tokens_neox': 932, 'n_words': 575}