Changes to LLDB Branch Management


(Chris Bieneman) #1

Hello Swift-Dev and Swift-LLDB-Dev,

Over the last couple weeks we’ve been working on some changes to the branch management strategy for the Swift-LLDB repository. The goal is to have LLDB more closely align with the other projects forked from LLVM.org <http://llvm.org/>. We believe that making this change will simplify the contribution process for LLDB’s Swift support.

To this end, we are making the following changes:

LLDB has gained an upstream-with-trunk branch which will be auto-merged from LLVM.org’s LLDB/trunk. This branch will contain the best of both worlds. The latest and greatest from LLVM.org <http://llvm.org/>, and Swift support. This branch will pair to LLVM & Clang’s upstream-with-swift branches and Swift’s master-next.

LLDB has also gained a stable branch which will behave the same way as the LLVM & Clang stable branches, and should be used for most Swift compiler development. Additionally we have made the swift-lldb/stable branch the default branch on the GitHub repository, which matches the behavior of LLVM & Clang.

LLDB’s master and master-next branches will be going away. Later today we will lock the branches, and in a few days we’ll delete them. For most users you’ll want to migrate from Swift-LLDB/master to Swift-LLDB/stable.

The new branches are already created, and the tooling will be coming online over the next few days. Additionally, the Swift contributing page (https://swift.org/contributing/#llvm-and-swift) has been updated to reflect the alignment of the LLDB process with the other LLVM.org <http://llvm.org/> projects.

If you have any questions about the new process or the transition please let me know.

Thank you,
-Chris


(Jordan Rose) #2

Hi, Chris. I’m a bit confused by these changes. Swift’s master-next isn’t paired with upstream-with-swift; it’s paired with stable-next, which is resync’d to upstream-with-swift on a fairly regular cadence. Have you discussed this with the “merge czars” on the Swift side, who maintain master-next and stable-next?

“upstream-with-trunk” is redundant; the “upstream” referred to in “upstream-with-swift” is LLVM trunk. “upstream-plus-swift-support” might have been a better name for the LLVM branch.

What happens on the LLDB “stable" branch? No development happens on LLVM or Clang’s “stable” branch; they’re essentially just aliases for the latest release branch. Does the LLDB “stable” branch build against Swift master or Swift’s latest release branch?

When I change something on Swift master that affects LLDB, where do I send a pull request going forward? It would be very painful for Swift developers to have a master-next/stable-next build set up just to submit changes to LLDB; today, most Swift developers don’t even need to think about master-next unless something breaks.

Concerned,
Jordan

···

On Feb 9, 2017, at 10:50, Chris Bieneman via swift-lldb-dev <swift-lldb-dev@swift.org> wrote:

Hello Swift-Dev and Swift-LLDB-Dev,

Over the last couple weeks we’ve been working on some changes to the branch management strategy for the Swift-LLDB repository. The goal is to have LLDB more closely align with the other projects forked from LLVM.org <http://llvm.org/>. We believe that making this change will simplify the contribution process for LLDB’s Swift support.

To this end, we are making the following changes:

LLDB has gained an upstream-with-trunk branch which will be auto-merged from LLVM.org <http://llvm.org/>’s LLDB/trunk. This branch will contain the best of both worlds. The latest and greatest from LLVM.org <http://llvm.org/>, and Swift support. This branch will pair to LLVM & Clang’s upstream-with-swift branches and Swift’s master-next.

LLDB has also gained a stable branch which will behave the same way as the LLVM & Clang stable branches, and should be used for most Swift compiler development. Additionally we have made the swift-lldb/stable branch the default branch on the GitHub repository, which matches the behavior of LLVM & Clang.

LLDB’s master and master-next branches will be going away. Later today we will lock the branches, and in a few days we’ll delete them. For most users you’ll want to migrate from Swift-LLDB/master to Swift-LLDB/stable.

The new branches are already created, and the tooling will be coming online over the next few days. Additionally, the Swift contributing page (https://swift.org/contributing/#llvm-and-swift) has been updated to reflect the alignment of the LLDB process with the other LLVM.org <http://llvm.org/> projects.

If you have any questions about the new process or the transition please let me know.

Thank you,
-Chris
_______________________________________________
swift-lldb-dev mailing list
swift-lldb-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-lldb-dev


(Robert Widmann) #3

Does this mean patches for LLDB-Swift will have to go through Phabricator instead of Github?

~Robert Widmann

···

On Feb 9, 2017, at 1:50 PM, Chris Bieneman via swift-dev <swift-dev@swift.org> wrote:

Hello Swift-Dev and Swift-LLDB-Dev,

Over the last couple weeks we’ve been working on some changes to the branch management strategy for the Swift-LLDB repository. The goal is to have LLDB more closely align with the other projects forked from LLVM.org <http://llvm.org/>. We believe that making this change will simplify the contribution process for LLDB’s Swift support.

To this end, we are making the following changes:

LLDB has gained an upstream-with-trunk branch which will be auto-merged from LLVM.org <http://llvm.org/>’s LLDB/trunk. This branch will contain the best of both worlds. The latest and greatest from LLVM.org <http://llvm.org/>, and Swift support. This branch will pair to LLVM & Clang’s upstream-with-swift branches and Swift’s master-next.

LLDB has also gained a stable branch which will behave the same way as the LLVM & Clang stable branches, and should be used for most Swift compiler development. Additionally we have made the swift-lldb/stable branch the default branch on the GitHub repository, which matches the behavior of LLVM & Clang.

LLDB’s master and master-next branches will be going away. Later today we will lock the branches, and in a few days we’ll delete them. For most users you’ll want to migrate from Swift-LLDB/master to Swift-LLDB/stable.

The new branches are already created, and the tooling will be coming online over the next few days. Additionally, the Swift contributing page (https://swift.org/contributing/#llvm-and-swift) has been updated to reflect the alignment of the LLDB process with the other LLVM.org <http://llvm.org/> projects.

If you have any questions about the new process or the transition please let me know.

Thank you,
-Chris
_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev


(Chris Bieneman) #4

That somewhat depends. If the patch is relating to swift support, it should go through GitHub. If the patch is more general to LLDB we are encouraging contributions to LLVM.org <http://llvm.org/>, which would be Phabricator (reviews.llvm.org <http://reviews.llvm.org/>).

This is the same policy we use for LLVM, Clang and the other LLVM.org <http://llvm.org/> projects.

-Chris

···

On Feb 9, 2017, at 11:41 AM, Robert Widmann <devteam.codafi@gmail.com> wrote:

Does this mean patches for LLDB-Swift will have to go through Phabricator instead of Github?

~Robert Widmann

On Feb 9, 2017, at 1:50 PM, Chris Bieneman via swift-dev <swift-dev@swift.org <mailto:swift-dev@swift.org>> wrote:

Hello Swift-Dev and Swift-LLDB-Dev,

Over the last couple weeks we’ve been working on some changes to the branch management strategy for the Swift-LLDB repository. The goal is to have LLDB more closely align with the other projects forked from LLVM.org <http://llvm.org/>. We believe that making this change will simplify the contribution process for LLDB’s Swift support.

To this end, we are making the following changes:

LLDB has gained an upstream-with-trunk branch which will be auto-merged from LLVM.org <http://llvm.org/>’s LLDB/trunk. This branch will contain the best of both worlds. The latest and greatest from LLVM.org <http://llvm.org/>, and Swift support. This branch will pair to LLVM & Clang’s upstream-with-swift branches and Swift’s master-next.

LLDB has also gained a stable branch which will behave the same way as the LLVM & Clang stable branches, and should be used for most Swift compiler development. Additionally we have made the swift-lldb/stable branch the default branch on the GitHub repository, which matches the behavior of LLVM & Clang.

LLDB’s master and master-next branches will be going away. Later today we will lock the branches, and in a few days we’ll delete them. For most users you’ll want to migrate from Swift-LLDB/master to Swift-LLDB/stable.

The new branches are already created, and the tooling will be coming online over the next few days. Additionally, the Swift contributing page (https://swift.org/contributing/#llvm-and-swift) has been updated to reflect the alignment of the LLDB process with the other LLVM.org <http://llvm.org/> projects.

If you have any questions about the new process or the transition please let me know.

Thank you,
-Chris
_______________________________________________
swift-dev mailing list
swift-dev@swift.org <mailto:swift-dev@swift.org>
https://lists.swift.org/mailman/listinfo/swift-dev


(Chris Bieneman) #5

Hi, Chris. I’m a bit confused by these changes. Swift’s master-next isn’t paired with upstream-with-swift; it’s paired with stable-next, which is resync’d to upstream-with-swift on a fairly regular cadence. Have you discussed this with the “merge czars” on the Swift side, who maintain master-next and stable-next?

This has been discussed with the “merge czars”, and we may end up creating a stable-next branch, but Bob Wilson suggested that they were considering changes to the merge process that would eliminate the need for that branch.

“upstream-with-trunk” is redundant; the “upstream” referred to in “upstream-with-swift” is LLVM trunk. “upstream-plus-swift-support” might have been a better name for the LLVM branch.

I mis-wrote that. It is “upstream-with-swift” not trunk. The LLDB “upstream” branch will be going away because it is unnecessary to maintain a branch that matches LLVM.org <http://llvm.org/>.

What happens on the LLDB “stable" branch? No development happens on LLVM or Clang’s “stable” branch; they’re essentially just aliases for the latest release branch. Does the LLDB “stable” branch build against Swift master or Swift’s latest release branch?

LLDB’s stable branch will be maintained in exactly the same way LLVM & Clang’s stable branches are. So it is currently identical to the swift-4.0-branch.

When I change something on Swift master that affects LLDB, where do I send a pull request going forward? It would be very painful for Swift developers to have a master-next/stable-next build set up just to submit changes to LLDB; today, most Swift developers don’t even need to think about master-next unless something breaks.

Patches to LLDB for swift-related functionality should go into the most current release branch, in the same way we handle LLVM & Clang changes.

-Chris

···

On Feb 9, 2017, at 12:09 PM, Jordan Rose via swift-dev <swift-dev@swift.org> wrote:

Concerned,
Jordan

On Feb 9, 2017, at 10:50, Chris Bieneman via swift-lldb-dev <swift-lldb-dev@swift.org <mailto:swift-lldb-dev@swift.org>> wrote:

Hello Swift-Dev and Swift-LLDB-Dev,

Over the last couple weeks we’ve been working on some changes to the branch management strategy for the Swift-LLDB repository. The goal is to have LLDB more closely align with the other projects forked from LLVM.org <http://llvm.org/>. We believe that making this change will simplify the contribution process for LLDB’s Swift support.

To this end, we are making the following changes:

LLDB has gained an upstream-with-trunk branch which will be auto-merged from LLVM.org <http://llvm.org/>’s LLDB/trunk. This branch will contain the best of both worlds. The latest and greatest from LLVM.org <http://llvm.org/>, and Swift support. This branch will pair to LLVM & Clang’s upstream-with-swift branches and Swift’s master-next.

LLDB has also gained a stable branch which will behave the same way as the LLVM & Clang stable branches, and should be used for most Swift compiler development. Additionally we have made the swift-lldb/stable branch the default branch on the GitHub repository, which matches the behavior of LLVM & Clang.

LLDB’s master and master-next branches will be going away. Later today we will lock the branches, and in a few days we’ll delete them. For most users you’ll want to migrate from Swift-LLDB/master to Swift-LLDB/stable.

The new branches are already created, and the tooling will be coming online over the next few days. Additionally, the Swift contributing page (https://swift.org/contributing/#llvm-and-swift) has been updated to reflect the alignment of the LLDB process with the other LLVM.org <http://llvm.org/> projects.

If you have any questions about the new process or the transition please let me know.

Thank you,
-Chris
_______________________________________________
swift-lldb-dev mailing list
swift-lldb-dev@swift.org <mailto:swift-lldb-dev@swift.org>
https://lists.swift.org/mailman/listinfo/swift-lldb-dev

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev


(Jordan Rose) #6

Hi, Chris. I’m a bit confused by these changes. Swift’s master-next isn’t paired with upstream-with-swift; it’s paired with stable-next, which is resync’d to upstream-with-swift on a fairly regular cadence. Have you discussed this with the “merge czars” on the Swift side, who maintain master-next and stable-next?

This has been discussed with the “merge czars”, and we may end up creating a stable-next branch, but Bob Wilson suggested that they were considering changes to the merge process that would eliminate the need for that branch.

“upstream-with-trunk” is redundant; the “upstream” referred to in “upstream-with-swift” is LLVM trunk. “upstream-plus-swift-support” might have been a better name for the LLVM branch.

I mis-wrote that. It is “upstream-with-swift” not trunk. The LLDB “upstream” branch will be going away because it is unnecessary to maintain a branch that matches LLVM.org <http://llvm.org/>.

Thanks for the clarification!

What happens on the LLDB “stable" branch? No development happens on LLVM or Clang’s “stable” branch; they’re essentially just aliases for the latest release branch. Does the LLDB “stable” branch build against Swift master or Swift’s latest release branch?

LLDB’s stable branch will be maintained in exactly the same way LLVM & Clang’s stable branches are. So it is currently identical to the swift-4.0-branch.

I’m concerned because this means LLDB “stable" builds against Swift master, while the release branches all build together. It’s frequent for changes to go into Swift master that are not immediately cherry-picked to the latest release branch.

When I change something on Swift master that affects LLDB, where do I send a pull request going forward? It would be very painful for Swift developers to have a master-next/stable-next build set up just to submit changes to LLDB; today, most Swift developers don’t even need to think about master-next unless something breaks.

Patches to LLDB for swift-related functionality should go into the most current release branch, in the same way we handle LLVM & Clang changes.

Sorry, I don’t mean “patches for LLDB that add or change Swift functionality”. I mean “a Swift API changed, here’s a patch so that LLDB can continue building”. Admittedly we are not always good about this, but if the place to submit LLDB patches isn’t the standard build configuration for Swift, I think we’ll be much less likely to submit any at all. We get away with this for Clang and LLVM because (a) they do not have any pieces that depend on Swift, and (b) very few people make Swift-related changes in Clang and LLVM, so it’s okay if the process is a little awkward.

Jordan

···

On Feb 9, 2017, at 13:43, Chris Bieneman <beanz@apple.com> wrote:

On Feb 9, 2017, at 12:09 PM, Jordan Rose via swift-dev <swift-dev@swift.org <mailto:swift-dev@swift.org>> wrote:


(Bob Wilson) #7

Hi, Chris. I’m a bit confused by these changes. Swift’s master-next isn’t paired with upstream-with-swift; it’s paired with stable-next, which is resync’d to upstream-with-swift on a fairly regular cadence. Have you discussed this with the “merge czars” on the Swift side, who maintain master-next and stable-next?

This has been discussed with the “merge czars”, and we may end up creating a stable-next branch, but Bob Wilson suggested that they were considering changes to the merge process that would eliminate the need for that branch.

Yes, I sent a proposal to swift-dev about this on Dec. 7. The feedback was positive so we are moving forward with this plan. I’ll reply on that other thread with an update on the status.

···

On Feb 9, 2017, at 1:43 PM, Chris Bieneman via swift-dev <swift-dev@swift.org> wrote:

On Feb 9, 2017, at 12:09 PM, Jordan Rose via swift-dev <swift-dev@swift.org <mailto:swift-dev@swift.org>> wrote:

“upstream-with-trunk” is redundant; the “upstream” referred to in “upstream-with-swift” is LLVM trunk. “upstream-plus-swift-support” might have been a better name for the LLVM branch.

I mis-wrote that. It is “upstream-with-swift” not trunk. The LLDB “upstream” branch will be going away because it is unnecessary to maintain a branch that matches LLVM.org <http://llvm.org/>.

What happens on the LLDB “stable" branch? No development happens on LLVM or Clang’s “stable” branch; they’re essentially just aliases for the latest release branch. Does the LLDB “stable” branch build against Swift master or Swift’s latest release branch?

LLDB’s stable branch will be maintained in exactly the same way LLVM & Clang’s stable branches are. So it is currently identical to the swift-4.0-branch.

When I change something on Swift master that affects LLDB, where do I send a pull request going forward? It would be very painful for Swift developers to have a master-next/stable-next build set up just to submit changes to LLDB; today, most Swift developers don’t even need to think about master-next unless something breaks.

Patches to LLDB for swift-related functionality should go into the most current release branch, in the same way we handle LLVM & Clang changes.

-Chris

Concerned,
Jordan

On Feb 9, 2017, at 10:50, Chris Bieneman via swift-lldb-dev <swift-lldb-dev@swift.org <mailto:swift-lldb-dev@swift.org>> wrote:

Hello Swift-Dev and Swift-LLDB-Dev,

Over the last couple weeks we’ve been working on some changes to the branch management strategy for the Swift-LLDB repository. The goal is to have LLDB more closely align with the other projects forked from LLVM.org <http://llvm.org/>. We believe that making this change will simplify the contribution process for LLDB’s Swift support.

To this end, we are making the following changes:

LLDB has gained an upstream-with-trunk branch which will be auto-merged from LLVM.org <http://llvm.org/>’s LLDB/trunk. This branch will contain the best of both worlds. The latest and greatest from LLVM.org <http://llvm.org/>, and Swift support. This branch will pair to LLVM & Clang’s upstream-with-swift branches and Swift’s master-next.

LLDB has also gained a stable branch which will behave the same way as the LLVM & Clang stable branches, and should be used for most Swift compiler development. Additionally we have made the swift-lldb/stable branch the default branch on the GitHub repository, which matches the behavior of LLVM & Clang.

LLDB’s master and master-next branches will be going away. Later today we will lock the branches, and in a few days we’ll delete them. For most users you’ll want to migrate from Swift-LLDB/master to Swift-LLDB/stable.

The new branches are already created, and the tooling will be coming online over the next few days. Additionally, the Swift contributing page (https://swift.org/contributing/#llvm-and-swift) has been updated to reflect the alignment of the LLDB process with the other LLVM.org <http://llvm.org/> projects.

If you have any questions about the new process or the transition please let me know.

Thank you,
-Chris
_______________________________________________
swift-lldb-dev mailing list
swift-lldb-dev@swift.org <mailto:swift-lldb-dev@swift.org>
https://lists.swift.org/mailman/listinfo/swift-lldb-dev

_______________________________________________
swift-dev mailing list
swift-dev@swift.org <mailto:swift-dev@swift.org>
https://lists.swift.org/mailman/listinfo/swift-dev

_______________________________________________
swift-dev mailing list
swift-dev@swift.org <mailto:swift-dev@swift.org>
https://lists.swift.org/mailman/listinfo/swift-dev


(Chris Bieneman) #8

Hi, Chris. I’m a bit confused by these changes. Swift’s master-next isn’t paired with upstream-with-swift; it’s paired with stable-next, which is resync’d to upstream-with-swift on a fairly regular cadence. Have you discussed this with the “merge czars” on the Swift side, who maintain master-next and stable-next?

This has been discussed with the “merge czars”, and we may end up creating a stable-next branch, but Bob Wilson suggested that they were considering changes to the merge process that would eliminate the need for that branch.

“upstream-with-trunk” is redundant; the “upstream” referred to in “upstream-with-swift” is LLVM trunk. “upstream-plus-swift-support” might have been a better name for the LLVM branch.

I mis-wrote that. It is “upstream-with-swift” not trunk. The LLDB “upstream” branch will be going away because it is unnecessary to maintain a branch that matches LLVM.org <http://llvm.org/>.

Thanks for the clarification!

What happens on the LLDB “stable" branch? No development happens on LLVM or Clang’s “stable” branch; they’re essentially just aliases for the latest release branch. Does the LLDB “stable” branch build against Swift master or Swift’s latest release branch?

LLDB’s stable branch will be maintained in exactly the same way LLVM & Clang’s stable branches are. So it is currently identical to the swift-4.0-branch.

I’m concerned because this means LLDB “stable" builds against Swift master, while the release branches all build together. It’s frequent for changes to go into Swift master that are not immediately cherry-picked to the latest release branch.

There is no reason one cannot land a corresponding change to the LLDB/stable branch if needed. This has been done in the past for LLVM & Clang’s stable branches too.

When I change something on Swift master that affects LLDB, where do I send a pull request going forward? It would be very painful for Swift developers to have a master-next/stable-next build set up just to submit changes to LLDB; today, most Swift developers don’t even need to think about master-next unless something breaks.

Patches to LLDB for swift-related functionality should go into the most current release branch, in the same way we handle LLVM & Clang changes.

Sorry, I don’t mean “patches for LLDB that add or change Swift functionality”. I mean “a Swift API changed, here’s a patch so that LLDB can continue building”. Admittedly we are not always good about this, but if the place to submit LLDB patches isn’t the standard build configuration for Swift, I think we’ll be much less likely to submit any at all. We get away with this for Clang and LLVM because (a) they do not have any pieces that depend on Swift, and (b) very few people make Swift-related changes in Clang and LLVM, so it’s okay if the process is a little awkward.

We will certainly take pull requests in this situation to the stable branch. While generally speaking the goal is to keep stable as close to the release branch as possible, if required it can deviate.

-Chris

···

On Feb 9, 2017, at 1:59 PM, Jordan Rose <jordan_rose@apple.com> wrote:

On Feb 9, 2017, at 13:43, Chris Bieneman <beanz@apple.com <mailto:beanz@apple.com>> wrote:

On Feb 9, 2017, at 12:09 PM, Jordan Rose via swift-dev <swift-dev@swift.org <mailto:swift-dev@swift.org>> wrote:

Jordan