Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated JEP-210 #166

Merged
merged 2 commits into from
Aug 7, 2018
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 13 additions & 3 deletions jep/210/README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,16 @@ This avoids any need for the `¦` separator used by `StreamLogStorage`.
More subtly, the `InputStream` interface lacked any room for indicating
that the build content was incomplete.

=== Annotating lines by step using `ConsoleNote`

For the default filesystem-based storage,
originally it was attempted to use a special `ConsoleNote` to mark which step produced a given line.
This worked, but resulted in unacceptably bloated raw logs:
the serialized form, after GZIPping and Base64-encoding, was over 200 characters per line;
and rendered typical raw logs more or less unreadable.
Therefore the `¦` separator (later used only by `StreamLogStorage`) was introduced,
as it adds minimal space overhead and does not interfere with legibility.

=== Core dependencies

Some aspects of the implementation would be easier given certain API changes in Jenkins core (or Stapler).
Expand All @@ -342,12 +352,12 @@ For now, these considerations were outweighed by the convenience of running on s

When the synchronous `Launcher` interface is used to start non-durable remote processes,
as happens for example from typical `SCM` implementations delegating to a command-line tool,
currently the remotability of any supplied `TaskListener` is ignored
historically the remotability of any supplied `TaskListener` is ignored
and all log lines are sent over the Remoting channel to be processed on the master side:
link:https://issues.jenkins-ci.org/browse/JENKINS-52729[JENKINS-52729].
This is likely fixable as a simple patch to `Launcher`,
This was fixed as a simple patch to `Launcher`,
which would also benefit JEP-207 by removing any need to use ``DecoratedLauncher``s for freestyle build steps.
This is likely to also fix encoding issues with such synchronous steps for JEP-206.
A related change could perhaps also fix encoding issues with such synchronous steps for JEP-206.

(While `TaskListener` was long ago designed to be remotable,
and `StreamTaskListener` in fact handled that by using `RemoteOutputStream`,
Expand Down