Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 352964 - [ast] Make EcoreEvaluationEnvironment extensible for QVTo collections
Summary: [ast] Make EcoreEvaluationEnvironment extensible for QVTo collections
Status: CLOSED FIXED
Alias: None
Product: OCL
Classification: Modeling
Component: Core (show other bugs)
Version: 3.1.0   Edit
Hardware: PC Windows Vista
: P3 normal (vote)
Target Milestone: M1   Edit
Assignee: OCL Inbox CLA
QA Contact:
URL:
Whiteboard: Legacy
Keywords:
Depends on:
Blocks: 352958
  Show dependency tree
 
Reported: 2011-07-25 00:54 EDT by Ed Willink CLA
Modified: 2013-05-20 11:36 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ed Willink CLA 2011-07-25 00:54:32 EDT
Make EcoreEvaluationEnvironment.getCollectionKind and coerceValue protected to support use of extended QVTo collections in Tuples. See Bug 352958.
Comment 1 Ed Willink CLA 2011-07-25 01:09:02 EDT
+1. EcoreEvaluationEnvironment is part of the mature code so changes to APIs are increasingly difficult. Exposing a couple of private's as protected shouldn't create a maintenance nightmare.

[The whole coerceValue protocol is a workaround for using Java Object rather than OCL Value polymorphism. The revised pivot-based implementation should not have these problems since collections are explicitly CollectionValue's. 

Bug 297390 suggested eliminating one usage of 'kind' whose 4/5 enumerated values are an embarassment for extension. The discussion and proposal got nowhere. The work on OCL to Java code generation has forced elimination of CollectionKind since that is part of the pivot model that is not necessarily available at run-time. QVTo should be able to provide an extended ValueFactory with additional createCollection methods.]
Comment 2 Axel Uhl CLA 2011-07-25 04:17:07 EDT
No problem with making these two methods protected. +1
Comment 3 Ed Willink CLA 2011-07-25 04:30:32 EDT
Axel: Since you're working in this area, I'll 'assign' this to you so that you can do it with less disruption to your other activities.

Note that this is for both 3.1.1 and 3.2.0.

Adolfo: Are we in good shape for a 3.1.1 build from GIT?
Comment 4 Axel Uhl CLA 2011-07-25 05:09:32 EDT
I will simply make the two trivial changes, run all tests, commit to master and push. Objections?
Comment 5 Ed Willink CLA 2011-07-25 05:16:37 EDT
Go for it.
Comment 6 Axel Uhl CLA 2011-07-25 05:20:29 EDT
(In reply to comment #5)
> Go for it.

One more caveat: making the two methods protected is considered a change that requires incrementing the minor version from 3.1.0 to 3.2.0. Ok?
Comment 7 Ed Willink CLA 2011-07-25 05:25:46 EDT
(In reply to comment #6)
> One more caveat: making the two methods protected is considered a change that
> requires incrementing the minor version from 3.1.0 to 3.2.0. Ok?

Yes for 3.2.0, No for 3.1.1.

(In reply to comment #4)
> I will simply make the two trivial changes, run all tests, commit to master and
> push. Objections?

Surely this needs to be merged to maintenance/R3_1 too?

This reminds me: we don't seem to have an R3_1 tag as specified by the Indigo
project plan.

-----

Do the 3.1.1 merge first with 3.1.1 versions in all downstream features and an API filter to allow it in 3.1.1

Then 3.2.0 can and should have 3.2.0 versions.
Comment 8 Axel Uhl CLA 2011-07-25 05:33:24 EDT
(In reply to comment #7)
> (In reply to comment #6)
> > One more caveat: making the two methods protected is considered a change that
> > requires incrementing the minor version from 3.1.0 to 3.2.0. Ok?
> 
> Yes for 3.2.0, No for 3.1.1.
> 
> (In reply to comment #4)
> > I will simply make the two trivial changes, run all tests, commit to master and
> > push. Objections?

Ok, will push the changes to master then. This is where 3.2.0 should live. I'll then cherry-pick the private-->protected change onto R3_1 and add API filters there. What do you mean by "all downstream features?"

> Surely this needs to be merged to maintenance/R3_1 too?

You mean that on the maintenance/R3_1 branch you'd also like to upgrade the version to 3.2.0 and merge the above changes?

> This reminds me: we don't seem to have an R3_1 tag as specified by the Indigo
> project plan.


> 
> -----
> 
> Do the 3.1.1 merge first with 3.1.1 versions in all downstream features and an
> API filter to allow it in 3.1.1
> 
> Then 3.2.0 can and should have 3.2.0 versions.
Comment 9 Axel Uhl CLA 2011-07-25 07:28:54 EDT
Committed the change with 3.2.0 version setting to master. Will now downport to RC1 maintenance branch with API filter.
Comment 10 Axel Uhl CLA 2011-07-25 07:36:31 EDT
Cherry-picked private-->protected and added API filter on maintenance/R3_1 to which I pushed the change. So there, the bundle version is still on 3.1.0, and an API filter is required to avoid errors.
Comment 11 Ed Willink CLA 2011-07-25 11:59:44 EDT
(In reply to comment #8)
> Ok, will push the changes to master then. This is where 3.2.0 should live. I'll
> then cherry-pick the private-->protected change onto R3_1 and add API filters
> there. What do you mean by "all downstream features?"

Anything that references a 3.1.1 must be >= 3.1.1. So all features that transitively include the 3.1.1 ocl.ecore must also be 3.1.1.

EMF has tried to be fairly 'optimal' recently since EMF changes are small. This seems to be causing trouble. I suspect that if we have any 3.1.1 we may want 3.1.1 all round.
Comment 12 Adolfo Sanchez-Barbudo Herrera CLA 2011-07-25 13:45:55 EDT
Hi Team,

I'm back again from my last week break...

I guess that you all know that this kind of changes are not appropriate for a Service Release... "Support use of extended QVTo collections in Tuples" sounds like an enhancement rather than a bug fix. Anyway, taking into account that this won't hurt anybody, and it will help real users instead (as claimed in the related bug), I'm OK with it.

Main development and maintenance stream builds should be working... I'll launch a couple of runs to see what happens. As Ed commented, features must be transitively increased.

P.S: Info about version numbering: http://wiki.eclipse.org/Version_Numbering

Cheers,
Adolfo.
Comment 13 Adolfo Sanchez-Barbudo Herrera CLA 2011-07-25 14:05:43 EDT
Maintenance one had been automatically run... Promotion was fine:

P2 repo: http://download.eclipse.org/modeling/mdt/ocl/updates/maintenance
downloadable zips: http://www.eclipse.org/modeling/mdt/downloads/?project=ocl

Waiting for the end of the running of the main development stream one.

Regards,
Adolfo.
Comment 14 Adolfo Sanchez-Barbudo Herrera CLA 2011-07-25 14:35:25 EDT
> Waiting for the end of the running of the main development stream one.

All fine, as well...

P2 repo: http://download.eclipse.org/modeling/mdt/ocl/updates/interim
downloadable zips: http://www.eclipse.org/modeling/mdt/downloads/?project=ocl

I've also configured the master job to periodically consult our GIT repository, to automatically start the builds.

Cheers,
Adolfo.
Comment 15 Axel Uhl CLA 2011-07-25 15:29:35 EDT
(In reply to comment #14)
> > Waiting for the end of the running of the main development stream one.
> 
> All fine, as well...

Just pushed the transitive upgrade to 3.2.0 versions in the MANIFEST.MF files on master.
Comment 16 Adolfo Sanchez-Barbudo Herrera CLA 2011-07-26 12:08:53 EDT
Axel,

Please, ensure that features from maintenance stream are also properly updated.

I'll finally enable the promotion scripts in my crontab configuration file. I'll also create a crontab folder to have some tracking about how I'm using our promotion stuff to automatically promote our builds.

P.S: Axel, your last commits missed the ["bugnumber"] tag :)

Regards,
Adolfo.
Comment 17 Axel Uhl CLA 2011-07-26 14:59:41 EDT
(In reply to comment #16)
Adolfo,

> Please, ensure that features from maintenance stream are also properly updated.

do you mean the *-feature projects on maintenance/R3_1? Why would they need an update? I didn't change the bundle version in R3_1.

> P.S: Axel, your last commits missed the ["bugnumber"] tag :)

Sorry. Shall I commit --augment those commits, adjusting the comment or can we live with it?
Comment 18 Ed Willink CLA 2011-07-26 15:13:07 EDT
(In reply to comment #17)
> > P.S: Axel, your last commits missed the ["bugnumber"] tag :)
> 
> Sorry. Shall I commit --augment those commits, adjusting the comment or can we
> live with it?

If it's easy perhaps. But it's a pretty easy regular mistake that we can live with.

I don't understand how commit comments work at all for GIT. For CVS the major comment with bug number was associated with the commit to HEAD. For GIT the merge to master seems to be commentless. Putting a [xxxxx] prefix on every commit to bug/xxxxx seems fatuous.
Comment 19 Axel Uhl CLA 2011-07-27 03:34:38 EDT
The merging commit has an automatically-created comment such as

    Merge branch 'bug/349300'

I agree that from the topology the bug ID should be evident then. I suggest putting the commit ID in brackets in the comment only if it's a minor thing that gets committed to master without affording a bug/xxxxxx branch for it.
Comment 20 Adolfo Sanchez-Barbudo Herrera CLA 2011-07-27 07:01:14 EDT
I'm afraid I don't agree...

I think you are forgetting cherry picking task. The commits are copied including author, comments, etc. I would like to see in the maintenance branch some bug-related information in the list of commits history of said branch.

Besides, when you are looking to the history of the repository, you may have a lot of mixed commits in it which come from different branches. Having the bug ID in the beginning of the comment definitely helps.

As commented, the commit comment inclusion (bug id and comment) could be automated as explained in Bug 349114 (coment 53). I don't see any reason which prohibits us to use this practice. Obviously, we are not amending or trying to fix any commit because we missed the Bug id information. However, let's do some effort to adopt this useful practice.

Regards,
Adolfo.
Comment 21 Ed Willink CLA 2011-08-12 12:11:15 EDT
This is indeed now on master and maintenance/R3_1.

While checking the history, I indeed found the [xxxxx] prefixes useful and necessary.
Comment 22 Ed Willink CLA 2011-08-18 15:25:44 EDT
(In reply to comment #21)
> This is indeed now on master and maintenance/R3_1.

I don't know why it is in R3,1 because it does not seem to be possible to placate the API filters. When the missing 3.1.1 version number upgrade is applied, the API filters fail. The filter in use was a wildcard something changed, which totally undermines API tooling.

Doing this change in SR1 is a courtesy, not a necessity. If QVTo solves Bug 352958 as an SR, we can revisit the API disabling consequences; but the QVTo changes almost certainly cannot be an SR update so our change for Juno will suffice.
Comment 23 Ed Willink CLA 2011-08-18 15:36:35 EDT
Revert pushed to maintenance/R3_1.

Missing 3.1.1's coming soon.
Comment 24 Ed Willink CLA 2013-05-20 11:36:08 EDT
CLOSED after a year in the RESOLVED state.