Skip to content
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

Make release a descendant of stable #4460

Closed

Conversation

LiberalArtist
Copy link
Contributor

@jbclements This PR does what I suggested in https://racket.discourse.group/t/racket-v8-6-release-thread/1091/32:

It also tries to address a much less significant quirk I noticed, which is that the head of the stable branch tends to point to a merge commit like 424d167 rather than the commit pointed to by the release tag.

  1. When starting a new release branch, either just before or just after the commit like 6ef43da setting the alpha version number, use git merge with the ours strategy so that the new head of the release branch is also a descendant of the tag from the previous release/the head of the stable branch.

I happened to notice that this seems to have been the practice at some point in not-too-distant Racket history: 20916f7 seems to do the same thing as this PR.

The way GitHub is displaying this is quite confusing: it's more useful to think of this PR as adding 2 commits (not 1,694), and it's correct that there are 0 files changed. Here's what I did:

  1. git merge -s ours stable -> 247806d
  2. git merge -s ours v8.6 -> 6d8f969

In both cases I used the auto-generated commit message.

In the future only git merge -s ours stable should be necessary. In this case, because of the mix-up, the (current/changed) v8.6 is actually not on the stable branch.

This should let you merge into stable with --ff-only when the release is ready, so the head of the stable branch can point to the actual commit tagged v8.7.

samth and others added 30 commits January 11, 2017 16:38
Set up bindings and shift phases as needed to make
`variable-reference->namespace` work in a run-time position when the
enclosing module is instantiated at a phase other than 0.

Thanks to Rohin Shah for the bug report.

(cherry picked from commit 3f2de91)
(cherry picked from commit ecaa145)
Thanks to Leif for the report and test case.

(cherry picked from commit 80e8e0f)
Repairs a problem with 8190a77, which can incorerctly
move an erroring experssion into tail position.

(cherry picked from commit d1ba9fb)
Continuing the saga that includes 8190a77 and d1ba9fb, it turns
out that a 0-binding clause as the last one isn't so special after
all. A little later in the optimizer, now that we're sometimes moving
an error to the body, we can't assume that the body can be discard
if an error was detected.

(cherry picked from commit 736cdfb)
Thanks to Robby for the test.

(cherry picked from commit aead07b)
the public function was missing the `#:generate` keyword,
 added this and documented why `#:exercise` is missing

(cherry picked from commit 3bb131e)
Remove the history annotation on `build-flat-contract` property
 about removing the `#:exercise` keyword.

Because the keyword wasn't actually removed from the function,
 only from the (incorrect) documentation. So there aren't any
 legal programs that depend on the removed keyword argument.

(cherry picked from commit 50f67cf)
Store relative paths in "info-cache.rktd" (which corresponds,
roughly, to packages) in a platform-independent form, instead
of using the current platform's convention.

Using the current platform's covention works badly when
cross-compiling for Windows on Unix, since relative paths are used as
keys in the "info-cache.rktd" table. For example, updating a
pre-installed package on Windows mangles the mapping if the installer
is created from a cross-compiled installation.

(cherry picked from commit 459a744)
Fix for 459a744 to handle the case that a path
to record is not relative. The `raco pkg` tests
exposed the problem.

(cherry picked from commit 016b800)
Repairs a problem with 409321c.

Merge to v6.9

(cherry picked from commit 662fd84)
closes racket/db#8

merge to release branch

(cherry picked from commit 995f320)
The repair in 71a43f3 fixed the creation of some launchers, but it
broke GUI launchers with a relative reference on Mac OS.

(cherry picked from commit 803d8ff)
(cherry picked from commit fae55e8)
When comparing a part of a hamt that is a collision node versus a
subtree node, a "hash code" was extracted from the collision node ---
but that's really a code for an integer key is that used for the
collision element. The comparison should instead use a code extracted
from the reference to the collision node (which is the code that is
common to all colliding keys).

(cherry picked from commit 6de3659)
Closes racket#1725

(cherry picked from commit 0f5e95e)
jbclements and others added 21 commits February 7, 2022 13:27
(cherry picked from commit cbdf9bb)
Repair `primitive-result-arity` to produce a value for every procedure
that is recognized by `primitive?`. The latter set was expanded when
adding support for error-message realms. The corrected
`primitive-result-arity` may sometimes report imprecise information,
but it should at least now be consistent with its contract.

(cherry picked from commit 95268b5)
Commit 4c162c5 allows comments produced by a readtable handler in
some places where they should always have been allowed. In that
implementation, in the case of a reader error (i.e., not a comment),
the reader may consume extra characters than before.

