Enhancements
[2661](https://github.com/cylc/cylc-flow/pull/2661) -
* new User Guide section on Remote Job Management
* tidy the installation documentation
* standardise directory structures (all docs updated accordingly):
- deprecated `<cylc-dir>conf/` file locations:
- site config file `<cylc-dir>etc/global.rc`
- gcylc config example `<cylc-dir>/etc/gcylc.rc.eg`
- site job environment init `<cylc-dir/etc/job-init-env.sh`
- editor syntax files in `<cylc-dir>etc/syntax/`
- bash completion script `<cylc-dir>/etc/cylc-bash-completion`
- user `global.rc` can now go in `~/.cylc/<cylc-version>/` or `~/.cylc/`
(the version-specific location avoid forward compatibility problems - see
notes in `<cylc-dir>/etc/global.rc.eg`).
- moved central cylc wrapper template to `usr/bin/cylc`
- various developer scripts and notes moved from `<cylc-dir>/dev/` to
`<cylc-dir>/etc/dev-bin, dev-notes, dev-suites`.
- *the ancient `site.rc` and `user.rc` global config filename variants are
now obsolete.*
[2659](https://github.com/cylc/cylc-flow/pull/2659) - commands in the process pool
(event handlers, and job submit, poll and kill commands) will now be killed on
a configurable timeout if they hang, rather than tying up a member of the
finite process pool: `global.rc` default: `process pool timeout = PT10M`
[2582](https://github.com/cylc/cylc-flow/pull/2582) - improve client/server
interface, including: `cylc message` can send multiple messages at once, with
different severities; server ignores messages from superseded job submits;
running jobs detect that the suite has been cold-started under them and will
not attempt to connect; ssh-based indirect client-server communication now
works automatically for all clients, not just messaging.
[2582](https://github.com/cylc/cylc-flow/pull/2582),
[2624](https://github.com/cylc/cylc-flow/pull/2624), and earlier changes: all job
host actions are now done by remote `cylc` subcommands that are compatible with
ssh whitelisting.
[2590](https://github.com/cylc/cylc-flow/pull/2590) - replaced the fixed process
pool with direct management of individual sub-processes (for external commands
executed by the server program).
[2561](https://github.com/cylc/cylc-flow/pull/2561) - pass resolved triggering
dependencies to `$CYLC_TASK_DEPENDENCIES` in job environments.
[2639](https://github.com/cylc/cylc-flow/pull/2639) - date-time cycling: document
availability of 365-day (never a leap year) and 366-day (always a leap year)
calendars.
[2597](https://github.com/cylc/cylc-flow/pull/2597) - emit a "late" event if a task
has not triggered by a user-defined real-time offset relative to cycle point.
[2648](https://github.com/cylc/cylc-flow/pull/2648) - improve version reporting.
Note than non-standard lowercase `cylc -v` is now gone; use `cylc -V` or `cylc
--version`, with optional `--long` format to print as well as version.
[2620](https://github.com/cylc/cylc-flow/pull/2620) - re-document the long-dated
`[special tasks]sequential` and recommend using explicit dependencies in the
graph instead.
[2584](https://github.com/cylc/cylc-flow/pull/2584) - internal queues now release
task jobs on a FIFO (First In, First Out) basis, rather than randomly.
[2538](https://github.com/cylc/cylc-flow/pull/2538) - remove leading whitespace
from multi-line `script` items in task definitions, for cleaner job scripts.
[2503](https://github.com/cylc/cylc-flow/pull/2503),
[2624](https://github.com/cylc/cylc-flow/pull/2624) - `cylc cat-log`: all remote
host actions now done by a `cylc` sub-command; and simpler command options (see
`cylc cat-log --help`; **warning: the old command options are not supported**)
Fixes
[2666](https://github.com/cylc/cylc-flow/pull/2666) - `cylc scan`: make default
behavior consistent with `cylc gscan`: get suite information from `~/cylc-run/`
only for the current user; and no partial matches with `-n/--name=PATTERN`
(i.e. `--name=bar` will only match the suite `bar`, not `foobar` or `barbaz`).
[2593](https://github.com/cylc/cylc-flow/pull/2593) - fix polling after job
execution timeout (configured pre-poll delays were being ignored).
[2656](https://github.com/cylc/cylc-flow/pull/2656) - fix suicide triggers with
multiple prerequisites in the same graph line.
[2638](https://github.com/cylc/cylc-flow/pull/2618) - fix duplicate "failed" task
events after `cylc stop --kill`.
[2653](https://github.com/cylc/cylc-flow/pull/2653) - tidy and correct the main `cylc
help` documentation.
[2644](https://github.com/cylc/cylc-flow/pull/2644),
[2646](https://github.com/cylc/cylc-flow/pull/2646) - fix some graph parsing edge
cases.
[2649](https://github.com/cylc/cylc-flow/pull/2649) - respect suite
UTC mode when recording job submit time (database and GUI tree view).
[2631](https://github.com/cylc/cylc-flow/pull/2631) - fix "failed" task event after
bad host select.
[2626](https://github.com/cylc/cylc-flow/pull/2626) - `cylc gui`: fix error when
a task job completes just before "view task prerequisites" (menu) is actioned.
[2600](https://github.com/cylc/cylc-flow/pull/2600) - correct task prerequisite
manipulation on state changes.
[2596](https://github.com/cylc/cylc-flow/pull/2596) - fix reference to parameter
values containing `+` or `-` characters.
[2592](https://github.com/cylc/cylc-flow/pull/2592) - permit syntax errors in edit
runs, so that the job file still gets written.
[2579](https://github.com/cylc/cylc-flow/pull/2579) - `cylc gscan`: fix a
re-spawning error dialog.
[2674](https://github.com/cylc/cylc-flow/pull/2674) - `cylc cat-log`: avoid leaving
orphaned tail-follow processes on job hosts.
-------------------------------------------------------------------------------