You can remove files when publishing an artifact instead of re-listing everything you keep.
What's wrong with this entry?
A publish can delete supporting files as well as add them, so an update no longer means re-listing everything you want to keep. Pass a removeFiles list of paths, or set a path to null in the map form of files, and those files are dropped from the artifact's next version while every file you left out stays published as it was.
- The permission prompt counts the deletions as "removing N file(s) from its current version", and appends "(its other published files stay)" when only some of the artifact's files are going.
- Removal is refused when the publish would create a new artifact rather than update an existing one, since there is nothing yet to remove from.
- Removed names are resolved and checked to sit inside the artifact's
files/directory before being unlinked, and are recorded in the publishedmanifest.jsonunder a newremovedkey. - Publish arguments also accept
liveFiles, new in this build;files,removeFilesandliveFileseach count as a content-bearing update on their own. - The local publishing stub used during development no longer wipes the whole
filesdirectory on each publish, so unlisted files persist instead of vanishing. - The defence against symlinks pointing outside the artifact now walks every parent directory up to the artifact root instead of checking only the immediate parent, and a file that fails the check is skipped and logged rather than aborting the whole publish.
- If the account does not have multi-file publishing, the refusal now states plainly that nothing was published or removed and the artifact is unchanged.
- Publish telemetry gained a count of removed files.
artifact stub: skipping removal of , `A null entry in files removes a file from an existing artifact, files left out of the map are kept and null removes that path`
Strings lifted out of the shipped bundle, so the claim above can be checked against them.
Related
Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.