See the issue tracker at https://github.com/prolobjectlink/$project.name to create a new issue or take an existing one.
Fork the repository in GitHub.
Clone your forked repository in your preferred IDE
Prolobjectlink development requires.
- Java 1.8 - Maven 3.1.0 or above
Make changes in your cloned repository
Run all test to see if the system still consistent after your changes
Create unit-tests and make sure that the include changes are covered to 100%
Run the benchmark to see if the system performance still consistent after your changes
Add a description of your changes in CHANGELOG.txt and src/changes/changes.xml
Commit the changes.
Run an integration test on Travis-CI
Submit a pull request.
The project start with some adapters implementations over most used open source prolog engines.
We accept any new adapter implementation of another prolog engine not covered at this moment.
For this propose create a new GitHub source code repository naming this follow the project convesion:
prolobjectlink-jpi-new engine implementation name
Create an new maven project in your preferred IDE named like repository.
Copy the src/assembly/dist.xml descriptor
Copy the src/build/filters folder and change by your console main entry point
Copy and clean src/changes/changes.xml to go reporting every change
Copy src/site folder to generate a similar project site.
Copy the pom.xml properties, build, report, etc... from another implementation
Change the project information.
Add your dependencies including Java Prolog Interface API
<repositories> <repository> <id>ossrh</id> <name>Sonatype Nexus Snapshots</name> <url>https://oss.sonatype.org/content/repositories/snapshots</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> ... <dependencies> ... <dependency> <groupId>org.prolobjectlink</groupId> <artifactId>prolobjectlink-jpi</artifactId> <version>[1.0.0, )</version> </dependency> ... <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>[4.10, )</version> <scope>test</scope> </dependency> ... </dependencies>
In test package copy the unit-tests cases from another implementation to develop in test driven mode.
We suggest like adapter implementation order begin with data types, parsers, engine and finally query.
Run all test to see if the system to see if your implementation pass all.
Create unit-tests and make sure that the include changes are covered to 100%
Create the benchmark to see if the system performance.
Add a description of your changes in CHANGELOG.txt and src/changes/changes.xml
Commit the changes.
Run an integration test on Travis-CI or another CI system
Prolobjectlink version signature is Major.Minor.Micro.
Major version is change when the API compatibility is broken. Minor version is change when a new feature is include in the release. Micro version is change when some bug is fixed or some maintenance take place
Prolobjectlink suggest work over the started 1.Y.Z version to preserve compatibility all the time. You are free of make any change adding new features, fixing bugs or code maintenance.