Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-dev] I would like to help with SWT contributions

Thanks very much, very helpful!!

> I think the problem is that the parent pom is often in another Git repository, so it's never quite clear to me how one could actually do a build locally for the platform's projects.

I would love the answer to this question, if anyone has it.  I'm also very curious to know how CI runs.

Ned Twigg
Lead Software Architect, DiffPlug LLC
540-336-8043 (cell)
888-513-6870 (fax)
340 S Lemon Ave #343
3, Walnut, CA 91789


On Fri, Oct 4, 2019 at 1:25 PM Ed Merks <ed.merks@xxxxxxxxx> wrote:

Ned,

Comments below.

On 04.10.2019 20:24, Ned Twigg wrote:
Thanks for the help, we're off to a good start!  One of my goals is to make sure the bug I encountered is reproduced in the test suite, and then fixed after the code change.  Otherwise it will just break again.

The problem with IDE-only is that inevitably there's a test that somebody was running in their IDE that isn't being tested by CI. 
I'm not sure that's the case.  I think (assume) all the JUnit tests that one can run from within the IDE also run in the CI build (and vice versa).  The problem is often that there are no launchers committed so one isn't exactly sure how one should run the tests from within the IDE, but I don't think you should need to do a command line build in order to write and run tests.  If my ability to contribute depended on first being able to do a command line build, I would never have been able to contribute anything...
So I wanted to first make sure that I can do the command-line build, and my next step was to get the IDE stuff going.  Here is how I normally do that when I contribute to something:

- look in the README
- it points me to https://www.eclipse.org/swt/fixbugs.php, which doesn't say anything about the command-line build
- a lot of the links on this page are out-of-date, which makes me question if the instructions are accurate or not
    - Tools link points to Eclipse 3.5
    - Javadoc points to Eclipse Luna
    - Community has CVS links to the Fox widget port
    - Contact Us points to defunct mailing lists
Yes, documentation tends to get out of date. :-(
- this makes me not trust this link, so I go to the next link in the README: https://projects.eclipse.org/projects/eclipse.platform.swt/developer
- this link says "This project is archived. Some links on this page may not work."
- the next link in the README is the defunct https://dev.eclipse.org/mailman/listinfo/platform-swt-dev
- so next I go to CONTRIBUTING
    - which is how I found out about this list
That helped at least. :-)

I appreciate the help on the IDE stuff - I can get it running in an IDE.  But I'm still not able to run the command-line build.

The builds are rather complicated.  I'm not sure how to run a Maven build.  For EMF and for Oomph (my own projects), I have an external launcher configuration committed into the repo that one can kick off a maven build easily from within the IDE.  This has not been done for the platform.  I think the problem is that the parent pom is often in another Git repository, so it's never quite clear to me how one could actually do a build locally for the platform's projects.  Of course someone will point out that it's quite easy, if one knows the right magical (undocumented?) way to do that.

I'm sure though that you will generally need to do that in order to run the tests that you'd want to run.  You should be able to do that from just what's built in the IDE...


In my opensource projects, I try to make the repo self-sufficient.
Yes, but that's difficult in a project as complex as the platform where there are so many separate Git repositories involved...
External links to wikis and webpages and forums tend to go stale, so I try to make sure that all the information that anyone needs to run the build is right there in the repo.  If someone wants to improve the instructions, they don't need to get admin on some wiki or forum, they can just update the repo.
That's also why I believe something like an automated setup is so important, because no human really wants to read a lot of documentation and then have to map that onto a long series of manual steps to hopefully achieve the correct end result.


So three questions:

1) Would this be a welcome contribution? 
Keep in mind that are 24+ repositories that comprise the Eclipse Platform SDK, so it's actually a lot of work to come up with something consistent and actually useful for each one...
If I update the README and CONTRIBUTING to be self-sufficient, rather than pointing out to external websites which are difficult for outside contributors to keep up-to-date?
One advantage of wikis is that they can be adapted and contributed to easily as well.   But in the end, all documentation becomes stale with age, and anything the committers themselves don't use will get stale even faster.
2a) How to I build at the command line?  When I do `mvn help:describe`, I get

[FATAL] Non-resolvable parent POM for eclipse.platform.swt:eclipse.platform.swt:4.14.0-SNAPSHOT: Could not find artifact org.eclipse:eclipse-platform-parent:pom:4.14.0-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 16, column 11
 @
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]  
[ERROR]   The project eclipse.platform.swt:eclipse.platform.swt:4.14.0-SNAPSHOT (/Users/ntwigg/Documents/dev/eclipse.platform.swt/pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM for eclipse.platform.swt:eclipse.platform.swt:4.14.0-SNAPSHOT: Could not find artifact org.eclipse:eclipse-platform-parent:pom:4.14.0-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 16, column 11 -> [

Hopefully someone else will be able to answer this.  This is an example, I believe, where the parent pom comes from a different repositoriy...
2b) Where can I see what CI is doing?  If I want to duplicate a CI result on my machine, how do I go about that?

This is the central index:

https://ci.eclipse.org/

But I'm not sure which one is for SWT, and even if you found it, people don't make a habit of making their build configuration read-public, so you can't typically see how the builds are configured. :-(

So hopefully someone else can shed light on this theme.


Ned Twigg
Lead Software Architect, DiffPlug LLC
540-336-8043 (cell)
888-513-6870 (fax)
340 S Lemon Ave #343
3, Walnut, CA 91789


On Fri, Oct 4, 2019 at 10:45 AM Ed Merks <ed.merks@xxxxxxxxx> wrote:

Ned,

If it's an issue of setting up a local development environment that can be done automatically:

  https://wiki.eclipse.org/Eclipse_Platform_SDK_Provisioning

SWT is a bit tricky, with some renaming involved to set up the classpath in an OS-specific way, but that's handled automatically by the setup.

The above will clone way more projects than you really need, but you can go back after the initial automatic selection, selectively choose which projects to actually clone; this particular setup chooses all the Eclipse SDK projects by default.  You would actually only need the SWT project for your focused purpose, but it's super useful to have clones of all projects of the Eclipse SDK so that you can contribute anywhere and change anything.

Take note of the instructions about getting a Gerrit account and changing the clone URIs to be Gerrit Read/Write URIs so that you can commit to Gerrit when you want to contribute later.

Regards,
Ed


On 04.10.2019 18:35, Ned Twigg wrote:
Hello!  I really like SWT.  I like contributing to open source, and I have a hard time contributing to SWT.  I would like to help make it easier to contribute.

I found and documented a simple bug two years ago.

Today, Niraj very generously supplied a fix, but he cannot test it because he doesn't have a mac.  I figured the least I could do was help test it, but I cannot get the build to work.  I tried to follow the README/CONTRIBUTING, but it seems that a lot of the info there is stale.

Is there anyone who can help get me setup?  I will document the process, and update the README / CONTRIBUTING.  I also plan to run a GitHub mirror with public CI, so that it is easier for people like me to at least get started with contributing back to SWT.

Ned Twigg
Lead Software Architect, DiffPlug LLC
540-336-8043 (cell)
888-513-6870 (fax)
340 S Lemon Ave #343
3, Walnut, CA 91789

_______________________________________________
platform-dev mailing list
platform-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/platform-dev
_______________________________________________
platform-dev mailing list
platform-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/platform-dev

_______________________________________________
platform-dev mailing list
platform-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/platform-dev
_______________________________________________
platform-dev mailing list
platform-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/platform-dev

Back to the top