Skip to content

Contributor guide: How to develop and publish a module #1473

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

Open
Totktonada opened this issue Aug 20, 2020 · 1 comment
Open

Contributor guide: How to develop and publish a module #1473

Totktonada opened this issue Aug 20, 2020 · 1 comment
Labels
contributor ramp up dev To be updated by the developers. Includes developer guidelines and many API elements.

Comments

@Totktonada
Copy link
Member

  • A module template (modulekit: luakit / ckit).
  • Lua/C style guides.
  • How to handle third-party dependencies.
  • How to setup CI / CD.
    • How to setup testing.
    • Publish rockspec.
    • Publish RPM / Deb package.
    • Publish documentation.
    • Publish a docker image.
  • How to publish the module on our GitHub and website.
    • Don't forget about our side steps: fork the repo, add credentials to CI variables, trigger first build, etc.

Part of umbrella issue #1444.

In fact this issue requires to work on the template and infrastructure. I'll file relevant issues to the modulekit repository later.

NB: Don't forget about the following tasks:

  • Provide an exaple how to implement pure Lua/C module without Lua wrapper. Show how to load a Lua file from such module (build it into the dynamic library).
  • Implement and setup deployment service for RPM / Deb like one we have for luarocks.
  • Consider GitHub Actions as CI, which supports automatic genetation of a job list. It is useful for eliminate need to manually update a list of supported Linux distros (for which packages are building and deploying) and supported tarantool versions (on which tests are run).
@Totktonada
Copy link
Member Author

There are signs of the old war around storing rockspecs: whether it should be rockspecs/ directory with scm-1 and all releases or just scm-1 in the root of the project. All past discussions are gone, the only thing I found is @rosik's chat question: whether there is any reason to store all release rockspecs in the repository.

I would summon @Mons and @orchaton into the discussion.

@patiencedaur patiencedaur added the dev To be updated by the developers. Includes developer guidelines and many API elements. label May 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contributor ramp up dev To be updated by the developers. Includes developer guidelines and many API elements.
Projects
None yet
Development

No branches or pull requests

2 participants