Another edition of the testing branch up, now with Luke's 2954 branch and
the prototype code smell refactorings included.  Putting this edition
together led (as expected) to a number of new challenges and required a few
changes to the test branch construction process:


   - I'm no longer using a rake task to construct the testing branch.  I've
   converted it to a regular ruby program and located it (and the .testseries
   file) out of the git repo.
   - I've added a per-branch switch to enable partial application (prefixing
   the branch with a "~")
   - I've added the ability to specify the first commit in a branch which is
   to be applied
   - I've added the ability to run programs (the refactorings) with a "!"
   switch
   - I've added a directive "run specs" to enable the reporting of rake spec
   bottom line results after each stage


The first three are closely related, and all motivated by the same problem.
As several people predicted, simply rebasing branches onto commits within
the test branch works only so long as nothing changes in the preceding
branches.  If anything does change, the rebased topic branch will now
attempt to undo the changes, as it now (by virtue of being rebased) contains
not only the intended code modifications of that branch but *all* of the
changes up to the commit it was rebased on.

This of course includes any modifications to the rake task that build the
test series, the .testseries file, etc. as they are present in master when
the whole thing kicks off.  It gets...messy.

To limit the scope of this problem, I'm now specifying the first commit to
use from each xxxx/testing/xxxx branch and excluding all the commits that
led up to it.  This limits the problem, or rather, transforms it into one
that will hopefully occur less often while (unfortunately) also being more
subtle.  Even though the commits of the branches on which the topic branch
was rebased will not be forevermore swept up wholesale whenever that branch
is merged, any changes introduced by the foreign commits in regions covered
by conflicts resolved in the rebasing will be silently included--they have,
in effect, become part of the rebased commits, indistinguishable from the
original code changes.

Still, it's better than what I was doing as of Friday.

-- Markus

The present test series and the log from constructing the test branch:

#
# Contributor repositories
#
markus=git://github.com/MarkusQ/puppet.git
luke=git://github.com/lak/puppet.git
jesse=git://github.com/jes5199/puppet.git
#
# Setup
#
run specs
testing
#
# Branches to merge into master to produce testing branch
#
jesse:ticket/master/3148
luke:tickets/master/2759
luke:tickets/master/3015
luke:tickets/master/1943
luke:tickets/testing/2954   from 9b15984c199c81ffb2aac8a1aae4996a2cbde315 #
Depends on 3015
markus:feature/testing/2956 from 2c40ed8d2ebc1c45df243c118f17c91e88131494 #
Futures
#
# Run the prototype code smell refactorings
#
!ruby ../refactor/refactor.rb

----------------------------------------------------------------------------------------------------------------------
testing succeeded:
  7759 examples, 17 failures, 43 pending
jesse:ticket/master/3148 succeeded:
    0a9ad2c Fixing #3148 Settings#without_noop when run with no noop setting
  7760 examples, 14 failures, 43 pending
luke:tickets/master/2759 succeeded:
    821aa39 Moving Metric management to the reports
    9bcecf0 Removing mention of @changes in Transaction
    6bc1d3a Cleaning up the report tests a bit
    b68fb65 Fixing #2759 - reports now have complete change info
    f55eed6 ResourceHarness now doesn't check params with no 'should'
    1413897 Changing Transaction to use the new ResourceHarness
    fa6311c Fixing log message when changes fail
    1dc5a3c Fixing some compatibility and old tests
    cd6ed95 Renaming some methods in Transaction::Change
    562759b Adding Transaction::ResourceHarness class
    b383983 Adding first version of Resource::Status class
    f6afcf1 Fixing File type indentation
    00fac4a Removing last event collection transaction code
    6af48e6 Solidifying the RAL/Event integration.
    f70b186 Refactoring the Change/Event/Property interface
    1e5c5af Cleaning up the Log initialization code.
    39077d1 Refactoring the RAL interface to logging
    b7bdc2d Using Logging module in main Puppet module
    56c0282 Adding tests for "Logging" module
    d315034 Correcting comments and making report timestamp internal
    6fc1d76 Failing in app/puppet if facts are not found
    45ab2f2 Fixing file content logs
    febcf29 removing extraneous comment
    8077e44 Adding Transaction events to Transaction reports
    49d7213 Removing a redundant method in Report
    2ebd783 Removing unused code and adding a couple of tests
    04ee019 Adding tests for the 'report' log destination
    720cadd Extracting event management into a separate class
    9420b64 Changing SimpleGraph.matching_edges to expect one event
    8803ed9 Moving event creation to the resource
    ef0966a Reorganizing Property class to match current style
    498df72 Cleaning up Event creation
    bed990c Adding "type" instance method to enhance Demeterness
    c9226b1 Random code cleanup
    d400ea8 Moving Ensure property into separate file
    4a8d7b4 Moving Parameter utility classes into separate files
    65ca310 Switching transactions to callback-based events
    a379d95 removing never-used code
    e89bd76 Moving log destination code into separate files
  7990 examples, 47 failures, 44 pending
luke:tickets/master/3015 succeeded:
    6c35c6b Renaming Parser::ResourceType to Resource::Type
    10fcdcc Removing Interpreter class
    db80eab All non-transient parser references are gone
    5e5d18b Fixing callers to Parser to only pass environment
    8a079fa Using the RTC helper to find the known resource types
    e0015b4 Always warning if autoloading a file fails
    1738fc8 Adding helper module for finding known resource types
    610232b Moving Rails initialization to Compiler terminus
    1d9b9fc Parser now uses Environment resource type collection
    e858964 Adding 'known_resource_types' to Environment
    d3eb253 Renaming LoadedCode to ResourceTypeCollection
    8fa51c1 Storing per-environment LoadedCode instances
    467eae7 Removing old, never-used DSL code
    a11b981 Adding support for parsing ruby files
    4989a85 Fixing test structure
    79dd25c Adding []/[]= support to Parser::Resource
  8014 examples, 51 failures, 44 pending
luke:tickets/master/1943 succeeded:
    ddd4e79 Cleaning up a test.
    a251923 Removing unused Checksum::File terminus
    ab9da94 Converting File terminus to use formats.
    4e95a9f Fixing datadir defaults to match new standards
    667bee3 Adding client and server data dirs
    0149a5c Adding filename extension support to formats.
  8007 examples, 53 failures, 44 pending
luke:tickets/testing/2954    succeeded:
    127b735 Finishing renaming :params to :parameters internally
    80cc08a Forcing parent evaluation in resource types
    2b92e9e Fixing type/title resource resolution
    fb965a7 Converging the Resource classes further
    78e89d0 Adding strictness checking to resources
    ac0ca66 Fixing most of the broken tests in test/
    206c356 Adding tmpfile cleanup to tests
    04f46bf Removing Resource::Reference classes
    a8c110e Adding support for class parameters
    a461591 Removing :paramcheck and :typecheck settings
    ca36c64 Allowing Environment.new to take an environment
    f50cc25 TypeCollection now supports namespace arrays
    fc27123 Adding parameter validation to Puppet::Resource
    f58a2e0 Fixing failing Environment unit tests
    59d2ee2 Tuning file load order
    6a8b434 Removing obsolete Settings comments and require
    efc5576 Adding an environment helper
    5c4a7f3 Changing the interface of Puppet::Resource
    414b758 Partially fixing #2954 - Adding class parameters
    82fbedd Fixing test structure
  8104 examples, 62 failures, 44 pending
markus:feature/testing/2956  succeeded:
    2205b33 fixing tests
    8f08a61 removing scope from evaluate and evaluate_match
    554e7cf safeevaluate doesn't need to be passed scope
    31426da Changes to the 0.25.x based version to make it work on testing.
    ea9a633 playing with nested scopes
    96634f7 instantiation, Scope#future_of, lots of plumbing
    ab9f4e7 remove Hash.collect! diagnostics and settor? dead code
    f8f51b1 Added AST shim class
  8104 examples, 155 failures, 44 pending
ran ruby ../refactor/refactor.rb
    8104 examples, 155 failures, 44 pending

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to