All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project uses Calendar Versioning with a YYYY.minor.patch
scheme.
All dates in this file are given in the UTC time zone.
- Deployment
host/networking/mac-addresses
of new packagecore/host/networking/mac-addresses
adds a systemd service to generate a YAML file report of the MAC addresses of the PlanktoScope's network interfaces, and a systemd timer to update that report periodically. - Deployment
apps/ps/device-portal
adds a new link ("For advanced users" -> "Browser applications" -> "System administration and troubleshooting" -> "MAC address viewer") to view the YAML file report generated by deploymenthost/networking/mac-addresses
.
- Merged the github.com/PlanktoScope/device-pkgs repo into this pallet, by moving all packages from there into here.
- (Breaking change) Package
core/host/networking/interface-forwarding
has split its default functionality into two new feature flags namedplanktoscope-between
(for forwarding network traffic between interfaces, to support internet connection sharing) andplanktoscope-inbound
(for forwarding network traffic targeted at192.168.4.1
,192.168.5.1
, etc., all to127.0.0.1
), so that functionality is no longer enabled by default in deployments (though thehost/networking/interface-forwarding
deployment does enable both new feature flags, resulting in no visible change to the deployment). Similarly, the/usr/lib/enable-interface-forwarding
script has been split into two scripts:/usr/libexec/forward-between
and/usr/libexec/forward-inbound
.
- Deployment
apps/portainer
(whose default enablement was deprecated in v2024.0.0-alpha.2) is now disabled by default. - Deployment
apps/ps/device-portal
had a broken link (to a removed protocol PDF file) which has now been removed.
- Deployment
host/networking/interface-forwarding
now has an enabled feature flagplanktoscope-dhcp-default-route
which can be disabled so that the PlanktoScope no longer advertises itself as a default route to the internet. This is useful when the PlanktoScope has no internet access and is connected (e.g. by Ethernet) to a Windows or macOS device which is connected to a Wi-Fi network with internet access: when the PlanktoScope advertises itself as a default route to the internet, such devices will only use the PlanktoScope to try to access the internet instead of using the Wi-Fi network to access the internet; then the feature flag can be disabled to enable such devices to access the internet in such a network topology.
- Deployment
apps/ps/device-portal
now includes a link to an offline PDF draft of v4 of Fabien's PlanktoScope operation protocol (but not any older versions), and now it only links to the latest version of online version of the protocol.
- Deployment
apps/ps/backend/proc-segmenter
now correctly sets theimg_rank
metadata field of the EcoTaxa export to1
, instead of setting it to an incrementing index which makes exports un-importable by EcoTaxa for datasets with more than ~32,000 objects.
- Deployment
apps/ps/device-portal
now includes a link to v3 of Fabien's PlanktoScope operation protocol. - Deployment
apps/ps/docs
now includes an offline PDF copy of v3 of Fabien's PlanktoScope operation protocol.
- Deployment
apps/ps/docs
no longer includes an offline PDF copy of v1 of Fabien's PlanktoScope operation protocol.
- Deployment
host/machine-name
now correctly integrates hostname generation and Avahi domain name registration; previously Avahi was unaware of the autogenerated hostname. - (Breaking change) Deployment
apps/ps/backend/proc-segmenter
now correctly filters segmented objects by size.
- Added a
host/prepare-custom-image
package deployment to export a script to/usr/libexec/prepare-custom-image
for resetting the filesystem and shutting down the machine in preparation for cloning the filesystem as an SD card image. - Added experimental feature flags for other pallets to reference when importing files from this pallet.
- Deployment
apps/grafana
now tries to limit Grafana's CPU usage to one core.
- The Docker container image has been bumped to the latest version for the
apps/ps/device-portal
, to remove a deprecation notice for theplanktoscope.local
hostname (as that hostname is being un-deprecated for v2024.0.0).
- Deployment
host/machine-name
now exports amachine-name
binary built for the appropriate CPU architecture target.
- The Docker container image has been bumped to the latest version for the
apps/ps/device-portal
, to fix some broken links and remove the links to Portainer (whose inclusion in the default PlanktoScope OS images is deprecated for v2024.0.0 of PlanktoScope OS). - Docker container images have been bumped to the latest version for filebrowser-related package deployments.
- Deployment
apps/cockpit
now exports a drop-in config file for reverse-proxying (see the notes on additions tocore/host/cockpit
) - Deployment
apps/ps/node-red-dashboard
now exports more config files needed for the Node-RED dashboard. - Deployment
host/cockpit
now exports system services to automatically generate a Cockpit config file from drop-in config file fragments, and various drop-in config files for Cockpit. - Deployment
host/dnsmasq
now exports system services to automatically generate a dnsmasq drop-in config file from drop-in config file templates. - Added a
host/docker
deployment which exports an override to the default systemddocker.service
. - Deployment
host/networking/autohotspot
now exports everything needed for autohotspot functionality. - Deployment
host/networking/dhcpcd
now exports an override to the default systemddhcpcd.service
. - Deployment
host/networking/dnsmasq
now exports various drop-in config files for dnsmasq. - Deployment
host/networking/hostapd
now exports a default basic config file for hostapd. - Deployment
host/networking/hosts
now exports system services to automatically generate a hosts file from drop-in hosts file fragments. - Deployment
host/networking/interface-forwarding
now exports everything needed for interface-forwarding functionality. - Deployment
host/planktoscope/gpio-init
now exports everything needed for GPIO-initialization functionality. - Deployment
host/planktoscope/gpsd
now exports all config files needed to support the GPS module (still no guarantee whether the files are actually correct, though!). - Deployment
host/planktoscope/machine-name
now exports everything needed for automatically updating machine name-related configurations (machine name, hostname, SSID, Cockpit configuration). - Deployment
host/sshd
now enables the system-providedssh.service
and adds & enables a service which automatically regenerates host keys for the SSH server if no host keys exist at boot.
- (Breaking change) Previously, the default behavior of the segmenter deployed by
apps/ps/backend/proc-segmenter
was to subtract consecutive masks to try to mitigate image-processing issues with objects which get stuck to the flowcell during imaging. However, when different objects occupied the same space in consecutive frames, the subtraction behavior would subtract one object's mask from the mask of the other object in the following frame, which would produce clearly incorrect masks. This behavior is no longer enabled by default; in order to re-enable it, you should enable thepipeline-subtract-consecutive-masks
feature flag in the package deployment. - (Breaking change) The minimum supported Forklift version for using this repository has been bumped from v0.4.0 to v0.7.0, because some packages provided by this repository now require functionality added by v0.7.0 (namely, file-exporting functionality) in order to work as described/expected.
- (Breaking change) Deployment
host/planktoscope/machine-name
has been renamed tohost/machine-name
. - Docker container images have been bumped to newer versions for almost all package deployments.
- Deployment
apps/cockpit/deploy.yml
no longer has a resource dependency on a fileset involving/etc/cockpit/cockpit.conf
. - Deployment
host/networking/interface-forwarding
has a slightly simpler network configuration, and now all packets for the PlanktoScope's static IP addresses (e.g. 192.168.4.1, 192.168.5.1, 192.168.6.1, etc.) are routed to 127.0.0.1 regardless of whether the packet for that IP address came from the interface corresponding to it.
- Deployment
apps/portainer
will no longer be enabled by default after v2024.0.0. This is because it requires inclusion of a relatively large Docker container image in the PlanktoScope OS's SD card image (which is constrained to be up to 2 GB in size so that it can be attached as an upload to GitHub Releases), and because it has an annoying first-time user experience (i.e. that a password must be set within a few minutes of boot, or else the Portainer container must be restarted), and because Dozzle already provides all the basic functionalities needed by most users, and because Portainer has never actually been used for troubleshooting within the past year of the project.
- Deployment
host/exim
was removed because it was useless and is no longer relevant.
- Added deployments for a few new packages which only describe assumptions about files provided by the host.
- Upgraded packages so that some now require certain files to be provided by the host.
- The container created by deployment
apps/ps/backend/proc-segmenter
now runs as theroot
user, so that it correctly handles root directories created on the host byapps/ps/backend/controller
.
- Deployment for Dozzle as a Docker container log viewer.
- Deployments for Prometheus metrics monitoring.
- Deployments for various scripts - and a few config files - to make available for running on the host.
- Deployment
apps/ps/backend/proc-segmenter
now deploys the segmenter as a Docker container instead of assuming it's available on the host.
(this release involves no changes from v2023.9.0-beta.2; it's just a promotion of v2023.9.0-beta.2 to a stable release)
- (Breaking change) Updated files for use with v0.4.0 of the Forklift tool. Previous versions must be used with forklift v0.3.
- The hardware setup guides are no longer included by default in the offline docs site, to reduce the size of the PlanktoScope SD card images.
- Upgraded github.com/PlanktoScope/device-pkgs repository from v2023.9.0-beta.0 to v2023.9.0-beta.1
- Packages for host resources.
- (Breaking change) Updated files for use with v0.3.1 of the Forklift tool. Previous versions must be used with forklift v0.1.
- (Breaking change) Reorganized packages with a directory tree structure.
- Upgraded various Docker images.
- Basic repository and package deployment configuration for the v2023.9.0 release