hockeypuck (1.0~rc2) precise; urgency=medium

  * Opening 1.0~rc2

 -- Casey Marshall <cmars@cmarstech.com>  Tue, 01 Apr 2014 00:54:51 -0500

hockeypuck (1.0~rc1) precise; urgency=low

  [ Casey Marshall ]
  * Opening 1.0~rc1 development.
  * doc/conf.py, doc/stories/community.txt, doc/stories/doc.txt,
    doc/stories/install-tarball.txt, doc/stories/install-ubuntu.txt,
    scripts/crossbuild:
    - Documentation improvements.
    - Fix crossbuild script.
  * doc/stories/doc.txt, doc/stories/pre-populating.txt:
    - Add page on pre-populating Hockeypuck.
  * openpgp/responses.go, openpgp/schema.go, openpgp/sort.go:
    - Use ShortId() instead of fingerprint slice, as v3 keys do not have
      the same length fingerprint.
    - Add indexes on pubkey_uuid for subkey, uid and uat tables.
    - Check for nil selfSignature when sorting uids.
  * openpgp/io.go, openpgp/types.go:
    - Fix state flag values, remove unnecessary validation method.
  * openpgp/worker.go:
    - Support subkey fingerprint search w/PostgreSQL backend.
      LP: #1234774
  * hkp/requests.go, openpgp/add.go, openpgp/index.go,
    openpgp/pubkey.go, openpgp/resolve_test.go, openpgp/responses.go,
    openpgp/signature.go, openpgp/sort.go, openpgp/subkey.go,
    openpgp/userattribute.go, openpgp/userid.go, openpgp/worker.go:
    - SKS-like index & vindex search results page. LP: #1234771
    - Set signature expiration when linking self sigs.
    - Update signature expiration on merge.
  * === added directory doc/files, doc/conf.py, doc/files/gohkp.png,
    renamed directory doc/stories => doc/pages:
    - Revised & restructured documentation.
  * doc/Makefile, doc/deploy.sh, doc/pages/index.txt, doc/pages/install-
    source.txt, doc/pages/install-ubuntu.txt, doc/pages/pre-
    populating.txt:
    - Revised documentation, add http://hockeypuck.github.io doc deploy
      script.
  * cmd/hockeypuck/run.go, hkp/templates.go,
    openpgp/index.go, === removed directory
    instroot/var/lib/hockeypuck/www/templates, router.go:
    - Moved templates into string constants. Make webroot optional for
      CSS and fonts, but not essential to running the service.
  * instroot/usr/share/man/man1/hockeypuck.1:
    - Update man page to match new subcommand CLI.
  * cmd/hockeypuck/delete.go, cmd/hockeypuck/load.go,
    cmd/hockeypuck/main.go, dependencies.tsv, Makefile, openpgp/add.go,
    openpgp/db.go, openpgp/io_test.go, openpgp/loader.go,
    openpgp/merge.go, openpgp/merge_test.go:
    - Fixed a defect in MergeKey where signatures were not merged.
    - Added 'hockeypuck delete' subcommand.
    - Using godeps to freeze dependencies.
    - Insert if not exists for non-bulk loading key inserts.
  * === added directory charms:
    - Add juju charms for hockeypuck & sks. LP: #1233812
  * - Denormalized signatures in schema.
    - Improve delete command to lookup by fingerprint.
    - Introduced errgo for improved error tracing.
    - Parameterized upload dump file load playbooks in int-tests.
    - More openpgp round-trip db test cases.

 -- Casey Marshall <cmars@cmarstech.com>  Fri, 04 Oct 2013 15:15:24 -0500

hockeypuck (1.0~b2~bzr267~precise) precise; urgency=low

  [ Casey Marshall ]
  * Opening 1.0~b1 development and a bottle of
    Maker's. SKS reconciliation now working in
    the small. Cheers!
  * cmd/sks-hash/main.go, instroot/etc/hockeypuck/hockeypuck.conf,
    openpgp/recon.go, openpgp/responses.go, openpgp/validate.go,
    openpgp/worker.go:
    - Add commented-out SKS recon configuration stanza.
    - Check errors in prefix tree insert/remove.
    - Fixed Worker.LookupKey to correctly return error.
    - go fmt
  * cmd/hockeypuck-load/main.go:
    - Add -drop and -take command line arguments to help
      create synchronization test cases.
  * **/*.go, openpgp/doc.go:
    - Add/fix package godoc comments. LP: #1117274
    - Update debug utility commands wrt openpgp changes.
  * === removed directory cmd/lspgp, === removed directory cmd/pqtest:
    - Removed unused 'spike' debug utilities, no longer useful. 
  * openpgp/recon.go:
    - Fix deadlock when adding keys from SKS recon.
  * debian/mkdists:
    - Packaging script should fail on error.
  * openpgp/recon.go:
    - Add previously missing elements to prefix tree.
  * hkp/requests.go, openpgp/add.go, openpgp/io.go, openpgp/recon.go,
    openpgp/responses.go, openpgp/schema.go, openpgp/types.go,
    openpgp/worker.go:
    - Add fallback to track unsupported keys discovered through
      gossip. LP: #1208290
    - Initialize current digests in KeyChange for defined behavior in
      change consumers.
  * cmd/hockeypuck-load/main.go, openpgp/recon.go:
    - Log public key digest when loading.
    - Removed key reversal to match latest conflux Zp byte ordering fix.
  * cmd/hockeypuck-load/main.go, hkp/requests.go, openpgp/add.go,
    openpgp/recon.go, openpgp/worker.go:
    - Fix off-by-one in drop, take flags of hockeypuck-load. Fix i386
      compile issue with max int.
    - Workaround some concurrency issues between adding keys, recon recovery,
      and incoming queries.
  * openpgp/add.go, openpgp/recon.go, openpgp/worker.go:
    - Fix goroutine leak from early exit while enumerating keys.
    - Multiplex peer recovery to goroutines aggregating recovery requests,
      one per peer.
    - Refactored HKP host:port derivation from recon.Recover into conflux.
    - go fmt.
  * openpgp/validate.go:
    - Add hockeypuck.openpgp.strict option to reject key material containing
      *anything* we can't parse. Useful for peering with SKS, as we can
      track recovered unsupported keys for future reloading. LP: #1208290
  * cmd/hockeypuck/main.go, cmd/sks-hash/main.go, hkp/requests.go,
    openpgp/add.go, openpgp/io.go, openpgp/recon.go,
    openpgp/util_test.go, openpgp/validate_test.go, openpgp/worker.go,
    openpgp/worker_test.go:
    - Pause reconciliation while loading keys. Prevents thrashing peers.
    - Separate worker channel for recovering keys from recon peers.
    - Fix unit test package reference.
  * openpgp/add.go, openpgp/db.go, openpgp/io.go, openpgp/io_test.go,
    openpgp/pubkey.go, openpgp/resolve.go, openpgp/resolve_test.go,
    openpgp/responses.go, openpgp/schema.go, openpgp/signature.go,
    openpgp/subkey.go, openpgp/types.go, openpgp/userattribute.go,
    openpgp/userid.go, openpgp/util_test.go, openpgp/validate.go,
    openpgp/validate_test.go, openpgp/worker.go, openpgp/worker_test.go:
    - Split pgp type wrappers into separate files.
    - Refactor & rethink validation. Require a valid self-signature in order
      to accept key material, but store expired, revoked material.
    - Select primary UID based on earliest non-expired with flag.
      LP: #1195901
    - Updated to use UserAttribute, V3 packet support and other recent
      enhancements to go.crypto. LP: #1075382, LP: #1044769
    - Separate SQL for creating and dropping constraints to support bulk
      loading. LP: #1208295
    - Define key material states to address spam and support other features.
      LP: #1210923, LP: #1074224
  * === added directory cmd/hockeypuck-import, cmd/hockeypuck-
    import/main.go, openpgp/add.go, openpgp/db.go, openpgp/loader.go,
    openpgp/schema.go, openpgp/worker.go:
    - Add bulk loading support without FK constraints. LP: #1208295.
  * cmd/hockeypuck-import/main.go, openpgp/add.go, openpgp/io.go,
    openpgp/loader.go, openpgp/resolve.go, openpgp/resolve_test.go,
    openpgp/schema.go, openpgp/signature.go,
    openpgp/testdata/252B8B37.dupsig.asc,
    openpgp/testdata/lp1195901_2.asc, openpgp/testdata/lp1195901.asc,
    openpgp/userattribute.go, openpgp/userid.go, openpgp/worker_test.go:
    - Fix rules for choosing a primary UID. LP: #1195901
    - Support bulk loading, refactor out common functionality. LP: #1208295
      Drop all constraints for bulk loading.
    - Don't leak keyring file descriptors in hockeypuck-import.
    - Add some test cases.
  * cmd/hockeypuck-import/main.go, openpgp/add.go, openpgp/db.go,
    openpgp/io.go, openpgp/loader.go, openpgp/pubkey.go,
    openpgp/resolve.go, openpgp/resolve_test.go, openpgp/schema.go,
    openpgp/types.go, openpgp/unsupp.go, openpgp/worker.go:
    - Bulk load without constraints, afterward delete duplicates and add
      constraints. LP: #1208295
    - Add unsupported packet record for storing packets that
      go.crypto won't parse but SKS includes in key hashing. LP: #1208290
  * cmd/hockeypuck-import/main.go, openpgp/db.go, openpgp/io.go,
    openpgp/loader.go, openpgp/pubkey.go, openpgp/resolve.go,
    openpgp/resolve_test.go, openpgp/schema.go, openpgp/signature.go,
    openpgp/subkey.go, openpgp/types.go, openpgp/unsupp.go,
    openpgp/userattribute.go, openpgp/userid.go:
    - Support optionally dropping and recreating indexes & constraints
      with hockeypuck-import.
      Silently ignore duplicate error when adding constraints.
      Corrected de-duplication of unique keys. LP: #1208295
    - Track record prior to unsupported, use to make unparseable
      content positionally unique. Added PacketRecord.Uuid() to support.
      Add unsupported packet parsing unit test case. LP: #1208290
    - Capture primary UserId and UserAttribute, revocation signatures
      during initial insert. LP: #1195901
    - Packet-type specific scoped digest calculation.
  * openpgp/resolve_test.go, openpgp/responses.go, openpgp/sort.go,
    openpgp/userattribute.go, openpgp/userid.go:
    - Add function to sort public key contents for display purposes,
      unit test case. LP: #1195901
    - Fixed uid/uat revocation signature logic, so that a newer
      positive certification overrides a revocation. Tracking the newest
      revocation & self-signatures.
    - Fix timestamp rendering in options=mr.
  * openpgp/add.go, openpgp/io.go, openpgp/loader.go, openpgp/pubkey.go,
    openpgp/resolve.go, openpgp/resolve_test.go, openpgp/subkey.go,
    openpgp/types.go, openpgp/types_test.go, openpgp/unsupp.go,
    openpgp/userattribute.go, openpgp/userid.go, openpgp/worker.go:
    - Parse first in blocks of opaque packets delimited by tag=6
      public key, then interpret.
    - Reject keyrings missing signatures on syntactic basis like SKS.
    - Flag invalid selfsigs, but do not remove them, for compatibility
      with SKS.
    - Store unsupported key material in openpgp_pubkey.unsupp column.
  * openpgp/io.go, openpgp/resolve_test.go, openpgp/schema.go:
    - Fix parsing unit tests wrt latest changes, address corner cases
      such as missing public key, empty keyring material.
    - Remove openpgp_unsupp table, constraints from schema.
  * openpgp/io.go, openpgp/io_test.go, openpgp/pubkey.go,
    openpgp/resolve.go, openpgp/resolve_test.go, openpgp/signature.go,
    openpgp/subkey.go, openpgp/testdata/0ff16c87.asc, openpgp/types.go,
    openpgp/types_test.go, openpgp/userattribute.go, openpgp/userid.go,
    openpgp/worker_test.go:
    - Move packet record parsing into each type's creator function.
    - Store content-duplicate packets as unsupported key material
      for SKS compatibility.
    - Validate function now removes packets without any signatures,
      emulate keyMerge.ml behavior.
  * cmd/hockeypuck-import/main.go, openpgp/add.go, openpgp/loader.go,
    openpgp/recon.go:
    - Loader and worker now require explicit transaction control.
    - hockeypuck-import supports # of keys per commit into openpgp.
      Prefix tree drop/build support.
  * cmd/hockeypuck-import/main.go, openpgp/loader.go:
    - Check for commit error, open new transaction on loader commit
      or rollback.
  * cmd/hockeypuck-import/main.go, openpgp/add.go, openpgp/loader.go,
    openpgp/worker.go:
    - Improve transaction management. Support v2/v3 16-byte key
      lookup.
  * cmd/hockeypuck-import/main.go, openpgp/io.go, openpgp/pubkey.go,
    openpgp/resolve_test.go,
    openpgp/testdata/0xd46b7c827be290fe4d1f9291b1ebc61a.asc,
    openpgp/worker_test.go:
    - Wait for prefix tree goroutine to complete before adding
      constraints during bulk load.
    - Do not remove packets missing self-signatures. SKS keeps them
      for recon hashing. Flagging them to remove from HKP output.
    - Add testcase for key missing uid signatures.
    - Add transaction Begin and Commit to worker insert test case.
  * openpgp/loader.go, util/strings.go:
    - Clean UTF-8 UID keyword string for PostgreSQL compatibility.
    - Remove non-printable control characters.
  * openpgp/io.go, openpgp/io_test.go, openpgp/pubkey.go:
    - Dump bad key causing panic to tempdir.
    - Added unit test with unsupported public key algorithm.
    - Revert to initUnsupported if parsing as V3 or V4 pubkey fails.
  * openpgp/recon.go:
    - Use diskv prefix-tree storage for recon.
  * openpgp/recon.go:
    - PrefixTree.HasElement has been removed from the conflux API.
  * cmd/hockeypuck/*.go, scripts/*:
    - Consolidate maintenance functions, utilities and service into
      a single binary with subcommands.
    - Reorg build scripts.
  * cmd/hockeypuck/db.go, cmd/hockeypuck/load.go,
    cmd/hockeypuck/main.go, cmd/hockeypuck/pbuild.go, openpgp/schema.go:
    - Use CREATE TABLE AS SELECT for de-duplication, much faster.
    - Consolidate database management functions into 'hockeypuck db'
      subcommand.
    - Concurrency options for pbuild, fix transaction management in
      loader.
  * cmd/hockeypuck/load.go, cmd/hockeypuck/pbuild.go, openpgp/recon.go,
    openpgp/schema.go:
    - Add --ignore-dups for ptree inserts in 'load' cmd.
    - Progress ticks for 'pbuild' cmd.
    - Using gkvlite conflux ptree backend, better performance at scale.
    - Added some missing drop constraint commands.
  * cmd/hockeypuck/main.go, cmd/hockeypuck/test.conf, openpgp/pubkey.go,
    openpgp/resolve.go, openpgp/types.go:
    - Add command-line option to enable cpu profiling.
    - Make signature verification optional. Loading is much faster
      without it.
    - Reconsidered state flag bit allocation. Lower 16 bits for positive
      or neutral status, upper 16 indicate negative/invalid conditions.
  * cmd/hockeypuck/run.go, debian/postinst, debian/postrm,
    debian/upstart, instroot/etc/hockeypuck/hockeypuck.conf:
    - Check for error creating SKS peer.
    - Updated default configuration, upstart, debian installation scripts.
  * debian/postinst:
    - Start postgresql if detected locally before creating role, db.
    - Fix prefix tree filename.
  * === added directory doc, Makefile, .bzrignore,
    debian/control, debian/install, debian/postrm:
    - Add html documentation, generated with nikola.
    - Cleanup directories on purge.
    - Add .bzrignore.

 -- Casey Marshall <cmars@cmarstech.com>  Mon, 30 Sep 2013 17:10:38 -0500

hockeypuck (1.0~a2~bzr267~precise) precise; urgency=low

  [ Casey Marshall ]
  * Opening 1.0~a2 development
  * Replace MongoDB backend with PostgreSQL.
  * Makefile:
    - Update binary name.
  * debian/install, debian/manpages, instroot/usr/share/hockeypuck-
    mgo/scripts/fix-keywords.js, instroot/usr/share/man/man1/hockeypuck-
    mgo.1 => instroot/usr/share/man/man1/hockeypuck.1, === removed
    directory instroot/usr/share/hockeypuck-mgo, === removed directory
    instroot/usr/share/hockeypuck-mgo/scripts:
    - Updating packaging.
  * debian/control, scripts/crossbuild.sh:
    - Update golang build dependency version (1.1).
    - Fix crossbuild script target binary.
  * config.go, debian/copyright, debian/postinst, debian/upstart,
    hkp/router.go, instroot/etc/hockeypuck/hockeypuck.conf,
    instroot/usr/share/man/man1/hockeypuck.1, log.go, openpgp/pks.go,
    openpgp/responses.go, README, router.go:
    - Update installation, summary doc.
    - Some manpage fixes.
    - Update debian copyright attribution for third-party Go packages.
    - Create postgres user and database in debian postinst.
    - Update upstart to trigger off postgresql, fix binary name.
    - Do not leak error messages on HTTP error status codes. Be terse.
    - Update example configuration to new TOML format.
    - Fix go-toml keys in some settings.
    - go fmt
  * openpgp/schema.go:
    - Better explanation of UID/UAT creation timestamp.
    - Reorder alter table statements to allow for easier copy/paste into
      psql.
  * openpgp/pks.go, openpgp/responses.go:
    - Fix compile errors.
  * debian/postinst:
    - Check for existing of postgresql before attempting to create
      role and database. Create role without superuser or role-creating
      privs.
  * cmd/hockeypuck/main.go, cmd/hockeypuck/test.conf, hkp/requests.go,
    openpgp/add.go, openpgp/recon.go, openpgp/worker.go:
    - Add SKS peer.
  * hkp/requests.go, openpgp/io.go, openpgp/pks.go, openpgp/recon.go,
    openpgp/worker.go:
    - Fix HashQuery request, create response chan.
    - Fix SKS recon peer to handle new/updated keys appropriately.
    - Do not error out on fetchKeys for invalid keys. Instead return
      ReadKeyResult and let the caller decide how to deal.

 -- Casey Marshall <casey.marshall@gmail.com>  Sat, 03 Aug 2013 10:15:11 -0500

hockeypuck (1.0~a1~bzr267~precise) precise; urgency=low

  [ Casey Marshall ]
  * Opening 1.0~a1 development
  * === added directory cmd/sks-hash, cmd/sks-hash/main.go,
    pgp_types.go:
    - Add SksDigest function, test utility. LP: #1176689
  * config.go, pgp_test.go, pgp_types.go, server_test.go:
    - SksDigest function passing basic unit test. LP: #1176689
    - Fix server unit tests, canned http.Request objects.
    - Removed unreachable returns in config.go.
  * mgo/worker.go, pgp_types.go:
    - Replace arbitrary cumulative key digest method with SKS
      method for recon compatibility. LP: #1176689
  * === added directory peer, peer/peer.go:
    - Add reconciliation peer. LP: #1044767
  * errors.go, hkp_types.go, mgo/worker.go, mgo/worker_test.go,
    server.go, worker.go:
    - Add op=hget. LP: #1044767
    - Remove unreachable panics, not needed for Go 1.1.
  * === added directory doc, === added directory doc/publish, === added
    directory doc/publish/static, doc/install.article,
    doc/publish/install.html, doc/publish/static/article.css,
    doc/publish/static/dir.css, doc/publish/static/dir.js,
    doc/publish/static/favicon.ico, doc/publish/static/print.css,
    doc/publish/static/slides.js, doc/publish/static/styles.css:
    - Add install doc, Present source and generated HTML.
      Published to http://cmars.github.io/hockeypuck/install.html
  * debian/control, mgo/worker.go, peer/peer.go:
    - hget fetch on recovery. Using LevelDB backend. LP: #1044767
    - Add libleveldb package dependency for levigo.
    - Add impossible return to worker for compiler's sake.
  * cmd/hockeypuck-mgo/main.go, debian/control, peer/peer.go:
    - Add SKS peering to main hockeypuck server process.
    - Fix peer configuration options.
    - Update packaging version.
  * peer/peer.go:
    - Updated wrt recent changes in the conflux/recon Config struct.
  * Makefile
    - Symbolic link hack to work around launchpad build env issues.
  * debian/control:
    - Add libleveldb-dev to source build package dependencies.
  * cmd/hockeypuck-mgo/main.go, hkp_types.go, mgo/worker.go,
    peer/peer.go, recon.go, responses.go, worker.go:
    - Refactored recon peer, key status information from loading keys.
      Insert & remove recon ptree digests on key insert/update.
  * hkp_types.go, pgp.go, server.go, worker.go:
    - Implement /pks/hashquery to support SKS recovery & catchup.
      LP: #1197618
    - Added sks-hashquery utility to determine protocol.
  * pgp_types.go, recon.go:
    - Recon recovery makes /pks/hashquery request instead of hget.
      LP: #1044767
  * cmd/hockeypuck-mgo/main.go, config.go, mgo/client.go, pks.go,
    server.go, templates.go, worker.go:
    - Replace ad-hoc flag-based config file with toml. LP: #1184392
    - Look for webroot in standard install location, Go package
      location if not specified.
  * cmd/hockeypuck-mgo/main.go, cmd/hockeypuck-mgo/test.conf, config.go,
    instroot/etc/hockeypuck/hockeypuck.conf, log.go, recon.go:
    - Better config integration with conflux.
    - Option to disable reconciliation.
    - Added test configuration example.
  * === added directory sql, pq/schema.go, pq/worker.go, === renamed
    directory pq => sql/pq, sql/openpgp.go, sql/pq/db.go,
    sql/pq/openpgp_schema.go, sql/pq/worker.no:
    - Re-engineered PostgreSQL schema.
    - Generic database/sql integration.
  * === added directory cmd/pqtest, cmd/pqtest/main.go,
    sql/pq/openpgp_schema.go:
    - Fix SQL errors in schema creation. Add pq driver test.
  * sql/pq/openpgp_queries.go:
    - Some queries.

  [ Evan Broder ]
  * Makefile, mgo/client.go, mgo/worker.go:
    - Add support for subkey fingerprint query.
    - Use a symlink instead of rsync to satisfy build-deps.

 -- Casey Marshall <casey.marshall@gmail.com>  Wed, 31 Jul 2013 00:38:10 -0500

hockeypuck (0.9~bzr267~precise) precise; urgency=low

  [ Casey Marshall ]
  * hkp_types.go, mgo/worker.go, responses.go, server.go,
    status_types.go, worker.go:
    - Added op=stats&options=json response to support spiders.
      LP: #1105592
  * mgo/worker.go, pgp.go, worker.go:
    - Split UID keywords into letter/digit tokens for search.
      LP: #1108416
    - Using $all on search terms in mongo query.
  * scripts/fix-keywords.js:
    - Add script to repair uid keywords in existing Hockeypuck.
  * pgp_types.go, responses.go:
    - Display uat:::: placeholder in machine readable output.
      LP: #1104703
    - Removed debug print statement.
    - Uppercased fingerprint in machine readable output.
  * cmd/hockeypuck-mgo/main.go, mgo/client.go, mgo/keystats.go,
    mgo/pks.go, mgo/worker.go, pgp.go, pgp_types.go, responses.go,
    strings.go:
    - Several MongoDB improvements:
      - Leverage reversed fingerprint for long, short keyid lookup
        with regex indexed query, removed indexed on these.
        LP: #1128565
      - Replace map-reduce generated stats with time-bucket
        increments on load. LP: #1128611
    - Remove invalid UTF-8 characters from uid strings.
    - Reversed issuer key ID in signature for faster lookups
      (anchored regex for mongo, prefixed LIKE for RDBMS).
  * instroot/var/lib/hockeypuck/www/templates/pks/index.tmpl,
    mgo/keystats.go, mgo/worker.go, pgp.go, pgp_types.go, responses.go:
    - Require valid UID self-sign to load key material. LP: #1128561
    - Send proper key var to stats channel on insert/update.
    - Get UID of signature keyid in LookupKey(s), display in vindex.
      LP: #1120869
    - Aggregate loading statistics, bulk upsert increments to
      reduce mongodb load. LP: #1128611
  * mgo/worker.go, pgp.go, pgp_test.go, pgp_types.go, responses.go,
    strings.go:
    - Link all supported hash algorithms into runtime.
    - Recover from panic due to missing hash algorithm in
      key material verification, return as error.
    - Verify subkey signatures. LP: #1128561
    - Add unit test to catch invalid UID with missing self-sig
      LP: #1128561
    - Remove unused goroutine from checkValidSignatures.
  * mgo/worker.go, pgp.go, pgp_test.go:
    - Verify user attribute packets too. Some unsigned images
      cannot be unseen. LP: #1128561
  * mgo/worker.go, strings.go, strings_test.go:
    - Simplify keyword search, balance between MongoDB performance
      and search term flexibility. LP: #1108416
  * instroot/usr/share/hockeypuck-mgo/scripts/fix-keywords.js:
    - Update fix keyword script to use above simplified approach.
  * mgo/worker.go:
    - Escape regular expression characters from search terms.
  * cmd/hockeypuck-load/main.go, cmd/hockeypuck-mgo/main.go, config.go,
    log.go, mgo/client.go, mgo/keystats.go, mgo/pks.go, mgo/worker.go,
    pks.go:
    - Using standard logger, reopen log on SIGHUP/SIGUSR1/SIGUSR2.
      LP: #1121700
  * merge.go, mgo/worker.go, pgp.go, pgp_types.go:
    - Fix goroutine leaks in traverse, reading keys.
  * debian/hockeypuck.logrotate:
    - Add logrotate configuration. LP: #1121700
  * debian/control:
    - Add dependencies recommended for a ready-to-run server.
  * mgo/worker.go:
    - Update with reversed fingerprint.
  * mgo/client.go, mgo/worker.go:
    - Fix typo in modified stats aggregation.
      Make stats timestamp index unique.
  * hkp_types.go, instroot/var/lib/hockeypuck/www/templates/header.tmpl,
    mgo/client.go, mgo/pks.go, mgo/worker.go, pks.go, responses.go,
    server.go, status_types.go, templates.go, worker.go,
    instroot/var/lib/hockeypuck/www/templates/pks/stats.tmpl:
    - Change op=status to op=stats. Make distinction between
      "status" and "stats" elsewhere in the codebase while we're at it.
  * responses.go, server.go:
    - Default op=stats HTTP port to 11371, improve Host: parsing.
    - Respond with JSON for mr option if op=stats.
  * debian/copyright:
    - Proper Debian license attribution of all Go library dependencies
      redistributed in source package.
  * pgp.go:
    - Fixed deadlock in ReadValidKeys, defer draining source channels
      in its goroutine.
  * scripts/crossbuild.sh:
    - Add build number to cross-compiled tarballs, remove only binaries
      on subsequent platforms.

 -- Casey Marshall <casey.marshall@gmail.com>  Wed, 20 Mar 2013 22:54:03 -0500

hockeypuck (0.8.1~bzr267~precise) precise; urgency=low

  [ Casey Marshall ]
  * mgo/worker.go, mgo/worker_test.go, pgp.go, pgp_types.go,
    pq/worker.go, responses.go:
    - Updates wrt go.crypto branch packet.Read.
    - Fixed an issue where valid public keys preceding an
      invalid public key were not send to the channel.
      LP: #1090980
  * pgp.go, pgp_types.go:
    - Updated unknown/unsupported packet parsing wrt
      changes in go.crypto merge.

 -- Casey Marshall <casey.marshall@gmail.com>  Tue, 22 Jan 2013 21:10:03 -0600

hockeypuck (0.8~bzr267~precise) precise; urgency=low

  [ Casey Marshall ]
  * Opening 0.8 milestone.
  * cmd/lspgp/main.go, cmd/pktdump/main.go, mgo/worker.go,
    mgo/worker_test.go, pgp.go, pgp_types.go, pq/worker.go,
    responses.go:
    - Switch go.crypto from my fork to proper trunk source.
  * instroot/var/lib/hockeypuck/www/fonts/Droid_Sans =>
    instroot-extra/var/lib/hockeypuck/www/fonts/Droid_Sans
    scripts/crossbuild.sh:
    - Move droid sans font out of debian instroot, used only
      in cross-compile tar build.

  [ Dustin Kirkland ]
  * debian/manpages, debian/install, debian/rules,
    instroot/etc/init/hockeypuck-mgo.conf => debian/upstart,
    removed directory instroot/etc/init:
    - A handful of packaging recommendations

 -- Casey Marshall <casey.marshall@gmail.com>  Tue, 22 Jan 2013 11:00:00 -0600

hockeypuck (0.7~bzr267~precise) precise; urgency=low

  [ Casey Marshall ]
  * Opening 0.7 milestone.
  * cli/cli.go, cmd/hockeypuck-mgo/main.go, mgo/pks.go, mgo/worker.go,
    pks.go, worker.go:
    - Add support for PKS forwarding. LP: #1075379
  * cli/cli.go, cmd/hockeypuck-mgo/main.go, mgo/worker.go, pks.go,
    worker.go:
    - Consolidate PKS configuration from switches.
    - Consolidate worker process (goroutine) management.
  * cli/cli.go, cmd/hockeypuck-mgo/main.go, mgo/pks.go, mgo/worker.go,
    pks.go, === removed directory cli, server.go, templates.go,
    worker.go:
  * cli/cli.go, cmd/hockeypuck-mgo/main.go, config.go, log.go,
    mgo/client.go, mgo/pks.go, mgo/worker.go, pks.go, === removed
    directory cli, server.go, templates.go, worker.go:
    - Move command line flags to associated components,
      split out config file parsing.
    - Pull up common mgo client connection, reuse in worker & pks sync.
    - Fix net/smtp usage in PKS sync, added backoff delay on SMTP errors.
      LP: #1075379
  * etc/hockeypuck/hockeypuck.conf, mgo/worker.go, pgp_types.go, pks.go:
    - Clean up commented out config example settings.
    - Store cumulative digest of key's packets, only update when changed.
      LP: #1083061
    - Only use *PksTo flag if set. Only log pks poll sleep time if there was a
      retry on SMTP error.
  * mgo/client.go:
    - Simplify ensuring indexes. Added keys.mtime.
  * cmd/hockeypuck-mgo/main.go, debian/postinst, version.go:
    - Add -version flag, setting version file from changelog in postinst.
  * hkp_types.go, mgo/client.go, mgo/pks.go, mgo/worker.go,
    responses.go, server.go, templates.go, worker.go,
    www/templates/layout.tmpl, www/templates/pks/index.tmpl,
    status_types.go, www/templates/pks/status.tmpl:
    - Add op=status page. LP: #1075391
    - Cache last PKS sync status for op=status response.
    - Expose Hostname:Port in Lookup for op=status.
    - MongoDB: Ensure unique index on pksStat.addr.
    - Fixed template context passthru issues.
  * www/templates/header.tmpl:
    - Add link to PKS status page. LP: #1075391
  * mgo/keystats.go:
    - Add map-reduce to calculate hourly and daily totals of
      key creation and modification. LP: #1075391
  * cmd/hockeypuck-mgo/main.go, mgo/client.go, mgo/keystats.go,
    mgo/worker.go, status_types.go, www/templates/pks/status.tmpl:
    - Integrate key stats into op=status page, MR, query fixes.
      LP: #1075391
  * === added directory instroot, etc., scripts/crossbuild.sh:
    - Relocate static system installed files to instroot.
    - Added cross-compilation script. LP: #1086192
  * scripts/crossbuild.sh:
    - Add dist tarball creation.
  * debian/control, debian/install, debian/links:
    - Fix lintian warnings. Linking to fonts-droid for Ubuntu package.
  * instroot/usr/share/man/man1/hockeypuck-load.1:
    - Documented -mail-add=true option.
  * scripts/crossbuild.sh:
    - Add version to dist tarballs.

 -- Casey Marshall <casey.marshall@gmail.com>  Thu, 13 Dec 2012 21:39:31 -0600

hockeypuck (0.6~bzr267~precise) precise; urgency=low

  [ Casey Marshall ]
  * Opening 0.6 milestone.
  * mgo/worker.go:
    - Fix keyword query iteration. Need to keep allocating new PubKeys,
      was overwriting the same one in the iter loop.
      LP: #1073786
  * cmd/hockeypuck-load/main.go, pgp_types.go, responses.go,
    www/templates/pks/index.tmpl:
    - Display user attribute image subpacket in index templates. LP: #1044773
  * responses.go, www/templates/pks/index.tmpl:
    - Display QR code of public key fingerprint. LP: #1074552
  * www/css/hkp.css, www/templates/header.tmpl:
    - Make logo heading a link.
  * debian/mkdists, debian/rules, Makefile:
    - Remove hockeypuck-pq from binary packages, its not ready for that.
    - Add helper script for slinging multi-distro source packages.
  * cmd/hockeypuck-load/main.go:
    - Add hockeypuck -mail-add option for receiving PKS inbound keys.
      LP: #1075379
  * debian/rules, Makefile:
    - Use the binary targets to get dependencies, use go install
      to build them into local gopath/bin. Simplifies Makefile.
  * mgo/worker.go, pq/worker.go, responses.go, server.go, templates.go,
    worker.go, www/templates/header.tmpl:
    - Create form to add pasted key armor. LP: #1076841
    - /pks/add produces an HTML page confirming added key fingerprints.
    - Clean up ws, cruft.
  * mgo/worker.go, pgp_types.go:
    - Add Ctime & Mtime for status page. LP: #1075391
  * === added directory etc/hockeypuck, cli/cli.go, cmd/hockeypuck-
    mgo/main.go, debian/rules, etc/hockeypuck/hockeypuck.conf,
    etc/init/hockeypuck-mgo.conf:
    - Parse configuration file on startup, sets default values for
      flags. Added to package install. LP: #1040384

 -- Casey Marshall <casey.marshall@gmail.com>  Thu, 15 Nov 2012 22:56:28 -0600

hockeypuck (0.5~bzr267~precise) precise; urgency=low

  [ Casey Marshall ]
  * cmd/hockeypuck/main.go, debian/control, errors.go, mgo/worker.go,
    mgo/worker_test.go, pq/worker.go, pq/worker_test.go, === removed
    directory pq, types.go,
    mgo/merge.go, mgo/rw.go, mgo/types.go:
    - Significant progress on mongo worker.
    - Removed postgres worker.
    - op=index, op=vindex support.
    - Split packages into smaller source files.
  * cmd/hockeypuck/main.go, mgo/worker.go:
    - Add -load option to hockeypuck main.
  * cmd/hockeypuck/main.go, mgo/rw.go, mgo/worker.go:
    - Add some simple logging. LP: #1040376
    - Skip unsupported public key and signature packets. This allows loading
      subsequent supported keys from the packet stream.
    - Skip signatures with nil IssuerKeyId (wat). LP: #1044772
  * debian/control, debian/rules, Makefile:
  * === added directory man, === added directory man/man1,
    debian/control, debian/rules, Makefile, man/man1/hockeypuck.1:
    - Add manpage. Trying to fix recommends in control file.
    - Makefile now cleans the binary before making source package, to
      make sure the PPA builder recompiles it.
    - Add Makefile srcclean target.
  * hkp_types.go, merge.go, mgo/merge.go, mgo/rw.go, mgo/types.go,
    mgo/worker.go, mgo/worker_test.go, pgp.go, pgp_types.go, types.go:
    - Refactoring: pull non-Mongo-specific code up to top-level hockeypuck
      package.
  * mgo/worker.go:
    - Minimum viable machine readable search output.
  * cmd/hockeypuck/main.go, mgo/worker.go, mgo/worker_test.go, pgp.go,
    pgp_types.go, responses.go, worker.go:
    - Refactor common worker logic and responses out of mongo worker.
  * === added directory cmd/hockeypuck-load, cmd/hockeypuck-
    load/main.go, cmd/hockeypuck/main.go, errors.go, Makefile, pgp.go,
    pgp_types.go, worker.go:
    - Replace inline loader option with separate loader that does hkp adds.
    - Make number of workers configurable, default to number of cpus.
    - Worker.Start use generic chan interface{} for the stop channel,
      now creates and returns it.
    - Add some doc comments.
  * === added directory cmd/hockeypuck-mgo, cmd/hockeypuck/main.go,
    cmd/hockeypuck-mgo/main.go, debian/rules, Makefile,
    man/man1/hockeypuck.1, man/man1/hockeypuck-mgo.1, mgo/worker.go, ===
    removed directory cmd/hockeypuck:
    - Rename hockeypuck to hockeypuck-mgo.
    - Add mongo indexes on short and key IDs.
  * === added directory cmd/hockeypuck-pq, === added directory pq,
    cmd/hockeypuck-pq/main.go, pq/worker.go:
    - Add postgres worker, hockeypuck command variant.
  * === added directory www, === added directory www/css, === added
    directory www/templates, === added directory www/templates/index,
    === added directory www/templates/pks, cmd/hockeypuck-mgo/main.go,
    debian/rules, errors.go, responses.go, server.go, templates.go,
    www/css/reset.css, www/templates/footer.tmpl,
    www/templates/header.tmpl, www/templates/head.tmpl,
    www/templates/index/search_form.tmpl, www/templates/layout.tmpl,
    www/templates/pks/index.tmpl:
    - Add HTML UI, landing page, search form. Using go's html/template
      package. Add toucan css reset.
  * === added directory cli, cli/cli.go, cmd/hockeypuck-mgo/main.go,
    cmd/hockeypuck-pq/main.go, Makefile, pq/worker.go:
    - Fixed several bugs in pq worker sql, logic in creating indexes.
    - Updated Makefile to use static pattern rule, slurp in pq deps.
    - Refactor common command-line flags to cli/cli.go.
  * debian/control, debian/postinst, debian/postrm, etc/init/hockeypuck-
    mgo.conf:
    - Add upstart config, postinst to set up hockeypuck user, log dirs.

 -- Casey Marshall <casey.marshall@gmail.com>  Wed, 31 Oct 2012 00:10:27 -0500

hockeypuck (0.1~alpha1~bzr267~precise) precise; urgency=low

  [ Casey Marshall ]
  * === added directory debian, cmd/hockeypuck/main.go,
    server.go, server_test.go, types.go:
    - Opening 0.1~alpha development, create debian/changelog.
    - Added comments to server.
  * === added directory pq, pq/cr_database.sql, pq/dr_database.sql,
    pq/worker.go:
    - Add a first cut at a database schema, random uuid generation.
    - Started pq-backed worker.
  * pq/cr_database.sql, pq/worker.go:
    - Commented the database schema & outlined plan for PqWorker.AddKey.
  * cmd/lspgp/main.go, pq/cr_database.sql, pq/dr_database.sql,
    pq/worker.go:
    - Add AGPL license to these files.
    - Removed redundant long_id and short_id from pub_key.
  * pgp.go:
    - Added public key merge functions we'll need for keyserver updates.
  * pq/cr_database.sql, pq/worker.go, pq/worker_test.go:
    - Add simple db connection test, fixed a few sql and query errors.
  * errors.go, pgp.go, pq/worker.go, pq/worker_test.go:
    - Several postgres database errors fixed.
    - Using flags to configure postgres test database connection.
  * errors.go, pgp.go, pq/cr_database.sql, pq/dr_database.sql,
    pq/worker.go, pq/worker_test.go:
    - Removed key_log table, storing keyrings in binary form in pub_key.
    - Updated unit test to normalize armored keyrings to eliminate
      variations in armor from test conditions.
    - Check for short key ID collisions.
  * cmd/hockeypuck/main.go, pq/worker.go:
    - Main hockeypuck executable now starts a postgres-backed server.
    - Added flag parsing.
    - Hey, it kind of works now.
  * === added directory debian/source, debian/compat, debian/control,
    debian/copyright, debian/rules, debian/source/format, Makefile:
    - Add debian packaging. LP: #1040379
  * debian/rules, Makefile:
    - Place binary dependencies in debian source tarball for lp builders.
  * === added directory cmd/pktdump, cmd/pktdump/main.go,
    debian/control:
    - Add packet dump utility to help with diagnostics and research
      LP: #1040378
    - Eliminate scm tools from debian build deps.
  * === added directory mgo, Makefile, mgo/worker.go,
    mgo/worker_test.go:
    - Add mongodb worker backend.
  * mgo/worker.go, mgo/worker_test.go, pgp.go:
    - Implement lookup, key merge.
    - Improved mongo document model.
    - Add fingerprint unique index.

 -- Casey Marshall <casey.marshall@gmail.com>  Thu, 30 Aug 2012 23:04:38 -0500
