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.