Our final target is to be able to provide users with a port source tree in sync with the packages as available in our "current" repository; seem simple but there are a few implications that need to be managed properly:
I will recap a few things, for better clarity, and to be sure we all underdstand and agree about the flow:
recap from a previous discussion, "quarterly vs. latest":
- build <== temporary repo, feeded from synth, will exists only for the duration of the synth build.
- latest ==> to be used from tester /devs
- current ==> the main ghostbsd repository
- previous ==> the previous repository, to be used in case of undetected issues in "current"
~~~
flow:
1a) get/sync freebsd ports tree
1b) get/sync our own ports (limitation: our ports cannot overlap the existing freebsd ports)
1c) get/sync our own ports options
2a) start synth and build the temporarry "amd64/build" repository
2b) start synth and build the temporary "i386/build" repository
3a) move/copy "amd64/build" to "amd64/latest"
3b) move/copy "i386/build" to "i386/latest"
4a) latest is now usable from developers and testers only.
4b) devs meeting: if "no go", apply changes and continue from point 1 or 2 above, depending on issues.
5a) move/copy "amd64/current" to "amd64/previous"
5b) move/copy "i386/current" to "i386/previous"
(previous is a fallback repository, supposedly will contain the previous valid build).
6a) move/copy "amd64/latest" to "amd64/current"
6b) move/copy "i386/latest" to "i386/current"
("current" is the default repository for all users)
~~~
Considering the above flow, we will have always two source tree, the first that we will named "latest" for developers use, and synced with "latest" repository, and another source tree, named "current", to be make available for general public use by those users who want to further customize their installations.
It is implied that "latest src tree" will be moved/copied to "current src tree" at the same time we will move the corresponding pkgs repositories.
Thinking at that, I would be inclined to change the directory structure so that "latest" and "current" will include
all things that needs to be moved/copied at the same time:
amd64/latest/pkg
amd64/latest/ports
amd64/latest/options
so that we can move both the pkgs repo and the src tree at the same time to:
will result in:
amd64/current/pkg
amd64/current/ports
amd64/current/options
~~~
Mostly we need to focus on point (1) and decide exactly how/where/when manage the sources and the options:
Comments welcome!