Skip to content

Remove deprecated Color(Device, ...) constructor usage#692

Merged
wimjongman merged 2 commits intoEclipseNebula:masterfrom
vogellacompany:remove-deprecated-color-device-constructor
Apr 15, 2026
Merged

Remove deprecated Color(Device, ...) constructor usage#692
wimjongman merged 2 commits intoEclipseNebula:masterfrom
vogellacompany:remove-deprecated-color-device-constructor

Conversation

@vogella
Copy link
Copy Markdown
Contributor

@vogella vogella commented Apr 15, 2026

Summary

Test plan

  • Verify the project compiles successfully
  • Verify no regressions in color rendering across widgets

🤖 Generated with Claude Code

@vogella vogella force-pushed the remove-deprecated-color-device-constructor branch from 07d15d4 to 3528401 Compare April 15, 2026 09:46
@vogella
Copy link
Copy Markdown
Contributor Author

vogella commented Apr 15, 2026

The build failure (continuous-integration/jenkins/pr-head) is a Jenkins environment issue it requires Java 21 but the CI agent is running Java 17. I send another PR for fixing this.

@merks
Copy link
Copy Markdown
Contributor

merks commented Apr 15, 2026

@vogella

Probably every bundle that's changed needs to have a lower bound such that it can only be installed with a version of SWT that has the newer constructor.

@vogella
Copy link
Copy Markdown
Contributor Author

vogella commented Apr 15, 2026

@vogella

Probably every bundle that's changed needs to have a lower bound such that it can only be installed with a version of SWT that has the newer constructor.

That would be 3.115 AFAICS:

  • @SInCE 3.115
    */
    public Color(int red, int green, int blue) {
    super();
    init(red, green, blue, 255);
    }

Also update MANIFEST.MF files to require org.eclipse.swt >= 3.115.0,
which is the version that introduced the device-less Color constructors.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@vogella vogella force-pushed the remove-deprecated-color-device-constructor branch from 3528401 to 5e623c1 Compare April 15, 2026 11:00
@merks
Copy link
Copy Markdown
Contributor

merks commented Apr 15, 2026

Sorry, I should have thought of this before, but now with a visible change to the manifest, something needs to be incremented. Probably the minor version. And then corresponding feature increments for the including features...

Dear goodness, quite some things to consider... 😢 Sorry.

@vogella
Copy link
Copy Markdown
Contributor Author

vogella commented Apr 15, 2026

Sorry, I should have thought of this before, but now with a visible change to the manifest, something needs to be incremented. Probably the minor version. And then corresponding feature increments for the including features...

Dear goodness, quite some things to consider... 😢 Sorry.

What is the version strategy of Nebula? It looks like most bundles were set to 1.0.0 when created and simply never incremented, even as functionality changed. So effectively AFAICS, Nebula doesn't have an active versioning strategy.

They seem to rely on the build qualifier.

@vogella
Copy link
Copy Markdown
Contributor Author

vogella commented Apr 15, 2026

I think we should not start incrementing suddenly versions if Nebula never did it in the past.

I can do this but it feels to me that this would violate the way of working in Nebula (no version increase, what a beauty to work with).

@merks
Copy link
Copy Markdown
Contributor

merks commented Apr 15, 2026

It's not that they never did it because we do see a mixture of versions:

https://download.eclipse.org/nebula/updates/nightly/latest/index.html

Just so you know where I'm looking:

image

But certainly there was never much attention paid to the version numbers. That serves the consumers extremely poorly, especially now if we literally are breaking backward compatibility knowingly.

@lcaron @wimjongman

As team leads, you set the direction. I know that versions are hard to maintain and keep correct and consistent, even more so with such a large boatload of bundles and fine-grained features... I expect feature versions don't matter so much because consumers probably specify the bundle dependencies with ranges.

@wimjongman
Copy link
Copy Markdown
Contributor

Nebula API is not breaking, it is an upstream plugin that changes. Lifting the lower SWT requirement should be enough.

We must increment the major version if this breaks the API of one of our plugins.
We must increment the minor version of each affected plugin.

WDYT?

@merks
Copy link
Copy Markdown
Contributor

merks commented Apr 15, 2026

I agree. I think for this non-API breaking change, every affected bundle should have a minor version increment; I'm not so concerned about feature version, though incrementing the minor version of each including feature would be nice if the AI agent can do that relatively easily.

@vogella
Copy link
Copy Markdown
Contributor Author

vogella commented Apr 15, 2026

What increment for minor? Just "1"?

So we go for example:

  • version="1.0.0.qualifier"
  • version="1.1.0.qualifier"

And 1.6.1 would become 1.7.0

@wimjongman
Copy link
Copy Markdown
Contributor

We must also bump the pom I think.

@vogella
Copy link
Copy Markdown
Contributor Author

vogella commented Apr 15, 2026

We must also bump the pom I think.

Thanks, already noticed, I initially assumed Nebula is pomless....

@vogella vogella force-pushed the remove-deprecated-color-device-constructor branch from 0653b0c to 0d12398 Compare April 15, 2026 13:15
Update Bundle-Version in MANIFEST.MF, version in feature.xml, and
Maven version in pom.xml to keep Tycho version validation in sync.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@vogella vogella force-pushed the remove-deprecated-color-device-constructor branch from 0d12398 to fa882a6 Compare April 15, 2026 13:22
@merks
Copy link
Copy Markdown
Contributor

merks commented Apr 15, 2026

@vogella

That's looking really great!

Copy link
Copy Markdown
Contributor

@merks merks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't review line by line, but generally looks just fine!

@wimjongman wimjongman merged commit 0d5a10c into EclipseNebula:master Apr 15, 2026
5 checks passed
@wimjongman
Copy link
Copy Markdown
Contributor

I didn't review line by line, but generally looks just fine!

image

@wimjongman
Copy link
Copy Markdown
Contributor

Thanks, Lars!!

@vogella
Copy link
Copy Markdown
Contributor Author

vogella commented Apr 15, 2026

Thanks, Lars!!

Pleasure my friend. Would be nice to met you again for a cold one. :-)

@vogella vogella deleted the remove-deprecated-color-device-constructor branch April 15, 2026 14:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants