[PR #2178] Poc yaegi plugins #3978

Open
opened 2026-03-22 14:58:05 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/go-vikunja/vikunja/pull/2178
Author: @kolaente
Created: 1/29/2026
Status: 🔄 Open

Base: mainHead: poc-yaegi-plugins


📝 Commits (7)

  • ee2dee0 test(plugins): add yaegi smoke test
  • 144112d feat(plugins): extract vikunja package symbols for yaegi
  • 14c028d feat(plugins): extract third-party symbols for yaegi (echo, watermill)
  • 5dc8982 feat(plugins): implement yaegi plugin loader with basic test
  • febdf8f feat(plugins): add typed factory functions for yaegi interface bridging
  • d2e61cb test(plugins): verify yaegi plugin routes serve HTTP
  • 5630389 test(plugins): verify yaegi plugin event listener registration

📊 Changes

17 files changed (+1637 additions, -0 deletions)

View changed files

📝 examples/plugins/example/main.go (+7 -0)
📝 go.mod (+1 -0)
📝 go.sum (+2 -0)
pkg/plugins/yaegi/events_test.go (+48 -0)
pkg/plugins/yaegi/loader.go (+109 -0)
pkg/plugins/yaegi/loader_test.go (+70 -0)
pkg/plugins/yaegi/routes_test.go (+63 -0)
pkg/yaegi_symbols/echo.go (+281 -0)
pkg/yaegi_symbols/stdlib_check_test.go (+26 -0)
pkg/yaegi_symbols/symbols.go (+8 -0)
pkg/yaegi_symbols/vikunja_db.go (+37 -0)
pkg/yaegi_symbols/vikunja_events.go (+49 -0)
pkg/yaegi_symbols/vikunja_log.go (+40 -0)
pkg/yaegi_symbols/vikunja_models.go (+507 -0)
pkg/yaegi_symbols/vikunja_plugins.go (+118 -0)
pkg/yaegi_symbols/vikunja_user.go (+180 -0)
pkg/yaegi_symbols/watermill.go (+91 -0)

📄 Description

checking if we can do plugins with Yaegi instead of Go's plugin functionality


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/go-vikunja/vikunja/pull/2178 **Author:** [@kolaente](https://github.com/kolaente) **Created:** 1/29/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `poc-yaegi-plugins` --- ### 📝 Commits (7) - [`ee2dee0`](https://github.com/go-vikunja/vikunja/commit/ee2dee01273ee2c7316b52e2e64a75e4f08566b6) test(plugins): add yaegi smoke test - [`144112d`](https://github.com/go-vikunja/vikunja/commit/144112d8eb4202edca2c3fd1650f48a277da5422) feat(plugins): extract vikunja package symbols for yaegi - [`14c028d`](https://github.com/go-vikunja/vikunja/commit/14c028d78e7666f89357ae7f3de465df39ab6581) feat(plugins): extract third-party symbols for yaegi (echo, watermill) - [`5dc8982`](https://github.com/go-vikunja/vikunja/commit/5dc8982c650dda488ff9333f4246f50ef8b1c493) feat(plugins): implement yaegi plugin loader with basic test - [`febdf8f`](https://github.com/go-vikunja/vikunja/commit/febdf8fa3c2a46ceafd81b1708cc19b3bc192428) feat(plugins): add typed factory functions for yaegi interface bridging - [`d2e61cb`](https://github.com/go-vikunja/vikunja/commit/d2e61cbe09fe4cab7f6d86d796ed1742feb8852c) test(plugins): verify yaegi plugin routes serve HTTP - [`5630389`](https://github.com/go-vikunja/vikunja/commit/5630389ce0fc684b630037e36874cd13bc654377) test(plugins): verify yaegi plugin event listener registration ### 📊 Changes **17 files changed** (+1637 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `examples/plugins/example/main.go` (+7 -0) 📝 `go.mod` (+1 -0) 📝 `go.sum` (+2 -0) ➕ `pkg/plugins/yaegi/events_test.go` (+48 -0) ➕ `pkg/plugins/yaegi/loader.go` (+109 -0) ➕ `pkg/plugins/yaegi/loader_test.go` (+70 -0) ➕ `pkg/plugins/yaegi/routes_test.go` (+63 -0) ➕ `pkg/yaegi_symbols/echo.go` (+281 -0) ➕ `pkg/yaegi_symbols/stdlib_check_test.go` (+26 -0) ➕ `pkg/yaegi_symbols/symbols.go` (+8 -0) ➕ `pkg/yaegi_symbols/vikunja_db.go` (+37 -0) ➕ `pkg/yaegi_symbols/vikunja_events.go` (+49 -0) ➕ `pkg/yaegi_symbols/vikunja_log.go` (+40 -0) ➕ `pkg/yaegi_symbols/vikunja_models.go` (+507 -0) ➕ `pkg/yaegi_symbols/vikunja_plugins.go` (+118 -0) ➕ `pkg/yaegi_symbols/vikunja_user.go` (+180 -0) ➕ `pkg/yaegi_symbols/watermill.go` (+91 -0) </details> ### 📄 Description checking if we can do plugins with Yaegi instead of Go's plugin functionality --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-03-22 14:58:05 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/vikunja#3978