48 Commits

Author SHA1 Message Date
Daniel Martí
6dab979d1c CHANGELOG: add entry for v0.15.0 2025-08-31 18:15:32 +01:00
Daniel Martí
ad998763a2 CHANGELOG: add entry for v0.14.2 2025-04-13 19:22:34 +01:00
Daniel Martí
2e9cd84bde CHANGELOG: prepare for a bugfix release
A minor version bump seems unnecessary when we are just adding support
for a new Go version, and that support was very easy to do.
2025-02-12 03:30:06 +01:00
Daniel Martí
561158dca9 CHANGELOG: v0.14.0 is happening today 2025-01-26 21:41:07 +00:00
Daniel Martí
f90cc05f6d CHANGELOG: write release notes for the upcoming release 2025-01-23 16:49:21 +01:00
Daniel Martí
85df7f5f8b add changelog entry for v0.13.0 2024-09-05 21:20:05 +01:00
Daniel Martí
975f608c3d CHANGELOG: add entry for v0.12.1 2024-02-18 17:23:13 +03:00
Daniel Martí
f3f57e361d CHANGELOG: finish up for a release
The trash block generator docs aren't ready yet, they will come soon.
This is not a release blocker, given that the control flow obfuscator
is experimental and opt-in for now.
2024-02-10 10:34:33 +00:00
Daniel Martí
7a67952494 CHANGELOG: draft release notes for v0.12.0 2024-02-09 00:50:49 +01:00
Daniel Martí
02175c5018 CHANGELOG: finalise for v0.11.0 2023-12-03 13:08:20 +00:00
Daniel Martí
9378ec959a CHANGELOG: start drafting the next release notes 2023-11-19 18:35:36 +03:00
Daniel Martí
8f7248939c CHANGELOG: add entry for v0.10.1
No longer linking to issues manually, since GitHub does it for us
in the releases markdown rendering.
2023-06-25 13:41:36 +01:00
Daniel Martí
d3763143bd ready changelog for release 2023-06-05 22:05:34 +01:00
Daniel Martí
155bc3228e CHANGELOG: add entry for the imminent v0.10.0
Starting to explain new features in more detail.
A bullet list of single lines can be enough for most bug fixes,
but some of the big refactors like SSA or caching need some context.
2023-06-05 13:13:50 +02:00
Daniel Martí
89facf1648 CHANGELOG: prepare for v0.9.3 2023-02-12 14:18:31 +00:00
Daniel Martí
08302ed5fc prepare changelog for v0.9.2
I will do the tag tomorrow morning.
2023-02-06 23:22:37 +01:00
Daniel Martí
f34be3f572 CHANGELOG: prepare for v0.9.1 release 2023-01-26 11:51:05 +00:00
Daniel Martí
71eda055c2 CHANGELOG: prepare for v0.9.0 2023-01-17 22:36:44 +00:00
Daniel Martí
294450fdc3 CHANGELOG: draft for v0.9.0 2023-01-16 15:43:43 +00:00
Daniel Martí
82b955dfe1 CHANGELOG: release v0.8.0 2022-12-15 21:56:31 +00:00
Daniel Martí
89f873bba4 CHANGELOG: note the previous fix in the changelog 2022-12-15 00:03:58 +01:00
Daniel Martí
481e3a1f09 default to GOGARBLE=*, stop using GOPRIVATE
We can drop the code that kicked in when GOGARBLE was empty.
We can also add the value in addGarbleToHash unconditionally,
as we never allow it to be empty.

In the tests, remove all GOGARBLE lines where it just meant "obfuscate
everything" or "obfuscate the entire main module".

cgo.txtar had "obfuscate everything" as a separate step,
so remove it entirely.

linkname.txtar started failing because the imported package did not
import strings, so listPackage errored out. This wasn't a problem when
strings itself wasn't obfuscated, as transformLinkname silently left
strings.IndexByte untouched. It is a problem when IndexByte does get
obfuscated. Make that kind of listPackage error visible, and fix it.

reflect.txtar started failing with "unreachable method" runtime throws.
It's not clear to me why; it appears that GOGARBLE=* makes the linker
think that ExportedMethodName is suddenly unreachable.
Work around the problem by making the method explicitly reachable,
and leave a TODO as a reminder to investigate.

Finally, gogarble.txtar no longer needs to test for GOPRIVATE.
The rest of the test is left the same, as we still want the various
values for GOGARBLE to continue to work just like before.

Fixes #594.
2022-12-13 21:14:03 +00:00
Daniel Martí
41a09ad72e initial changelog draft for v0.8.0 2022-12-02 15:10:36 +01:00
Daniel Martí
b0b67ab436 CHANGELOG: releasing v0.7.2 2022-09-26 12:26:22 +01:00
Daniel Martí
3967f8aeaa finish up changelog for 0.7.2 2022-09-26 09:46:16 +01:00
Daniel Martí
9d46fe917a avoid a type assertion panic with generic code
I was wrongly assumed that, if `used` has an `Elem` method,
then `origin` must too. But it does not if it's a type parameter.

Add a test case too, which panicked before the fix.

Fixes #577.
2022-09-06 13:50:02 +01:00
Daniel Martí
8ad374d2fb start testing on Go 1.19.x
While here, start the changelog for the upcoming release,
which will likely be a bugfix release as it's a bit early to drop 1.18.

We also bump staticcheck to get a version that supports 1.19.

I also noticed the "Go version X or newer" messages were slightly weird
and inconsistent. Our policy, per the README, is "Go version X or newer",
so the errors given to the user were unnecessarily confusing.
For example, now that Go 1.19 is out, we shouldn't simply recommend that
they upgrade to 1.18; we should recommend 1.18 or later.
2022-09-05 14:07:10 +01:00
Daniel Martí
d342de4099 CHANGELOG: v0.7.1 happening today 2022-08-02 15:53:05 +01:00
Daniel Martí
3acbc571d2 draft changelog for the upcoming release
The changes are all fairly minor and non-breaking,
and the last release was less than two months ago,
so a bugfix release sounds like the right choice.
2022-07-30 18:28:53 -04:00
Daniel Martí
bb3f24648d CHANGELOG: v0.7.0 happening today 2022-06-10 11:36:27 +02:00
Daniel Martí
c9337022a0 bump gotip and x/exp, mention 1.19 in the changelog 2022-06-08 14:13:09 +02:00
Daniel Martí
f37561589b properly quote the path to garble in -toolexec
If we don't quote it, paths containing spaces or quote characters will
fail. For instance, the added test without the fix fails:

        > env NAME='with spaces'
        > mkdir $NAME
        > cp $EXEC_PATH $NAME/garble$exe
        > exec $NAME/garble$exe build main.go
        [stderr]
        go tool compile: fork/exec $WORK/with: no such file or directory
        exit status 1

Luckily, the fix is easy: we bundle Go's cmd/internal/quoted package,
which implements a QuotedJoin API for this very purpose.

Fixes #544.
2022-05-29 17:39:17 +02:00
Daniel Martí
b3e6b7a93a prepare changelog for v0.7.0
I'll probably do the release next week. Get ready for it.
2022-05-24 12:48:33 +02:00
Daniel Martí
0b6769c807 remove duplicate go:generate directive
I hadn't noticed that cmd/bundle prints its own go:generate directive.
I guess that makes sense for the average user running it directly,
but that doesn't apply to us, and we end up with duplicate directives.

Before:

	$ go generate -n
	bundle -o cmdgo_quoted.go -prefix cmdgoQuoted cmd/internal/quoted
	go run golang.org/x/tools/cmd/bundle@v0.1.9 -o cmdgo_quoted.go -prefix cmdgoQuoted cmd/internal/quoted

After:

	$ go generate -n
	go run golang.org/x/tools/cmd/bundle@v0.1.9 -o cmdgo_quoted.go -prefix cmdgoQuoted cmd/internal/quoted
	sed -i /go:generate/d cmdgo_quoted.go

While here, I made a typo in the last release notes, because of course.
I already edited that out in the GitHub release.
2022-03-23 15:55:17 +01:00
Daniel Martí
7608d524a5 CHANGELOG: v0.6.0 is happening one day late 2022-03-22 14:28:52 +00:00
Daniel Martí
13c0c930ee prepare changelog for v0.6.0
This time including links to issues, because I think that can be helpful
for those wanting to read more into each topic.

While here, to make the release links stand out more,
add the "v" prefix. This also matches the release names themselves.
2022-03-22 11:49:09 +01:00
Daniel Martí
f1880b688c finish changelog for v0.5.1
Include Andrew's last change,
which was an easy improvement and has a low chance of regressions.
2022-01-18 17:22:02 +00:00
Daniel Martí
87799a5e4e CHANGELOG: draft for v0.5.1 2022-01-17 12:47:33 -05:00
Daniel Martí
4f0657a19a prepare for v0.5.0
While here, add a TODO I forgot about, and run gofumpt.

Also bump all test timeouts slightly,
as the Mac and Windows hosted runners are a bit slow
and I've hit failures twice recently.
2022-01-06 17:10:04 +00:00
Daniel Martí
d146d82d33 prepare changelog for 0.5.0 2022-01-02 14:22:57 +01:00
Daniel Martí
c76c4196af prepare changelog for 0.4.0 2021-08-26 13:47:52 +02:00
Daniel Martí
993c5fbbe8 finalize changelog for v0.3.0 2021-05-31 11:48:44 +01:00
Daniel Martí
aba3b36218 start writing the upcoming changelog 2021-05-15 00:56:02 +02:00
Daniel Martí
ba4c46eb09 CHANGELOG: finish v0.2.0 draft
Mention two more bugfixes. Not the initial Go 1.17 support just yet,
because coincidentally it broke in the past 24h due to upstream changes.

Also tweak some of the other wording to be clearer.
2021-04-08 11:57:03 -04:00
Daniel Martí
91dd310bfe CHANGELOG: start drafting for v0.2.0 2021-04-01 21:25:34 +02:00
Daniel Martí
06a7a21e17 changelog: forgot to add github link (#271)
Otherwise the [0.1.0] link doesn't render at all.
2021-03-11 13:37:42 +01:00
Daniel Martí
1fcf50bbdd release v0.1.0 2021-03-05 13:27:44 +00:00
Daniel Martí
2a9c0b7bf4 prepare for the first release (#264)
First, write a changelog file. We will use GitHub releases, but the
content in those is not stored in git nor is it portable or machine
readable. The canonical place for the changelog is here.

Second, disable 'garble test', as it is entirely broken. Issue #241
tracks fixing and re-enabling it, which will most likely happen for the
next release.

Third, disable the undocumented 'garble list'. This was added as part of
'garble reverse', but it never got used. I can't think of any reason why
any end user would prefer it over 'go list', either.

'garble reverse' remains enabled, but undocumented as it isn't fully
functional yet. Until it supports position information, it's not
particularly useful to end users. But it's not broken either, so it can
remain where it is.

Fourth, update the '-tiny' size reduction numbers in the README. Since
we removed the in-place modification of object files, we are no longer
able to do such an aggressive stripping of info. Garble itself drops in
size by 2%, so replace the old 6-10% estimate by 2-5%. We probably will
gain some of this back in the near future.

Finally, fix the indentation formatting of the README to consistently
use tabs.
2021-03-05 12:35:01 +01:00