input-output-hk / devx

The Developer Experience Shell - This repo contains a nix develop shell for haskell. Its primary purpose is to help get a development shell for haskell quickly and across multiple operating systems (and architectures).
Apache License 2.0
37 stars 9 forks source link

main vs development branch #57

Open angerman opened 1 year ago

angerman commented 1 year ago

As we are now having more and more users, we need to be a bit more cautious about breaking main.

As such I suggest we start having a develop branch, and make main highly protected. Only merge to main when an extended CI suite has passed from develop?

@hamishmack @yvan-sraka @andreabedini thoughts?

yvan-sraka commented 1 year ago

What about using main as an unstable track, but rather inviting users to checkout to a latest branch that points to the latest release tag? (and so define some lightweight release process)

hamishmack commented 1 year ago

We should add the branch to the ghcr references too (currently I think the GitHub actions just pick up the latest version of the ghcr files).

angerman commented 1 year ago

What about using main as an unstable track, but rather inviting users to checkout to a latest branch that points to the latest release tag? (and so define some lightweight release process)

That makes the nix develop command mor hairy as you need to embed the latest then. Id rather keep the nix develop github:input-output-hi/DevX working. Which means that needs to be the default branch.

angerman commented 1 year ago

We should add the branch to the ghcr references too (currently I think the GitHub actions just pick up the latest version of the ghcr files).

I think I changed the rules so that only the main branch triggers builds. And other branches need manual triggers.

andreabedini commented 1 year ago

The current wisdom seems to avoid long running living branches like develop. I guess we can find a way to merge into main only when tests pass? Or, if "test passing" is not enough to give us confidence, we can tag releases (and pre-releases perhaps).

angerman commented 1 year ago

I like this idea of auto-merging develop into main (or call it production), whenever automated checked on main or develop or what ever the primary development branch is go green. :+1:

This can be completely automated with GitHub action workflows, so it should be rather painless and give us some piece of mind that stuff still works.