Skip to content

Conversation

sbomer
Copy link
Member

@sbomer sbomer commented Sep 8, 2020

Doing this will change a few things:

  • Our package will no longer include Mono.Cecil.Mdb or Mono.Cecil.Rocks. (These all included with the official package, but we don't depend on them when building against the individual projects. We might want to filter them out even when we go back to building against the package).
  • The ref package produced from release/5.0 will now have a dependency on the local cecil version (it gets a 5.0.0-rc* version from our Versions.props). To consume it, the consuming project needs to include a version of Mono.Cecil compatible with this version, which in practice probably means also building against the submodule and giving it a custom version. @marek-safar I assume that this is OK since we will go back to shipping with the official package when use the ref assembly for plugins in 6. The alternative is to build the ref and lib against different versions of Cecil.

@sbomer sbomer requested a review from marek-safar as a code owner September 8, 2020 18:03
@sbomer sbomer requested a review from vitek-karas September 8, 2020 18:03
@sbomer sbomer changed the title Build against Cecil submodule [release/5.0] Build against Cecil submodule Sep 8, 2020
@vitek-karas
Copy link
Member

We discussed the ref issue and for 5.0 it should not matter - we're not changing public APIs in Cecil in the fork, so consumers can still refer the official Cecil package and compile against that. At runtime the forked Cecil will be used, but since public APIs are identical everything should work just fine.

With this change, the nuspec of the ref assembly package will
list cecil verision 0.11.2 as a dependency (instead of 5.0.0-rc*).
This allows consumers of the ref package to use the publicly
released cecil.
@sbomer
Copy link
Member Author

sbomer commented Sep 8, 2020

The ref package will now depend on a package version that matches the official cecil, as discussed with @vitek-karas.

as the package dependency. This way the linker ref assembly package
will depend on the publicly available package. Note that we can't set
just set Version here because Arcade will override it. -->
<PackageVersion>$(MonoCecilVersion)</PackageVersion>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It'd be better to stop the build when the versions don't match but it does not look like it's doable with current Cecil setting

@sbomer sbomer merged commit 2f00433 into dotnet:release/5.0 Sep 9, 2020
marek-safar pushed a commit to marek-safar/linker that referenced this pull request Oct 9, 2020
* Build against Cecil submodule

* Depend on official cecil version

With this change, the nuspec of the ref assembly package will
list cecil verision 0.11.2 as a dependency (instead of 5.0.0-rc*).
This allows consumers of the ref package to use the publicly
released cecil.
marek-safar pushed a commit to marek-safar/linker that referenced this pull request Oct 9, 2020
* Build against Cecil submodule

* Depend on official cecil version

With this change, the nuspec of the ref assembly package will
list cecil verision 0.11.2 as a dependency (instead of 5.0.0-rc*).
This allows consumers of the ref package to use the publicly
released cecil.
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

Successfully merging this pull request may close these issues.

3 participants