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

Revise example extension module #27

Open
heplesser opened this issue Apr 24, 2024 · 3 comments
Open

Revise example extension module #27

heplesser opened this issue Apr 24, 2024 · 3 comments
Assignees
Labels
enhancement New feature or request

Comments

@heplesser
Copy link
Contributor

The current nest-extension-module code tries to do four things in one example:

  1. Provide a complete, worked example of an extension module with its own documentation.
  2. Provide an example of how to create a minimal extension module.
  3. Provide code to build on as starting point for an extension module.
  4. Document how to create an extension module.

These approaches lead to conflicts and lack of clarity. I suggest to provide separately

  1. An empty template for a minimal module containing a minimal CMakeLists.txt and mymodule.cpp file. I am not sure if I would want to include empty templates for neuron, synapse and possibly other models, but that would probably be a good idea.
  2. A minimal worked example containing only module and model code, with CMakeLists.txt.
  3. A fully worked module example including documentation for the module.
  4. Documentation on how to write a module, which can possibly be integrated with the fully worked module.

I am not sure how to then present these three/four things, if they should be subdirectories with this repo or even separate repos (so users could fork from the template, or the minimal/fully worked examples). @terhorstd Any thoughts on this?

@jessica-mitchell We should discuss documentation around this.

@pnbabu Can you bring in the NESTML perspective on this?

We should all have a meeting to discuss this.

@terhorstd
Copy link
Contributor

That is not completely true. For the minimal example to fork by users, there is a branch minimal, which should be used as the starting point for creating an own model. iirc this is also mentioned in the documentation, but it seems I can't find where, so it's definitely not documented well enough... There are reasons why this is a separate branch instead of another subfolder, but I'd be happy to discuss this again.

Another aspect of the minimal example is the testing in CI, for which we should have one definition that always builds against defined versions of NEST.

@heplesser
Copy link
Contributor Author

@terhorstd I had not been aware of the minimal branch, that seems to be a good idea—and it is not adapted at all yet. That will have to come as part of the work on this issue here. We clearly need to mention the branch-approach in the documentation.

@terhorstd
Copy link
Contributor

I agree, and the minimal branch should also be tested appropriately for the interfaces to work, even if it has almost no functionality to test.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants