Skip to content

contrib

Bjorn Stahl edited this page Jun 20, 2020 · 5 revisions

Interested in contributing to the project? Great. This page maintains a running list of current- and urgent- tasks, with annotations that hint towards background and experience.

Look us up in #arcan on Freenode IRC network.

First, recall that one of the best ways to contribute is to use Arcan for your own projects and share your experiences - good and bad.

Roles: QUAL (Configuration Management, Quality Assurance, Testing, Documentation), ADEV (Arcan Lua related scripting), HDEV (High- Level Development, scripting), LDEV (Low- Level Development, experienced / senior "modern" C 9899:1999+ skillset)

Not-ever needed: Comments (Why is this not implemented in <insert hype flavor language of the day>), Opinions (I believe feature X is important and should be done so and so), Marketing/Outputs from Running (insert code analysis tool here). Code-style/comment/formatting nit-picking patches.

Role Task Description Notes
QUAL Packaging Req: Experienced Packager for key distributions
QUAL Automated testing Updating / Replacing atest.rb, CI setup and deployment
QUAL API documentation Proof-reading, updating examples and error cases for doc/*.lua
QUAL Hardware testing rigs Extend automated testing efforts, multi-display hotplug and latency
ADEV Snapshot Lua debugging Live monitoring and analysis tools for logs/state*.lua
ADEV Support scripts needed Extend/Generalize multidisplay support from durden with postproc.
ADEV IME cleanup Internationalisation IMEs for asian/arabic/etc. languages.
HDEV Integration support Scripts for scanning/populating/managing database
LDEV Vulkan AGP The graphics/shader abstraction (AGP) is currently GLES2/3/GL21
LDEV Software AGP A SSE/Neon optimized implementation of the graphics backend
LDEV BCOM SHMIF Backend Extend the shmif- backends with globalImageBRCM support
LDEV Windows port resurrection Switch to midipix or the posix- emulation mode
LDEV Wayland server platform Protocol Service Tool Underway, Git
LDEV Xorg integration Sharing, DRI3 improvements, 'Rootless' mode Underway, Git
LDEV QEmu backend Missing working Virgil/Audio/State-control Underway, Git
LDEV WINE driver Implement a winearcan.drv, derive from wineandroid.drv?
LDEV SDL2 backend Clipboard / Quality work Underway, Git

In addition, "drive-by" patches are usually appreciated, with the exception of small "fixed indentation, spellcheck comments, sanitize language" pedantry.

Modifications to the Lua scripting interface is treated with extreme caution and expected to dual-license GPLv2/BSD. For binary extending the Lua interface, the currently preferred approach (likely to change) is on an appl level with the system_load() mechanism that can take .so (.dylib) and expand into the VM state.