Skip to content

Added option to compress file backups#8396

Merged
APickledWalrus merged 5 commits intoSkriptLang:dev/featurefrom
Pesekjak:feature/compress-backups
Mar 27, 2026
Merged

Added option to compress file backups#8396
APickledWalrus merged 5 commits intoSkriptLang:dev/featurefrom
Pesekjak:feature/compress-backups

Conversation

@Pesekjak
Copy link
Copy Markdown
Member

Problem

Backups of variables.csv can take up a lot of space for some users.

Solution

There is now an option in config to turn on automatic compression of those files. This also applies to other file backups (lang and config). I also refactored the backup method to replace the legacy code.

Testing Completed

I tested this manually, I believe we don't need automated test for this.


Completes: #8083
Related: none
AI assistance: none

@Pesekjak Pesekjak requested a review from a team as a code owner January 22, 2026 16:54
@Pesekjak Pesekjak requested review from Absolutionism and TheMug06 and removed request for a team January 22, 2026 16:54
@skriptlang-automation skriptlang-automation bot added the needs reviews A PR that needs additional reviews label Jan 22, 2026
@3add
Copy link
Copy Markdown
Contributor

3add commented Jan 22, 2026

iirc Skript's contribution requirements requires that all {} are placed after if, else, for, etc

Edit: just for for appearantly

@sovdeeth
Copy link
Copy Markdown
Member

iirc Skript's contribution requirements requires that all {} are placed after if, else, for, etc

They can be omitted for single line ifs without elses

@sovdeeth sovdeeth added the enhancement Feature request, an issue about something that could be improved, or a PR improving something. label Jan 22, 2026
@skriptlang-automation skriptlang-automation bot removed the needs reviews A PR that needs additional reviews label Jan 23, 2026
Co-authored-by: Efnilite <35348263+Efnilite@users.noreply.github.com>
@Pesekjak Pesekjak requested a review from Efnilite January 23, 2026 15:16
@TheLimeGlass
Copy link
Copy Markdown
Contributor

TheLimeGlass commented Feb 1, 2026

I recommend throwing some compression onto the GZip because the default compression isn't going to do much.

private static class GZIPOutputStreamWithLevel extends GZIPOutputStream {
	public GZIPOutputStreamWithLevel(OutputStream out, int level) throws IOException {
		super(out);
		this.def.setLevel(level);
	}
}
try (OutputStream os = Files.newOutputStream(backup); GZIPOutputStreamWithLevel gzipOs = new GZIPOutputStreamWithLevel(os, Deflater.BEST_COMPRESSION)) {
	Files.copy(source, gzipOs);
}

You can also use Apache's GzipCompressorOutputStream or TarArchiveOutputStream

Mojang uses the TarArchiveOutputStream for large files

@github-project-automation github-project-automation bot moved this from In Review to Awaiting Merge in 2.15 Releases Mar 27, 2026
@skriptlang-automation skriptlang-automation bot added the feature-ready A PR/issue that has been approved, tested and can be merged/closed in the next feature version. label Mar 27, 2026
@APickledWalrus APickledWalrus merged commit c233c26 into SkriptLang:dev/feature Mar 27, 2026
9 checks passed
@github-project-automation github-project-automation bot moved this from Awaiting Merge to Done - Awaiting Release in 2.15 Releases Mar 27, 2026
@skriptlang-automation skriptlang-automation bot added completed The issue has been fully resolved and the change will be in the next Skript update. and removed feature-ready A PR/issue that has been approved, tested and can be merged/closed in the next feature version. labels Mar 27, 2026
sovdeeth added a commit that referenced this pull request Apr 2, 2026
* Add Origin-applying SyntaxRegistry (#8376)

* Add reduce/fold Expression (#8353)

* Location with Yaw/Pitch (#8351)

* Test framework: support directory resources (#8377)

* Test framework: support directory resources

* use walkFileTree

* oops forgot imports

* Pattern Stringification Customization (#8391)

* Implement StringificationProperties

* Package cleanup

* Fix missing call in GroupPatternElement stringification (#8449)

Fix GroupPatternElement stringification

* Stabilise damage source experiment (#8414)

* Stabilise damage source experiment

* Replace STABLE with MAINSTREAM

* Remove experiment from damage source test

* Remove unstable API usage supression

---------

Co-authored-by: sovdee <10354869+sovdeeth@users.noreply.github.com>

* Add vector(n) (#8412)

* Init commit

* Fix not registering overloading for old namespaces

* Standardize Module usage + add child modules (#8346)

* child module support

* Create child modules and move over existing Bukkit addon modules.

* Update newer modules

* Clean up

* Requested changes and additional conversions

Just tags left!

* convert last module

* standardize package hierarchies

* remove bad imports

* fix bad examples

* Replace ChildAddonModule with HierarchicalAddonModule, move display/interaction modules into entity module, few other requested changes

* requested changes

* varargs registrar (thanks blue!)

* Use addonmodule javadocs to point to other useful tools

* Requested Changes

* Requested Changes

* Added option to compress file backups (#8396)

* Add fast path for integer strings in variable name comparator (#8483)

* Initial conversion

* Some more conversion

* fixes

* Update StructCommand.java

* no tests

---------

Co-authored-by: Patrick Miller <apickledwalrus@icloud.com>
Co-authored-by: mibers <midaswoah2@gmail.com>
Co-authored-by: _tud <98935832+UnderscoreTud@users.noreply.github.com>
Co-authored-by: devdinc <234956748+devdinc@users.noreply.github.com>
Co-authored-by: Tiberiu Sabău <96194994+tibisabau@users.noreply.github.com>
Co-authored-by: Efnilite <35348263+Efnilite@users.noreply.github.com>
Co-authored-by: Pesek <42549665+Pesekjak@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

completed The issue has been fully resolved and the change will be in the next Skript update. enhancement Feature request, an issue about something that could be improved, or a PR improving something.

Projects

Status: Done - Awaiting Release

Development

Successfully merging this pull request may close these issues.

7 participants