typelevel / governance

Typelevel governance
Creative Commons Attribution 4.0 International
8 stars 1 forks source link

Project Submission: weaver-test #112

Closed Baccata closed 12 months ago

Baccata commented 1 year ago

Project Name

weaver-test

Project Short Description

Weaver-test is a test framework built on top of cats-effect/fs2. It currently lives under the disneystreaming org in github. The proposal here is to fork weaver-test under the typelevel organisation, and for the original repo's README to point to the new fork (I have the confirmation from Disney lawyers that this approach is okay from a legal standpoint, whereas a transfer of ownership is not).

Weaver's distinguishable features are :

  1. On JVM, all test suites are weaved in a single cats.effect.IO and run by a single IORuntime instance. A mechanism is provided to the users to share resources (http clients, database connections) across suites, which makes it well suited for integration/end-to-end tests that perform actual http calls to backend services (which is really why this framework was built)
  2. Weaver renders reports for failed tests at the very end of the test report (even across test suites), which makes it useful when there's thousands of tests, to avoid having to "scroll up" in CI forever to understand why a build is failing
  3. Weaver provides tests with a logger that can be used to store details as the test scenario's run. Logs are displayed alongside the failed tests reports, and not displayed when tests are successful
  4. Weaver provides integration with scalacheck's Gen, but doesn't use the scalacheck's Prop. The integration uses fs2, which enables a better parallelisation of properties than with scalacheck-effect, which is well suited for integration/end-to-end tests, once again.

Project Type

In accordance with the Typelevel Charter, I am proposing the project be a:

Project Management

Typelevel projects are required to have an appropriate Code of Conduct. The Scala Code of Conduct is a good option, but not specifically required. Before submitting a project for inclusion, please ensure that a pointer to its Code of Conduct is clearly linked from its README, CODE_OF_CONDUCT.md, or website.

Similarly, Typelevel projects must have an appropriate license, as specified in the Typelevel Charter. Please make sure that the project's license is on the approved list.

Additional Notes

The proposal to fork weaver in typelevel comes from a lack of time on my end to maintain the project the way it should. The people who I counted on in my organisation to help with maintenance have left, and I'm having a hard time finding co-maintainers. I think that decoupling the project from the Disney company by means of fork would help.

rossabaker commented 1 year ago

@typelevel/steering: please vote with reaction on the issue. πŸ‘ for yes, πŸ‘Ž for no, πŸ‘€ to abstain. Voting is open three business days (through Tuesday, June 27) and until quorum (7) is reached.

rossabaker commented 1 year ago

Would the code of conduct be easier to add after a fork? I'd understand if that's the case and be satisfied with good intentions.

Baccata commented 1 year ago

It would indeed, and that is my intention

rossabaker commented 1 year ago

Bump /cc @typelevel/steering

rossabaker commented 12 months ago

That's a quorum and a unanimous acceptance. The logistics are covered in #114.