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

Changes for v3.6.0 #152

Merged
merged 60 commits into from
Apr 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
b7677bf
Build RichText segments without markdown parsing
Oct 17, 2023
8ff936c
Pre-parse the url for supported clients
Jacalz Oct 17, 2023
3b373d0
Clean up the pre-parsed url generation
Jacalz Oct 17, 2023
ee84e59
Support custom code on file transfer by dropping onto the window
Oct 18, 2023
39240b9
Show prompt to use custom code on drop
Oct 20, 2023
3027ca6
Simplfies logic on showing custom code on drop
Oct 20, 2023
53ae787
Replace widget.Entry with widget.SelectEntry on Advanced settings
Oct 29, 2023
57194ce
settings: Show default URLs as placeholders again
Jacalz Oct 29, 2023
a5f2361
Replace go-qrcode with our maintained fork
Jacalz Oct 29, 2023
6b67400
Update go.mod to use 1.19 as base version
Jacalz Oct 29, 2023
11e2e66
Update go-qrcode to v1.1.0
Jacalz Oct 30, 2023
5354725
Improve rendering performance with many send/receives
Jacalz Oct 30, 2023
28b237f
Update workflows to use Go 1.19 as base
Jacalz Oct 30, 2023
0a06ec0
Update websocket to v1.8.10
Jacalz Oct 31, 2023
0680e91
Convert more refresh calls to only refresh the specific item
Jacalz Oct 31, 2023
4c6f400
Close the information dialog on deleting item
Jacalz Oct 31, 2023
7dff805
Don't use a goroutine for waiting on receive code
Jacalz Nov 1, 2023
bb2d73e
Only write component change when drag ends
Jacalz Nov 13, 2023
7d9d849
Bump max components from 6 to 9
Jacalz Nov 13, 2023
3f61ea5
Move item removal out to a separate method
Jacalz Nov 13, 2023
a730005
Bump base version to Go 1.20
Jacalz Dec 29, 2023
39bda59
Enable more staticcheck rules
Jacalz Jan 7, 2024
72b8ec4
Don't recreate info dialogs each time, fixes #129
Jacalz Jan 7, 2024
2223f38
Minor code rework to allocate less objects
Jacalz Jan 8, 2024
97024f9
Move textSendWindow to bridge package
Jacalz Jan 11, 2024
54a77d3
Clean up textSendWindow to not be pointer referenced
Jacalz Jan 11, 2024
815a769
Set up textReceiveWindow without pointer reference
Jacalz Jan 11, 2024
a90c3ba
Rework textReceiveWindow to not recreate tap handlers
Jacalz Jan 11, 2024
96ead92
Remove a TODO that doesn't make sense
Jacalz Jan 11, 2024
968a134
Don't recreate dialog for saving text file
Jacalz Jan 11, 2024
d2f49c4
Minor refactoring of completion code
Jacalz Jan 12, 2024
6d6b8e5
Rework completion generator to do less garbage allocs
Jacalz Jan 12, 2024
857e928
Use binary search for matching wordlist in completion
Jacalz Jan 13, 2024
130ad5c
Fix possible infinite loop
Jacalz Jan 13, 2024
a3c90c8
Switch to custom wormhole package for performance improvements
Jacalz Jan 13, 2024
17999fa
Update to v0.1.0 of wormhole
Jacalz Jan 13, 2024
92ecb93
Remove unnecessary code and add more tests
Jacalz Jan 13, 2024
1b61f57
Add fast path for all completion matching
Jacalz Jan 13, 2024
cae7806
Remove a byte conversion
Jacalz Jan 13, 2024
cd32bb1
Clean up completion code even more
Jacalz Jan 13, 2024
aa4a525
Remove unnecessary string slicing
Jacalz Jan 13, 2024
8c3beaa
transport: A small receiver refactor to prepare future changes
Jacalz Jan 14, 2024
668b1f3
Move text receive window into bridge package as well
Jacalz Jan 15, 2024
bae1e6d
Remove some duplicated naming
Jacalz Jan 15, 2024
a75bee6
Add option to not extract received directories
Jacalz Jan 15, 2024
5a05381
Upate workflows to use latest deps automatically
Jacalz Jan 15, 2024
aa21381
Optimize code validator to not use regexp
Jacalz Jan 15, 2024
c6656b5
Add a benchmark for UI creation
Jacalz Jan 24, 2024
47ca6f0
Update some versions for next release
Jacalz Jan 24, 2024
3eee1ac
Bring down cyclomatic complexity of receiver
Jacalz Jan 29, 2024
846bd19
SImplify the clickable icon a bit
Jacalz Jan 29, 2024
f033571
Separate the two readers into separate types
Jacalz Jan 31, 2024
e5c1c4d
Don't let the readers escape to the heap
Jacalz Jan 31, 2024
6ffe4ed
Update version constants to v3.6.0
Jacalz Mar 12, 2024
6e82292
Update testify to latest version
Jacalz Mar 18, 2024
7980f50
Add a test for verifying that the static urls are valid
Jacalz Apr 6, 2024
8af4596
Update the workflow with new Go versions
Jacalz Apr 12, 2024
5e131cb
Add initial release notes
Jacalz Apr 12, 2024
16e43b2
Update documentation for v3.6.0
Jacalz Apr 14, 2024
559b081
Appstream metadata for v3.6.0
Jacalz Apr 14, 2024
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
14 changes: 7 additions & 7 deletions .github/workflows/analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ jobs:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: WillAbides/setup-go-faster@v1.13.0
- uses: WillAbides/setup-go-faster@v1
with:
go-version: '1.21.x'
go-version: 'stable'

- name: Install build dependencies
run: |
Expand All @@ -24,11 +24,11 @@ jobs:

- name: Install static analysis tools
run: |
go install github.com/securego/gosec/v2/cmd/gosec@v2.18.2
go install github.com/securego/gosec/v2/cmd/gosec@latest
go install golang.org/x/vuln/cmd/govulncheck@latest
go install github.com/fzipp/gocyclo/cmd/gocyclo@v0.6.0
go install honnef.co/go/tools/cmd/staticcheck@v0.4.6
go install mvdan.cc/gofumpt@v0.5.0
go install github.com/fzipp/gocyclo/cmd/gocyclo@latest
go install honnef.co/go/tools/cmd/staticcheck@latest
go install mvdan.cc/gofumpt@latest

- name: Vet
run: go vet ./...
Expand All @@ -37,7 +37,7 @@ jobs:
run: test -z $(gofumpt -d -e . | tee /dev/stderr)

- name: Gocyclo
run: gocyclo -over 20 .
run: gocyclo -over 15 .

- name: Staticcheck
run: staticcheck ./...
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ name: "CodeQL"

on:
push:
branches: [ "main" ]
branches: [ "main", "next", "stable" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]
branches: [ "main", "next", "stable" ]
schedule:
- cron: '24 10 * * 6'

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ jobs:
strategy:
fail-fast: false
matrix:
go-version: ['1.18.x', '1.21.x']
go-version: ['1.19.x', 'stable']

steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: WillAbides/setup-go-faster@v1.13.0
- uses: WillAbides/setup-go-faster@v1
with:
go-version: ${{ matrix.go-version }}

Expand Down
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
# Changelog

## 3.6.0 - Performance and usability improvements
- Added support to use custom codes when sending files and folders using drag and drop (see #108).
- Added an option to save directory receives as a `.zip` file instead of automatically extracting (see #50).
- Added options for more easily switching to Least Authoriy servers to communicate with [Winden](https://www.winden.app/s) and [Destiny](https://leastauthority.com/community-matters/destiny/) clients (see #125).
- Fixed an issue where deleting a sent or received item would not close the dialog (see #127).
- Improved the rendering performance for long lists of sent and received items (see #99).
- Use less CPU when dragging the options slider for selecting code components (see #79).
- Improved performance and memory usage when clicking on sent and received items (see #129 and #117).
- Using tab completion when writing the receive code is now much faster (see #136).
- Tab completions allocates a lot less memory and uses binary search to look up matches faster.
- Receiving items now has less startup delay and has a bit less overall cpu usage.
- The highest setting for generated receive code components is now bumped from 6 to 9.
- Performance improvements to the code validation that runs when starting a receive.
- QR codes are now generated with [rymdport/go-qrcode](https://github.com/rymdport/go-qrcode) instead of [skip2/go-qrcode](https://github.com/skip2/go-qrcode).
- The new dependency is a maintained fork with various modernisations, code cleanups and performance improvements.
- The magic-wormhole backend now uses [rymdport/wormhole](https://github.com/rymdport) instead of [psanford/wormhole-william](https://github.com/psanford/wormhole-william).
- See [improvements-over-upstream](https://github.com/rymdport/wormhole?tab=readme-ov-file#improvements-over-upstream) for reasons.
- Go 1.19 or later is now required for compiling the application.
- Various minor refactorings and code cleanups.

## 3.5.3 - Fixing Flathub review comments and updating dependencies
- Updated icons, screenshots and appstream metadata to fix problems noted in Flathub review (see #139).
- Updated `fyne` to [v2.4.4](https://github.com/fyne-io/fyne/releases/tag/v2.4.4).
Expand Down
4 changes: 2 additions & 2 deletions FyneApp.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ Website = "https://rymdport.github.io/"
Icon = "internal/assets/icons/icon-512.png"
Name = "Rymdport"
ID = "io.github.jacalz.rymdport"
Version = "3.5.3"
Build = 27
Version = "3.6.0"
Build = 28

[LinuxAndBSD]
GenericName = "File Transfer"
Expand Down
2 changes: 1 addition & 1 deletion PACKAGING.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ The following distributions also have binary packages available through their re
## Requirements

Rymdport compiles into a statically linked binary with no explicit runtime dependencies.
Compiling requires a [Go](https://go.dev) compiler (aversion 1.18 or later is required) and the [prerequisites for Fyne](https://developer.fyne.io/started/).
Compiling requires a [Go](https://go.dev) compiler (aversion 1.20 or later is required) and the [prerequisites for Fyne](https://developer.fyne.io/started/).

## Downloading the source

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ If this does not work, the `amd64` binaries work fine through Rosetta.
## Requirements

Rymdport compiles into a statically linked binary with no explicit runtime dependencies.
Compiling requires a [Go](https://go.dev) compiler (aversion 1.18 or later is required) and the [prerequisites for Fyne](https://developer.fyne.io/started/).
Compiling requires a [Go](https://go.dev) compiler (aversion 1.19 or later is required) and the [prerequisites for Fyne](https://developer.fyne.io/started/).

## Building

Expand Down
4 changes: 2 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ If a new Go compiler version is released with security fixes, we will issue reco

| Version | Supported |
| ------- | ------------------ |
| 3.5.x | :white_check_mark: |
| < 3.5.0 | :x: |
| 3.6.x | :white_check_mark: |
| < 3.6.0 | :x: |

## Reporting a Vulnerability

Expand Down
18 changes: 9 additions & 9 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
module github.com/Jacalz/rymdport/v3

go 1.18
go 1.19

require (
fyne.io/fyne/v2 v2.4.4
github.com/fynelabs/fyneselfupdate v0.1.1
github.com/fynelabs/selfupdate v0.2.0
github.com/klauspost/compress v1.17.7
github.com/psanford/wormhole-william v1.0.7
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
github.com/stretchr/testify v1.8.4
github.com/klauspost/compress v1.17.4
github.com/rymdport/go-qrcode v1.1.0
github.com/rymdport/wormhole v0.1.0
github.com/stretchr/testify v1.9.0
)

require (
Expand All @@ -32,14 +32,14 @@ require (
github.com/srwiley/rasterx v0.0.0-20220730225603-2ab79fcdd4ef // indirect
github.com/tevino/abool v1.2.0 // indirect
github.com/yuin/goldmark v1.5.5 // indirect
golang.org/x/crypto v0.14.0 // indirect
golang.org/x/crypto v0.18.0 // indirect
golang.org/x/image v0.11.0 // indirect
golang.org/x/mobile v0.0.0-20230531173138-3c911d8e3eda // indirect
golang.org/x/net v0.17.0 // indirect
golang.org/x/sys v0.13.0 // indirect
golang.org/x/text v0.13.0 // indirect
golang.org/x/sys v0.16.0 // indirect
golang.org/x/text v0.14.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
honnef.co/go/js/dom v0.0.0-20210725211120-f030747120f2 // indirect
nhooyr.io/websocket v1.8.7 // indirect
nhooyr.io/websocket v1.8.10 // indirect
salsa.debian.org/vasudev/gospake2 v0.0.0-20210510093858-d91629950ad1 // indirect
)
Loading