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

A new beta #1862

Closed
John-Colvin opened this issue Oct 27, 2016 · 50 comments
Closed

A new beta #1862

John-Colvin opened this issue Oct 27, 2016 · 50 comments
Assignees

Comments

@John-Colvin
Copy link
Contributor

I think that because of #1819, https://github.com/ldc-developers/ldc/releases/tag/v1.1.0-beta3 is getting less testing than it would otherwise. The sooner beta4 comes along the better, even if it's a very small change from beta3

@redstar redstar self-assigned this Oct 28, 2016
@redstar
Copy link
Member

redstar commented Oct 28, 2016

I try to create a new beta this weekend.

@kinke
Copy link
Member

kinke commented Nov 7, 2016

Any new plans? I'd say let's try to put out 1.1 in 2016; ideally one more beta/RC is enough. I'd like to see #1869, #1861, #1845, #1840, ideally #1856 and possibly even #1832 in there.

@klickverbot: It somehow feels as if the spurious OSX Travis issue doesn't happen that often anymore. Do you think we can include your OSX commit at least in the next beta/RC?

@dnadlinger
Copy link
Member

Do you think we can include your OSX commit at least in the next beta/RC?

I'd still wait until the next release if we are uncertain about what is going on (which I believe we are). There is no reason to delay the release any longer by trying to fit in more than necessary from master.

@kinke
Copy link
Member

kinke commented Nov 7, 2016

I'd like to see at least all of current master, except for OSX then (+ unreverting the runtime function type checks), in the 1.1 release. The 57-2 commits (behind master) are mostly fixes (incl. important ones like #1819, #1822, ARM soft-float, debuginfos, and half-fixed #1829) and also affect the command-line (incl. ir2obj cache renaming). Nothing particularly dangerous or insufficiently tested but all well worth to be included IMO.

@JohanEngelen
Copy link
Member

Shall we start to cherry-pick stuff onto the 1.1.0 release branch?

@kinke
Copy link
Member

kinke commented Nov 9, 2016

As long as there's a sufficient consensus wrt. what should make it into 1.1, I'd rather merge master into release-1.1.0 (read: rebasing) and revert the 2 commits, to have a cleaner history and ease branch comparisons.

@JohanEngelen
Copy link
Member

Not a bad idea.
I have no preference.

@kinke
Copy link
Member

kinke commented Nov 18, 2016

As @redstar seems too busy at the moment, shall the rest of the team prepare a new beta? E.g., me doing the Windows builds, Johan the OSX ones and David the Linux ones? I'd need to edit the release scripts and may use other versions of tools than Kai, so there'd surely be some slight differences, but I'd like to get a new beta out soon.

@PetarKirov
Copy link
Contributor

Please do so! A new release would be huge improvement on the status quo, considering that beta-3 broke the build of almost every dub package (e.g. even dub --compiler=ldmd doesn't work with vibe.d). See also #1890.

@dnadlinger
Copy link
Member

dnadlinger commented Nov 21, 2016

@kinke: Sure – I had documented my release process at https://wiki.dlang.org/How_to_release_LDC, but Kai might have been building the packages differently, of course. I usually used an EC2 instance to build the Linux packages out of convenience, but a VM with a suitably old Linux version will do as well. I think we are now shipping statically linked binaries anyway, though, so the version requirement might not be as stringent anymore.

@JohanEngelen
Copy link
Member

@kinke I've been already doing the OSX builds recently, so definitely. Hope we can have a new beta very soon.

@kinke
Copy link
Member

kinke commented Nov 21, 2016

Alright, so I'd suggest #1889 (minus 4 Travis OSX jobs) + #1891 + LTO backport for the next beta. I'd prefer calling it a release candidate to emphasize that we're pushing for the final release and that the plan is to check for any remaining major issues only. The final could then be rolled out as christmas present. ;)

What do we do about the ARM build? Postpone it or ask @smolt and/or @joakim-noah?

Preparing the release over the course of this week would be fine by me. @klickverbot: Would you be willing to take care of the official anouncements (and the Linux x86 builds - I only have a Ubuntu 16.04 VM)? I can prepare a summary of all closed issues since beta3 in the meantime, and Johan would be welcome to shortly summarize his feature additions like LTO for the release notes.

@JohanEngelen
Copy link
Member

Cool! Just call it "beta4", let's not complicate things further ;-)
As soon as you have the release draft up, I'll add LTO stuff. (in future, I think we should open a release draft as soon as development begins. Easier to add (and not forget) things on-the-go than retro-actively)

@redstar
Copy link
Member

redstar commented Nov 21, 2016

Sorry for the inconvenience right now! I currently have some trouble which prevents all work on LDC. :-(

@klickverbot I used the scripts for building. I use Ubuntu 12 TLS in a VirtualBox machine for building (both 32 and 64 bit). I added gcc 4.8.1 backport to the standard Ubuntu and a self-compiled patchelf.
For the Windows build I use the msbuild scripts from the repository.

@kinke Good proposal. I found it always annoying to scan the issue and commit history to find the relevant entries.

Thanks again!

@kinke
Copy link
Member

kinke commented Nov 21, 2016

No worries Kai, take all the time you need and 'halt die Ohren steif'. ;)

Just call it "beta4", let's not complicate things further

Alright.

@JohanEngelen
Copy link
Member

@redstar Thanks for chiming in! :-)

