#How we handle Upstream Repos in the future?!

103 messages · Page 1 of 1 (latest)

stuck spoke
#

I will copy all repos that are still in development for GTNH and leave them as they are.
Then I create a additional GTNH branch in which I generate a runnable version for testing or until we get a new tag from the respective developers.
This will then be in our repo (Github Tag/version) and on the Nexus (For infrastructure like Daxxl and others) to be used in new nightly builds.
(until we get an adequate version from the original repo or site)

Anyone who would like to support me for this or a similar new workflow is welcome to do so constructively.

cobalt sparrow
#

already recreated it on a personal fork

#

thanks though

#

replace master with the default branch of upstream*

cobalt sparrow
#

@stuck spoke can you also make a note at the top of the description on the side for each upstream repo that says [UPSTREAM ACTIVE - PRS GO THERE]

paper juniper
#

the trick with these is just keeping our default branch perfectly in line with upstream, then maintaining is easy from there. its conceptually the same as how we do our repos;

  • dev branch for our nightly tags
  • default branch for real releases, its just that we dont do these so its controlled by upstream
#

so our default branch just perfectly reflects their state of things, we dont get to choose when we make new real releases and just keep in line with their choices

cobalt sparrow
#

also our Baubles-Expanded fork needs syncing

paper juniper
#

hmm its nice that its automated but im not sure that i like that it would basically "wrap" every upstream commit with a pr on our repo instead of just syncing directly

cobalt sparrow
#

can have it rebase instead

paper juniper
#

yeah thats true

#

ill have to play around with it some on a random repo of mine to check it out

cobalt sparrow
#

kk

cobalt sparrow
#

@silk kindle should we be fine to set our EFR fork's default branch to the gtnh branch so that we can use our workflows?

paper juniper
#

@cobalt sparrow what happened with EFR. it seems completely against everything discussed here and in prior conversations

#

now we are reviewing and merging cloned PRs on our fork, it looks like we are trying to take the repo over from roadhog, i dont understand it

cobalt sparrow
#

Changing it to more how we handle MUI2

#

I already talked it over with Roadhog

#

Our prs will be tested in our repo, then I will pr them back to upstream

paper juniper
#

so we are just fully using our fork, and not ever using upstream releases in the NH pack

cobalt sparrow
#

Depends on timing since he has been working on rewriting upstream

paper juniper
#

@foggy snow for visibility

#

and @sudden basin

foggy snow
#

i'm lost kekw

paper juniper
#

im pretty lost too

cobalt sparrow
#

tldr: just use our fork

foggy snow
#

if RoadHog knows we don't try to steal his mod, then it's fine i guess

cobalt sparrow
#

yeah, i basically just have to ignore any changes we make to the buildscript

paper juniper
#

over time this will quickly become just two separate mods

#

and roadhog is really okay with us basically deciding what is going in the mod with upstream syncs?

#

i really dont like this PR cloning business either

#

should I just close my upstream PR if thats how we are doing it then

#

or do i need to now address a review in our cloned PR by committing to the upstream PR then resyncing again

cobalt sparrow
#

Well how do you suppose I do it?
Without having prs on our fork, it was hard to keep track of what was merged and what wasnt

paper juniper
#

what was the issue with upstream PRs, then a fork of ours with a disposable GTNH branch that we could test our own PRs in if we felt the need, and then contributing reviews that roadhog can see to the upstream PRs on the upstream repo

#

we can still make our own GTNH releases if the need arises

#

this is like what we do with tgregworks

cobalt sparrow
#

We can go back to that once roadhog completes the rewrite

paper juniper
#

what is actually preventing us from doing that now? the repo is stalled sure, but thats what a gtnh branch is for

cobalt sparrow
#

i think it was related to the workflows and the weird gradle setup roadhog uses

#

i kept an upstream branch that matches upstream so all that is changed is gtnh = master now

paper juniper
#

and this rewrite includes redoing the gradle setup? or how will that help in that regard

cobalt sparrow
#

the rewrite is to incorporate HogUtils

#

no idea on what else

#

Nuke it from the pack, idc

paper juniper
#

