MemGator Versions Save

A Memento Aggregator CLI and Server in Go

1.0-rc9

3 weeks ago

What's Changed

New Contributors

Full Changelog: https://github.com/oduwsdl/MemGator/compare/1.0-rc8...1.0-rc9

1.0-rc8

4 years ago

Notable Changes

A new release was long due, but it is finally here.

API

  • A new /about endpoint is added to the server to report runtime configurations and state of aggregated upstream archives, also reported at the root of the service if a public folder of static files is not specified
  • CDXJ metadata lines now use ! prefix instead of @
  • Updated !context URI in CDXJ response
  • X-Generator header is replaced with the standard Server header
  • Default user-agent now separates name and version number of MemGator with a / instead of a :, which ia a more common style
  • Default contact information in the user-agent is changed from @WebSciDL to https://git.io/MemGator
  • Default archives list file URL now uses HTTPS to avoid a round trip
  • API endpoints now correctly report base URL behind a reverse proxy
  • CLI help now correctly exits with 0 status

Archives

  • Archive IDs now use their respective domain names instead of manually chosen short names
  • List of archives is now sorted by ID
  • Randomly assigned probabilities are removed, which were added to test the top-K functionality
  • New archives added: National Records of Scotland, Library and Archives Canada, Australian Web Archive, and BAnQ
  • Alexandrina Web Archive is now enabled, which was ignored for a long time due to quality of service issues
  • Ignored: PRONI (moved to Archive-IT) and PastPages (DEFUNCT)
  • Updated endpoints: Perma.cc and Arquivo.pt
  • Update various archive endpoints to use HTTPS (when supported) to minimize redirects

Build

  • Preferred Go version is changed to 1.14+
  • Local packages are moved from pkg to vendor folder
  • Utilized new Go Modules feature to simply dependency management, which no longer requires the code to reside in the Go Workspace to work with it
  • Refactored crossbuild.sh script and updated to exit on failures
  • Leverages GitHub Workflow Actions to cross-build binaries for various platforms on each push/PR automatically and make these artifacts available
  • Dockerfile now utilizes multi-stage builds to create a small image and allows test builds against specified versions of base images using build-args
  • Final Docker image is now based on alpine instead of scratch, which makes the image slightly bigger, but enables the ability to execute a Shell to inspect a running container
  • Leverages .dockerignore to minimize the build context size
  • Docker images now leverage standard opencontainers annotation labels
  • gh-pages branch-based static asset (primarily, the default archives list) serving is retired in favor of using docs folder of the master branch to avoid maintaining common files in two branches

Distribution

  • Changed Docker image location from ibnesayeed to oduwsdl DockerHub account, which is configured to auto-build
  • Leverages GitHub Workflow Actions to publish Docker images to GitHub Package Registry as an alternate image registry
  • Both the image registries host images with master tag on each push to the master branch and two tags latest and {version} for each release, ensuring that the default latest tag always points to the latest released version, not the bleeding edge master branch

Documentation

  • Added project citation information with JCDL 2016 poster publication and a link to the paper
  • Update README to reflect the recent API changes
  • Updated Docker-related section in the README with steps to build images locally from the source, pulling from the two registries, and running containers in one-off and server modes
  • Documented automated archival exclusion feature for archives that misbehave at run time
  • Updated CLI usage to reflect new changes
  • Updated run and build instruction from source (for developers) and cross-platform binary building

Please test it and provide feedback to push it towards the final release.

1.0-rc7

7 years ago

Notable changes

  • Show a notice if the user-agent/contact is not customized in server mode #90
  • Add proxy for closest Memento with CORS headers #91
  • Remove explicit anchor 58122b6a6b0964ed7a32dc6488d4c118cc89f1a5

Please test it and provide feedback to push it towards the final release.

1.0-rc6

7 years ago

Notable changes

  • Absolute times in logs #85
  • Idle connection cleanup (required Go 1.7) #86

Please test it and provide feedback to push it towards the final release.

1.0-rc5

8 years ago

Notable changes

NOTE: There are some breaking changes in the flags and endpoints. Please refer to the README for updated options.

  • TimeNav and Redirect endpoint routing is redefined and both are served under Memento endpoint now. A fallback endpoint is also added for compatibility with Time Travel API.
  • A configurable mechanism is implemented for automatic detection and pausing of failing archives.
  • Timeout configurations are now working as expected.
  • Data for benchmarking is served as SSE, if enabled. This allows service monitoring and visualization.
  • An option for user-agent spoofing.
  • Profile is now called Benchmark to avoid possible conflicts with the Archive Profiles (corresponding flag is also changed).
  • Service flag is now called Proxy as this is useful to customize the URL in TimeMap and TimeGate responses when the service is behind a reverse proxy or load balancer.
  • Option to customize the TimeMap and TimeGate URLs separately is removed.
  • Static file serving is enabled if a corresponding directory is specified.
  • Some fixes for Link parsing and serialization issues.
  • Ability to specify a custom root path.

For a complete list of changes, please see the closed issues of the RC5

This is release in anticipation of ArchiveUnleashed hackathon in Washington DC and JCDL 2016. Please test it and provide feedback to push it towards the final release.

1.0-rc4

8 years ago

Notable changes

  • UTC/GMT fix in Accept-Datetime #52
  • Double interpolation fixed #48
  • Support for link attributes without name/value pair #49
  • MemGator version header on root endpoint as well #57

This is release in anticipation of ArchiveUnleashed Canada hackathon. Please test it and provide feedback to push it towards the final release.

1.0-rc3

8 years ago

Notable changes

  • Latest static Linux binary is included in the repo to build a Docker Image
  • Default archives list location has been changed to GitHub pages hosted JSON
  • 200-style TimeGate negotiation is added
  • X-Memento-Count is reported even if there are no Mementos.

Please test it and provide feedback to push it towards the final release.

1.0-rc2

8 years ago

Notable changes

  • A bug fixed to handle missing protocol scheme
  • Two separate Dockerfiles for minimal latest release binary and complete edge build

Please test it and provide feedback to push it towards the final release.

1.0-rc1

8 years ago

Notable changes

  • Endpoint routing logic has been tightened with better status code and messages (#16) .
  • The key in the CDXJ output is now in the YYYYMMDDhhmmss format instead of RFC3339 format which is still present in the JSON output (#15).
  • Added an ASCII art for MemGator (#11).
  • Improved logging and documentation.

Please test it and provide feedback to push it towards the final release. Check the milestone for all the changes in this release.

1.0-beta

8 years ago

First public release of the MemGator. It is in experimental phase and not well tested.

Update: A quick fix added for #3.