tycho-knime-node-archetype

Maven archetype for Knime node extension

https://github.com/3d-e-chem/tycho-knime-node-archetype

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.8%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Maven archetype for Knime node extension

Basic Info
  • Host: GitHub
  • Owner: 3D-e-Chem
  • License: apache-2.0
  • Language: Java
  • Default Branch: master
  • Size: 133 KB
Statistics
  • Stars: 5
  • Watchers: 6
  • Forks: 3
  • Open Issues: 6
  • Releases: 15
Created almost 10 years ago · Last pushed over 2 years ago
Metadata Files
Readme Changelog License Citation Zenodo

README.md

Tycho KNIME node archetype

Java CI with Maven DOI

Generates KNIME workflow node skeleton repository with sample code.

This archetype was made because the instructions to create KNIME nodes at https://www.knime.com/developer-guide, requires interaction with Eclipse wizards. We wanted a way to start and perform node development from the command line and headless. KNIME nodes are Eclipse plugins. The Tycho Maven plugin is used to build and handle dependencies of Eclipse plugins, so we use Tycho for KNIME node building.

The Maven archetype will generate a multi-module project with the following structure:

  • / - parent Maven project
  • /plugin/ - code for KNIME node
  • /tests/ - tests of KNIME node
  • /feature/ - eclipse feature
  • /p2/ - eclipse update site

The generated project offers:

  • Usage from the command-line using maven or from Eclipse
  • Integrates with normal Eclipse plugin development flow
  • Integration with Continuous Integration builds on GitHub Actions
  • Integration with SonarCloud quality analysis via GitHub Actions
  • Test workflows for end-2-end tests
  • Test coverage
  • Start KNIME from Eclipse to test nodes without having to release them in a update site

Items above are documented in the generated README.md file, the README also includes instructions for setup for a user, setup for a developer, creating a release and citing the software.

Requirements

  • Java ==17
  • Maven >=3.0

The archetype is hosted on a GitHub packages repository. Maven does not resolve to this GitHub packages repository by default so it must be added.

The ~/.m2/settings.xml should contain the following profile: xml <?xml version="1.0" encoding="UTF-8" ?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> <profiles> <profile> <id>knimearchetype</id> <repositories> <repository> <id>archetype</id> <url>https://maven.pkg.github.com/3D-e-Chem</url> </repository> </repositories> </profile> </profiles> </settings>

Generate

The following command will generate a skeleton project sh mvn archetype:generate -DarchetypeGroupId=nl.esciencecenter \ -DarchetypeArtifactId=tycho-knime-node-archetype \ -DarchetypeVersion=2.0.4 -P knimearchetype

The command will ask the following questions:

  1. Enter the groupId
  2. Enter the artifactId
  3. Enter the name of the package under which your code will be created
  4. Enter the version of your project, use x.y.z-SNAPSHOT format (for example 1.2.3-SNAPSHOT), where x.y.z is semantic versioning.
  5. Enter the GitHub organization name or GitHub username
  6. Enter the GitHub repository name
  7. Enter the KNIME node name
  8. Enter the vendor name
  9. For branded property enter Y to enable the 3D-e-Chem project branding like splash logo, node category and update site category or enter N to skip the branding.
  10. Confirm

The skeleton has been generated in a sub-directory named after the artifactId in the current working directory.

The following steps are needed to get a ready to use project.

  1. Change directory to generated code.
  2. Make skeleton git aware, by running git init.
  3. Fill in all placeholders ([Enter ... here.]) in
* plugin/src/**/*.xml
* feature/feature.xml
  1. Commit all changes and push to GitHub
  2. Optionally, setup Continuous Integration as described in the project README.md file.

Further instructions about generated project can be found in it's README.md file.

Generate from inside KNIME SDK

  1. Install Java 17
  2. Install Eclipse for RCP and RAP developers
  3. Configure Java 17 inside Eclipse Window > Preferences > Java > Installed JREs
  4. Register the archetype catalog which contains this archetype

    1. Goto Window > Preferences > Maven > Archetypes
    2. Add a remote catalog with https://github.com/3D-e-Chem/tycho-knime-node-archetype/raw/master/archetype-catalog.xml
  5. Create a new project based on archetype

    1. Goto File > New > Project ... > Maven
    2. Select Maven Project & press Next button
    3. Use default location & press Next button
    4. Select Catalog you added in step 4.2
    5. Select the archetype with artifact id tycho-knime-node-archetype & press Next button
    6. Fill in the form & press Finish button

Further instructions about generated project can be found in it's README.md file.

New release

  1. Adjust version in pom.xml & CHANGELOG.md & README.md & archetype-catalog.xml
  2. Commit & push
  3. Test archetype by running mvn verify
  4. Create GitHub release
  5. Deploy to GitHub packages, see Deploy chapter below

Deploy

To deploy current version to GitHub Packages.

  1. Create personal access token with write:packages scope
  2. Create ~/.m2/settings.xml
  3. Run mvn --batch-mode deploy

Attribution

The https://github.com/open-archetypes/tycho-eclipse-plugin-archetype was used as inspiration for this archetype. Also https://github.com/knime-community/community-repository-template/ and https://github.com/vernalis/vernalis-knime-nodes/ where used as inspiration to upgrade to KNIME 5.1.

Owner

  • Name: 3D-e-Chem NLeSC project
  • Login: 3D-e-Chem
  • Kind: organization
  • Location: Amsterdam, The Netherlands

Software repositories for 3D-e-Chem project of Netherlands eScience Center

Citation (CITATION.cff)

# YAML 1.2
# Metadata for citation of this software according to the CFF format (https://citation-file-format.github.io/)
cff-version: 1.0.3
message: If you use this software, please cite it as below.
title: KNIME node archetype
doi: 10.5281/zenodo.3266165
authors:
- given-names: Stefan
  family-names: Verhoeven
  affiliation: Nederlands eScience Center
  orcid: https://orcid.org/0000-0002-5821-2060
repository-code: https://github.com/3D-e-Chem/tycho-knime-node-archetype
license: Apache-2.0

GitHub Events

Total
  • Watch event: 1
  • Fork event: 1
Last Year
  • Watch event: 1
  • Fork event: 1

Dependencies

.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • actions/setup-java v3 composite
pom.xml maven
src/main/resources/archetype-resources/feature/pom.xml maven
src/main/resources/archetype-resources/p2/pom.xml maven
src/main/resources/archetype-resources/plugin/pom.xml maven
src/main/resources/archetype-resources/pom.xml maven
src/main/resources/archetype-resources/targetplatform/pom.xml maven
src/main/resources/archetype-resources/tests/pom.xml maven