From 442aedc623a6b1688b88187f3a644493f2281aff Mon Sep 17 00:00:00 2001 From: Bregy Malpartida Date: Fri, 25 Jul 2025 16:50:11 -0700 Subject: [PATCH] Add maintenance plan --- PLAN_DE_MANTENIMIENTO.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 PLAN_DE_MANTENIMIENTO.md diff --git a/PLAN_DE_MANTENIMIENTO.md b/PLAN_DE_MANTENIMIENTO.md new file mode 100644 index 0000000..8e7ea25 --- /dev/null +++ b/PLAN_DE_MANTENIMIENTO.md @@ -0,0 +1,19 @@ +# Maintenance Plan + +PGOJs is a Go binding/port of the p5.js drawing library using gopherjs to transpile Go code to JavaScript. It provides a way to write Processing-style sketches in Go and run them in the browser. The codebase has not been updated for many years. To keep the project relevant and maintainable, the following tasks are recommended: + +- **Update dependencies:** Switch from `go get` to Go modules for dependency management. Update to the latest stable versions of Go, gopherjs (or explore WebAssembly via `wasm`), and p5.js to ensure compatibility with modern browsers. + +- **Improve project structure:** Separate the library code from the example sketches and add proper `go.mod` and package directories. Provide a versioned API and tag releases following semantic versioning. + +- **Build and packaging:** Provide clear build instructions for compiling the library using gopherjs or Go’s wasm support. Consider publishing pre-built JavaScript bundles and a CDN link for easier usage. + +- **Documentation and examples:** Expand the README to include a detailed overview of available functions, supported p5.js features, and limitations. Update existing examples and create new sketches demonstrating typical use cases. Provide step‑by‑step setup instructions. + +- **Testing and CI/CD:** Add unit tests for core functionality and set up continuous integration (GitHub Actions) to run `go test` and `go vet` on multiple Go versions. Include linting (e.g., `golangci-lint`) to enforce code quality. + +- **Community engagement:** Review and triage issues and pull requests. Add a CONTRIBUTING guide to encourage external contributions and outline coding standards. Use GitHub discussions or issues to plan future features (e.g., WebAssembly support). + +- **Roadmap and maintenance:** Define a roadmap for the project, including porting more of the p5.js API, improving performance, and potentially migrating from gopherjs to WebAssembly. + +Implementing these steps will modernize PGOJs, improve developer experience, and encourage community collaboration.