[PATCH]Create CD/DVD that include update RPM packages(exclude old RPM packages).
by ぽちけん
Hi, everyone.
This pungi's patch is able to create easily CD/DVD that inclde update RPM packages (exclude old PRM packages automatically).
Apply a patch and add line below to yum.conf.f7.i386 .
#-------------------------
exclude=*debuginfo*
[fedorai-update]name=Fedora 7 - updatebaseurl=http://[mirror site URL]/fedora/updates/7/i386/enabled=1gpgcheck=0
#-------------------------
Example of execution.
#pungi -c /etc/pungi/f7-fedora.i386
We can create a DVD that use a new kernel package and update packages.
And to rebuilt anaconda installer that use a new kernel.
Have a nice day!
Best regards.
--- /usr/lib/python2.5/site-packages/pypungi/gather.py 2007-05-26 07:15:48.000000000 +0900+++ /usr/lib/python2.5/site-packages/pypungi/gather.py.new 2007-06-16 07:14:07.000000000 +0900@@ -387,3 +387,54 @@ shutil.copy2(path, local) os.link(local, os.path.join(pkgdir, os.path.basename(remote)))+++ # Add removeOldPackages 20070616 Pochi_ken <pochi_ken(a)hotmail.com>+ def removeOldPackages(self):+ """Cycle through the check of rpms and+ update the package objects and delete the old package objects."""++ pkgdir = os.path.join(self.config.get('default', 'destdir'),+ self.config.get('default', 'version'), + self.config.get('default', 'flavor'), + self.config.get('default', 'arch'), + self.config.get('default', 'osdir'),+ self.config.get('default', 'product_path'))+ local = sel!
f.config.get('default','cachedir') + '/'+ localfiles = os.listdir(local)+ trot = yum.rpmUtils.transaction.initReadOnlyTransaction()+ rpmlst = []+ for filename in localfiles:+ rpmfile = local + filename+ try:+ hdr = yum.rpmUtils.miscutils.hdrFromPackage(trot, rpmfile)+ rpmlst.append((rpmfile, hdr))+ self.logger.info("Reading header info from %s" % rpmfile)+ except:+ self.logger.info("Could not read header info in %s" % rpmfile)+ rpmlst.sort()+ c = 0+ oldrpmlst = []+ while (c < (len(rpmlst)-1)):+ i = 1+ while (i < 5):+ cRPMpkg = yum.rpmUtils.miscutils.pkgTupleFromHeader(rpmlst[c][1])+ nRPMpkg = yum.rpmUtils.miscutils.pkgTupleFromHeader(rpmlst[c+i][1])+ if (cRPMpkg[0] == nRPMpkg[0]) and (cRPMpkg[1] == nRPMpkg[1]):+ cRPMEVR = cRPMpkg[2:]+ !
nRPMEVR = nRPMpkg[2:]+ if yum.rp!
mUtils.m
iscutils.compareEVR(nRPMEVR, cRPMEVR) == 1:+ oldrpmlst.append(rpmlst[c][0])+ else:+ oldrpmlst.append(rpmlst[c+i][0])+ rpmlst.pop(c+i)+ c = c-1+ i = i+1+ if ((c+i) > (len(rpmlst)-1)):+ i = 5+ c = c+1+ for filename in oldrpmlst:+ self.logger.info("Old package %s is removed." % filename)+ os.remove(filename)+ os.remove(os.path.join(pkgdir, os.path.basename(filename)))+ # END removeOldPackage--- /usr/bin/pungi 2007-05-31 01:30:29.000000000 +0900+++ /usr/bin/pungi.new 2007-06-13 22:21:15.000000000 +0900@@ -101,13 +101,17 @@ # Actually do work. if not config.get('default', 'arch') == 'source':+ mygather = pypungi.gather.Gather(config, pkglist) if opts.do_all or opts.do_gather:- mygather = pypungi.gather.Gather(config, pkglist) !
mygather.getPackageObjects() mygather.downloadPackages()- if config.getboolean('default', 'getsource'):- mygather.getSRPMList()- mygather.downloadSRPMs()++ if opts.do_all or opts.do_remove:+ mygather.removeOldPackages()++ if config.getboolean('default', 'getsource'):+ mygather.getSRPMList()+ mygather.downloadSRPMs() mypungi = pypungi.pungi.Pungi(config) @@ -153,6 +157,8 @@ help="Enable ALL stages") parser.add_option("-G", action="store_true", default=False, dest="do_gather", help="Flag to enable processing the Gather stage")+ parser.add_option("-R", action="store_true", default=False, dest="do_remove",+ help="Flag to enable processing the Remove stage") parser.add_option("-B", action="store_true", default=False, dest="do_buildinstall", help="Flag to enable processing the BuildInstall stage") par!
ser.add_option("-P", action="store_true", default=False, dest=!
"do_pack
ageorder",@@ -164,7 +170,7 @@ (opts, args) = parser.parse_args()- if opts.do_gather or opts.do_buildinstall or opts.do_packageorder or opts.do_splittree or opts.do_createiso:+ if opts.do_gather or opts.do_remove or opts.do_buildinstall or opts.do_packageorder or opts.do_splittree or opts.do_createiso: opts.do_all = False if len(sys.argv) < 2: parser.print_help()
_________________________________________________________________
Windows Vista ついに発売!
http://search.msn.co.jp/results.aspx?q=windows+vista&FORM=MSNH&cp=65001
16 years, 10 months
Re: problems installing on sata controllers
by Earl
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Sat, 16 Jun 2007 11:05:37 -0400 Francisco André
<distro(a)getsmart.com.br> wrote:
>Hi all! I'm having some problems when I install fedora 7 using
>kickstart in a custom distro.
>
>1 - It never install if the machine use a sis contrller IDE or
>SATA. It seems that the partitions is created but whrn anaconda
> try to format the partitions all partitions is removed again
> and the installer only gives me a reboot option!
Sonds like more of a general hardware compatibility / installation
issue to me. Try flipping BIOS values for the SATA stuff... Look
for somehting like "compatibility" mode or similar.
>2 - I'm need to put some custom packages on the distro. I've
> edited the comps-f7.xml and add the custom packages, but when
> the install starts anaconda complains that all the custom
> packages that I add was not found on the cd. I'm sure that
> the packages is on the Fedora directory of the CD.
I've not even seen F7 yet but in FC6 land, sounds like 'creatrepo'
was skipped (total guess).
Earl
-----BEGIN PGP SIGNATURE-----
Note: This signature can be verified at https://www.hushtools.com/verify
Version: Hush 2.5
wkYEARECAAYFAkZ0Y0UACgkQk7+e+4lPSm0SxACeP88x5fnPt2+7unwL6xnl0ptLWGQA
nRiJrln7Up10wu78xJQ6HhXZl0mh
=tz0m
-----END PGP SIGNATURE-----
16 years, 10 months
problems installing on sata controllers
by Francisco André
Hi all! I'm having some problems when I install fedora 7 using kickstart
in a custom distro.
1 - It never install if the machine use a sis contrller IDE or SATA. It
seems that the partitions is created but whrn anaconda try to format the
partitions all partitions is removed again and the installer only gives
me a reboot option!
2 - I'm need to put some custom packages on the distro. I've edited the
comps-f7.xml and add the custom packages, but when the install starts
anaconda complains that all the custom packages that I add was not found
on the cd. I'm sure that the packages is on the Fedora directory of the CD.
Thanks for you help!
16 years, 10 months
Build once, serve many
by Axel Thimm
Hi,
some packages are best build for all releases once only like for
example firmware, game data and other packages that you know will not
change from release to release.
Currently such operations are made manually and one needs to find the
right person to talk to. I think it would be more consistent if koji
and friends allowed one to tag a package as such. Perhaps koji's
tagging is alread enought to "hardlink" a package source and
binary-wise across releases?
If so, please enlighten me with the mechanism details, if not, please
consider this an RFE. :)
--
Axel.Thimm at ATrpms.net
16 years, 10 months
pungi used to create CD that includes a kickstart file
by Martin Steinmann
Using pungi on F7 I would like to create a CD that includes a kickstart
file to be used during installation of a system using this CD.
Is there a way to tell pungi to put a ks.cfg file into the root of the
CD and modify isolinux.cfg?
Thanks
--martin
16 years, 10 months
dropping legacy mock configs in next release
by Michael E Brown
The next mock rpm release (0.7.2) will drop configs for RH 7.3/8/9 and
Fedora Core releases < 6.
These configs will remain in the git repository under etc/legacy/ for a
while yet. Will probably remove them on the next major release. Going
forward, policy for mock will be that we maintain mock configs for
currently supported operating systems.
If anybody else wishes to take over and release a 'mock-legacy-configs'
RPM, please let me know, as you are welcome to it. I'm sure that there
are people out there still using these configs, but I think that those
continuing to use these configs can probably maintain their own local
copy.
--
Michael
16 years, 10 months
pungi newbie comments
by Skahan, Vince
Let me just start with 'Wow' :-)
After a few false starts figuring out how things were put together under
the hood between yum and pungi, I successfully got a respin of a fully
patched FC6+updates done in only a few hours start to finish. 'Very'
cool stuff.
Biggest problem I had was figuring out the admittedly (in hindsight)
very few commands/edits needed to get the job done, as the docs in the
wiki and other web references I could have were very cryptic at best.
Some kind of a "getting started with pungi' doc with a simple, clear,
concise, complete set of steps to follow sure would have helped.
Is there such a document ? Any interest in me drafting what I did to
start cooking up such a newbie's guide ?
Lastly, is there any plan to have pungi be able to build live-cd images
as well as the distro images ? I have a coworker who's fiddling around
with the live-cd creator stuff in FC7 and we both thought that unifying
the toolset might be worth thinking about.
------ vince.skahan(a)boeing.com ------
16 years, 10 months
[PATCH 1/3] mock cvs 2007-03: cross-compile support
by Ken MacLeod
This patch adds support for building RPMs for cross-compile targets.
It adds an option '--toolkit' to specify a cross-development toolkit
(and version) config for toolkits like DENX ELDK, TimeSys, MontaVista,
or Wind River.
The chroot (-r) configuration needs to supply the 'target_arch' and
cross-distribution-provided host tools yum archive (those packages
that normally install in the host system). [These should move over to
the --toolkit config to allow unmodified host mock cfgs.]
The --toolkit configuration file supplies the following variables [to
be added to a doc somewhere]:
base_arch (ppc, arm, mips)
for the given 'target_arch' (eg. ppc_74xx, ppc_85xx)
macros
additional rpmbuild macros
tk_rpmmacros
points to where to put macros if the toolkit needs that (ELDK)
tk_env
set in the environment before calling rpmbuild (or the toolkit's
equivalent) to set PATH, CROSS_COMPILE, etc.
tk_fixup_cmd
yum command (RPM to install) in the host (/) chroot after all else
to fix things up for cross-building [should go away when everyone
clean-builds, right?]
tk_cross_chroot_setup_cmd
'buildsys-build' to install for the /cross root (complete yum
command)
tk_cross_yum.conf
yum.conf for the /cross root
tk_target_chroot_chroot_cmd
'buildsys-build' to install for the /target root (complete yum
command)
tk_target_yum.conf
yum.conf for the /target root
---
mock.py | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 87 insertions(+), 19 deletions(-)
diff --git a/mock.py b/mock.py
index fc1b6aa..f072d78 100644
--- a/mock.py
+++ b/mock.py
@@ -246,15 +246,29 @@ class Root:
self._prep_install()
self.yum(cmd)
+
+ cross_cmd = cmd
+ for cross_fs in ('cross', 'target'):
+ if self.config.has_key('tk_' + cross_fs + '_yum.conf'):
+ if cmd[0:7] == 'install':
+ cross_cmd = self.config['tk_' + cross_fs + '_chroot_setup_cmd']
+ self.yum(cross_cmd, cross_fs)
+
+ if self.config.has_key('tk_fixup_cmd') and cmd[0:7] == 'install':
+ self.yum(self.config['tk_fixup_cmd'])
+
self._prep_build()
if create_cache:
self.pack()
- def yum(self, cmd):
+ def yum(self, cmd, crossdir=None):
"""use yum to install packages/package groups into the chroot"""
# mock-helper yum --installroot=rootdir cmd
- basecmd = '%s --installroot %s' % (self.config['yum'], self.rootdir)
+ yumrootdir = self.rootdir
+ if crossdir is not None:
+ yumrootdir = os.path.join(yumrootdir, crossdir)
+ basecmd = '%s --installroot %s' % (self.config['yum'], yumrootdir)
self._mount() # check it again
command = '%s %s' % (basecmd, cmd)
@@ -282,8 +296,9 @@ class Root:
shutil.copy2(srpm, dest)
rootdest = os.path.join(self.builddir, 'originals', srpmfn)
- cmd = "%s -c 'rpm -Uvh --nodeps %s' %s" % (self.config['runuser'],
- rootdest, self.config['chrootuser'])
+ cmd = "%s -c '%s rpm -Uvh --nodeps %s' %s" \
+ % (self.config['runuser'], self.config['tk_env'],
+ rootdest, self.config['chrootuser'])
(retval, output) = self.do_chroot(cmd)
if retval != 0:
@@ -303,8 +318,10 @@ class Root:
chrootspec = spec.replace(self.rootdir, '') # get rid of rootdir prefix
# grab the .spec file from the specdir
# run rpmbuild -bs --nodeps specfile
- cmd = "%s -c 'rpmbuild -bs --target %s --nodeps %s' %s" % (self.config['runuser'],
- self.target_arch, chrootspec, self.config['chrootuser'])
+ cmd = "%s -c '%s rpmbuild -bs %s --nodeps %s' %s" \
+ % (self.config['runuser'], self.config['tk_env'],
+ self.config['tk_target_option'], chrootspec,
+ self.config['chrootuser'])
(retval, output) = self.do_chroot(cmd)
if retval != 0:
@@ -355,9 +372,10 @@ class Root:
srpmfn = os.path.basename(srpm_in)
# run with --nodeps b/c of the check above we know we have our build
# deps satisfied.
- cmd = "cd /;%s -c 'rpmbuild --rebuild --target %s --nodeps %s' %s" % (
- self.config['runuser'], self.target_arch, srpm_in,
- self.config['chrootuser'])
+ cmd = "cd /;%s -c '%s rpmbuild --rebuild %s --nodeps %s' %s" \
+ % (self.config['runuser'], self.config['tk_env'],
+ self.config['tk_target_option'], srpm_in,
+ self.config['chrootuser'])
self.state("build")
@@ -566,6 +584,17 @@ class Root:
return rpmUtils.miscutils.unique(reqlist)
+ def write_yum_conf(self, yum_conf, crossdir=''):
+ if os.path.exists( os.path.join(self.rootdir, crossdir, 'etc', 'yum.conf')):
+ yum_conf_path = os.path.join('/', crossdir, 'etc', 'yum.conf')
+ cmd = "chown %s.%s %s" % (self.config['chrootuid'],
+ self.config['chrootgid'], yum_conf_path)
+ self.do_chroot(cmd, fatal = True)
+ yumconf = os.path.join(self.rootdir, crossdir, 'etc', 'yum.conf')
+ yumconf_fo = open(yumconf, 'w')
+ yumconf_content = yum_conf
+ yumconf_fo.write(yumconf_content)
+
def _prep_install(self):
"""prep chroot for installation"""
# make chroot dir
@@ -581,6 +610,12 @@ class Root:
os.path.join(self.rootdir, 'var/lock/rpm'),
os.path.join(self.rootdir, 'etc/yum.repos.d')]:
self._ensure_dir(item)
+ if self.config.has_key('tk_cross_yum.conf'):
+ self._ensure_dir(os.path.join(self.rootdir, 'cross/etc'))
+ self._ensure_dir(os.path.join(self.rootdir, 'cross/var/lock/rpm'))
+ if self.config.has_key('tk_target_yum.conf'):
+ self._ensure_dir(os.path.join(self.rootdir, 'target/etc'))
+ self._ensure_dir(os.path.join(self.rootdir, 'target/var/lock/rpm'))
self._mount()
@@ -623,15 +658,12 @@ class Root:
fo.close()
# write in yum.conf into chroot
- if os.path.exists( os.path.join(self.rootdir, 'etc', 'yum.conf')):
- cmd = "chown %s.%s /etc/yum.conf" % (self.config['chrootuid'],
- self.config['chrootgid'])
- self.do_chroot(cmd, fatal = True)
- yumconf = os.path.join(self.rootdir, 'etc', 'yum.conf')
- yumconf_fo = open(yumconf, 'w')
- yumconf_content = self.config['yum.conf']
- yumconf_fo.write(yumconf_content)
-
+ self.write_yum_conf(self.config['yum.conf'])
+ if self.config.has_key('tk_cross_yum.conf'):
+ self.write_yum_conf(self.config['tk_cross_yum.conf'], 'cross')
+ if self.config.has_key('tk_target_yum.conf'):
+ self.write_yum_conf(self.config['tk_target_yum.conf'], 'target')
+
# files in /etc that need doing
filedict = self.config['files']
for key in filedict:
@@ -703,7 +735,8 @@ class Root:
self.do_chroot(cmd, fatal = True)
# rpmmacros default
- macrofile_out = '%s%s/.rpmmacros' % (self.rootdir, self.homedir)
+ macrofile_out = '%s%s/%s' % (self.rootdir, self.homedir,
+ self.config['tk_rpmmacros'])
if not os.path.exists(macrofile_out):
rpmmacros = open(macrofile_out, 'w')
rpmmacros.write(self.config['macros'])
@@ -740,6 +773,8 @@ def command_parse():
help="do not clean chroot before building", default=True)
parser.add_option("--arch", action ="store", dest="arch",
default=None, help="target build arch")
+ parser.add_option("--toolkit", action ="store", dest="toolkit",
+ default=None, help="cross-development toolkit config file name")
parser.add_option("--debug", action ="store_true", dest="debug",
default=False, help="Output copious debugging information")
parser.add_option("--resultdir", action="store", type="string",
@@ -778,6 +813,7 @@ def setup_default_config_opts(config_opts):
config_opts['debug'] = False
config_opts['quiet'] = False
config_opts['target_arch'] = 'i386'
+ config_opts['toolkit'] = None
config_opts['files'] = {}
config_opts['yum.conf'] = ''
config_opts['macros'] = """
@@ -790,6 +826,13 @@ def setup_default_config_opts(config_opts):
config_opts['files']['/etc/resolv.conf'] = "nameserver 192.168.1.1\n"
config_opts['files']['/etc/hosts'] = "127.0.0.1 localhost localhost.localdomain\n"
+ # cross-development config options, default is native
+ config_opts['tk_env'] = ''
+ config_opts['tk_rpmmacros'] = '.rpmmacros'
+ # --target is late-bound in main() to allow command line or config
+ # override
+ # config_opts['tk_target_option'] = '--target %s' % config_opts['target_arch']
+
# caching-related config options
config_opts['rebuild_cache'] = False
config_opts['use_cache'] = False
@@ -821,6 +864,22 @@ def set_config_opts_per_cmdline(config_opts, options):
if options.uniqueext:
config_opts['unique-ext'] = options.uniqueext
+ if options.toolkit:
+ config_opts['toolkit'] = options.toolkit
+
+def toolkit(config_path, config_opts, toolkit):
+ # read in toolkit config file by toolkit name
+ if toolkit.endswith('.cfg'):
+ cfg = '%s/%s' % (config_path, toolkit)
+ else:
+ cfg = '%s/%s.cfg' % (config_path, toolkit)
+
+ if os.path.exists(cfg):
+ execfile(cfg)
+ else:
+ error("Could not find config file %s for toolkit %s" % (cfg, toolkit))
+ sys.exit(1)
+
def do_clean(config_opts, init=0):
my = None
try:
@@ -946,7 +1005,16 @@ def main():
# cmdline options override config options
set_config_opts_per_cmdline(config_opts, options)
+
+ if config_opts['toolkit'] is not None:
+ toolkit(config_path, config_opts, config_opts['toolkit'])
+ # cmdline options override toolkit config options too
+ set_config_opts_per_cmdline(config_opts, options)
+
+ if not config_opts.has_key('tk_target_option'):
+ config_opts['tk_target_option'] = '--target %s' % config_opts['target_arch']
+
# do whatever we're here to do
if args[0] == 'clean':
# unset a --no-clean
16 years, 10 months
[PATCH][PUNGI] Irregularities with the stage selection
by Joel Andres Granados
Hi list:
Pungi has a really cool characteristic that allows the user to specify
the stage that he/she wants to execute. The stages are: Gather(-G),
Buildinstall(-B), Package Order(-P), Splittree (-S) and createisos
(-I). It is also implemented in a way that it creates the possibility
for the user to specify non continuous stages (ex. pungi -G -I). This
can make pungi behave in an unwanted way.
To avoid this situation there is a patch attached that defines a range
instead of individual stages. In other words if the user specifies
`pungi -G -I` pungi will execute -G -B -P -S and -I. Moreover if the
user specifies `pungi -G` only the gathering stage will be executed.
Another situation with the stages is that pungi does not verify if the
stage that the user is specifying can be executed. So the user might
execute the -I stage without having executed the -G stage (to say
something stupid). IMO a function that at least checks if the
directories that are needed are where they are suppose to be can be
considered. Just a thought :)
Comments greatly appreciated :)
Regards.
--
Joel Andres Granados
diff -ur -x .hg pungi/pungi pungi_stages/pungi
--- pungi/pungi 2007-05-30 16:03:58.000000000 +0200
+++ pungi_stages/pungi 2007-05-30 17:56:14.000000000 +0200
@@ -101,7 +101,7 @@
# Actually do work.
if not config.get('default', 'arch') == 'source':
- if opts.do_all or opts.do_gather:
+ if opts.do_gather:
mygather = pypungi.gather.Gather(config, pkglist)
mygather.getPackageObjects()
mygather.downloadPackages()
@@ -111,17 +111,17 @@
mypungi = pypungi.pungi.Pungi(config)
- if opts.do_all or opts.do_buildinstall:
+ if opts.do_buildinstall:
mypungi.doBuildinstall()
mypungi.doGetRelnotes()
- if opts.do_all or opts.do_packageorder:
+ if opts.do_packageorder:
mypungi.doPackageorder()
- if opts.do_all or opts.do_splittree:
+ if opts.do_splittree:
mypungi.doSplittree()
- if opts.do_all or opts.do_createiso:
+ if opts.do_createiso:
mypungi.doCreateSplitrepo()
mypungi.doCreateIsos()
@@ -133,10 +133,10 @@
config.get('default', 'version'),
config.get('default', 'flavor'),
'source', 'SRPM')
- if opts.do_all or opts.do_splittree:
+ if opts.do_splittree:
mypungi.doSplitSRPMs()
- if opts.do_all or opts.do_createiso:
+ if opts.do_createiso:
mypungi.doCreateIsos()
if __name__ == '__main__':
@@ -165,7 +165,29 @@
(opts, args) = parser.parse_args()
if opts.do_gather or opts.do_buildinstall or opts.do_packageorder or opts.do_splittree or opts.do_createiso:
- opts.do_all = False
+ stMin = 0#Maximum stage
+ stMax = 4#Minimum stage
+ #chosen stages
+ choSt=[ opts.do_gather, opts.do_buildinstall, opts.do_packageorder, opts.do_splittree, opts.do_createiso ]
+
+ #Finding the minimum stage
+ for i in range(len(choSt)):
+ if choSt[i]:
+ stMin = i
+ break
+ #Finding the maximum stage
+ for i in range(len(choSt)):
+ if choSt[len(choSt)-1-i]:
+ stMax = len(choSt)-1-i
+ break
+ #Select what we are going to execute
+ for i in range(len(choSt)):
+ if i<stMin or i>stMax:choSt[i]=False
+ else:choSt[i]=True
+ [opts.do_gather,opts.do_buildinstall,opts.do_packageorder,opts.do_splittree,opts.do_createiso] = choSt
+ else:
+ opts.do_gather = opts.do_buildinstall = opts.do_packageorder = opts.do_splittree = opts.do_createiso= True
+
if len(sys.argv) < 2:
parser.print_help()
sys.exit(0)
16 years, 10 months
[RFC] mock release plans
by Michael E Brown
All,
It has been a bit since we have done a mock release and a lot has
happened. This email is to serve as a sync-point so that everybody is on
the same page regarding the release.
Background information:
Clark has done a lot of work to get a public git repository and
project page set up. All that info is here:
Trac Project page: https://hosted.fedoraproject.org/projects/mock
Gitweb: http://git.fedoraproject.org/?p=hosted/mock;a=summary
mock git repository:
git clone git://git.fedoraproject.org/git/hosted/mock mock
Proposal #1: branch policy
We currently have no branch policy in place, nor a branch strategy.
To rectify this, Clark and I propose the following branch policy:
-- Branches will be created on an as-required basis.
-- as-required means that there is a consensus that we need one (as
defined by current project maintainers)
Corollary:
-- we will not use branches as a developer communication tool. If
anybody has patches that need to be merged, use one of the following
methods:
-- post to mailing list for import by 'git am'
-- post publicly-accessible git repository that can be pulled by
one fo the maintainers.
Proposal #2: branch cleanup
In line with the branch policy above, we want the branch list to
look like this:
$ git branch -r
origin/HEAD
origin/master -- main line of development
origin/mock-0-6-branch -- for fixes to historical releases
origin/mock-experimental-launcher -- experimental development for
launcher-based mock.
To that end, here is the current git branch list and the proposed
disposition for each branch:
origin/HEAD
origin/master
origin/mock -- TO BE REMOVED (mistake)
origin/mock-0-6-branch
origin/mock-0-6-jesse -- TO BE REMOVED (per policy)
origin/mock-0.6.0-jesse -- TO BE REMOVED (per policy)
origin/mock-0.7 -- rename to mock-experimental-launcher
origin/origin -- TO BE REMOVED (mistake)
The branches listed as 'mistake' above were never intended to be
created, but rather were result of various parties learning how git
works. :) They will be removed. The *-jesse branches will be removed in
favor of communicating using separate repos, where necessary.
Proposal #3: mock 0.7 release
We are overdue for a release. To that end, I will tag the current
master branch as 0.7 for release. I will push mock 0.7 to rawhide. After
a period of time in rawhide (one week?), I will create a release for
Fedora 7 to push into updates-testing/. Announcements will be sent to
the lists for each of these releases.
We will implement the above after signoff by Clark Williams and Jesse
Keating.
signed-off-by: Michael Brown <mebrown(a)michaels-house.net>
--
Michael
16 years, 10 months