Moving this thread to dev@whimsical...

> On Jan 6, 2018, at 11:46 AM, Sam Ruby <[email protected]> wrote:
> 
> On 1/6/18 2:17 PM, Craig Russell wrote:
>>> On Jan 6, 2018, at 10:42 AM, Sam Ruby <[email protected]> wrote:
>>> 
>>> Infra has their own tools.  Feel free to evolve this tool as you wish to 
>>> match your requirements.
>>> 
>>> I believe that the current state is that if all goes well, the board agenda 
>>> tool does everything that is needed.  If there is a problem, and the board 
>>> agenda tool partially did its job, and then the problem is then later 
>>> fixed, this can leave things in a half done state.
>>> 
>>> My adding function that picked up work that Brent used to do has meant that 
>>> we have had to do cleanup.  This function is only really tested once a 
>>> month.  Whether this is the last month with problems or not is something we 
>>> will only find out after the next board meeting.
>> I wonder if there is a way to unit test the new functionality in agenda. If 
>> the tricky part is editing committee-info and updating ldap, a function like 
>> ASF::Module.change_pmc_chair(project, chair) that does both 
>> ASF::Committee.change_pmc_chair(project, chair) and ASF::LDAP.bind.
>> I realize I'm helping design something that I know almost zero about, but 
>> that's what you get with retired people. ;-)
> 
> I encourage you to look at the current test suite for the board agenda tool.  
> While the test you describe above is most emphatically NOT an example of the 
> first test I would suggest you add, there undoubtedly are quite a number of 
> simpler tests that could be added.
> 
> Running the tests is a matter of:
> 
>  cd whimsy/www/board/agenda
>  rake test

pretty close but no. Do I need to upgrade software versions? I'm running OS X 
El Capitan 10.11.6.

[MacBook-Pro-9:www/board/agenda] clr% rake test
rm -rf board
A    board/board_agenda_2015_01_21.txt
A    board/board_agenda_2015_02_18.txt
A    board/board_minutes_2015_01_21.txt
Checked out revision 1.
cp ../data/board_agenda_2015_01_21.txt ../data/board_agenda_2015_02_18.txt 
../data/board_minutes_2015_01_21.txt board
svn: warning: W150002: 
'/Users/clr/apache/git/whimsy/www/board/agenda/test/work/board/board_agenda_2015_01_21.txt'
 is already under version control
svn: warning: W150002: 
'/Users/clr/apache/git/whimsy/www/board/agenda/test/work/board/board_agenda_2015_02_18.txt'
 is already under version control
svn: warning: W150002: 
'/Users/clr/apache/git/whimsy/www/board/agenda/test/work/board/board_minutes_2015_01_21.txt'
 is already under version control
svn: E200009: Could not add all targets because some targets are already 
versioned
svn: E200009: Illegal target for the requested operation
/usr/local/Cellar/ruby/2.3.1/bin/ruby 
-I/usr/local/lib/ruby/gems/2.3.0/gems/rspec-support-3.5.0/lib:/usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/lib
 /usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/exe/rspec --pattern 
spec/\*\*\{,/\*/\*\*\}/\*_spec.rb
/usr/local/Cellar/ruby/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in
 `require': cannot load such file -- erubis (LoadError)
        from 
/usr/local/Cellar/ruby/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in
 `require'
        from /Users/clr/apache/git/whimsy/www/board/agenda/main.rb:23:in `<top 
(required)>'
        from 
/Users/clr/apache/git/whimsy/www/board/agenda/spec/spec_helper.rb:12:in 
`require_relative'
        from 
/Users/clr/apache/git/whimsy/www/board/agenda/spec/spec_helper.rb:12:in `<top 
(required)>'
        from 
/Users/clr/apache/git/whimsy/www/board/agenda/spec/actions_spec.rb:6:in 
`require_relative'
        from 
/Users/clr/apache/git/whimsy/www/board/agenda/spec/actions_spec.rb:6:in `<top 
(required)>'
        from 
/usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/lib/rspec/core/configuration.rb:1435:in
 `load'
        from 
/usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/lib/rspec/core/configuration.rb:1435:in
 `block in load_spec_files'
        from 
/usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/lib/rspec/core/configuration.rb:1433:in
 `each'
        from 
/usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/lib/rspec/core/configuration.rb:1433:in
 `load_spec_files'
        from 
/usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/lib/rspec/core/runner.rb:100:in
 `setup'
        from 
/usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/lib/rspec/core/runner.rb:86:in
 `run'
        from 
/usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/lib/rspec/core/runner.rb:71:in
 `run'
        from 
/usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/lib/rspec/core/runner.rb:45:in
 `invoke'
        from 
/usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/exe/rspec:4:in `<main>'
/usr/local/Cellar/ruby/2.3.1/bin/ruby 
-I/usr/local/lib/ruby/gems/2.3.0/gems/rspec-support-3.5.0/lib:/usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/lib
 /usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/exe/rspec --pattern 
spec/\*\*\{,/\*/\*\*\}/\*_spec.rb failed

> 
> Note: these tests are hooked up to run after every push to github; so any 
> failure will result in emails.
> 
> The current tests run the range from simple unit tests to tests that run 
> against a local subversion repository to tests that run against a local web 
> server to tests that actually run inside a headless browser to test 
> javascript.
> 
> There are no current tests which update LDAP.  We would have to figure out a 
> strategy on how to do that.  This could be as simple as having ASF::LDAP.bind 
> change the @ldap instance variable to point to an object that mocks out the 
> add and modify functions when ASF::LDAP.bind is called in test mode (i.e., 
> ENV['RACK_ENV'] == 'test').
> 
> But again, I wouldn't start there.
> 
> The question is: which YAK do you want to shave first? :-)
> 
>> Craig
>>> 
>>> - Sam Ruby
>>> 
>>> On 1/6/18 12:46 PM, Craig Russell wrote:
>>>>> On Jan 6, 2018, at 9:14 AM, Sam Ruby <[email protected]> wrote:
>>>>> 
>>>>> On 1/6/18 11:56 AM, Craig Russell wrote:
>>>>>> Hi Sam,
>>>>>> Does this thread belong on dev@whimsical now?
>>>>> 
>>>>> Sure.
>>>>> 
>>>>>> The tooling should allow for double checking that --rm does not remove 
>>>>>> an active chair. There would have to be a function that given a person, 
>>>>>> looked at all that person's PMC membership and made sure that the person 
>>>>>> is not the chair.
>>>>>> There must be such a function in agenda but I can't find it atm.
>>>>> 
>>>>> ASF::Committee.pmcs.map(&:chair).uniq will return a list of people who 
>>>>> should be in pmc chairs.
>>>>> 
>>>>> ASF.pmc_chairs will return a list of people who are currently in the list.
>>>>> 
>>>>> Subtracting one list from the other will give you either the list of 
>>>>> people who should be added, or should be removed.
>>>> You got just a bit ahead of me here. I was going to suggest that removal 
>>>> of pmc chairs from ldap should be "automatic" when adding pmc chairs.
>>>> Then there should be a prompt confirming the removal since the script 
>>>> might be buggy, or the checked-out version of committee-info is out of 
>>>> date, or other untoward conditions.
>>>> Then I thought that if you run pmc_chairs --rm with no ids, the tool would 
>>>> suggest entries to remove.
>>>> And then I stopped shaving the yak.
>>>>> 
>>>>> Warning: this can become a Yak shaving exercise if you let it.  The next 
>>>>> step would be to show these differences and let you act on them.  In 
>>>>> fact, that could have a web interface.  In fact, that function should be 
>>>>> integrated with https://whimsy.apache.org/roster/group/pmc-chairs ...
>>>> Stepping back a bit here. This exercise is to overcome a deficiency in the 
>>>> agenda adjournment process. So it does not have to be perfect.
>>>> I believe that agenda adjournment already does suggest the list of people 
>>>> who should be removed according to the algorithm above. So I was not 
>>>> planning on doing any manual removals.
>>>> In conclusion, the new tool to manually add to pmc_chairs is probably 
>>>> sufficient to the task. And I don't know if we want to have the tool 
>>>> manually remove from pmc_chairs, given the discussion above. If it's 
>>>> useful to infra, fine, but without really tight controls I doubt its 
>>>> utility.
>>>> Craig
>>>>> 
>>>>>> Craig
>>>>> 
>>>>> - Sam Ruby
>>>>> 
>>>>>>> On Jan 6, 2018, at 5:43 AM, Sam Ruby <[email protected]> wrote:
>>>>>>> 
>>>>>>> On 1/5/18 11:38 PM, Craig Russell wrote:
>>>>>>>> ASF.bind { chairs.add(people) }
>>>>>>> 
>>>>>>> My bad.  Should have been ASF::LDAP.bind.
>>>>>>> 
>>>>>>> I've roughed in a script:
>>>>>>> 
>>>>>>> https://github.com/apache/whimsy/blob/27e591b9d6350d89bd3c3aca058ff57e7070d342/tools/modify_pmcchairs.rb
>>>>>>> 
>>>>>>> - Sam Ruby
>>>>>> Craig L Russell
>>>>>> Secretary, Apache Software Foundation
>>>>>> [email protected] http://db.apache.org/jdo
>>>> Craig L Russell
>>>> Secretary, Apache Software Foundation
>>>> [email protected] http://db.apache.org/jdo
>> Craig L Russell
>> Secretary, Apache Software Foundation
>> [email protected] http://db.apache.org/jdo

Craig L Russell
Secretary, Apache Software Foundation
[email protected] http://db.apache.org/jdo

Reply via email to