tarantool / tarantool/doc

Contributor guide: How to develop and publish a module

Open
#1,473 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

contributor ramp up dev
Dominant language
CSS
Stars
15
Forks
49
Avg merge
1d 13h
Merged PRs (30d)
3

Description

  • 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).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files or tests are named; start by reviewing umbrella issue #1444 and the planned modulekit issues. Done would require a contributor guide covering templates, Lua/C styles, dependencies, CI/CD, testing, package and documentation publishing, Docker images, GitHub setup, and the pure Lua/C module example described here.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, docker, github-actions, lua
Domain
build-system, ci-cd, devops, documentation, release
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.