I originally thought that the process for publishing consolidation IPS
repositories into the main repo would be such that arguments would be
used to pass in the URL for each consolidation repo for publishing. In
fact, the set-publisher command does this if called directly:
./set-publisher.sh -b $(BUILDID) -d $(SETPUBLISHERDIR) -p $(REPO)
$(REPO1) $(REPO2) ... $(REPON)
But the makefile for calling the set-publisher.sh script lists each
consolidation explicitly:
publish_setpublisher: $(SETPUBLISHERDIR)
PYTHONPATH=$(PYTHONPATH) ./set-publisher.sh -b $(BUILDID) \
-d $(SETPUBLISHERDIR) -p $(REPO) $(ON_REPO) $(INSTALL_REPO)
The makefile doesn't allow the publishing of a single consolidation
repository. This would be useful in order to publish consolidation
repositories asynchronously. An example of it's usefulness would be if
several consolidation repositories are ready for publishing, but 1 or 2
are not. Instead of waiting for the stragglers to start the whole
process, the ready repositories could be published first.
In addition, as more consolidations move to IPS, the Makefile will
require modifying to add the new consolidations to the list. I think it
would be desirable to edit as little source as possible as new
consolidations get added.
So my first question is: Is it required that all consolidations be
published together, or can they be run through set-publisher.sh
individually?
The second question (related to the first):
I'm wondering whether it would be more practical/flexible to instead
pass in the consolidation URLs in a single ENV variable, so that the
makefile doesn't need to be modified for each new consolidation that
comes into the build:
CONSOLIDATION_REPOS=
publish_setpublisher: $(SETPUBLISHERDIR)
PYTHONPATH=$(PYTHONPATH) ./set-publisher.sh -b $(BUILDID) \
-d $(SETPUBLISHERDIR) -p $(REPO) $(CONSOLIDATION_REPOS)
CONSOLIDATION_REPOS could be set a number of ways outside of the
makefile, but in a way that does not require source changes.
I see that the disadvantage of this method is that there is no default
way to publish all consolidation repos. If you did not have
CONSOLIDATION_REPOS set to anything, the make would fail since
set-publisher.sh would not have enough args. But using the default
requires setting up local IPS repositories for each consolidation. By
the time we have 6 or 7 consolidations in their own repositories,
someone using the default would have to set up these repositories
themselves.
One compromise (again assuming that you can publish one repository at a
time) would be a combination of having each consolidation repository
defined, and having a combined variable that can be overriden. The
Makefile would look like:
REPO=http://localhost:10000
ON_REPO=http://localhost:20000
INSTALL_REPO=http://localhost:20001
X_REPO=http://localhost:20002
GNOME_REPO=http://localhost:20003
L10N_REPO=http://localhost:20004
CONSOLIDATION_REPOS=\
ON_REPO \
INSTALL_REPO \
X_REPO \
GNOME_REPO \
L10N_REPO
publish_setpublisher: $(SETPUBLISHERDIR)
PYTHONPATH=$(PYTHONPATH) ./set-publisher.sh -b $(BUILDID) \
-d $(SETPUBLISHERDIR) -p $(REPO) $(CONSOLIDATION_REPOS)
In this way, there is still a default, but it can be overridden by
setting CONSOLIDATION_REPOS externally to the list of desired repositories.
So in looking ahead, does it make any sense to change the
util/publish/Makefile now in anticipation of more consolidation
repositories?
-- Alan
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss