All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Stability checks for cooled cameras so they are only marked
ready
when cooled condition has stabilized. (@danjampro #990)
- Add support for taking "dark" frames for cameras with mechanical shutters or opaque filters in the filterwheel. (@AnthonyHorton #989)
Dependency updates:
- panoptes-utils to 0.2.26. (#995)
- panoptes-utils to 0.2.21. (#979)
- panoptes-utils to 0.2.20. (#974)
Install script. (#974)
- Env var file is sourced for zshrc and bashrc.
- Fix the clone of the repos in install script. (#978)
- Adding a date version to script. (#979)
- docker-compose version bumped to 1.26.2. (#979)
- Better testing for ssh access. (#984)
- Using linuxserver.io docker-compose so we also have arm version without work. (#986)
- Fixing conditional so script can proceed without restart. (#986)
- Generalizing install script in sections. (#986)
Development Environment (#974)
- Many cleanups to environment and launch. See docs.
- Config server started along with development environment.
- Docker images and python packages are now automated via GitHub Actions and Google Cloud Build. (#995)
Docker image updates (#972)
- Updated install-pocs.sh script.
latest
installs thepanoptes-pocs
module from pipdevelop
installs viapip install -e[google.testing]
and is used for running the CI tests.developer-env
installs locally but with all options, i.e.pip install -e[google,testing,plotting,developer]
. Also buildsjupyterlab
and other developer tools. Starts ajupyterlab
instance by default.- Use new
arduino-cli
installer. - Add
bin/panoptes-develop
andbin/wait-for-it.sh
to installed scripts. - Add
docker/setup-local-environment.sh
, a convenience script for building local images. - Python moved to 3.8. (#974)
- Docker images are now built with buildx to get an arm version running. (#978)
- Removing readline and pendulum dependencies. (#978)
- Fully automated build and release of packages with GitHub Actions. (#995)
Testing (#974)
- Removing all the dynamic config server info, making things a lot simpler.
- docker-compose files for running tests.
- Misc documentation updates.
- Code coverage no longer ignores test.
- Testing is run via panoptes-develop test.
- Log files are rotated during each run.
POCS (#974)
- POCS instance cannot initialize unless it's observatory.can_observe.
- Set simulator config item at start of POCS init method if simulators (note plural) is passed.
- Simplification of the run method and the various predicates used to control it. Now just use the computed keep_running.
- Adding some action flags to the pocs.yaml file.
- Remove POCS.check_environment class method.
- Add a console_log_level and stderr_log_level. The former is written to the log file in $PANLOG and is meant to be tailed in the console. The stderr_log_level is what would be displayed, e.g. in a jupyter notebook. (#977)
- Mount simulator better name and stringify. (#977)
- Global db object for PanBase (#977)
- Allow for custom folder for metadata. (#979) * Default changed to metadata.
Camera simulator cleanup. (#974)
Scheduler (#974)
- The fields_file is read when scheduler is created.
Note that we skipped 0.7.2
and 0.7.3
.
- Package name is
panoptes-pocs
for namespace consistency. (#971) - README changed to rst. (#971)
If you thought 9 months between releases was a long time, how about 18
months! :) This version has a lot of breaking changes and is not
backwards compatible with previous versions. The release is a (big) stepping
stone on the way to 0.8.0
and (eventually!) a 1.0.0
.
The entire repo has been redesigned to support docker images. This comes with a number of changes, including the refactoring of many items into the panoptes-utils repo.
There are a lot of changes included in this release, highlights below:
Warning
This changelog is likely missing some things. The release was large. Too large. If you think something might be working different that just might be true. Check the forums.
- Storing an explicit
safety
collection in the database. - Configuration file specific for testing rather than relying on
pocs.yaml
. - Convenience scripts for running tests inside docker container:
scripts/testing/test-software.sh
- GitHub Actions for testing and coverage upload.
- Docker as default. (#951).
- Weather items have moved to aag-weather.
- Two docker containers run from the
aag-weather
image and have adocker/docker-compose-aag.yaml
file to start.
- Two docker containers run from the
- Config items related to the configuration system have been moved to the Config Server in
panoptes-utils
repo.- The main interface for POCS related items is through
self.get_config
, which can take a key and a default, e.g.self.get_config('mount.horizon', default='30 deg')
. - Test writing is affected and is currently more difficult than would be ideal. An updated test writing document will be following this release.
- The main interface for POCS related items is through
- Logging has changed to loguru and has been greatly simplified:
get_root_logger
has been replaced byget_logger
.
- The
per-run
logs have been removed and have been replaced by two logs files:
$PANDIR/logs/panoptes.log
: Log file meant for watching on the- command line (via
tail
) or for otherwise human-readable logs. Rotated daily at 11:30 am. Only the previous days' log is retained.
$PANDIR/logs/panoptes_YYYYMMDD.log
: Log file meant for archive- or information gathering. Stored in JSON format for ingestion into log analysis service. Rotated daily at 11:30 and stored in a compressed file for 7 days. Future updates will add option to upload to google servers.
loguru
provides two new log levelstrace
: one level belowdebug
.success
: one level aboveinfo
.
- Breaking Mount: unparking has been moved from the
ready
to theslewing
state. This fixes a problem where after waiting 10 minutes for observation check, the mount would move from park to home to park without checking weather safety.
Documentation updates.
Lots of conversions to
f-strings
.Renamed codecov configuration file to be compliant.
Switch to pyscaffold for package maintenance.
- "Waiting" method changes:
- sleep has been renamed to wait.
All status() methods have been converted to properties that return a useful dict.
Making proper abstractmethods.
Documentation updates where found.
Many log and f-string fixes.
pocs.config_port property available publicly.
horizon check for state happens directly in run.
- Cleanup of any stale or unused code.
- All
mongo
related code. - Consolidate configration files:
.pycodestyle.cfg
,.coveragerc
- into
setup.cfg
.
- Consolidate configration files:
- Weather related items. These have been moved to
`aag-weather
<https://github.com/panoptes/aag-weather>`__.
- All notebook tutorials in favor of
`panoptes-tutorials
<https://github.com/panoptes/panoptes-tutorials>`__.
- Remove all old install and startup scripts.
One week between releases is a lot better than 9 months! ;) Some small but important changes mark this release including faster testing times on local machines. Also a quick release to remove some of the CloudSQL features (but see the shiny new Cloud Functions over in the panoptes-network repo!).
- Cameras
- Use unit_id for sequence and image ids. Important for processing
- consistency [#613].
- State Machine
- Camera
- Remove camera creation from Observatory [#612].
- Smarter event waiting [#625].
- More cleanup, especially path names and pretty images [#610, #613,
- #614, #620].
- Mount
- Testing
- Caching some of the build dirs [#611].
- Only use Mongo DB type during local testing - Local testing with
- 1/3rd the wait! [#616].
- Google Cloud [#599]
- Storage improvements [#601].
- Misc
- CountdownTimer utility [#625].
- Google Cloud [#599]
- Reverted some of the CloudSQL connectivity [#652]
- Cameras
- Remove spline smoothing focus [#621].
- Lots of changes in this release. In particular we've pushed through a lot of changes
- (especially with the help of @jamessynge) to make the development process a lot
- smoother. This has in turn contribute to the quality of the codebase.
Too long between releases but even more exciting improvements to come! Next up is tackling the events notification system, which will let us start having some vastly improved UI features.
Below is a list of some of the changes.
Thanks to first-time contributors: @jermainegug @jeremylan as well as contributions from many folks over at https://github.com/AstroHuntsman/huntsman-pocs.
- Cameras
- Fix for DATE-OBS fits header [#589].
- Better property settings for DSLRs [#589].
- Pretty image improvements [#589].
- Autofocus improvements for SBIG/Focuser [#535].
- Primary camera updates [#614, 620].
- Many bug fixes [#457, #589].
- State Machine
- Many fixes [#509, #518].
- Mount
- POCS Shell: Hitting
Ctrl-c
will complete movement through states [#590]. - Pointing updates, including
auto_correct
[#580]. - Tracking mode updates (fixes for Northern Hemisphere only!) [#549].
- Serial interaction improvements [#388, #403].
- Shutdown improvements [#407, #421].
- Dome
- Changes from May Huntsman commissioning run [#535]
- Messaging
- Better and consistent topic terminology [#593, #605].
- Anticipation of coming events.
- Misc
- Default to rereading the fields file for targets [#488].
- Timelapse updates [#523, #591].
- Cameras
- Basic scripts for bias and dark frames.
- Add support for Optec FocusLynx based focus controllers [#512].
- Pretty images from FITS files. Thanks @jermainegug! [#538].
- Testing
- pyflakes testing support for bug squashing! :bettle: [#596].
- pycodestyle for better code! [#594].
- Threads instead of process [#468].
- Fix coverage & Travis config for concurrency [#566].
- Google Cloud [#599]
- Added instructions for authentication [#600].
- Add a
pan_id
to units for GCE interaction[#595]. - Adding Google CloudDB interaction [#602].
- Sensors
- Much work on arduinos and sensors [#422].
- Misc
- Startup scripts for easier setup [#475].
- Install scripts for Ubuntu 18.04 [#585].
- New database type: mongo, file, memory [#414].
- Twitter! Slack! Social median interactions. Hooray! Thanks
- @jeremylan! [#522]
- Enforce 100 character limit for code
- 159.
- Using root-relative module imports
- 252.
Observatory
is now a parameter for a POCS instance- 195.
- Better handling of simulator types
- 200.
- Log improvements:
- Separate files for each level and new naming scheme
- 165.
- Reduced log format
- 254.
- Better reusing of logger
- 192.
- Single shared MongoClient connection
- 228.
- Testing improvments
- 249.
- Updates to many wiki pages.
- Misc bug fixes and improvements.
- Merge PEAS into POCS
- 169.
- Merge PACE into POCS
- 167.
- Polar alignment helper functions moved from PIAA
- 265.
- Remove threading support from rs232.SerialData
- 148.
- First real release!
- Working POCS features:
- mount (iOptron)
- cameras (DSLR, SBIG)
- focuer (Birger)
- scheduler (simple)
- Relies on separate repositories PEAS and PACE
- Automated testing with travis-ci.org
- Code coverage via codecov.io
- Basic install scripts