Skip to content
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

ant or maven build scripts + Continuous integration #6

Closed
hrj opened this issue Dec 19, 2014 · 14 comments
Closed

ant or maven build scripts + Continuous integration #6

hrj opened this issue Dec 19, 2014 · 14 comments
Milestone

Comments

@hrj
Copy link
Member

hrj commented Dec 19, 2014

No description provided.

@hrj hrj modified the milestones: 0.1, 0.2 Dec 19, 2014
@hrj hrj modified the milestones: 0.3, 0.2 Dec 29, 2014
@hrj hrj modified the milestones: 0.4, 0.3, 0.5 Jan 7, 2015
@gim-
Copy link

gim- commented Feb 5, 2015

That would be great. At this moment I have no idea how to build this, there are no build instructions and dependency lists.

@hrj
Copy link
Member Author

hrj commented Feb 6, 2015

Yeah, I will tackle this soon after 0.4 release.

@hrj
Copy link
Member Author

hrj commented Feb 9, 2015

@gim- For development, you can use this guide. It requires Eclipse at the moment.

@hrj
Copy link
Member Author

hrj commented Sep 7, 2015

A guideline for anyone who would like to take this up:

When you open the project in Eclipse, you will see a couple of modules: HTML_Renderer, Platform_Core, etc. These modules need to be built individually into separate jars. There are compile time dependencies between the modules, which can be observed through the Eclipse build path for each module. There also dependencies on external jars, which are all kept inside the XAMJ_Build/ext folder.

After compiling, it should be possible to run the browser by specifying all the jars on the classpath, and specifying this entry point: org.lobobrowser.main.EntryPoint.

@hrj hrj added the need-code label Sep 7, 2015
@atiqsayyed
Copy link
Contributor

I'm picking this up...
I'll use maven for internal and external dependency management between modules...
Will keep everyone posted on the status

@hrj
Copy link
Member Author

hrj commented Sep 9, 2015

@atiqsayyed I just discovered that Eclipse has an option to create an ant build file automatically. See this thread.

However, Eclipse creates separate ant build files for each sub-project. It would be nice to take these files as a starting point and build a single build file out of them.

@atiqsayyed
Copy link
Contributor

@hrj I've seen that... I'm trying to integrate the build files which are generated via eclipse...
will update it

@vn971
Copy link

vn971 commented Oct 10, 2015

I seem to be a bit late on this, but yes, a Maven/SBT/Gradle description would be very helpful. As a start:

  • the project could be tested on any platform, including Jenkins/Travis.
  • the project-s source repo (git) could be stripped off from huge binaries (*.jar files)
  • you could work from any IDE (e.g. emacs or intellij-idea)
  • I seem late on this, but if we'd chose SBT, we could have incremental compilation (that means fast compilation), incremental tests and even incremental run. Like you edit the source and save, and if it compiles, the previous instance of the browser can be killed and a new one started. Not useful in all situations, but very useful in some. Most often I just re-run tests when sources change.

@hrj
Copy link
Member Author

hrj commented Oct 11, 2015

You aren't late; nothing's finalised yet :)

SBT is familiar & fine with us.

For dependencies, I would prefer a checksumed download. So far I have not seen a way to do that in sbt / maven.

@atiqsayyed isn't working on this right now, so feel free to pick it up.

@vn971
Copy link

vn971 commented Oct 11, 2015

@hrj OK, cool.

I now spent about 1 hour investigating verification methods in java world. Seems like there are no open solutions for that. The only things I found is a proprietary proxy "Nexus Pro" and manual GPG verification.

I will use checked-in artifacts while trying to migrate to SBT. (After manual verification, of course.)


unnecessary to read. Alternative I know about:
the project could open up a separate git repository and store raw artifacts in it. Then, use this git repo inside the main repo as a "git submodule". This way, the main repo can live without the jar-s at all, but be able to specify the exact dependencies. Anyway, I'm not suggesting this yet because of the added complexity.

@hrj
Copy link
Member Author

hrj commented Oct 13, 2015

About ant: There is a discussion on SO about integrating different ant build files into a master ant file. There is one quick solution, and one of the comments links to a different soution which might be suitable in the long run.

hrj added a commit that referenced this issue Oct 14, 2015
@hrj
Copy link
Member Author

hrj commented Oct 14, 2015

All,

I got the ant file building successfully. It turns out that Eclipse is pretty smart in exporting the ant file; all dependencies and launch configurations are automatically exported.

So just running ant -f src/Platform_Core/build.xml EntryPointwill now compile and execute gngr. 👏

For convenience, I have added a src/build.xml which invokes the build in sub-projects, but it really isn't required.

Using the ant build file, I have also enabled travis ci for this repo! Currently it just checks whether everything compiles or not.

Further things to do in the automated build:

  • Enable testing using grinder.
  • Enable testing using web-platform-tests.
  • Enable packaging of jar file.

@hrj
Copy link
Member Author

hrj commented Oct 20, 2015

I have created separate issues for future work:

@hrj hrj closed this as completed Oct 20, 2015
@hrj hrj modified the milestones: 0.3.11, 0.5 Oct 20, 2015
@hrj
Copy link
Member Author

hrj commented Nov 11, 2015

regarding verification of binaries: gradle has a solution called witness. I wish ant / maven / sbt had something similar.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants