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

Added instructions for the Marketplace #22

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

mstegmaier
Copy link

Added instructions for the Marketplace to the Contributing section

This pull request is a draft so far. It is meant to be merged after the marketplace has been merged.
@xeTaiz knows the details :)

Added instructions for the Marketplace to the Contributing section
@xeTaiz xeTaiz self-requested a review October 5, 2021 12:17
@@ -32,3 +32,13 @@ It is recommended to use [ClangFormat](http://clang.llvm.org/docs/ClangFormat.ht

### Contributing whole modules
If you are working on a large Inviwo Module and possibly have dependencies on big external libraries, we have an extra [modules repository](https://github.com/inviwo/modules).

#### Inviwo Marketplace
Additionally, there is the inviwo marketplace (see Screenshot) that allows developers to share their processors or shaders.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this not refer to modules (not individual processors, even less shaders)

The template contains a workflow file for [GitHub Actions](https://github.com/features/actions). Using this workflow file, GitHub Actions can build your project automatically whenever you make a commit or manually invoke the build process. We provide an external action that retrieves all files that are necessary to build Inviwo. The workflow file in our template already invokes this action. Furthermore, the workflow file automatically creates a GitHub release after each commit and bundles the created artifacts with it.

##### Citing your contribution
[Zenodo](https://zenodo.org/) provides means to generate a DOI for GitHub Releases. GitHub provides an [easy-to-follow guide](https://guides.github.com/activities/citable-code/). After turning on the switch, Zenodo automatically generates a DOI for every new release. The last step of the guide also describes how to create a badge that always shows the latest DOI and links to it.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does one want to have new DOIs for every commit to master?

So after you have generated the code template for a processor by following the [guide for generating processors](https://inviwo.org/manual-devguide-meta.html), you should create a repository on [GitHub](https://github.com/) based on our [template](link-to-template).

##### Template
The template contains a workflow file for [GitHub Actions](https://github.com/features/actions). Using this workflow file, GitHub Actions can build your project automatically whenever you make a commit or manually invoke the build process. We provide an external action that retrieves all files that are necessary to build Inviwo. The workflow file in our template already invokes this action. Furthermore, the workflow file automatically creates a GitHub release after each commit and bundles the created artifacts with it.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this relate to the marketplace? is the "release" of inviwo or of the marketplace module?

@@ -32,3 +32,13 @@ It is recommended to use [ClangFormat](http://clang.llvm.org/docs/ClangFormat.ht

### Contributing whole modules
If you are working on a large Inviwo Module and possibly have dependencies on big external libraries, we have an extra [modules repository](https://github.com/inviwo/modules).

#### Inviwo Marketplace
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: is marketplace the right name? Will users be able to sell modules? otherwise I think something like "Inviwo Module Index" would be more suitable

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree about the marketplace, even though things can be for free. I still like "Marketplace" as it is quite general and to the point.
Other alternatives that I can think of:
Inviwo Module Repository - conflicts a bit with the "extra module repository", but we might call that something else.
Inviwo (Module) Packages - indicates that it enables retrieval of pre-built modules

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess it can be considered a form of package manager for Inviwo...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

python pip's pypi uses Python Package Index. Think that makes much more sense than calling it a marketplace. If I here marketplace I expect that I will have to pay to done load things. Repository is too overloaded.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Microsoft VS Code uses the term Marketplace for their extensions, but they also mark them as "free". I don't know if you can even pay for extensions there...

Inviwo Package Index sounds ok to me. A bit verbose with the "Index" in my opinion.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You need to pay for quite many of the VS extensions.
Inviwo Package Index, is ok I guess, although I find "package" quite vague, and overloaded. At least in the context of Inviwo development "module" is a somewhat well defined concept.
I guess the same vagueness applies to "Index". Think Index make sense if we are not actually hosting the modules, but just providing links/easy access to them. Similar to what pipy does. Not sure how we actually plan to do that?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GitHub would host the modules through releases and we would only provide the links to access them

@xeTaiz
Copy link
Collaborator

xeTaiz commented Oct 6, 2021

Thanks for the feedback, Peter!
As you can see there's also still a bunch of placeholders. I will incorporate the missing info and your comments once the code part of the marketplace has progressed.
For the name I agree, marketplace may be a bit missleading. Inviwo Module Index sounds good. or Inviwo Module Repository maybe?

@@ -32,3 +32,13 @@ It is recommended to use [ClangFormat](http://clang.llvm.org/docs/ClangFormat.ht

### Contributing whole modules
If you are working on a large Inviwo Module and possibly have dependencies on big external libraries, we have an extra [modules repository](https://github.com/inviwo/modules).

#### Inviwo Marketplace
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree about the marketplace, even though things can be for free. I still like "Marketplace" as it is quite general and to the point.
Other alternatives that I can think of:
Inviwo Module Repository - conflicts a bit with the "extra module repository", but we might call that something else.
Inviwo (Module) Packages - indicates that it enables retrieval of pre-built modules


#### Inviwo Marketplace
Additionally, there is the inviwo marketplace (see Screenshot) that allows developers to share their processors or shaders.
So after you have generated the code template for a processor by following the [guide for generating processors](https://inviwo.org/manual-devguide-meta.html), you should create a repository on [GitHub](https://github.com/) based on our [template](link-to-template).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Title:

How to add your module to the marketplace

Create a repository ....

Additionally, there is the inviwo marketplace (see Screenshot) that allows developers to share their processors or shaders.
So after you have generated the code template for a processor by following the [guide for generating processors](https://inviwo.org/manual-devguide-meta.html), you should create a repository on [GitHub](https://github.com/) based on our [template](link-to-template).

##### Template
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Title: Inviwo github repository template?
Start with shortly explaining the purpose: Using this template will allow you to build your....
Then what it does and what one should do to use it: The template contains a workflow file....

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could we find a way to gather all these repos and build them when we update core, similar to the test we have when building core right now? Could some kind of "registration" be part of the template?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For now the idea is to just have a file to register ones repo. Something like a json, providing a name, github url.. Using this file we could probably build an action that tests all registered modules. If one wants to submit their module to the "official" package index they would make a PR adding their module to this file. Reviewing this before merging will be rather manual for now I guess.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds resonable, just a suggestion looking at like how for example vcpkg handle that, it might be better to have a json file per registered module/repo. putting all in one file might make merges a bit more complicated...

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

Successfully merging this pull request may close these issues.

4 participants