-
Notifications
You must be signed in to change notification settings - Fork 179
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
Move analyzers to a separate repository #1735
Comments
To do:
|
Regarding the tools, it's going to be a bit of a mess. The scripts have hard-coded relative paths to the artifacts, and hard-coded values (e.g. repo name in PrepareRelease). |
Yeah. I'd assumed as much as well. |
@blairconrad unless you think it's important, I'd rather not preserve the history. It's possible, but it's going to be a pain. |
I'm not sure it's super important, but mind if I try something? |
Sure, go ahead. |
If you manage to do it, feel free to overwrite/force push what I did in the FakeItEasy.Analyzers repo |
I'm trying filter-repo. |
Done. I added a second commit that modifies files so the appveyor build builds. |
if (Test-Path FakeItEasy) {
Remove-Item -Force -Recurse ./FakeItEasy/
}
#git clone --branch master --origin origin --progress -v git@github.com:FakeItEasy/FakeItEasy.git
git clone --branch master --origin origin --progress -v ../FakeItEasy
Set-Location FakeItEasy
git remote rm origin
py ../git-filter-repo.txt `
--force `
--path-glob src/*Analyzer* `
--path src/CommonAssemblyInfo.cs `
--path src/Directory.Build.props `
--path src/FakeItEasy.Dictionary.xml `
--path src/FakeItEasy.png `
--path src/FakeItEasy.ruleset `
--path src/FakeItEasy.snk `
--path src/FakeItEasy/Compatibility/NotNullWhenAttribute.cs `
--path src/stylecop.json `
--path-glob tests/*Analyzer* `
--path tests/Directory.Build.props `
--path tests/FakeItEasy.Dictionary.Tests.xml `
--path tests/FakeItEasy.Tests.ruleset `
--path tests/FakeItEasy.Tests.TestHelpers/Properties `
--path tests/FakeItEasy.Tests.TestHelpers/FakeItEasy.Tests.TestHelpers.csproj `
--path tests/FakeItEasy.Tests.TestHelpers/TestCases.cs `
--path tests/FakeItEasy.Tests.TestHelpers/UsingCultureAttribute.cs `
--path docs/analyzer.md `
--path docs/css `
--path tools `
--path .editorconfig `
--path .gitattributes `
--path .gitignore `
--path .mailmap `
--path appveyor.yml `
--path build.cmd `
--path CONTRIBUTING.md `
--path Directory.Build.props `
--path how_to_build.md `
--path License.txt `
--path mkdocs.yml `
--path profiles `
--path README.md `
--use-mailmap
Copy-Item ../FakeItEasy.sln .
Copy-Item ../FakeItEasy.Analyzer.CSharp.Tests.csproj tests/FakeItEasy.Analyzer.CSharp.Tests
Copy-Item ../FakeItEasy.Analyzer.VisualBasic.Tests.csproj tests/FakeItEasy.Analyzer.VisualBasic.Tests
Copy-Item ../Program.cs tools/FakeItEasy.Build
Copy-Item ../FakeItEasy.Tests.TestHelpers.csproj tests/FakeItEasy.Tests.TestHelpers
git add -A
git commit -m "Make minimal changes so build.cmd passes in FakeItEasy.Analyzers repo"
./build.cmd If you want it. Requires |
Nice! Yes, I've seen a few files we'll need to remove or update, but otherwise, it looks good. Thanks @blairconrad |
If you're content with the content I pushed, we can check off
And worry about cleaning up the supporting files and simplifying the build and what not as issues in the new repo, no? |
👍
I think we just need to remove analyzer.md from this repo, configure the other one as a subproject on ReadTheDocs, and update the link to the analyzer page to point to the subproject |
I think we can close this. Now that all necessary tasks are done, polishing the new repo can be done independently. |
This change has been released as part of FakeItEasy 6.0.0-beta.1. |
Thanks for your git-filter-repo, @newren! Look for your name in the release notes! 🥇 |
When we first released the FakeItEasy analyzers, we decided to version them together with the library. For every release of the library, the analyzers were also released, even if they had not changed.
This approach has several issues:
We should consider moving the analyzers to a separate repository, and version them independently of the library.
The text was updated successfully, but these errors were encountered: