[os-engineering] FW: [os-infrastructure] Re: Model discussionboiled dry(er)

Joe Abbate joseph.abbate at ingres.com
Thu Jun 26 16:59:35 PDT 2008


Chris Clark wrote:
> On 6/26/2008 9:04 AM, Alex Hanshaw wrote:
>>  ....Ray has put together a diagram of
>> model a) as a discussion point. I'm sure this list will see the detail
>> once some initial refinement has been made. OpenROAD are aware.
>>   
>
> This is now ready for prime time at 
> http://community.ingres.com/wiki/Community_Model I would like to 
> suggest a rule/guideline for this page, you only post what you know is 
> the proposal. Discussion should talk place in this list, phone, IM, 
> two tin cans and string. Avoiding cruft on the wiki page is going to 
> be useful.

This is not what I had in mind when I mentioned "use case stories".  
What I think is needed is perhaps a loose combination of "use case" 
(http://en.wikipedia.org/wiki/Use_case) and "user story"  
(http://en.wikipedia.org/wiki/User_story).  The point is to show by 
example what happens when someone has to interact with the proposed models.

Let me start with a couple of "stories", based on needing to do Ingres 
DBMS work on ingres2006r2 and the same time cross-changes to ingres2006r3.

A. Establish a Piccolo build area based on a label

1. Create an initial Piccolo map file for client!subversion
2. p get client.template
3. Edit client.template to map ingres2006r2
4. p labels and determine what label to use
5. p label -p | p get -l-  (or variation using intermediate files)

   Repeat above five steps for ingres!main and ingres2006r3.

B. Make changes to files in back/dmf/lk and cl/clf/cx (now mapped to 
gl/glf/cx)

1. cd back/dmf/lk ; p open lksample.c ; edit lksample.c
2. cd gl/glf/cx ; p open cxsample.c ; edit cxsample.c
3. jam ; test ; rinse and repeat; run handoffqa
4. p working >working.list | p rcompare -s -lworking.list >working.diff
5. prepare IP and submit; receive approval
6. p reserve -lworking.list
7. p sc -lworking.list
8. cd to main build area and change MAPPATH
9. p ineed -c nnnnnn >ineed.list  # nnnnnn comes from visual output in 
step 7 or Piccolo email
10. p integrate -lineed.list
11. p rcompare -s -lineed.list (to make sure the changes look OK)
12. p sc -lineed.list
13. cd to ingres2006r3 build area and change MAPPATH
14-18. repeat steps 9-13 but with next change number
19. notify IP list of change numbers

I understand the propagate script on Unix makes some steps somewhat 
easier.  Also, SE submits IPs for each separate codeline, but has 
developed some scripts to aid in that process.

Someone needs to carry this story forward as to what happens in each of 
the three models to the changes, as they make their way from ingres!main 
into http://code.ingres.com/ingres/main/src and some tentative Community 
release codeline.  The stories ought to have explicit Piccolo or svn 
paths so that they're not ambiguous.

 From what I understand of the "fresh"/Proposal 1 model, at step 12, the 
Piccolo server will either initiate a 2PC transaction with the svn 
server or queue the change to replicate it to the svn/ingres/main 
branch.  Someone in the "community", possibly an Ingres Corp community 
manager initially, would have to

20. svn merge http://code.ingres.com/ingres/main/src 
http://code.ingres.com/ingres/community1/src
          # community1 being a Community Release codeline
21. svn commit

Individual community contributors could then repeat these steps to apply 
them to their own branches.

C. Make similar changes but as external contributors (a Linux cluster 
implementation!)

1. svn co http://code.ingres.com/ingres/main/src ~/src/ingres
2. cd ~/src/ingres/back/dmf/lk; edit lksample.c
3. cd ~/src/ingres/gl/glf/lk; edit cxsample.c
4. jam ; test ; rinse and repeat ; run <some kind of acceptance test>?
5. prepare some form of submission document and receive approval?
6. svn commit  [open question:  to svn/ingres/main or to some sandbox 
branch]
7. notify approver of submission?

Again, the story has to be carried forward to what happens on the Ingres 
Corp side, in particular, how it gets subsequently integrated into 
ingres2006r3 or other codelines.  It would also be instructive to have 
an example that implements something that doesn't end up being shared, 
e.g., on the community side, some new DMF access method that we don't 
feel comfortable with integrating into commercial codelines but the 
community is eager to have out there for experimentation; on the Ingres 
Corp side, the reintroduction of B1 security, assuming we still want to 
keep that closed source.

Joe


More information about the opensource-infrastructure mailing list