- Correct docker login during release (fqdn)
- Add ability to re-index via api (a button exists in the
?
modal) - Add build hint about needing png2icns
- Add dedicated
templates
directory for server side templates - Add go mod tidy to every build
- Upgrade golang to 1.20
- Upgrade all go libraries
- Upgrade bleve to the v2 api
- Upgrade to chi (from httprouter)
- Upgrade to github actions (from travis)
- Upgrade to go embed (from rice)
- Fix exported variable creation (massive slowdown)
- Remove codecov.io
- Remove keybase from the release process
- Remove
-x
fromgo vet
- Clean up the
Makefile
help a little bit - Basically bringing the build back to life :)
- Switch default branch to
main
(master
has been removed) - Upgrade Golang to 1.15, set lowest to 1.14
- Upgrade to go modules
- Upgrade
- github.com/blevesearch/bleve
- github.com/boltdb/bolt (need to switch this)
- github.com/GeertJohan/go.rice
- github.com/gtank/cryptopasta
- github.com/julienschmidt/httprouter
- github.com/pkg/errors
- github.com/sirupsen/logrus
- github.com/stretchr/testify
- go.etcd.io/bbolt (previously boltdb/bolt)
- Export a few variables used in subshells
- Remove unnecessary phony declarations
- Remove
-race
on the tests - Remove rkt
- Remove unnecessary chown
- Add support for builds via podman (linked as docker)
- Be more disciplined about semver ;)
- Add confirmation prior to deletion #93
- Fix decryption of notes with Unicode characters #96
- This is backwards compatible with notes saved by Notable prior to v0.1.2. Newer versions automatically migrate notes to a more modern encryption mechanism that fully supports Unicode. Please upgrade :)
- Support for this older encryption mechism will be removed in the future
- Add builds for Arm7 #95
- Add builds for Arm6
- Prevent
./scripts/release.sh
from being called directly - Migrate from bindata to rice
- Add support for go 1.10
- Add note auto save feature (specific and persistable per note) #92
- Fix Docker tags on release (was not updating the docker.io tags)
- Improve encryption by using AES-GCM via cryptopasta
- Migrate to Dep for dependency management
- Drop support for Go <= 1.7 (Dep is worth it ;)
- Add integration with https://codecov.io
- Add
make coverage
build target for detail on test coverage - Fix incorrect db path setup used by tests :/
- Initial tests for secondary nodes
- Minor clean up of version string calculations, add
pid
- Reduce dead code
- Remove unnecessary
db.migrate()
call from tests :/ - Update dependencies
- Reduce global state (much more to be done here)
- Add
/api/stop
handler and make/api/restart
requiremsg
- Reduce race conditions (credit:
-race
!) - Ensure all tests persist to a temporary directory
- Fix defects related to http
handler
error handling (more to do) - Fix duplicate args when using
-daemon=true -browser=true
- Upgrade to Go 1.9.2
- Initial support for automatic client consumption of changes when Notable is being ran in distributed mode. Currently this performs a very basic reload of the notes table, but does not take into consideration any notes currently open for edit. Reloading works on both primary and secondary nodes (via different triggers).
- Upgrade runnable Docker container from Alpine to
scratch
- Produce more release artifacts via Docker (less required on the host)
- Use
-race
when running tests - Fix regression in tests (need to clean up from a stalled CLI effort)
- Ensure artifact copy from container to host is rootless ;)
- Update features list to include distributed writes
- Initial (successful) testing with Keybase!
- Initial (experimental) support for distributed writes.
- The idea is you can share your notes directory via a tool like
Syncthing, and then run a single primary and as many
-secondary
instances as you like. All computers have write access, and all changes get replicated through the primary back to the secondary nodes. Current replication mechanisms (maybe) known to work: - Testing has only been performed on Linux
- UI is very much incomplete
- The idea is you can share your notes directory via a tool like
Syncthing, and then run a single primary and as many
- Remove sqlite
- Upgrade dependencies
- Purge the
vendor
folder before a build
- Add flag
bolt.timeout
for use with opening BoltDB. - Move
init
logic intomain
to fix race conditions on startup. - Open BoltDB before Bleve as the former supports a timeout :)
- Improve error messaging on startup.
- Enable line wrap.
- Enable vendoring via Glide.
- Ensure all released binaries are built with vendored dependencies.
- Initial work on a command line client
notable-cli
. - Fix case incorrect import of logrus.
- Introduce full text index via Bleve.
- Add a visual indication if the body of a note has unsaved changes.
- Drop support for <= golang-1.4 as Bleve uses
strings.Compare
. - Add build branch to
-version
output. - Fix unhandled error when using the
enter
key with no note selected. - Add support for FreeBSD.
- Allow search to be resumed after manual focus.
- Initial support for (amd64) Microsoft Windows.
- Allow search to be resumed after switching tabs.
- Allow forward slashes in subject, tag, and password fields.
- Disable cgo on Linux. Compile from source if you want sqlite.
- Publish a rkt container as a Github release artifact.
- Improve error handling during encryption and decryption.
- Fix security regression in new BoltDB backend.
- Make BoltDB the default.
- Fixed styling of "wrong password" modal.
- Remove password and close buttons from tab index to optimize on the access pattern.
- Start publishing a docker container.
This release adds support for a new BoltDB backend. This backend was largely added in order enable support for operating systems other than Linux. The original backend used by Notable was Sqlite3 which is an excellent embedded database engine used by many projects. Unfortunately the cross platform compilation required to build Notable on all platforms proved to be very challenging. Even if it had been feasible it would have required cgo which complicates the build and is something this project would like to avoid.
Fortunately Notable is an extremely simple program and adding support for BoltDB was very easy and solves all of the previously mentioned challenges. The only challenge it introduces is how to (later) add proper support for full text searching of notes. Luckily this can easily be added by leveraging Bleve which is an excellent full text index for Golang (and doesn't require cgo).
For platforms other than macos Sqlite3 is still the default backend.
If you would like to try the new backend you can enable it with
-use.bolt
. Usage of the new BoltDB backend does attempt to migrate
notes from the Sqlite3 format if possible. Migration the other way is
currently not supported (aka the two are not kept in sync).
Additional notes:
- Fix initial subject focus on note creation.
- Improve search performance by simplifying the widget.
- Disable caching to allow clean upgrades, closes GH-25.
- Move alerts to the lower right and use upstream class name.
- Initial usage modal triggered by
?
. - Initial addition of a BoltDB backend.
- Usage of
os/user
has been removed in order to enable support for macos without the use of cgo. - The tests have been updated to run twice, once for each backend. The intention being to maintain feature parity until a given backend is retired.
- Simplfy daemonization logic.
- Add ability to restart via sending a
SIGUSR2
signal.
- Include the license in each release.
- Include the version number in the binary.
- Initial tooling to automate the release process.
- Start maintaining a changelog.
First release since the project was converted from Python to Golang.