Added draft on initial announce email as I keep adding to it.
This commit is contained in:
		
							parent
							
								
									77684f0271
								
							
						
					
					
						commit
						7e62446b3e
					
				
							
								
								
									
										107
									
								
								ANNOUNCE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										107
									
								
								ANNOUNCE
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,107 @@ | |||||||
|  | Announcing lorax-0.1 | ||||||
|  | 
 | ||||||
|  | "I am the Lorax, I speak for the trees." | ||||||
|  | 
 | ||||||
|  | (and images) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | WHAT IS IT | ||||||
|  | ---------- | ||||||
|  | 
 | ||||||
|  | lorax is a replacement for the buildinstall maze of scripts and tools we | ||||||
|  | have in anaconda.  It is written in Python in the hopes that it will be | ||||||
|  | easier to hook in to programs like pungi. | ||||||
|  | 
 | ||||||
|  | It also moves the tools that generate installation images in to a separate | ||||||
|  | project from anaconda itself. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | WHAT DOES IT REPLACE? | ||||||
|  | --------------------- | ||||||
|  | 
 | ||||||
|  | All of these things from the anaconda source tree: | ||||||
|  | 
 | ||||||
|  |      scripts/buildinstall | ||||||
|  |      scripts/buildinstall.functions | ||||||
|  |      scripts/makestamp.py | ||||||
|  |      scripts/maketreeinfo.py | ||||||
|  |      scripts/mk-images | ||||||
|  |      scripts/mk-images.alpha | ||||||
|  |      scripts/mk-images.efi | ||||||
|  |      scripts/mk-images.ia64 | ||||||
|  |      scripts/mk-images.ppc | ||||||
|  |      scripts/mk-images.s390 | ||||||
|  |      scripts/mk-images.x86 | ||||||
|  |      scripts/scrubtree | ||||||
|  |      scripts/upd-instroot | ||||||
|  | 
 | ||||||
|  |      utils/trimpciids | ||||||
|  |      utils/mk-s390-cdboot.c | ||||||
|  |      utils/filtermoddeps | ||||||
|  |      utils/geninitrdsz.c | ||||||
|  |      utils/genmodinfo | ||||||
|  |      utils/modlist | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | WHY REWRITE BUILDINSTALL | ||||||
|  | ------------------------ | ||||||
|  | 
 | ||||||
|  | The buildinstall scripts were magic and maintaining them was sort of an art | ||||||
|  | form.  The entire collection of tools used in a buildinstall run are written | ||||||
|  | in bash, Perl, Python, and C.  Maintenance nightmare. | ||||||
|  | 
 | ||||||
|  | The way packages were specified for inclusion in the instroot as well as | ||||||
|  | what files were to be kept or removed were specified in the upd-instroot | ||||||
|  | script.  Again, difficult maintenance. | ||||||
|  | 
 | ||||||
|  | Lorax is intended to mostly be a drop-in replacement for buildinstall.  The | ||||||
|  | frontend program accepts the same command line arguments as buildinstall, | ||||||
|  | but all of the work is done through the pylorax Python module rather than | ||||||
|  | separate scripts or programs. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | MAJOR CHANGES | ||||||
|  | ------------- | ||||||
|  | 
 | ||||||
|  | Aside from offering a standalone tool that replaces the buildinstall script | ||||||
|  | collection and being written in Python, lorax introduces some policy changes | ||||||
|  | for how install images are generated. | ||||||
|  | 
 | ||||||
|  | (a) Keep everything by default, remove listed items. | ||||||
|  | 
 | ||||||
|  | In the buildinstall scripts, we have the KEEPFILE set of variables that | ||||||
|  | define what files (by wildcard or explicit names) we want to keep in a | ||||||
|  | particular image.  The standard policy for buildinstall is to unpack a set | ||||||
|  | of packages (listed in PACKAGES variables) and then remove everything not | ||||||
|  | explicitly listed in a KEEPFILE variable.  This aspect causes a lot of | ||||||
|  | maintenance headaches. | ||||||
|  | 
 | ||||||
|  | The lorax approach is to trust yum and package maintainers to give us what | ||||||
|  | we want.  We define a set of packages we want for the image using | ||||||
|  | configuration files in /etc/lorax.  Using yum, the packages are installed to | ||||||
|  | the staging root tree.  Then tree scrubbing takes place, which is | ||||||
|  | customizable by the user.  So, the default policy of lorax is to keep | ||||||
|  | everything a package gives us and only remove things explicitly listed for | ||||||
|  | the scrub operation. | ||||||
|  | 
 | ||||||
|  | (b) Maintain image building tools as a separate project. | ||||||
|  | 
 | ||||||
|  | If release engineering needs to regenerate trees for a nightly build because | ||||||
|  | a problem was encountered during image building, that requires a new | ||||||
|  | anaconda build to show up.  Lorax allows customization through configuration | ||||||
|  | files and in cases where bugs are discovered in it, a new release can be | ||||||
|  | made independent of anaconda. | ||||||
|  | 
 | ||||||
|  | Lorax can (and should) be maintained jointly by releng and the anaconda team. | ||||||
|  | 
 | ||||||
|  | (c) Logic is in the pylorax module. | ||||||
|  | 
 | ||||||
|  | Pungi may ultimately import the pylorax module to generate images rather | ||||||
|  | than running the lorax command line tool.  Better integration in to Pungi | ||||||
|  | is a goal of lorax. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | And there you have it.  Lorax. | ||||||
|  | 
 | ||||||
|  | --  | ||||||
|  | David Cantrell <dcantrell@redhat.com> | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user