i dont really see how that rewrite changes anything about how we can manage the repo

paper juniper
#

i understand im not trying to pin blame

#

im just trying to understand why things are the way they are rn

#

sorry if im coming across overly blunt

silk kindle
#

Because roadhog took on an overly ambitious refactor, doesn't want to merge prs during that, and got burnt out.

#

So as to avoid waiting on him forever, temporarily use our branch until he's done and accepting prs again

paper juniper
#

do we really need to do all of this though or can we treat it like a standard fork with an active upstream with the caveat that we will pull our own PRs to a gtnh branch for making gtnh-testing tags

#

that then may just so happen to find their way into a stable if things take as long as they seem like they will

silk kindle
#

We should sync back upstream when he's done

#

There's no reason steady state to ship a fork instead of his on cf/mn etc

paper juniper
#

wdym? i dont understand the last message

silk kindle
#

Diverging long term isn't acceptable. They should have control over their mod and distribution. We shouldn't take downloads away from them unless it's in coordination with them for something that's hopefully one off

paper juniper
#

yes fully agree

silk kindle
#

Once his refactor is done, we should sync back. If we use our fork for nightlies that's fine. But ideally any major release is done in coordination with them

cobalt sparrow
#

but if he is not ready, then there is nothing we can do

paper juniper
#

well first of all i think we need to make sure he is okay with us shipping a version other than his in this stable, has that been discussed already?

silk kindle
#

I believe caedis did, yes

cobalt sparrow
#

Yes, several times

#

and I have made it clear to him that we will sync back once his repo is ready

#

we are basically using our repo to test the prs

#

that is still true

#

We have so far added nothing new that isnt in the prs he has

paper juniper
#

ok, then if thats what we're doing we either need to keep up with upstream only PRs and pull them into a gtnh branch like before, OR we need to only PR to our own with the plan of syncing again later like you said. i dont think this system right now of doing the same PRs in both makes sense

cobalt sparrow
#

I did that just for keeping track of merged prs in our fork

paper juniper
#

im left here with a PR for upstream and a code review on your copy of my PR and i have no idea what im supposed to do to address it

cobalt sparrow
#

Make the change upstream and I pull it down

paper juniper
#

ok then going forward i think we need to announce to people to review the upstream PR and not our fork, it kind of reduces the point of PRing upstream if we are only giving roadhog half the story in his repo

cobalt sparrow
#

almost like I referenced the upstream pr for a reason

paper juniper
#

well people didnt follow it, though i cant really blame them for not knowing what to do here

cobalt sparrow
#

fair

paper juniper
#

ok so let me type up my understanding of all of this now

sudden basin
#

it could mean anything

silk kindle
#

Feels like a longer lived pre/dev Branch?

paper juniper
#

efr is stalled because of reasons unrelated to nh. because of this, in the mean time we are going to be merging PRs into our fork's main branch so that we can get the changes needed in efr for 2.8. this has been communicated with roadhog and he is fine with us using our own version of efr for this stable. PRs should still be made upstream, and PR reviews should also be done upstream. once a PR is deemed as ready for merge in upstream by a gtnh dev, then we can include it in our main branch. once things are caught up upstream, then we can restore things to the way we maintain normal active upstream repos

#

is this accurate?

cobalt sparrow
#

sure

paper juniper
#

do we really need to copy the PRs in this description though?

#

at least pre-emptively

#

when its time for us to merge, sure

cobalt sparrow
#

Its mainly so that upstream has a line back to the pr that was tested

paper juniper
#

well in the description i gave, the upstream pr is the one that was tested

cobalt sparrow
#

I think I was running into a git issue related to pulling an upstream pr and then trying to merge it into our gtnh branch

#

mismatched histories i think

#

this was after it had already been merged before

paper juniper
#

did you try to rebase merge?

cobalt sparrow
#

cant remember

#

i tried to mainly stick to squash merges

paper juniper
#

i think its okay to clone the PR to make it simpler to merge if that workflow just works better

#

but i think having them open and lingering is just inviting problems

#

like opening the pr on our fork once the upstream real pr has been "approved for nh" or whatever, just to then immediately merge