Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions PLAN_DE_MANTENIMIENTO.md
Original file line number Diff line number Diff line change
@@ -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.