<commit_before># TODO List

- [Ongoing] I want to publish my projects to NuGet.

    - Publish Bud `0.5.0-alpha-1` to NuGet.

- I want to install Bud from Chocolatey.

- I want to use Bud in Visual Source.

    - Bud should communicate to Visual Source through HTTP. The protocol:

        - GET for `IObservable` keys takes 1, serializes to JSON, and returns it.

        - GET for `Task` keys waits and return JSON-serialized result.

        - GET for everything else simply returns a JSON-serialized result.

        - WebSockets are available only for `IObservable` keys.

- I want to clean my projects without cleaning the resolved packages.

  - [Workaround] You can define a top-level task that does what you want:

        Clean.Init(c => {
          c.TryGet("Bud"/Clean);
          c.TryGet("Bud.Test"/Clean);
          return Unit.Default;
        })

  - [Proposal 1] We can introduce an 'Alias(Key, ...)' function to be used like this: `Alias(Clean, "Bud/Clean", "Bud.Test/Clean")`. One can then define arbitrary aliases that suit the needs of the developer.

  - [Proposal 2] We could allow wildcard keys, such as `bud */Clean` and `bud **/Clean`. (Partially implemented in git history: 195bde314a1e717143dac800a733efbcadcd3b86)

- Alias `bud Command` to `bud **/Command`. Do not alias absolute paths like `bud /Command` or wildcarded paths like `bud */Command` and `bud a/**/b`.

- I want to test my projects.

- I want to generate MSBuild solution and project files for my projects.

- I want some help in `README.md`. After 1 minute, I should be able to build my project.

- I want to define a generic build which doesn't rebuild if sources are up-to-date with outputs.

- Use less than 10ms to start a simple build.<commit_msg>Updates TODO.md.<commit_after># TODO List

- Improved CLI Logging. Example: invoking `Bud.Test/Compile`

        21:15:45.000> Bud/Packages/Resolve [Start]
        21:15:48.000> Bud/Packages/Resolve [Done in 3000ms]
        21:15:48.000> Bud/Compile [Start]
        21:15:48.250> Bud/Compile [Done in 250ms]
        21:15:48.250> Bud.Test/Packages/Resolve [Start]
        21:15:49.000> Bud.Test/Packages/Resolve [Done in 750ms]
        21:15:49.000> Bud.Test/Compile [Start]
        21:15:49.300> Bud.Test/Compile [Done in 300ms]

- Publish Bud `0.5.0-alpha-1` to NuGet.

- I want to install Bud from Chocolatey.

- I want to use Bud in Visual Source.

    - Bud should communicate to Visual Source through HTTP. The protocol:

        - GET for `IObservable` keys takes 1, serializes to JSON, and returns it.

        - GET for `Task` keys waits and return JSON-serialized result.

        - GET for everything else simply returns a JSON-serialized result.

        - WebSockets are available only for `IObservable` keys.

- Compile projects in parallel.

- Alias `bud Command` to `bud **/Command`. Do not alias absolute paths like `bud /Command` or wildcarded paths like `bud */Command` and `bud a/**/b`.

- I want to test my projects.

- I want to generate MSBuild solution and project files for my projects.

- I want some help in `README.md`. After 1 minute, I should be able to build my project.

- I want to define a generic build which doesn't rebuild if sources are up-to-date with outputs.

- Use less than 10ms to start a simple build.

- I want to clean my projects without cleaning the resolved packages.

  - [Workaround] You can define a top-level task that does what you want:

        Clean.Init(c => {
          c.TryGet("Bud"/Clean);
          c.TryGet("Bud.Test"/Clean);
          return Unit.Default;
        })

  - [Proposal 1] We can introduce an 'Alias(Key, ...)' function to be used like this: `Alias(Clean, "Bud/Clean", "Bud.Test/Clean")`. One can then define arbitrary aliases that suit the needs of the developer.

  - [Proposal 2] We could allow wildcard keys, such as `bud */Clean` and `bud **/Clean`. (Partially implemented in git history: 195bde314a1e717143dac800a733efbcadcd3b86)
{'fraction_non_alphanumeric': 0.09724677948977015, 'fraction_numerical': 0.03763576660772922, 'mean_word_length': 2.905325443786982, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 13, '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': '2023131', 'n_tokens_mistral': 1312, 'n_tokens_neox': 1182, 'n_words': 511}