> On Jun 2, 2020, at 11:27 AM, sebb <seb...@gmail.com> wrote:
> 
> On Tue, 2 Jun 2020 at 19:01, Craig Russell <apache....@gmail.com 
> <mailto:apache....@gmail.com>> wrote:
>> 
>> 
>> 
>>> On Jun 2, 2020, at 9:06 AM, Sam Ruby <ru...@intertwingly.net 
>>> <mailto:ru...@intertwingly.net>> wrote:
>>> 
>>> On Tue, Jun 2, 2020 at 10:49 AM Craig Russell <apache....@gmail.com 
>>> <mailto:apache....@gmail.com> <mailto:apache....@gmail.com 
>>> <mailto:apache....@gmail.com>>> wrote:
>>>> 
>>>>> On Jun 2, 2020, at 6:35 AM, Sam Ruby <ru...@intertwingly.net 
>>>>> <mailto:ru...@intertwingly.net> <mailto:ru...@intertwingly.net 
>>>>> <mailto:ru...@intertwingly.net>>> wrote:
>>>>> 
>>>>> On Mon, Jun 1, 2020 at 8:50 PM Craig Russell <apache....@gmail.com 
>>>>> <mailto:apache....@gmail.com> <mailto:apache....@gmail.com 
>>>>> <mailto:apache....@gmail.com>> <mailto:apache....@gmail.com 
>>>>> <mailto:apache....@gmail.com> <mailto:apache....@gmail.com 
>>>>> <mailto:apache....@gmail.com>>>> wrote:
>>>>>> 
>>>>>>> On Jun 1, 2020, at 4:58 PM, sebb <seb...@gmail.com 
>>>>>>> <mailto:seb...@gmail.com>> wrote:
>>>>>>> 
>>>>>>> On Mon, 1 Jun 2020 at 23:20, Craig Russell <apache....@gmail.com 
>>>>>>> <mailto:apache....@gmail.com>> wrote:
>>>>>>>> 
>>>>>>>>> On Jun 1, 2020, at 2:42 PM, sebb <seb...@gmail.com 
>>>>>>>>> <mailto:seb...@gmail.com>> wrote:
>>>>>>>>> 
>>>>>>>>> On Mon, 1 Jun 2020 at 22:30, Craig Russell <apache....@gmail.com 
>>>>>>>>> <mailto:apache....@gmail.com> <mailto:apache....@gmail.com 
>>>>>>>>> <mailto:apache....@gmail.com>>> wrote:
>>>>>>>>>> 
>>>>>>>>>> OK.
>>>>>>>>>> 
>>>>>>>>>> How about this proposal:
>>>>>>>>>> 
>>>>>>>>>> New directory documents/Emeritus with these directories:
>>>>>>>>>> emeritus for accepted requests
>>>>>>>>>> emeritus-requests-received for received requests
>>>>>>>>>> emeritus-requests-rescinded for rescinded requests
>>>>>>>>>> emeritus-reinstated for original requests from reinstated Members
>>>>>>>>> 
>>>>>>>>> This will mean changes to Whimsy code, and could result in temporary
>>>>>>>>> breakage as well as needing extra testing.
>>>>>>>> 
>>>>>>>> The only Whimsy code that needs to change is secretary workbench which 
>>>>>>>> currently stores requests in documents/emeritus-requests-received. All 
>>>>>>>> other code is the stuff I'm working on.
>>>>>>> 
>>>>>>> Changes to the locations of emeritus directories means changes to
>>>>>>> whimsy library code as well.
>>>>>>> The committer roster relies on this for showing emeritus member docs.
>>>>>>> And there are scripts to check emeritus files.
>>>>>>> 
>>>>>>> Introduction of an extra Emeritus parent is going to mean changes to
>>>>>>> shared code, so lots of testing needed.
>>>>>> 
>>>>>> Ok. I really don't care if we add two more directories if it means less 
>>>>>> work for everyone else.
>>>>>> 
>>>>>> Anyone else with a strong opinion here? Sam?
>>>>> 
>>>>> I, too, feel that the current structure is haphazard and disorderly,
>>>>> and that the proposal would be an improvement.  Minor quibble: the
>>>>> redundancy of Emeritus/emeritus-* bothers me.
>>>> 
>>>> I'm open to other ideas that avoid duplication of names.
>>>>> 
>>>>> That being said, my bigger concern is twofold:
>>>> 
>>>> This is in line with what Sebb has been saying, if I can read between the 
>>>> lines.
>>>>> 
>>>>> 1) Effectively, the only documentation for the current structure is
>>>>> contained within the whimsy code.  Effectively, instead of the
>>>>> secretary saying "this is where the data belongs", we make decisions
>>>>> based on where a given tool places data and where other tools look for
>>>>> data.  There is no architecture.  Ultimately, this is a failure of the
>>>>> secretary.  I say that as a former-secretary who both inherited this
>>>>> mess and mostly left it to my successors.
>>>> 
>>>> Well, way back in 2018 while I was secretary we started using the 
>>>> emeritus-requests-received directory with no real tool support. We did not 
>>>> architect this but just decided it was better than leaving the request in 
>>>> the workbench queue for later processing.
>>>>> 
>>>>> 2) The code is unnecessarily tightly bound to the location of the
>>>>> data, making changes more difficult.  Once upon a time, code would
>>>>> call ASF:SVN['foobar'] or perhaps ASF::SVN.find('foobar') to locate
>>>>> directories, and that library routine would consult things like
>>>>> ~/.whimsy.for local tailoring.  Over time, there seemed to be little
>>>>> interest in maintaining that mapping, and the current state is that if
>>>>> you place things in any location other than /srv, things may not work.
>>>> 
>>>> The current tooling does have a mixture of styles. This is from 
>>>> memstat-json.rb:
>>>> # identify file to be updated
>>>> members_txt = File.join(ASF::SVN['foundation'], 'members.txt')
>>>> 
>>>> So this says that somewhere there is a foundation directory that "someone 
>>>> else" knows the actual location. But it does hard code the name of the 
>>>> file, members.txt.
>>>> 
>>>> Is that ideal from your perspective? Or should the name of the members.txt 
>>>> as well as its location be abstracted to the ASF::SVN metadata?
>>>>> 
>>>>> Ideally, there would be a token or identifier for each of these
>>>>> directories, an ASF:SVN or some other place would be the only place
>>>>> that knows the mapping of this identifier to the URL as well as the
>>>>> location of where the local working copy associated with that URL
>>>>> would be.  I'd love to be in a position where the location and even
>>>>> the format of the files could be changed at will, and any impact to
>>>>> whimsy tooling would be contained.
>>>> 
>>>> I'm really keen on trying to implement this. So if ASF::SVN is the 
>>>> canonical location for the emeritus directories, what would you suggest we 
>>>> use as labels? If we follow the members.txt example, we would have a 
>>>> single ASF::SVN['emeritus-directory'] that the code didn't know the 
>>>> location of, but the code would still have to know the names of the 
>>>> directories it contained. The svn move command would use the temp 
>>>> directory to do this
>>>> 'svn update emeritus-requests-received/<filename>;
>>>> svn move emeritus-requests-received/<filename> emeritus'
>>>> And then the commit would commit both the members.txt and the tmp 
>>>> directory with the move commands.
>>>> 
>>>> Or perhaps ASF::SVN['emeritus-requests-received'] would be a pointer to 
>>>> that directory. And now we have the question of how the svn move from 
>>>> emeritus-requests-received to emeritus would be done.
>>>> 
>>>> Would it help to track down all of the scripts and tooling that currently 
>>>> know the location of the emeritus directories?
>>> 
>>> You asked a lot of questions. :-)
>>> 
>>> Let me make a concrete suggestion.  Start with the following file:
>>> 
>>> https://github.com/apache/whimsy/blob/master/repository.yml 
>>> <https://github.com/apache/whimsy/blob/master/repository.yml> 
>>> <https://github.com/apache/whimsy/blob/master/repository.yml 
>>> <https://github.com/apache/whimsy/blob/master/repository.yml>>
>>> 
>>> Let's take a specific example:
>>> 
>>> https://github.com/apache/whimsy/blob/28c2df1c46090ef504a2fa0227ee5bed94429abc/repository.yml#L92
>>>  
>>> <https://github.com/apache/whimsy/blob/28c2df1c46090ef504a2fa0227ee5bed94429abc/repository.yml#L92><https://github.com/apache/whimsy/blob/28c2df1c46090ef504a2fa0227ee5bed94429abc/repository.yml#L92
>>>  
>>> <https://github.com/apache/whimsy/blob/28c2df1c46090ef504a2fa0227ee5bed94429abc/repository.yml#L92>>
>>> 
>>> These two lines (92 and 93) associate an identifier
>>> (emeritus-requests-received) with a url
>>> (private/documents/emeritus-requests-received), and contains other
>>> meta data used by the ASF::SVN module.
>>> 
>>> In an ideal world, the secretary should be able to change that URL and
>>> the ONLY thing that would need to be updated is that one line in that
>>> one file and all whimsy tools would operate properly using the new
>>> location.  Everything that depends on this information should use
>>> ASF::SVN['emeritus-requests-received'}.
>> 
>> Still unanswered: If we have multiple entries (one entry for each of the 
>> four emeritus* directories) can we have svn move commands that move files 
>> from one directory to another?
> 
> Yes, both svn and svnmucc can rename files directly within the repositories.
> However only svnmucc can do multiple remote renames in a single commit.
> 
>> I understand how to do it if we have a single ASF::SVN['documents-emeritus'] 
>> and the code knows the names of the four sub-directories. I don't know how 
>> to handle the svn mv command if we have checked out four temp directories 
>> without necessarily knowing the names of the directories. Can we somehow 
>> annotate the repository.yml with the names of the subdirectories?
> 
> I don't think it's possible to do an svn rename across different workspaces.
> 
> AFAIK you have to have a single workspace which includes a common parent.
> If you checkout the full subtree from that parent, then you can
> definitely use the svn client to do multiple renames, mkdir and
> deletes locally.
> A checking will then commit everything or nothing.
> However that is likely to be a big/slow checkout.
> 
> I think the workspace does not have to be a full checkout, but
> obviously has to include the relevant files, and possibly the full
> directories of source and destination.
> This is tricky to set up, which is why I suggested svnmucc.

I think we are in agreement that big/slow is not an option.

So using MultiUpdate, how do we construct the extra svn move commands from the 
ASF::SVN directory names for the emeritus directories?

I don't see how to do it without the application (emeritus.json.rb) knowing the 
directory names.

Craig 
> 
>> Craig
>>> 
>>> So the thing to track down is all of the scripts and tooling that do
>>> not use ASF::SVN and the identifier specified in repository.yml to
>>> access this information.
>>> 
>>>> Craig
>>> 
>>> - Sam Ruby
>>> 
>>>>> But ultimately, we need people to take ownership of this decision, and
>>>>> a part of that would be a willingness to make the necessary changes to
>>>>> make it work.
>>>>> 
>>>>>> Craig
>>>>> 
>>>>> - Sam Ruby
>>>>> 
>>>>>>>>> 
>>>>>>>>> Is it really necessary to have a common parent?
>>>>>>>> 
>>>>>>>> If we don't, then we would have documents/emeritus and 
>>>>>>>> documents/emeritus-requests-received and 
>>>>>>>> documents/Emeritus/emeritus-requests-rescinded and 
>>>>>>>> documents/Emeritus/emeritus-reinstated. I just think that this would 
>>>>>>>> be awkward.
>>>>>>> 
>>>>>>> I agree that would be awkward, but that's not what I meant.
>>>>>>> I am suggesting leaving them all under documents/
>>>>>> 
>>>>>> Craig L Russell
>>>>>> c...@apache.org
>>>> 
>>>> Craig L Russell
>>>> c...@apache.org
>> 
>> Craig L Russell
>> c...@apache.org

Craig L Russell
c...@apache.org

Reply via email to