2018-09-18 14:35:42 +02:00
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog ](https://keepachangelog.com/en/1.0.0/ ),
and this project adheres to [Semantic Versioning ](https://semver.org/spec/v2.0.0.html ).
2024-09-11 14:54:31 +02:00
## 1.4.4 - 2024-09-11
2022-03-28 14:16:02 +02:00
### Changed
2024-09-11 14:50:42 +02:00
- Update recommended Python version to 3.8+
- Use PostgreSQL 15 in CI
- Use Python 3.12 in CI
2022-03-28 14:16:02 +02:00
2022-11-21 08:47:07 +01:00
### Updated
2024-09-11 14:50:42 +02:00
- Falcon 3.1.3, a minor change for us, but good to be using a current upstream
version
2022-11-21 08:47:07 +01:00
2024-09-11 14:07:07 +02:00
### Removed
- Drone CI
2022-03-26 17:08:56 +01:00
## 1.4.3 - 2022-03-26
### Updated
- Update dependencies with `poetry update`
- Falcon 3.1.0, a minor change for us, but good to be using a current upstream
version
2021-04-15 13:23:07 +02:00
## 1.4.2 - 2021-04-14
2021-03-11 10:23:07 +01:00
### Updated
- Update dependencies with `poetry update`
2021-04-06 07:58:00 +02:00
- Falcon 3.0.0, a minor change for us, but good to be using a current upstream
version
2021-03-11 10:23:07 +01:00
2021-04-06 08:07:51 +02:00
### Fixed
- Bug in several of the "valid page" tests
2021-03-21 18:49:35 +01:00
### Added
- GitHub Actions workflow to build and test the API
2021-01-14 13:19:50 +01:00
## [1.4.1] - 2021-01-14
2021-01-05 11:41:21 +01:00
### Changed
- Limit Solr query to UUIDs to avoid errors with unmigrated legacy stats (https://github.com/ilri/dspace-statistics-api/issues/12)
2021-01-14 13:19:50 +01:00
### Updated
- Dev dependencies
2020-12-27 11:52:24 +01:00
## [1.4.0] - 2020-12-27
2020-12-18 10:04:39 +01:00
### Added
- indexer.py now indexes views and downloads for communities and collections
2020-12-20 15:45:49 +01:00
- API endpoints for /communities, /community/id, /collections, and /collections/id
2020-12-22 10:21:46 +01:00
- Swagger UI interface on /swagger
2020-12-22 10:30:50 +01:00
- /status page which lists the API version
2020-12-18 10:04:39 +01:00
2020-12-17 09:17:23 +01:00
### Changed
- Add ORDER BY to /items resource to make sure results are returned
deterministically
2020-12-18 10:04:39 +01:00
- Use `fl` parameter in indexer to return only the field we are faceting by
2020-12-18 21:52:14 +01:00
- Minor refactoring of imports for PEP8 style
2020-12-27 11:26:32 +01:00
- More correct calculation of `totalPages` parameter in REST API response
2020-12-17 09:17:23 +01:00
2020-11-18 21:01:18 +01:00
## [1.3.2] - 2020-11-18
2020-11-02 21:14:18 +01:00
### Fixed
2020-11-18 20:57:12 +01:00
- Minor issue with limit parameter (> 0)
- Minor issue with limit parameter (< = 100)
2020-11-02 21:14:18 +01:00
2020-11-17 16:42:30 +01:00
### Changed
- Minor refactor in Solr bot filtering
2020-11-02 21:14:18 +01:00
### Updated
- Run poetry update
2020-10-06 21:15:52 +02:00
## [1.3.1] - 2020-10-06
### Changed
- Fix issue with requirements.txt caused by poetry's export
2020-10-06 20:33:38 +02:00
## [1.3.0] - 2020-10-06
2020-09-24 11:08:21 +02:00
### Changed
- Minor refactoring of indexer
2020-09-25 11:27:33 +02:00
### Added
2020-09-25 11:29:19 +02:00
- Ability to get statistics for arbitrary items and date ranges by POSTing a JSON-formatted request to /items as opposed to the current `GET /items` which returns pre-indexed all-time stats for all items
2020-09-25 11:27:33 +02:00
2020-09-27 10:16:37 +02:00
### Updated
- Run pipenv update, bringing minor updates to pytest, psycopg2-binary, etc
2020-03-02 13:32:07 +01:00
## [1.2.1] - 2020-03-02
### Changed
- Help text in API docs should reference UUIDs
- Sample SQL file for tests should use UUIDs
2020-03-02 10:34:58 +01:00
## [1.2.0] - 2020-03-02
2020-03-02 13:32:07 +01:00
### Changed
2019-11-27 11:56:39 +01:00
- Remove Python 3.5 from TravisCI because black requires Python >= 3.6
2020-03-02 10:27:10 +01:00
- Adapt API for DSpace 6+ UUIDs
2020-03-02 10:45:26 +01:00
- This requires dropping the statistics database and re-indexing
2020-03-02 13:32:07 +01:00
### Updated
2020-03-02 10:34:13 +01:00
- Run pipenv update, bringing requests 2.23.0 and pytest 5.3.5
2019-11-27 11:56:39 +01:00
2019-11-27 11:32:54 +01:00
## [1.1.1] - 2019-11-27
2019-11-27 11:32:16 +01:00
### Added
- Configuration for automatic sorting of imports with isort
- Configuration for automatic code formatting with black
2019-08-28 23:31:31 +02:00
### Updated
2019-11-27 11:47:07 +01:00
- Run pipenv update, bringing psycopg2 2.8.4, requests 2.22.0, pytest 5.3.1,
2019-11-27 11:14:49 +01:00
and gunicorn 20.0.4
2019-11-14 23:06:49 +01:00
### Changed
- Use Ubuntu 18.04 "Bionic" for TravisCI builds
2019-11-27 09:53:38 +01:00
- Use Python 3.8.0 for pipenv
2019-11-27 11:14:49 +01:00
- Minor syntax issues highlighted by flake8
2019-08-28 23:31:31 +02:00
2019-05-05 22:38:04 +02:00
## [1.1.0] - 2019-05-05
2021-03-21 18:50:39 +01:00
### Updated
2019-05-05 22:38:04 +02:00
- Falcon 2.0.0 (@alanorth)
2019-05-03 15:33:00 +02:00
2019-04-15 09:39:48 +02:00
## [1.0.0] - 2019-04-15
2019-02-07 16:28:41 +01:00
### Added
- Build configuration for build.sr.ht
2019-02-07 16:05:46 +01:00
### Updated
2019-04-15 09:30:29 +02:00
- Run pipenv update, bringing pytest version 4.4.0, psycopg-binary 2.8.2, etc
2019-03-17 22:40:51 +01:00
- sr.ht and TravisCI configuration to disable emojis and animation to keep logs clean
2019-02-07 16:05:46 +01:00
2019-04-15 09:19:50 +02:00
### Changed
- Use vanilla requests library instead of SolrClient
2019-04-15 09:25:54 +02:00
- Use one-based paging in indexer output (for human readability)
2019-04-15 09:19:50 +02:00
2019-01-22 08:02:29 +01:00
## [0.9.0] - 2019-01-22
2018-11-19 22:46:03 +01:00
### Updated
- pytest version 4.0.0
2021-01-14 13:15:57 +01:00
- Fix indexing of sharded statistics cores (#10)
2019-01-22 08:01:54 +01:00
- Handle case of missing views/downloads gracefully
2018-11-19 22:46:03 +01:00
2018-11-14 08:37:00 +01:00
## [0.8.1] - 2018-11-14
### Changed
2018-11-12 08:02:04 +01:00
- README.md to recommend using vanilla Python virtual environments and pip instead of pipenv
2018-11-14 08:36:13 +01:00
- Regenerate pipenv environment to capture only direct dependencies
2018-11-12 08:02:04 +01:00
2018-11-14 08:37:00 +01:00
### Added
2018-11-12 08:02:04 +01:00
- `requirements-dev.txt` for installing development packages with pip
2018-11-11 16:16:26 +01:00
## [0.8.0] - 2018-11-11
2018-11-10 23:05:49 +01:00
### Changed
- Properly handle database connection errors
2018-11-11 10:54:25 +01:00
### Added
2018-11-11 16:10:45 +01:00
- API tests with pytest
2018-11-11 10:54:25 +01:00
2018-11-10 23:08:44 +01:00
## [0.7.0] - 2018-11-07
### Added
2018-11-03 21:42:08 +01:00
- Ability to configure PostgreSQL database port with DATABASE_PORT environment variable (defaults to 5432)
2018-11-03 23:50:46 +01:00
- Hound CI configuration to validate pull requests against PEP 8 code style with Flake8
2018-11-04 14:59:11 +01:00
- Configuration for [pipenv ](https://pipenv.readthedocs.io/en/latest/ )
2018-11-03 21:42:08 +01:00
2018-11-10 23:08:44 +01:00
### Changed
2018-11-07 16:50:46 +01:00
- Use a database management class with Python context management to automatically open/close connections and cursors
2018-11-10 23:08:44 +01:00
### Changed
2018-11-03 23:05:16 +01:00
- Validate code against PEP 8 style guide with Flake8
2018-11-10 23:08:44 +01:00
## [0.6.1] - 2018-10-31
### Added
2018-10-31 23:39:12 +01:00
- API documentation at root path (/)
2018-11-10 23:08:44 +01:00
## [0.6.0] - 2018-10-31
### Changed
2018-10-31 18:26:45 +01:00
- Refactor project structure (note breaking changes to API and indexing invocation, see contrib and README.md)
2018-11-10 23:08:44 +01:00
## [0.5.2] - 2018-10-28
### Changed
2018-10-28 10:12:27 +01:00
- Update library versions in requirements.txt
2018-11-10 23:08:44 +01:00
## [0.5.1] - 2018-10-24
### Changed
2018-10-24 13:15:03 +02:00
- Use Python's native json instead of ujson
2018-11-10 23:08:44 +01:00
## [0.5.0] - 2018-10-24
### Added
2018-10-23 13:56:44 +02:00
- Example nginx configuration to README.md
2018-11-10 23:08:44 +01:00
### Changed
2018-10-24 11:01:47 +02:00
- Don't initialize Solr connection in API
2018-11-10 23:08:44 +01:00
## [0.4.3] - 2018-10-17
### Changed
2018-10-14 18:02:09 +02:00
- Use pip install as script for Travis CI
2018-11-10 23:08:44 +01:00
### Improved
2018-10-17 08:51:44 +02:00
- Documentation for deployment and testing
2018-10-04 23:19:18 +02:00
## [0.4.2] - 2018-10-04
2018-09-27 08:30:48 +02:00
### Changed
- README.md introduction and requirements
2018-09-27 08:53:42 +02:00
- Use ujson instead of json
2018-09-27 10:08:42 +02:00
- Iterate directly on SQL cursor in `/items` route
2018-09-27 08:30:48 +02:00
2018-10-04 23:19:18 +02:00
### Fixed
- Logic error in SQL for item views
2018-09-27 07:15:54 +02:00
## [0.4.1] - 2018-09-26
2018-09-26 22:26:48 +02:00
### Changed
2018-11-10 23:08:44 +01:00
- Use `execute_values()` to batch insert records to PostgreSQL
2018-09-26 22:26:48 +02:00
2018-09-26 01:51:27 +02:00
## [0.4.0] - 2018-09-25
2018-09-25 22:09:44 +02:00
### Fixed
- Invalid OnCalendar syntax in dspace-statistics-indexer.timer
2018-09-26 01:51:27 +02:00
- Major logic error in indexer.py
2018-09-25 22:09:44 +02:00
2018-09-25 12:14:08 +02:00
## [0.3.2] - 2018-09-25
## Changed
- /item/id route now returns HTTP 404 if an item is not found
2018-09-25 11:18:26 +02:00
## [0.3.1] - 2018-09-25
2018-09-25 11:12:10 +02:00
### Changed
- Force SolrClient's kazoo dependency to version 2.5.0 to work with Python 3.7
2018-09-25 11:17:49 +02:00
- Add Python 3.7 to Travis CI configuration
2018-09-25 11:12:10 +02:00
2018-09-25 10:38:36 +02:00
## [0.3.0] - 2018-09-25
2018-09-25 10:09:02 +02:00
### Added
- requirements.txt for pip
2018-09-25 11:17:01 +02:00
- Travis CI build configuration for Python 3.5 and 3.6
2018-09-25 10:37:56 +02:00
- Documentation on using the API
### Changed
- The "all items" route from / to /items
2018-09-25 10:09:02 +02:00
2018-09-25 01:21:44 +02:00
## [0.2.1] - 2018-09-24
2018-09-25 00:11:37 +02:00
### Changed
- Environment settings in example systemd unit files
2018-09-25 01:08:54 +02:00
- Use psycopg2.extras.DictCursor for PostgreSQL connection
2018-09-25 00:11:37 +02:00
2018-09-24 23:55:35 +02:00
## [0.2.0] - 2018-09-24
### Changed
- Use PostgreSQL instead of SQLite because UPSERT support needs a very new libsqlite3 whereas it's already in PostgreSQL 9.5+
2018-09-24 15:14:14 +02:00
## [0.1.0] - 2018-09-24
2018-09-23 22:04:01 +02:00
### Changed
- Rename project to "DSpace Statistics API"
2018-09-23 23:30:58 +02:00
- Use read-only database connection in API
- Update systemd units for CGSpace→DSpace rename
2018-09-24 13:31:05 +02:00
- Use UPSERT to simplify database schema and Python logic
2018-09-23 22:04:01 +02:00
2018-09-23 22:15:27 +02:00
### Added
- Example systemd service and timer unit for indexer service
2018-09-24 15:13:05 +02:00
- Add top-level route to expose all item statistics
2018-09-23 22:15:27 +02:00
2018-09-23 23:30:58 +02:00
### Removed
- Ability to customize SOLR_CORE variable
2018-09-23 15:49:25 +02:00
## [0.0.4] - 2018-09-23
2018-09-23 06:58:15 +02:00
### Added
- Added example systemd unit file for API
2018-09-23 15:48:39 +02:00
- Added indexer.py to ingest views and downloads from Solr to a SQLite database
2018-09-23 06:58:15 +02:00
2018-09-23 12:27:43 +02:00
### Changed
- Refactor Solr configuration and connection
2018-09-23 15:48:39 +02:00
- /item route now expects id as part of the URI instead of a query parameter: /item/id
- View and download stats are now fetched from a SQLite database
2018-09-23 12:27:43 +02:00
2018-09-20 16:41:47 +02:00
## [0.0.3] - 2018-09-20
2018-09-18 16:01:24 +02:00
### Changed
- Refactor environment variables into config module
2018-09-18 23:30:28 +02:00
- Simplify Solr query for "downloads"
2018-09-19 00:50:14 +02:00
- Optimize Solr query by using rows=0
2018-09-20 16:41:47 +02:00
- Fix Solr queries for item views
2018-09-18 16:01:24 +02:00
2018-09-18 14:36:56 +02:00
## [0.0.2] - 2018-09-18
2018-09-18 14:35:42 +02:00
### Added
- Ability to get Solr parameters from environment (`SOLR_SERVER` and `SOLR_CORE` )
## [0.0.1] - 2018-09-18
- Initial release