On Mon, Jan 8, 2018 at 3:15 PM, Craig Russell <[email protected]> wrote: > phantomjs is not available in PATH, not loading poltergeist
Install phantomjs from here: http://phantomjs.org/download.html This information probably should be added to: https://github.com/apache/whimsy/blob/master/config/board-agenda.md > ..................................F....element div: validity error : ID updateStatusForm already defined That's probably a bug. It is saying that there is a page with two elements with id="updateStatusForm" on one of our pages. This should be easy to find and fix. Care to take a stab at it? > ........................ > > Failures: > > 1) navigation should navigate to the Cocoon report and back > Failure/Error: visit '/2015-02-18/Clerezza' > > Capybara::DriverNotFoundError: > no driver called :poltergeist was found, available drivers: :rack_test, :selenium, :selenium_chrome, :selenium_chrome_headless > # ./spec/navigate_spec.rb:11:in `block (2 levels) in <top (required)>' > > Finished in 1 minute 0.84 seconds (files took 1.17 seconds to load) > 63 examples, 1 failure > > Failed examples: > > rspec ./spec/navigate_spec.rb:8 # navigation should navigate to the Cocoon report and back > > /usr/local/Cellar/ruby/2.3.1/bin/ruby -I/usr/local/lib/ruby/gems/2.3.0/gems/rspec-support-3.7.0/lib:/usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.7.1/lib /usr/local/lib/ruby/gems/2.3.0/gems/rspec-core-3.7.1/exe/rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb failed This failure should be fixed by installing phantomjs. > Craig >> On Jan 6, 2018, at 12:16 PM, Sam Ruby <[email protected]> wrote: >> >> >> >> On 1/6/18 3:02 PM, Craig Russell wrote: >>> 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. >> >> You shouldn't need to update your OS, but you will need to install the necessary dependencies. See: https://github.com/apache/whimsy/blob/master/DEVELOPMENT.md#running-whimsy-applications-car >> >> Hint: all that is needed is to run 'bundle install'. Or better yet, 'bundle update' which will ensure that you are running the latest compatible version of every dependency. >> >> - Sam Ruby >> >>> [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 > > Craig L Russell > Secretary, Apache Software Foundation > [email protected] http://db.apache.org/jdo >
