-
Notifications
You must be signed in to change notification settings - Fork 306
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implements #288: support for two additional version ids (<bid>b.min and <bid>b.orig) #309
base: master
Are you sure you want to change the base?
Conversation
…before giving up.
…nto vid-extensions
…nto simplify-apply
…nto vid-extensions
…nto vid-extensions
…nto simplify-apply
…nto vid-extensions
@rjust - one minor suggestion/thought: Should we also add version id I'm fine accepting this, as is, but the thought occurred to me. |
Thanks @rjust. Quick questions,
In other words, by default, code coverage is measured only for the classes modified by the minimal bug fix. Because I checkout the original buggy version of Chart-1, shouldn't the |
Duplicating all meta data for the I agree that the notion of instrumenting modified classes by default is confusing. We could fix this by more precisely documenting the default. Each command does support custom class lists, so a user can always override the default -- having such class lists precomputed would make this easier. Alternatively, we can compute the set of modified files prior to running a command rather than using pre-computed metadata. Computing the set of relevant tests would be more of an issue, though. Based on the discussions that we had so far, it seems that we have the following goals:
Here is a concrete proposal:
@Greg4cr, I am inclined to leave |
@rjust - I like your proposal. If we have a command that can generate the metadata for the original version, we can actually keep our repo quite clean while still enabling access to data:
|
@rjust, I do agree with your proposal. It would be tricky to keep the metadata repository up-to-date and synchronized with the D4J repository but I think we can manage that. (I do prefer to have all metadata in place, i.e., without having to run any command or even clone D4J. It's just easier to consult metadata if it has been pre-computed.) |
@jose I was thinking about a submodule solution, but I agree it will be less convenient. As an alternative, having a snapshot of all pre-computed metadata in a dedicated repo (clearly linked from the D4J README) and keeping only necessary metadata in D4J proper might be acceptable. Btw, I just noticed that the current metadata in D4J proper is not "complete" -- for example, modified_classes directory does not provide the list of modified test classes, but the patches directory does provide all test patches. Let's group all the metadata into:
We can put all of the above metadata (and possibly more) into a dedicated repo. We need to keep the curated files in D4J proper -- and probably want to keep the results of long-running analyses as well. I don't think we need to store metadata that can be instantly computed with a command (the dedicated metadata repo will still provide immediate access online). If we want to make pre-computed [instant] available locally, then the init script could populate the corresponding folders. Any thoughts? |
@Greg4cr and @jose, for this particular PR, let's make a decision on what the semantics of the I think that we should tackle the re-org of the metadata, too, but in another PR. |
IMO, the |
I agree with @jose - the current Given the growing complexity of the One suggestion for the metadata repo - maintain separate
(assuming we create static metadata files instead of generating on the fly) |
Yes, lets go ahead and address the metadata repository first. @Greg4cr, I like your suggestion. |
@rjust What is the status of this pull request? |
I took a first stab at implementing the two new version ids (#288 ). I focused on backward compatibility to avoid breaking existing functionality in the 2.0.0 release.
I ended up using
b.min
andb.orig
(as opposed tob-min
andb-orig
) because I found Lang-2b.min and -v2b.min easier to read.I added a basic test for checking those new version ids.