Skip to content

Contributions

Contributions are very welcome in this repository. The repository is somewhat stable in the sense of how it works but it can always use some improvement in a highly evolving environment.

Contributions Accepted

Contributions will be appreciated in bugs, feature requests, and supporting parts of the repository like tests, examples, documentation, JSDocs.

You can always open up a new issue for reporting the bugs and requesting features. Even you can even open up an issue for usage, where you are failing to do something due to the missing documentation.

Please consider and give a try to implement your feature/bug-fix, most of them are immediately accepted and published as soon as possible.

Looking for Contributions

This section implies the following features or bug fixes are blocked for some reason or other and would be more than happy for any contributiors.

Updating Renderer

Swapping updating renderer log-update for another library where it can do partial updates.

Problems with Current Implementation

  • For sufficiently long task lists, the flashing effect happens due to it updating the whole screen whenever ListrEventType.SHOULD_REFRESH_RENDER is triggered by the parent task indicating a new render should be done.
  • Most of the issues are opened about Listr breaking or corrupting the terminal output. This sometimes causes unintended behavior.
  • It brings a lot of overhead of wrapping and truncating the lines again inside the default renderer since the built-in one does not seem to work for our case.

What has been done?

There are a couple of tries have been made to migrate using the library stdout-update.

This has been mostly failed tries due to it behaving strangely on some tests.

Naturally, we do not expect it to be a one-to-one replacement, but some tests failed to generate any kind of output at all.

Progress Bar

A progress bar can be used like the task.progress() inside a Task and sets the progress to 100% whenever the task finishes, can be a very good addition to the current architecture.

This can be rendered just after the task output, or the task title. I am not sure, which would be the best approach.

So we can kind of give users an ETA of something whenever there are long-running tasks.

Preflight Checks

Checklist for Contributions for Features and Feature Requests

  • Create an issue for a preliminary discussion or link the existing issue.
  • Read/Search existing issues and the provided documentation.
  • Provide the implementation, and a pull request whenever finalized.
  • Follow guidelines enforced by git-hooks of linting, tests, and commit convention, which is Angular conventional commits.
  • Add tests whenever or if possible.
  • Update the documentation.

Much appreciated!

Checklist for Contributions for Bug Fixes

  • Link the existing issue.
  • Provide the implementation, and a pull request whenever finalized.
  • Follow guidelines enforced by git-hooks of linting, tests, and commit convention, which is Angular conventional commits.
  • Add tests whenever or if possible.
  • Update the documentation.

Much appreciated!

Checklist for Opening an Issue for Feature Requests

  • Read/Search existing issues and the provided documentation.
  • Be sure to not open an issue in the looking for contributions section.
  • Describe what is missing from the current implementation, and how is it not achievable with whatever is provided.
  • Checking the latest version of the software to confirm it has not been added already.

Checklist for Opening an Issue for Bug Fixes

  • Read/Search existing issues and the provided documentation.
  • Be sure to not open an issue in the looking for contributions section.
  • Describe your problem clearly.
  • Provide replication through snippets, repository or replit if possible.
  • Checking the latest version of the software to confirm it has not been fixed already.