Is it possible to add some functionality to an existing node/extension?

I read some related links like:

  1. https://forum.knime.com/t/how-do-i-edit-build-on-an-existing-extension/25360
  2. https://forum.knime.com/t/how-to-extend-an-existing-node/39322
  3. https://forum.knime.com/t/to-extend-an-extension/415

but I can’t still figure out if it is possible or not.
Is there anyway better than copying the whole source code of extension and working on it in another new node extension project?

Assume I want to add just one line for logging in currently existing node/extension.

I appreciate for any clear answer.

Hi nmorti,

There is an existing thread on modifying an existing nod. Check the solution provided by gab1one on the below thread :

Thanks.

1 Like

Hi @nmorti,

your help in developing extensions will always be appreciated.

There are two cases: You want to contribute to an extension which is

  1. not developed and maintained by KNIME
  2. developed and maintained by KNIME

In the first case, you can get in touch with the maintainers of the extension in question and ask them how to contribute.

In the second case, let us walk together through this example: You want to contribute to the Python View node and you know how to write a Java node. (*)

For this you need to (A) find its code base, (B) feed the monster of bueraucracy, (C) add your changes, (D) open a Pull Request which contains the code changes and a unit test or email us a test workflow and (E) confirm that the functionality is as you intended it to be.

(A) Find its code base
First, you find the node on the Hub: Python View – KNIME Community Hub

The last part is the name of the node’s factory.
org.knime.python3.scripting.nodes.view.PythonViewNodeFactory

Like in the screenshot, go to KNIME · GitHub and search in this organization for the name of the node’s factory. That should lead you roughly to the code base.

(B) Feed the monster of bureaucrazy
We require a Contributor License Agreement, please follow this manual.

(C) Add your changes
Follow the guides for Java or Python nodes for node development in general. Please also test.

(D) Propose your changes and tests

  1. Open a Pull Request in the code-base with your changes and unit tests
  2. Send us the test workflow

(E) Test the functionality in the nightly
When we merge the changes, please verify that your change works as intended.

Does this help regarding the non-technical details?

Best regards
Steffen

(*)
If it is a node written in Python, one can familiarize oneself with the following guide: Create a New Python based KNIME Extension and propose changes accordingly.

3 Likes

Thanks @steffen_KNIME
Where can I find database extension repository? (e.g, org.knime.database.extension.postgres.node.connector.PostgreSQLDBConnectorNodeFactory)
Is there any public repository like org.knime.python3 for org.knime.database?
I searched it in Knime-github as you said but found nothing!

Hi @nmorti,

you are right, this one is not on GitHub yet. I am checking when that might happen.

Best regards
Steffen

2 Likes

Hi @nmorti,

I cannot tell when the publication on GitHub will happen, but I added raised awareness again for this issue (internal ticket: AP-7121).

Best regards
Steffen

2 Likes

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.