EPIC is an open-source Perl IDE for the Eclipse platform. This repository contains the source code, plugins, features, and Tycho build setup for EPIC.
.
├── pom.xml # Top-level Maven parent & aggregator POM
├── org.epic.feature.main/ # Feature definition
├── org.epic.repository/ # p2 update-site / repository module
│
├── org.epic.perleditor/ # Core Perl editor plugin
├── org.epic.debug/ # Perl debugger integration plugin
├── org.epic.regexp/ # Regular expression tester plugin
├── org.epic.lib/ # Bundled third-party libraries
├── org.epic.doc/ # User documentation plugin
├── org.epic.source/ # Source bundle packaging
│
└── org.epic.perleditor-test/ # Automated UI & unit tests
- JDK 17+ (required for build, the minimum source code and output bytecode level is 1.8)
- Apache Maven 3.9.x
- Xvfb (optional, required for running headless UI tests on Linux)
All builds are managed by the Eclipse Tycho Maven plug-in.
Just run the Maven commands mentioned below from the root directory after Git clone.
Runs the full build and executes the test suite (this starts and remotely controls a test workbench on your desktop):
mvn clean verifyBuilds all plugins, features, and the p2 repository without running the test suite:
mvn clean verify -DskipTests=trueAs an alternative to (1), runs the tests headless (in a virtual framebuffer, with no visible test workbench):
xvfb-run -a mvn clean verifyAfter a successful build, the p2 update site (installable in Eclipse via Help → Install New Software...) is generated in:
org.epic.repository/target/repository/
A zipped version of the update site is also generated in org.epic.repository/target/.
To update the version across all pom.xml, MANIFEST.MF, feature.xml, and category.xml files simultaneously, use the Tycho versions plugin:
mvn org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=<NEW_VERSION>-SNAPSHOTExample:
mvn org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=0.7.12-SNAPSHOT- Upload the folder
org.epic.repository/target/repository/tohtdocs/updates/testing/x.y.z(x.y.z = version number, e.g. 0.7.12) - Register the new version number in
htdocs/updates/testing/compositeArtifacts.xmlandhtdocs/updates/testing/compositeContent.xml.