Skip to content

Latest commit

 

History

History
191 lines (164 loc) · 8.06 KB

TODO.md

File metadata and controls

191 lines (164 loc) · 8.06 KB

TODO

Testing

  • Test configuration methods
    • CLI
    • Go API
  • Test dot providers
    • FS
    • DB

Documentation

  • Using different databases
    • Should be documented with DotDBProvider go docs (?)
  • Using the new go-arg cli flags
  • Using json config
  • Creating a provider

Application

  • Measure performance
  • Make and link to more example applications
    • Demo/test how to use sql
    • Demo/test reading and writing to the context fs
  • Demonstrate how to do auth with xtemplate
  • Demo integration with caddy-git for zero-CI app deployments

BACKLOG

DONE

next

v0.6.0 - Apr 2024

  • Rename ConfigOverride to Option
  • Add NATS provider:
    • Publish, Subscribe to subject, loop on receive to send via open SSE connection
    • Add basic multiuser chat demo
    • KV: Get/Put/Delete/Purge/Watch

v0.5.2 - Mar 2024

v0.5 - Mar 2024

  • Tag v0.5.0
  • Tests
    • Reorganize tests so hurl files correspond with directories in templates
    • Test provider configuration
    • JSON
    • Test dot providers
      • KV
  • Accept JSON configuration
    • Implement Json Unmarshaller https://pkg.go.dev/encoding/json
    • Add config flag to load config from JSON file
    • Allow raw config with --config and config file with --config-file
    • Parse args -> decode config files in args to args -> decode config values in args to args -> parse args again
    • Test that everything can be configured, load config -> dump back
  • [-] Downgrade to go 1.21 - Cannot due to using 1.22 ServeMux
  • Documentation
    • Streamline readme
    • Provider Go API docs
    • Expose all funcmap funcs so godoc can be the primary documentation.
  • Dot Provider system
    • Create system for customizing template dot value
    • Convert existing modules
    • Accept configuration from cli
    • Figure out how to document providers: Use go docs
  • Get rid of Server/Instance interfaces, expose structs directly
  • Catch servemux addhandler panics and return an error instead
  • Use go-arg library for arg parsing

v0.4 - Mar 2024

v0.3 - Mar 2024

  • Refactor watch to be easier to use from both Main() and xtemplate-caddy.
  • Use LogAttrs in hot paths
  • Simplify handlers
  • Use github.com/felixge/httpsnoop to capture response metrics
  • Support minifying templates as they're loaded. https://github.com/tdewolff/minify
  • Adjust the way config defaults are set
  • Improve cli help output

v0.3 - Feb 2024

  • Republish caddy module as github.com/infogulch/xtemplate-caddy
  • Add github workflow to publish binaries and release when a git tag is pushed
  • Rewrite configuration to be normal
  • Add Why and How to use sections to README
  • Remove caddy module, to republish as github.com/infogulch/xtemplate-caddy

v0.2 - Feb 2024

  • Highlight file server feature
  • Switch to using Go 1.22's new servemux
    • Add PathValue method to .Req
  • Allow truncated hash to positively identify file; switch to url-encoded hash value
  • Allow searching for custom file extension to identify template files
  • Don't route hidden files that start with a '.', not a '_'. We don't need to reinvent hidden files.
  • Fix docs, tests after _ -> . change.

v0.1 - Oct 2023

  • Make extrafuncs an array
  • Split xtemplate from caddy so it can be used standalone
    • Split watcher into a separate component
    • Isolate caddy integration into one file
    • Split into separate packages xtemplate and xtemplate/caddy, rename repo to xtemplate
    • Write basic server based on net/http
      • Demo how to use standalone
    • Update docs describe the separate packages
    • Integrate a static file server
      • Negotiate accept-encoding
  • Set up automation
    • Build and upload binaries
    • Set up hurl tests
  • Refactor router to return http.Handler, use custom handler for static files
  • Allow .ServeFile to serve files from contextfs
  • Switch to functional options pattern for configuration
  • Support SSE
    • Demo client side hot reload