-
Notifications
You must be signed in to change notification settings - Fork 6
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
Modify buildbot to build packages for release branches #137
Conversation
Testing on beta-bot. Have to rebuild llvm so this will take some time. We should add binary caching to the queue. |
master/master.cfg
Outdated
|
||
HALIDE_TRUNK = 'trunk' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
note to self: as a followup, standalone PR, let's do a name cleanup that changes all use of 'trunk' and 'master' to be 'main' instead (except where still necessary for actual git branch names)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good idea
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some questions/comments about code style
master/master.cfg
Outdated
|
||
_LLVM_BRANCHES = [LLVM_TRUNK_BRANCH, LLVM_RELEASE_BRANCH, LLVM_OLD_BRANCH] | ||
LLVM_TRUNK = 'trunk' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are these just meant to be unique identifiers? Or user-readable names? Or what? It's not clear at first read. If they are just unique keys, would we be better off with an enum? (I think this bothers me a bit since there are contexts where we identify a branch by these ids, and other contexts where we use the git branch name.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
They're meant to be short, user-readable (they appear in builder names), identifiers for the various branches.
master/master.cfg
Outdated
LLVM_RELEASE_BRANCH: 11, | ||
LLVM_OLD_BRANCH: 10, | ||
} | ||
LLVM = {LLVM_TRUNK: VersionedBranch(ref='main', version=Version(12, 0, 0)), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I feel vague misgivings about LLVM
and HALIDE
being the identifiers here; that's awfully generic and feels like it's missing something. I'd vote for adding a suffix like _BRANCHES or _VERSIONS or something.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can add _BRANCHES
as a suffix if you prefer.
|
||
HALIDE = {HALIDE_TRUNK: VersionedBranch(ref='master', version=Version(12, 0, 0)), | ||
HALIDE_RELEASE_11: VersionedBranch(ref='release/11.x', version=Version(11, 0, 0)), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IIUC, 'release/11.x' by default means "the latest version of the 11 branch"; do we ensure that the version we check out really is 11.0.0 (vs 11.0.1, 11.0.2, etc)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We do not, but I'm going to - in a separate PR - add a custom build step to read the version out of CMakeCache.txt
since the package steps are the only ones that care about it.
LLVM_RELEASE_BRANCH = 'release/11.x' | ||
LLVM_OLD_BRANCH = 'release/10.x' | ||
Version = namedtuple('Version', ['major', 'minor', 'patch']) | ||
VersionedBranch = namedtuple('VersionedBranch', ['ref', 'version']) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ref
seems like an odd name choice, since the git branch name is what is filled in. Why is this a better choice than branch
or branch_name
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because it could be a tag instead (eg. we might add a builder for the release tag v10.0.0
with just a force scheduler behind it)
# Conflicts: # master/master.cfg
Still a WIP but I think this is roughly what we want. Might be worth testing on buildbot-beta.