Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 13 May 2012 16:35:59 -0700
From:      Doug Barton <dougb@FreeBSD.org>
To:        Ulrich Spoerlein <uqs@FreeBSD.org>
Cc:        freebsd-current <freebsd-current@FreeBSD.org>, src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   Re: svn commit: r235275 - projects user
Message-ID:  <4FB0455F.9010602@FreeBSD.org>
In-Reply-To: <201205111608.q4BG8ppa090644@svn.freebsd.org>
References:  <201205111608.q4BG8ppa090644@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
When you proposed these changes not only did I not see a consensus for
you to move forward, I saw a non-zero number of people push back.

Why did you proceed?

Doug


On 5/11/2012 9:08 AM, Ulrich Spoerlein wrote:
> Author: uqs
> Date: Fri May 11 16:08:51 2012
> New Revision: 235275
> URL: http://svn.freebsd.org/changeset/base/235275
> 
> Log:
>   Update guidelines on user/ and projects/
>   
>   The goal is to make it clearer where future branches should be created. A
>   consistent layout under projects/ would also help with conversions to other
>   VCSes that do not follow the everything-is-a-subdir dogma.
>   
>   TL;DR
>   - If it's a branch of head that you want to merge back -> projects/
>   - If it's something else -> user/your-login/ (e.g. portmaster, stress2, etc.)
>   
>   Discussed on:	developers
>   Silence by:	peter
> 
> Modified:
>   user/GUIDELINES.txt
> 
> Changes in other areas also in this revision:
> Modified:
>   projects/GUIDELINES.txt
> 
> Modified: user/GUIDELINES.txt
> ==============================================================================
> --- user/GUIDELINES.txt	Fri May 11 16:04:55 2012	(r235274)
> +++ user/GUIDELINES.txt	Fri May 11 16:08:51 2012	(r235275)
> @@ -1,16 +1,9 @@
>  $FreeBSD$
>  
> -Golden rules:
> -Rule #1:  TAKE IT EASY! DON'T RUSH AND MAKE A MESS!  ASK IF NEEDED!
> -Rule #2:  See rule #1, repeat as needed
> +Guidelines for what can go in /user
> +-----------------------------------
>  
> -Peril sensitive sunglasses advisory:
> -This is in flux.  Expect refinement.  Expect typos.
> -
> -Guidelines for what can go in /user and /projects
> --------------------------------------------------
> -
> -First of all, eveyrbody needs to keep in mind that this repository is
> +First of all, everybody needs to keep in mind that this repository is
>  replicated as a unit.  Anything that goes into the repository uses project
>  and volunteer resources.  Once something goes in, it essentially never comes
>  out.  Therefore, these are not dumping grounds to put random junk in the
> @@ -19,82 +12,39 @@ tree that we have to mirror forever.
>  General guidelines:
>  
>  * Should be relevant to FreeBSD.
> -* Should be at least concievably of interest to somebody else.
> -* Should be in a format that is suitable to merge into the base tree.
> +* Should be at least conceivably of interest to somebody else.
>  * Should be something that is worth people's time to read commit mail for.
>  * Write decent commit messages!
>  
> +The difference between /projects and /user wasn't very clear in the past.
> +Going forward /projects is reserved for branches of FreeBSD itself for possible
> +re-integration into /head. Branches shall not be nested into e.g.
> +/projects/foo/stable8, instead /projects/foo_stable8 shall be used.
>  
> -The difference between /projects and /user is mostly one of intentions.
> -
> -If some WIP is intended to be committed to the main src tree, then it
> -should go in /projects/$name/*.  We encourage people to subscribe to projects
> -commit messages.  The reason is that WIP in projects can be expected to hit
> -the base tree at some point.
> -
> -If some WIP is more of an experiment or speculative, that might not ever be
> -merged, then it goes in /user/$username/$name/*.  We don't encourage
> -people to subscribe to user commit messages.
> -
> -If it is something unrelated to the src tree, it should probably go elsewhere.
> -There will be a separate repostory made available for such things, whether it
> -be a special version of mysql or xorg or gcc or whatever.
> -
> +/user can be used for tools and software tightly related to FreeBSD, but which
> +is not a copy/branch of FreeBSD itself.
>  
>  Layout:
> -Since this is for WIP that can concievably be merged, there is an argument
> -that can be made that teaching the pre-commit scripts to sanity check WIP
> -as it goes, rather than having a mammoth fixup being needed prior to merging.
> -
> -For that to work, the layout has to be predictable.  eg: a branch of
> -"head/sys/*" for a project called "ia65" should be  /projects/ia65/sys/*.
> -An experimental X11-aware verison of bin/ls/* in a user directory for jdoe
> -would be /user/jdoe/x11-ls/bin/ls/*.
> -
>  
> -Creation and merging:
> -
> -Merging is in flux.  The procedure as understood right now:
> -
> -Assume projects/ia65/sys.   $BASE="svn+ssh://svn.freebsd.org/base"
> +Since this is for auxiliary/experimental projects that might not be branched
> +from head, an argument can be made that we teach the pre-commit scripts to
> +sanity check WIP as it goes in.
>  
>  Initial creation:
> -  $ svn cp --parents $BASE/head/sys $BASE/projects/ia65/sys
> +  Assume user/pho/stress2.   BASE="svn+ssh://svn.freebsd.org/base"
>  
> -Then check it out:
> -  $ svn co $BASE/projects/ia65
> +  $ svn mkdir $BASE/user/pho/stress2
>  
> -To integrate changes from head into your branch:
> -  $ cd ia65/sys ; svn update; svn status | read output!  Should preferably be clean.
> -  (you may prefer to do merges in a second, clean checkout. It will be easier!)
> -  $ svn merge $BASE/head/sys
> -  (this merges head/sys/* into ., which is projects/ia65/sys)
> +Then check it out:
> +  $ svn co $BASE/user/pho/stress2
> +  $ hack, hack, hack
> +  $ svn add .
> +  (should schedule all files/dirs for addition)
> +  $ svn status
> +  (verify all files you want added, and only those are scheduled)
>    $ svn commit
>  
> -To merge your changes into head/sys.
> -  $ mail -s 'Is it ok to merge projects/ia65 to head?' peter@freebsd.org
> -  $ wait_for_reply (the point is to have somebody on hand for the first
> -    timeto help rescue you if things go horribly wrong.)
> -  (set up a clean checkout of head/sys and projects/ia65/sys.  MUST BE CLEAN!!)
> -  $ cd work
> -  $ svn co $BASE/head/sys
> -  $ svn co $BASE/projects/ia65/sys
> -  (If you've already got clean checkouts handy, replace with appropriate
> -   svn update commands)
> -  $ svn info head  - NOTE CHANGE NUMBER!!!  assume 12345 for this example.
> -  (now, bring projects/ia65 up to date with head, AS YOU JUST CHECKED IT OUT)
> -  $ svn merge $BASE/head/sys@12345 projects/ia65/sys
> -  (resolve conflicts)
> -  $ svn commit projects/ia65/sys
> -  (now, projects/ia65 is in sync with @12345, as is your head checkout)
> -  (reverse merge to base tree!)
> -  $ svn merge $BASE/projects/ia65/sys head/sys
> -  (resolve conflicts)
> -  $ svn commit head/sys
> -  $ profit!
> -  (regular svn users might wonder about merge --reintegrate.  Our tree breaks
> -   it, sorry.  We can't use it.)
> -
> -Tags:
> -  Place tags in your /user area if possible, even if the origin is a project.
> -  Tag by using svn cp $BASE/projects/xxx $BASE/user/jdoe/yyy.
> +Other:
> +
> +If it is not covered here, and there's no established practice of doing what
> +you're trying to achieve, always ask your peers first!
> 


-- 

    This .signature sanitized for your protection



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4FB0455F.9010602>