[haiku-commits] Re: haiku: hrev50723 - src/tools/get_package_dependencies src/kits/package src/tools/create_repository_config build/jam src
- From: kallisti5 <kallisti5@xxxxxxxxxxx>
- To: haiku-commits@xxxxxxxxxxxxx
- Date: Fri, 09 Dec 2016 00:32:55 -0600
On 2016-12-09 00:02, Adrien Destugues wrote:
On Thu, Dec 08, 2016 at 10:31:48PM +0100, Ingo Weinhold wrote:
On 12/02/2016 10:20 AM, Axel Dörfler wrote:
> Am 02/12/2016 um 07:41 schrieb kallisti5@xxxxxxxxxxx:
> > * Once this stuff smooths out, we'll add UUID's to the
> > repo definitions for duplicate repo detection.
>
> Why didn't we simply take the URL as "pseudo" URL, ie. as identifier
> that does not reflect the actual URL? Much more pleasant to look at than
> a UUID, anyway.
As I already pointed out in the ticket, that's what it was intended to
be.
The URL of the original repository was used for sake of simplicity.
AFAICT
renaming/aliasing the attribute would have done the trick.
.
.
In order to do this (even before these changes) you need to:
- Build the package
- Upload it to the repo using "jam build-remote-test-repository'
- This creates a repo matching the repo definition file in local Haiku
sources
- Then build using that repo (which downloads the package again)
So, as far as I know, building with packages not commited to a repo,
never actually worked, and we already have support to build a repo
without committing the changes.
Correct as far as I know as well.
As it looks (please correct me, if I'm wrong), the commit breaks
building
Haiku with packages not yet committed to a package repository, since
now
get_package_dependencies downloads repository caches from the given
repository URLs. One of the design goals of the build system
integration
was, that it should be possible to build and test Haiku with a new
package
(particularly one of those used by the base system (like ICU))
*before*
actually committing the package to the package repository.
While looking through this I saw there were lots of good intentions (a
lot
undocumented) to the design of the repos, however it just ended up being
a
plate of spaghetti in some spots.
A good example was that the "pseudo url" ended up being used in core
aspects of the build. (get_package_dependencies)
I'm pretty sure it wasn't on purpose, but more a matter of forgetful
convenience
at the time. I literally had to diagram the differences between a
BRepositoryInfo, BRepositoryConfig, BRepositoryCache to finally figure
out what was going on.
https://dev.haiku-os.org/attachment/ticket/12917/haiku-repo.png
The fewer core 'required' things the repo definition has the easier it
will be
to grow the features of repositories in a non-breaking way.
The rest of the fields are pretty simple. Lets not try to use a url as a
UUID. At the end that is all it is... a random identifier of the
uniqueness
of a repository that end users will never see.
<rant>
I'm going a bit big-headed for a second, my day job is literally this
stuff.
(DevOps + Ops. Huge Red Hat Satellite Server deployments, custom ubuntu
apt
repo build pipelines, (yay aptly) etc).
This stuff can get crazy + confusing enough without worrying about
references
to detailed repo URL that "that aren't really URL's and shouldn't be
actually
used except for repo uniqueness"
</rant>
Anyway, those are my feels on this stuff.
-- Alex
Other related posts: