Repository navigation
Prepare for New Release - #29
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
2.0.0
Breaking changes
Import them directly from the standard library.
%,%0A,carriage returns, line breaks, Unicode, and whitespace are preserved instead
of being percent-encoded.
%25,%0D, and%0A.These sequences are no longer decoded.
additional commands.
echo()continues to print raw text.ValueErrorbefore writing.File-command names must be nonempty and exclude
=,<<, CR, LF, and NUL.Malformed pending environment records raise
ValueError.as
subprocess.CalledProcessError.Added
vars,WorkflowVariables,GitHubVariables, andRunnerVariables. Text values remain strings; flagshave explicit boolean values.
is_github_action()detects GitHub Actions.get_boolean_input()andget_multiline_input(), with required-input,whitespace, and empty-line options.
get_user_input()gains optionalrequiredandtrim_whitespacearguments; its defaults are unchanged.set_command_echo()for runner command diagnostics andfail()for an errorannotation followed by exit status
1.add_problem_matcher()andremove_problem_matcher()for tool annotations.declare_file_artifact(),declare_oci_artifact(),get_workflow_artifacts(), and immutableArtifactSubjectmetadata. Theserequire runner support and record identities without uploading files or images.
PathLikesupport and optionalstrict=Truevalidation inadd_system_path().py.typedfor installed-package type checking.Fixed
without losing leading BOM characters or trailing newlines in values.
BOMs, empty values, and duplicate names. The last value for a name wins.
get_env()preserves an empty process value and returnsNonefor missinglocal values.
get_workflow_environment_variables()returns an emptydictionary when the
GITHUB_ENVpath is unset or empty.group()closes its log group andstop_commands()restores commandprocessing when the context body raises. Generated stop tokens use UUID4.
and standard input, avoiding shell interpretation, command-line length limits,
and platform-specific
echobehavior.INPUT_*keys;an existing literal key still takes precedence. Hyphens remain unchanged.
Development and releases
srcpackage layout,pyproject.toml, uv builds and publishing,and locked development dependencies. The package has no runtime dependencies.
and macOS, with Ruff, strict mypy, and full statement and branch coverage.
A feature showcase checks cross-step values and action main/post state.
distributions. Verify the published package in a clean environment.
Upgrading from 1.1.0
that manually encode or decode percent sequences and line breaks.
echo()insidestop_commands()when printing text that must remainliteral, including command-looking text.
in the README.
use_subprocessargument fromset_output()andsave_state(). It remains accepted with aDeprecationWarning; bothfunctions always write runner files.
Existing package functions, public call signatures, the mutable
COMMANDS_USE_SUBPROCESSsetting, and event-payload caching remain available.set_env()and PATH changes still apply to later steps; they do not change thecurrent Python process.
closes: #17
closes: #20
closes: #21
closes: #24