Skip to content

Add tooling to ensure no API changes are made in patch updates #4259

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
natemcmaster opened this issue Nov 27, 2018 · 6 comments
Closed

Add tooling to ensure no API changes are made in patch updates #4259

natemcmaster opened this issue Nov 27, 2018 · 6 comments
Assignees
Labels
area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework ✔️ Resolution: Won't Fix Resolved because we decided not to change the behavior reported in this issue. Status: Resolved
Milestone

Comments

@natemcmaster
Copy link
Contributor

Follow-up to #3610

We should add tooling so we can ensure that 3.0.1, 3.0.2, etc do not change any public API in the reference assemblies.

@natemcmaster natemcmaster added the area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework label Nov 27, 2018
@natemcmaster natemcmaster added this to the 3.0.0 milestone Nov 27, 2018
@natemcmaster natemcmaster modified the milestones: 3.0.0, 3.0.0-preview7 Apr 19, 2019
@Pilchie
Copy link
Member

Pilchie commented Jul 23, 2019

@dougbu can you take a look at this? Or maybe @anurse can nominate someone else?

@analogrelay
Copy link
Contributor

analogrelay commented Jul 23, 2019

I'm not sure this is something we'd have resources to support in preview 8 given the very short timeline. We could look at it as part of infrastructure work in preview 9 though since getting infra-/test-only changes through ask-mode should be much simpler. We already have some things we want to do to improve API changes all up, so this would be part of that work.

@Pilchie
Copy link
Member

Pilchie commented Jul 23, 2019

Fair enough, I'll move to Preview 9

@dougbu
Copy link
Contributor

dougbu commented Dec 13, 2019

Also compare implementation and ref/ assemblies to be sure we don't mess anything up in our *.Manual.cs files.

@dougbu dougbu self-assigned this Jan 24, 2020
@dougbu dougbu added the Working label Feb 24, 2020
@wtgodbe wtgodbe removed their assignment Feb 26, 2020
@dougbu dougbu modified the milestones: 5.0.0-preview2, 3.1.x Apr 2, 2020
@dougbu
Copy link
Contributor

dougbu commented Apr 2, 2020

dotnet/arcade@d6dd7a000fe9 is now in. Next steps are

  1. wait for change to be verified as repos take new Arcade dependencies in their 'master' branch
  2. port change to Arcade's 'release/3.x' branch
  3. pick up the new Arcade packages in our 'release/3.1' branch
  4. take advantage of new Arcade features❕

This may not be 💯% complete in time for 3.1.4 and isn't really part of a 5.0.x release. Moved to 3.1.x

dougbu added a commit that referenced this issue Jul 22, 2020
- #4259 1/2
- followup 2/3 for 5266918
- includes baselines for 16 MVC projects
    - will automated further additions in another PR
- suppress warnings that may cause back-compat problems if fixed

nit: sort `@(LatestPackageReference)` a bit better
dougbu added a commit that referenced this issue Jul 23, 2020
- #4259 1/2
- followup 2/3 for 5266918
- includes baselines for 16 MVC projects
    - will automated further additions in another PR
- suppress warnings that may cause back-compat problems if fixed

nit: sort `@(LatestPackageReference)` a bit better
dougbu added a commit that referenced this issue Jul 24, 2020
* Use Microsoft.CodeAnalysis.PublicApiAnalyzers
    - #4259 1/2
    - followup 2/3 for 5266918
    - includes baselines for 16 MVC projects
      - will automated further additions in another PR
    - suppress warnings that may cause back-compat problems if fixed

nit: sort `@(LatestPackageReference)` a bit better
@dougbu dougbu removed the Working label Aug 29, 2020
@dougbu
Copy link
Contributor

dougbu commented Nov 4, 2020

After a few conversations with others who have made changes to *.Manual.cs files, I'm going to close this w/ no action. Nobody expects to need more than surgical implementation fixes later in 3.1. Even if changes are necessary, they'll almost definitely take much less effort (all together) than fixing this issue.

Background: Of the two possible ways to avoid needing the *.Manual.cs files,

  1. Back-porting GenAPI fixes needed to generate better C# files automatically will take much, much more work than expected future changes the files.
  2. Switching to use Roslyn to build ref/ and implementation assemblies simultaneously will likely take much less effort but will perturb our assembly versioning. Right now, only the ref/ assemblies have fixed Major.Minor.0.0 versions. Not sure what problems we'd hit if the implementation assemblies in later 3.1 releases had lower assembly versions.

@dougbu dougbu closed this as completed Nov 4, 2020
@dougbu dougbu added the ✔️ Resolution: Won't Fix Resolved because we decided not to change the behavior reported in this issue. label Nov 4, 2020
@ghost ghost added the Status: Resolved label Nov 4, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Dec 4, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework ✔️ Resolution: Won't Fix Resolved because we decided not to change the behavior reported in this issue. Status: Resolved
Projects
None yet
Development

No branches or pull requests

6 participants