8000 Maintainers Roadmap · Issue #10 · AwesomeAssertions/AwesomeAssertions · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Maintainers Roadmap #10

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
28 tasks done
ScarletKuro opened this issue Jan 22, 2025 · 37 comments
Closed
28 tasks done

Maintainers Roadmap #10

ScarletKuro opened this issue Jan 22, 2025 · 37 comments

Comments

@ScarletKuro
Copy link
Contributor
ScarletKuro commented Jan 22, 2025

Roadmap

This roadmap outlines the tasks required for the repository to be fully functional.

Core Tasks

All items under the AwesomeAssertions, AwesomeAssertions.Json, AwesomeAssertions.Analyzer, and Bureaucracy sections are mandatory and must be completed.

Optional Tasks

Items under the Optional section are nice-to-have features. These are not critical for the repository to function, and they can be added later or omitted without affecting the core functionality.


  1. AwesomeAssertions

    • Fork
      • De-couple the fork
    • Fix branch confusion
    • Setup v7
      • CI/CD
      • Publish NuGet
    • Setup v8
      • CI/CD
      • Publish NuGet
  2. AwesomeAssertions.Json

    • Fork
    • Setup v7
      • CI/CD
      • Publish NuGet
    • Setup v8
      • CI/CD
      • Publish NuGet
  3. AwesomeAssertions.Analyzer

    • Fork
    • CI/CD
    • Publish NuGet
  4. Bureaucracy

    • Improve README
    • FAQ
    • Statement about License
    • List of maintainers
  5. Optional

    • Change Icon
    • Dependabot
    • Code Coverage
    • Code Analyzer (SonarCloud?) — alternative to Qodana
    • Own documentation (awesomeassertions.github.io?)
@jupjohn
Copy link
Contributor
jupjohn commented Jan 23, 2025

I've picked up Setup v7 for the analyzer: https://github.com/jupjohn/AwesomeAssertions.analyzers/tree/v7

EDIT: I can see the versions don't line up with the other packages, but I'll leave the branch name as-is for now.

@ScarletKuro
Copy link
Contributor Author
ScarletKuro commented Jan 23, 2025

I've picked up Setup v7 for the analyzer: https://github.com/jupjohn/AwesomeAssertions.analyzers/tree/v7

Thanks for looking into it, tho there might be a problem now since you have pushed the package https://www.nuget.org/packages/AwesomeAssertions.Analyzers and the PacakgeID is now taken and it's not under the AA org.

Upd: Nvm, just saw the ownership request.

You can either pull request or I can cherry pick your changes.

@jupjohn
Copy link
Contributor
jupjohn commented Jan 23, 2025

You can either pull request or I can cherry pick your changes.

I'm going to sanity check the package against a project at work today, then I'll PR it back into the org 👍

@ScarletKuro
Copy link
Contributor Author

CI for AwesomeAssertions.Analyzer seems to be fully functional now, and it appears there is no need for a specific version for v8. So, this part is ready.
NuGet release: https://www.nuget.org/packages/AwesomeAssertions.Analyzers

@ScarletKuro
Copy link
Contributor Author
ScarletKuro commented Jan 26, 2025
  • Own documentation (awesomeassertions.github.io?)

My comment regarding the documentation: #2 (reply in thread)
If someone wants to work on it, please do.
Deploying is not a problem, just a lot of work of making things work (images, analytics, social media or disable them if we don't need that etc).

@ScarletKuro
Copy link
Contributor Author
ScarletKuro commented Jan 27, 2025

Seems that enabling coveralls wasn't hard as I thought, and it's already working for this repo: #12 (comment) and the json one. Closing the "Code Coverage" task as for analyzer it wasn't present in the original repository.

@ScarletKuro
Copy link
Contributor Author

I qualified rc.3 to stable 8.0.0. There's no point in keeping it in rc since FA released it as stable with basically the same changes.

Should we release 7.1.1 with the updated icon?

@cbersch
8000 Copy link
Contributor
cbersch commented Jan 27, 2025

@ScarletKuro thanks for the release.
Yes, we can also release a new version with the updated icon.

@ScarletKuro
Copy link
Contributor Author

@cbersch

I don't have the privileges to do so.

Can you check now if you have the privilege? Honestly, I’ve never had admin rights in the org, so I'm not sure. I created a team with the privilege to control issues, etc., and sent an invite.

@ScarletKuro ScarletKuro changed the title Mantainers Roadmap Maintainers Roadmap Jan 27, 2025
@cbersch
Copy link
Contributor
cbersch commented Jan 27, 2025

@ScarletKuro yes, that worked, thanks.

@cbersch
Copy link
Contributor
cbersch commented Jan 28, 2025

@ScarletKuro That kind of worked. You are still the only maintainer, we others are "only" members, so we can't do any advanced configuration (e.g. I don't have access to the repository settings:

Image

< 8000 /span>

@ScarletKuro
Copy link
Contributor Author
ScarletKuro commented Jan 28, 2025

@ScarletKuro That kind of worked. You are still the only maintainer, we others are "only" members, so we can't do any advanced configuration (e.g. I don't have access to the repository settings:

I switched from the 'Write' role to the 'Maintain' role for the 'Collaborators' team, though I think this gives a bit too much power, IMO. I cannot customize roles or create my own, as that’s a paid feature.

Also, I'm not the only one, @meenzen also has owner rights, so there’s always a backup. With the rights I just granted, though, I think it’s enough to function as an individual unit, since you can even push to protected branches and manage some repo settings.

@cbersch
Copy link
Contributor
cbersch commented Jan 28, 2025

@ScarletKuro Thanks. I also don't know what do grant to whom :) Never managed anything on github.
Regarding @meenzen, he said, that he won't be able to actively maintain, so we should not rely on him as the only backup.

@meenzen
Copy link
Collaborator
meenzen commented Jan 28, 2025

Don't worry, I'm always available for mundane tasks like changing permissions. I just don't have too much time to invest in more complex things like coding new features.

@ScarletKuro
Copy link
Contributor Author
ScarletKuro commented Jan 30, 2025

SonarCloud is up for all 3 repositories.
To see it in action #15 (comment)

@ScarletKuro
Copy link
Contributor Author

AwesomeAssertions.Json for v8 is up too

dotnet add package AwesomeAssertions.Json --version 8.0.0

@ITaluone
Copy link
Contributor
ITaluone commented Feb 4, 2025

I just don't have too much time to invest in more complex things like coding new features.

How do we decide what features to implement? Just picking issues from FA's issue page?

How to handle FA v8 fixes? Since we cannot cherry-pick those, do we plan to fix them at all?

@ScarletKuro
Copy link
Contributor Author
ScarletKuro commented Feb 4, 2025

How do we decide what features to implement? Just picking issues from FA's issue page?

How to handle FA v8 fixes? Since we cannot cherry-pick those, do we plan to fix them at all?

That's a good question, and I plan to address it in a future FAQ/README. We indeed cannot cherry-pick any further commits from FluentAssertions v8, as it would be illegal.

One thing the community can do is report issues directly to AwesomeAssertions, without mentioning them in the FluentAssertions repository. The community can then address the fixes in AwesomeAssertions. Alternatively, if you find a bug report in the FluentAssertions repository that hasn't been fixed by them yet, you can submit the fix to our fork. If we happen to fix it first, and then they fix it as well with similar code, that’s the only way we can avoid possible legal concerns (otherwise, it will be hard to prove that you didn't copy). Ideally, it would be best if people avoid looking at FluentAssertions entirely, to resist the temptation to copy and paste fixes from v8.

@IT-VBFK
Copy link
Contributor
IT-VBFK commented Feb 4, 2025

The thing is, that most who contributed to FA have (at least sort of) adopted the coding style and/or how things get done.

It will be somewhat difficult to not look it like FA code, if you know what I mean.

@ScarletKuro
Copy link
Contributor Author

Pushed new 7.2.0 version https://www.nuget.org/packages/AwesomeAssertions/7.2.0

I made some FAQ that will got to the README, let me know what should be added, edited etc.

FAQ:

Q: Who are the maintainers?
A: The current maintainers of AwesomeAssertions are @cbersch, @jcfnomada, @jupjohn, and @ScarletKuro.

Q: Will the license change to a more permissive or restrictive license compared to Apache 2.0?
A: The license will never change, not even to MIT. We will only maintain the original Apache 2.0 license.

Q: How is it possible that you released version 8 with almost identical changes if version 8 of FluentAssertions is under a commercial license?
A: This was possible because the license change was made at the final stage of the version 8 release. Any commits made before the license change were free to use, as licenses cannot be applied retroactively. If commits were added to the branch while it was under the Apache 2.0 license, they remain under Apache 2.0. So, any commits before this change fluentassertions/fluentassertions@df7e9bf can be legally used under the Apache 2.0 terms.

Q: What is the benefit of this project, and will it continue to evolve and be maintained?
A: The development of the project depends on the community. We will review and merge pull requests that meet the project's requirements. We actively cherry-pick relevant changes from FluentAssertions version 7 and add them to our fork, as FluentAssertions version 7 is under the old license.
This project is useful for users who are concerned about potential license issues with version 8 or those working in environments where commercial use could cause licensing complications. Our fork eliminates these concerns and offers a clean solution for such cases.

Q: Are there any plans to provide documentation like FluentAssertions?
A: Yes, work is currently underway to improve the documentation. However, this is not our top priority at the moment. In the meantime, you can use the original FluentAssertions documentation.

Q: Why is this package using the FluentAssertions namespace? Isn't that illegal?
A: The namespaces are part of the API, which was developed under the Apache 2.0 license. The Google v. Oracle case ruled that APIs are considered fair use, so including the 'FluentAssertions' namespace in the API class names is acceptable. While this is permissible now, we may consider changing the namespaces in the future.

@cbersch
Copy link
Contributor
cbersch commented Feb 10, 2025

@ScarletKuro Shouldn't we push fixes only to v8?

@ScarletKuro
Copy link
Contributor Author
ScarletKuro commented Feb 10, 2025

Shouldn't we push fixes only to v8?

The last paragraph of the question "What is the benefit of this project, and will it continue to evolve and be maintained?" somewhat explains it. The point of this sentence is that there are both commercial and FOSS/OSS projects that might be stuck with version 7. Even if they aren't directly affected, someone might not want to deal with the licensing issue in future, especially if there's a potential for upgrading to the v8 version (accidentally, as example). In another scenario, imagine you're an FOSS project, like MudBlazor. There are cases where companies fork the project and create their own version of the library, and they use the existing testing infrastructure. This could lead to issues if they unknowingly upgrade from version 7 to 8 (or if the library was already using version 8 from the beginning, which is compatible with free open-source use). There’s no way a typical FOSS project would use FA anymore, regardless of the version, and library owners have mentioned this in the FA thread, TUnit completely removed FA to avoid any confusion to avoid future TUnit adoption which makes sense to me.. Many have switched due to this, as it’s a matter of principle. Moreover, FA can no longer be trusted.

@cbersch
Copy link
Contributor
cbersch commented Feb 10, 2025

My question was more: Why do we continue releasing v7 version, if we have pushed our own version 8. There is no license issue here. And that FA keeps supporting v7 is a matter of their licensing, which, however, doesn't affect our v8.

So I would've expected, that you backport the latest patch to release 8.1.0 instead of 7.2.0

@ScarletKuro
Copy link
Contributor Author

So I would've expected, that you backport the latest patch to release 8.1.0 instead of 7.2.0

I don't think you understand the nature of these changes.
The changes that were backported to v7 already exist in v8. Here's the proof:
a5f61e8
ca87a81

I'm not going to go through all of them since I'm on my phone.
In simple terms, this work is already part of the released version. There's no point in v8.1.0 since 0ee09c0 was already included in v8.0.0. Now, it's been added to v7, which is why there's a 7.2.0.
The contributors just asked to migrate those v8 commits to v7 due to the license change. All we're doing here is repeating what FA has already done.

@ScarletKuro
Copy link
Contributor Author

AwesomeAssertions will ship v7 as well, despite FluentAssertions v7 being under the old license:

  1. FluentAssertions cannot be trusted.
  2. Some people are already using AwesomeAssertions v7 and do not plan to upgrade to v8 just yet, but could be in future, so using AwesomeAssertions already could make sense for them.
  3. I can switch from FluentAssertions v7 to AwesomeAssertions v7 at work without having to explain to my colleagues / descendants why the version is pinned and why they should avoid upgrading to the next major version, which adds unnecessary bureaucracy.

@cbersch
Copy link
Contributor
cbersch commented Feb 10, 2025

So I would've expected, that you backport the latest patch to release 8.1.0 instead of 7.2.0

The changes that were backported to v7 already exist in v8.

Ok, thanks. Sorry for the noise.

@IT-VBFK
Copy link
Contributor
IT-VBFK commented Feb 13, 2025

@ScarletKuro We need to de-couple this fork (aka removing the fork relationship), because now one can't fork this repo anymore when a fluentassertions fork is available. I have this situation, but want to keep the fork alive...

@cbersch
Copy link
Contributor
cbersch commented Feb 14, 2025

Q: Who are the maintainers?
A: The current maintainers of AwesomeAssertions are @cbersch, @jcfnomada, @jupjohn, and @ScarletKuro.

Add @IT-VBFK

Q: Are there any plans to provide documentation like FluentAssertions?
A: Yes, work is currently underway to improve the documentation. However, this is not our top priority at the moment. In the meantime, you can use the original FluentAssertions documentation.

This can be removed, now that our documentation is up-to-date.

The rest looks good.

@ScarletKuro ScarletKuro mentioned this issue Feb 18, 2025
7 tasks
@ScarletKuro
Copy link
Contributor Author

Do we need dataset https://github.com/fluentassertions/fluentassertions.datasets/ extensions?

@cbersch
Copy link
Contributor
cbersch commented Feb 25, 2025

Do we need dataset https://github.com/fluentassertions/fluentassertions.datasets/ extensions?

Im undecided on this one:
On one hand, this was moved to maintenance mode for a reason (don't know which, though). So we could move it only when requested.
On the other hand, this would complete the available packages for AwesomeAssertions.

@jupjohn
Copy link
Contributor
jupjohn commented Feb 25, 2025

I'd support leaving until someone asks for it/there's a solid reason to 👍

@meenzen
Copy link
Collaborator
meenzen commented Feb 26, 2025

I've added the Renovate app which is a lot better than Dependabot IMO. Once #43 is merged we'll get automated dependency update PRs.

@ITaluone
Copy link
Contributor

On one hand, this was moved to maintenance mode for a reason (don't know which, though)

I think it was, because the Data* types are pretty old and some errors about missing references. See: fluentassertions/fluentassertions#2002

@cbersch
Copy link
Contributor
cbersch commented Feb 26, 2025

I've added the Renovate app which is a lot better than Dependabot IMO. Once #43 is merged we'll get automated dependency update PRs.

I would exclude automatic update of dotnet-sdk

@ScarletKuro
Copy link
Contributor Author

I guess we can close this issue as all goals were achieved

@ITaluone
Copy link
Contributor

Are we willing to take over several api-approved issues from FA?

@ScarletKuro
Copy link
Contributor Author

Are we willing to take over several api-approved issues from FA?

If we are interested in them, they are a good addition to the library, and they are not outdated, then why not?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants
0