User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0
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:
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.
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?
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 #3433, Walnut,
CA 91789
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 #3433, Walnut,
CA 91789