@joakim-noah
Copy link
Contributor

Regarding ARM, I don't have a linux/armhf board available, which is what Kai was using for that build. I guess we can delay that build.

@kinke
Copy link
Member

kinke commented Nov 22, 2016

I tweaked the MSBuild project in ldc-scripts a bit and am now able to build the 2 Windows releases. Note that I updated dub to v1.1 and made sure LDC is compiled by itself.

@dnadlinger
Copy link
Member

@kinke:

Would you be willing to take care of the official anouncements (and the Linux x86 builds - I only have a Ubuntu 16.04 VM)? I can prepare a summary of all closed issues since beta3 in the meantime, and Johan would be welcome to shortly summarize his feature additions like LTO for the release notes.

Sure. I'm a bit short on time right now, though (end of term and thesis project approaching), so it would be great if you could indeed prepare a summary of the changes. Thanks!

@kinke
Copy link
Member

kinke commented Nov 22, 2016

@klickverbot: Great, thanks. If you agree with the proposed tag, please go ahead and merge #1889 and #1891.

@kinke
Copy link
Member

kinke commented Nov 24, 2016

I've prepared the release draft description, using filters like is:issue closed:>2016-10-08 to browse through the closed issues and merged PRs since beta 3 was released. It's definitely time to get 1.1 out soon, the change log is getting huge. ^^ Well done, guys! 👍

@JohanEngelen
Copy link
Member

The draft looks great @kinke , excellent work!

@kinke
Copy link
Member

kinke commented Nov 24, 2016

@JohanEngelen: Thanks ;) - do you have time to backport the LTO fix into release-1.1.0 now that David has merged #1889? Otherwise I could give it a try too.

@JohanEngelen
Copy link
Member

ok

@kinke
Copy link
Member

kinke commented Nov 24, 2016

I actually think we should ship brand-new dub 1.1.1-beta1, as it fixes at least one important issue/regression (e.g., vibe.d on Unixoids - dlang/dub#990) and not-so-irrelevant issue dlang/dub#931: dlang/dub@v1.1.0...v1.1.1-beta.1

@kinke
Copy link
Member

kinke commented Nov 25, 2016

I've noticed that merging #1889 into release-1.1.0 screwed up the history. So I took the PR branch, cherry-picked the later commits to origin/release-1.1.0, made sure there were no file diffs with origin/release-1.1.0, then replaced my local release-1.1.0 with the fixed-up branch, additionally merged origin/master into it and then force-pushed it. The result is that it's 9 commits ahead of (and 0 behind) master (merges, reverts/backport and some redundant commits - testing LLVM 3.9 for Travis OSX, IR test fix, LLVM 4.0 fix).

@JohanEngelen
Copy link
Member

@kinke Ready to tag beta4 then!

From now on, we should no longer merge master, and just cherry-pick onto release-1.1.0. It is much easier to work with a cherry-picked history than merges when bugs emerge.

@kinke
Copy link
Member

kinke commented Nov 25, 2016

I'm waiting for a green AppVeyor, will then probably get rid of the 3 redundant commits with an additional force-push and then tag. [I'm already building temptative Windows releases right now. ;)]

I don't agree that there should only be cherry-picks from now on. That is only necessary if something makes it into master that we don't want in 1.1 before 1.1 is actually released. The right time for such a 'freeze' is when 1.1 final is released. Until then, I propose to delay merging risky PRs into master. This way, we don't end up with a parallel stream of bugfixes, improvements and small new features, which makes branch comparisons very cumbersome.

@JohanEngelen
Copy link
Member

My experience with non-cherrypicking release schedules has not been good. This 1.1.0 release cycle is an example of it, but I have more experience with this mechanism during my years of Inkscape development. Not cherry picking means that all development is stalled until a release happens; if not, the release keeps getting bigger with new bugs popping up, history becomes harder to track down/bisect because of relatively large merges with merge-conflict amends, "can this please make it into the release?"-hopes are increased but delay the release. If, for whatever reason, the release doesn't happen as quickly as hoped, bad things build up: bigger and bigger unmerged feature PRs, merge conflicts when PRs can finally be merged, forgotten branches, demotivation/loss of interest.

The rules of a cherry-picked release cycle are easier to understand, easier to deal with the history, and I think will be easier to manage with several people at once. It is not a "freeze": cherry-picking is easy, easier than merging, and mistakes are easier to spot. (It's the opposite of a "freeze"; the whole time we've been "frozen out of" updating to 2.072!)

@kinke
Copy link
Member

kinke commented Nov 25, 2016

I simply did a reset to master and cherry-picked the 2 reverts and the backport - 3 commits ahead of master, as simple as that. I think seldom force-pushes are okay as long as the release isn't official.

the whole time we've been "frozen out of" updating to 2.072!

For early birds, a temporary v2.072 branch could be used, just like we did when transitioning to the DDMD front-end. That worked out quite well, did it not?

Edit: tagged.
Edit2: from my perspective, the release cycle only begins with the final release (branching off master at that time, possibly already with a stack of release-specific commits such as the OSX revert here). Alphas and betas etc. are just experimental previews (which don't have any continued support like finalized releases). When going with a release-1.1.0 branched off master at the time the first beta was released, we'd already have ~100 diverging commits from master before the final release, for basically exactly the same except for OSX shared libs. As soon as the release is finalized, there should be cherry-picks only, I agree with you there, for the reasons you mentioned. But normally a release shouldn't take as long as 1.1, I think that was really an exception.

@JohanEngelen
Copy link
Member

a temporary v2.072 branch could be used

I didn't create it yet. Because it is a drain on energy to keep a separate branch alive for a long time (dealing with merges, for example).

For me, the betas are not very useful if we keep adding functionality to them (I've been guilty of this too). Regardless, beta4 is out, building mac binaries now!

@dnadlinger dnadlinger assigned dnadlinger and unassigned redstar Nov 26, 2016
@dnadlinger
Copy link
Member

Building Linux binaries.

@dnadlinger
Copy link
Member

We'll also have to figure out a way to build the Linux/ARM and FreeBSD binaries. Situations like these are exactly why everything used to be documented at https://wiki.dlang.org/How_to_release_LDC.

@dnadlinger
Copy link
Member

Seems like the prerequisites (newer GCC, …) are also missing from https://github.com/ldc-developers/ldc-scripts/blob/master/ldc2-packaging/0-ubuntu-setup.sh.

@dnadlinger
Copy link
Member

dnadlinger commented Nov 26, 2016

So we are shipping DUB 1.1.1-beta.1? Edit: Yes, we are.

@dnadlinger
Copy link
Member

Apparently, the scripts don't actually build the package correctly anymore – libconfig.so.8 ends up not being marked executable, and the exe patching is broken. I'll revert that back to properly using linker flags.

@kinke, @JohanEngelen: This might require a change to the CMake scripts. I suppose since this is only a beta, I'll just update the tags rather than skipping to -beta5, which would be the "proper" thing to do.

@dnadlinger
Copy link
Member

dnadlinger commented Nov 27, 2016

Somebody shoot me:

extra_flags+=("-DCMAKE_EXE_LINKER_FLAGS='-static-libstdc++ -Wl,-rpath,\\\\\$\$ORIGIN'")

Hopefully this works now. The quoting is of course specific to the Makefile generator, but that's what the install scripts use anyway. We should properly fix the quoting in the custom linker commands, though.

@dnadlinger
Copy link
Member

dnadlinger commented Nov 27, 2016

I'll announce the beta tomorrow; it's way too late right now.

@kinke
Copy link
Member

kinke commented Nov 27, 2016

I tested the Linux x64 package on Ubuntu 16.04 by building a vibe.d project template (with both LDC and LDMD) - works fine, except that vibe-d/vibe.d#1611 isn't fixed by dlang/dub#990, so the manual OpenSSL dependency is still required. :/ Edit: fixed when removing the ~/.dub cache.

@JohanEngelen
Copy link
Member

JohanEngelen commented Nov 27, 2016

@klickverbot : Important beta4 issue: #1897 fixing it now. (#1898)

@dnadlinger
Copy link
Member

Beta5 it is, then.

@dnadlinger
Copy link
Member

Tagged beta 5; building Linux packages.

@kinke
Copy link
Member

kinke commented Nov 27, 2016

Rebuilding the Windows packages.

@kinke
Copy link
Member

kinke commented Nov 28, 2016

Ready.

@dnadlinger
Copy link
Member

Announcement in ~6h unless any other last-minute issues due to the changed build process pop up.

@JohanEngelen
Copy link
Member

#1901

@dnadlinger
Copy link
Member

I've held off on the announcements since even without, a couple of issues have already popped up.

@kinke
Copy link
Member

kinke commented Dec 7, 2016

Beta 6 tagged, drafted and Windows packages being built.

@JohanEngelen
Copy link
Member

I've uploaded the OS X package.

@dnadlinger
Copy link
Member

Linux packages will be up in a couple of hours.

@kinke kinke closed this as completed Dec 10, 2016
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

No branches or pull requests

7 participants