Removes this from the generator diff, which happens on every build:
diff --git a/build/common/bgen.exe.binlog b/build-new/common/bgen.exe.binlog
index fc4ecd1fe..3b0503171 100644
Binary files a/build/common/bgen.exe.binlog and b/build-new/common/bgen.exe.binlog differ
Use the jenkins script as a base to get the PAI & generator from stable
diff back to the CI. Comment is not perfect, but does provide the
required information. The comment can be improve in a later commit since
this is getting too large.
Rework the code to generate an API comparison and a generator comparison: we
now clone xamarin-macios into a different directory, checks out the hash we
want to compare against, build the whole thing, and then compare the results.
This is somewhat slower than the previous implementation (which would checkout
the previous hash and build that on top of the existing build), but since we
don't have to build mono, it shouldn't make too much of a difference (the
biggest chunk of our build is building src/, and we had to do that anyway with
the previous implementation as well).
The upside is that it should be much more reliable.
Fixes https://github.com/xamarin/maccore/issues/2034.
Fixes https://github.com/xamarin/maccore/issues/1467.
Fixes https://github.com/xamarin/maccore/issues/1059.
Maybe https://github.com/xamarin/maccore/issues/1173 too.
Make sure to redirect the dotnet build output to our custom output directory
when building the previous commit so that it doesn't interfere with the normal
build output.
Also add validation for this.
* Make everything in src/ build into a directory dependent upon BUILD_DIR.
That way the API comparison can successfully build into a different
directory.
* Use an absolute path as the temporary build directory. This works better
when the path is used in directories with different depth from the root.
Fixes https://github.com/xamarin/maccore/issues/2176.
* [apidiff] Add rule to get mono-api-info.exe and mono-api-html.exe.
This fixes an issue when bumping mono: when bumping mono, the already
downloaded mono archive isn't applicable (because we've changed to the
previous commit, which has the previous mono hash, whose archive hasn't been
downloaded).
So add a rule to get mono-api-info.exe and mono-api-html.exe, by downloading
the current mono archive.
* [apidiff] Change the name of the unzip stamp and download dir to contain the hash.
This way the logic doesn't get confused when the hash changes (or there's an
old unzip stamp in the directory), and things are downloaded again as
expected.
* [apidiff] Make make not delete temporary files.
Things end up confused if temporary files have been removed by make, but our
stamp file that the temporary files are still there is present.
* [apidiff] No need to make everything depend on the bundled zip.
If everything that needs the bundled zip already depends on it.
* [apidiff] Restore original hash before calculating api diff.
This makes it less annoying when the api diff calculation changes, because
with the previous behavior they were impossible to test in a PR, since any
changes wouldn't take effect until after the PR was merged.
Fixes this problem:
The following files were modified, and they shouldn't have been:
/Users/builder/jenkins/workspace/xamarin-macios-pr-builder/src
which shouldn't be reported, since the "file" in question is a directory.
Reference: https://github.com/xamarin/xamarin-macios/pull/5355#issuecomment-452400517
This means we'll get an empty diff if there are no generator changes, so
update the logic that detects/reports empty generator diffs.
Also there's no need to ignore mdbs anymore, since we don't create mdbs.
* [build] Remove MT.D source build and replace it with a binary
This commit removes MonoTouch.Dialog from our source build and
replaces it with a binary from c913506df2/MonoTouch.Dialog-Unified
The MT.D hash used in this commit is fixed to migueldeicaza/MonoTouch.Dialog@92c6e14
* Update .gitignore.
* MonoTouch.Dialog-1.dll doesn't need depend on the platform assembly anymore, because we're copying a binary instead of building.
* Add significant debug spew.
* More debugging.
* Remove debug spew.
* [compare-commits] Create directory before trying to create files in it.
* [tools] Fix commit comparison to not change generated .csproj files.
Fix commit comparison to not change generated .csproj files by adding support
for modifying the directory where the .csproj are generated, and when doing
commit comparison, do exactly that.
* Put back target removed unintentionally.
We have consistency checks to verify that no unexpected files are modified
done when comparing APIs in for a pull request.
Unfortunately the check didn't take into account that checking out the
revision to do the API check against might modify some of the files in the
consistency check itself, thus triggering the consistency check.
Fix this by only verify timestamps of files modified after checkout out the
revision, which is the only thing we care about anyway.
For examples see PR #3855 or PR #3850.