This commit narrows the cases where extra characters are read, because
it's often apparent from the first character that a readtable handler
can't be triggered. The character-consuming behavior of the reader for
error cases is then closer to what it used to be for `read`,
`read-syntax` and especially `read-language`.

(cherry picked from commit 5e67dda)
Before this change, the current "libgobject-2.0-2.dll" build fails in
embedded-DLL mode. The crash happens during the MinGW-generated pseudo
relocation step at the start of DllMain, because it tries to write to
a page that is write-protected. It's not clear why the relocation
step's attempt to make the page writable doesn't work, but maybe it
has something to do with the way MemoryModule fakes the DLL setup.
Keeping writes enabled until after DllMain returns is enough to avoid
the problem and seems unlikely to create new problems.

(cherry picked from commit e570e0a)
v8.6 updated src catalog ptr
@LiberalArtist
Copy link
Contributor Author

The "Scribble License Files" failure looks like a bug in the CI script, not in this PR: probably it needs to use --skip-installed or something.

LiberalArtist added a commit to LiberalArtist/racket that referenced this pull request Oct 12, 2022
Since we're using the `'full'` Racket distribution, the `racket-index`
package will already be installed: we can't `raco pkg install` again.
Instead, we should `raco pkg update` to the potentially-changed version
to be tested. This should fix failures like
<https://github.com/racket/racket/actions/runs/3230196005/jobs/5288363302>:

    Run raco pkg install --auto -j $(nproc) pkgs/racket-index
      raco pkg install --auto -j $(nproc) pkgs/racket-index
      shell: /bin/bash -e {0}
    raco pkg install: package is currently installed in a wider scope
      package: racket-index
      installed scope: installation
      given scope: user
    Error: Process completed with exit code 1.

The revised workflow is still not fully robust against more complex
changes to `racket-index` and its dependencies, but it should serve for
making sure that `LICENSE.txt`, `racket/src/LICENSE.txt`, and
`pkgs/racket-index/scribblings/main/license.scrbl` stay in sync.

Related to racket#4460
LiberalArtist added a commit to LiberalArtist/racket that referenced this pull request Oct 12, 2022
Since we're using the `'full'` Racket distribution, the `racket-index`
package will already be installed: we can't `raco pkg install` again.
Instead, we should `raco pkg update` to the potentially-changed version
to be tested. This should fix failures like
<https://github.com/racket/racket/actions/runs/3230196005/jobs/5288363302>:

    Run raco pkg install --auto -j $(nproc) pkgs/racket-index
      raco pkg install --auto -j $(nproc) pkgs/racket-index
      shell: /bin/bash -e {0}
    raco pkg install: package is currently installed in a wider scope
      package: racket-index
      installed scope: installation
      given scope: user
    Error: Process completed with exit code 1.

The revised workflow is still not fully robust against more complex
changes to `racket-index` and its dependencies, but it should serve for
making sure that `LICENSE.txt`, `racket/src/LICENSE.txt`, and
`pkgs/racket-index/scribblings/main/license.scrbl` stay in sync.

Related to racket#4460
samth pushed a commit that referenced this pull request Oct 12, 2022
Since we're using the `'full'` Racket distribution, the `racket-index`
package will already be installed: we can't `raco pkg install` again.
Instead, we should `raco pkg update` to the potentially-changed version
to be tested. This should fix failures like
<https://github.com/racket/racket/actions/runs/3230196005/jobs/5288363302>:

    Run raco pkg install --auto -j $(nproc) pkgs/racket-index
      raco pkg install --auto -j $(nproc) pkgs/racket-index
      shell: /bin/bash -e {0}
    raco pkg install: package is currently installed in a wider scope
      package: racket-index
      installed scope: installation
      given scope: user
    Error: Process completed with exit code 1.

The revised workflow is still not fully robust against more complex
changes to `racket-index` and its dependencies, but it should serve for
making sure that `LICENSE.txt`, `racket/src/LICENSE.txt`, and
`pkgs/racket-index/scribblings/main/license.scrbl` stay in sync.

Related to #4460
@racket-discourse-github-bot

This pull request has been mentioned on Racket Discussions. There might be relevant details there:

https://racket.discourse.group/t/racket-v8-7-release-thread/1343/3

@LiberalArtist
Copy link
Contributor Author

LiberalArtist commented Oct 17, 2022

Closed via 4468b8a and d291ef3—thanks @jbclements!

@shhyou shhyou added the release-management Topics related to releases: regression, build failures for RCs, blocking issues, etc. label May 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release-management Topics related to releases: regression, build failures for RCs, blocking issues, etc.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet