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

Add GUI app for decoding input text #225

Closed
atc0005 opened this issue Mar 24, 2024 · 1 comment · Fixed by #309
Closed

Add GUI app for decoding input text #225

atc0005 opened this issue Mar 24, 2024 · 1 comment · Fixed by #309
Assignees
Labels
documentation Improvements or additions to documentation enhancement New feature or request
Milestone

Comments

@atc0005
Copy link
Owner

atc0005 commented Mar 24, 2024

Overview

Create GUI application to accept arbitrary input text and decode any Safe Links URLs found within leaving all other input text intact in the decoded output.

I've been reading up on the Fyne toolkit and plan to use it as the framework for the application.

The goal is to build Windows and Linux binaries for current OSes. Based on prototyping work Windows 10 and Ubuntu 20.04 are both fairly easily supported at this time.

Important

When the upstream Go Docker image swaps out the minimum Debian base image OS (currently Debian 11) this may also mean dropping support for some Linux distros.

References

@atc0005 atc0005 added documentation Improvements or additions to documentation enhancement New feature or request labels Mar 24, 2024
@atc0005 atc0005 added this to the v0.5.0 milestone Mar 24, 2024
@atc0005 atc0005 self-assigned this Mar 24, 2024
atc0005 added a commit that referenced this issue Mar 24, 2024
This is the initial implementation of a GUI application for decoding
input text containing one or more Safe Links URLs (while leaving
surrounding text intact). This new GUI app is currently named `dslg`
based on the existing `dsl` CLI app's functionality and name (with a
"g" suffix for "gui").

This implementation uses the Fyne toolkit which has different build
requirements than the existing CLI `usl` and `dsl` tools (e.g., CGO).
These new build requirements necessitated changing the associated
Makefile to conditionally apply Fyne toolkit settings just to the GUI
application while excluding existing CLI apps.

The end result continues to be portable CLI apps and a GUI application
with the minimal OS dependencies possible. See the updated README file
for more information.

CHANGES

- add initial GUI app (see description above)
- update Makefile to provide conditional build logic
  - Fyne toolkit requires for GUI app
  - general build requirements for CLI apps
- update README to provide coverage for new GUI app
  - including updated build and runtime requirements
- update .dockerignore file
- swap out single build image for x86 and x64 build images with
  support for compiling Fyne toolkit applications
- update RPM and DEB package configs to bundle new GUI app
- update internal URL matching logic to use prefix based matching
  instead of regex matching
  - the regex matching support does not currently require a space
    delimiting input URLs whereas the prefix matching ignores URL
    patterns not surrounded by whitespace
  - this may be reverted in the future if it proves too limiting

refs GH-225
atc0005 added a commit that referenced this issue Mar 24, 2024
This is the initial implementation of a GUI application for decoding
input text containing one or more Safe Links URLs (while leaving
surrounding text intact). This new GUI app is currently named `dslg`
based on the existing `dsl` CLI app's functionality and name (with a
"g" suffix for "gui").

This implementation uses the Fyne toolkit which has different build
requirements than the existing CLI `usl` and `dsl` tools (e.g., CGO).
These new build requirements necessitated changing the associated
Makefile to conditionally apply Fyne toolkit settings just to the GUI
application while excluding existing CLI apps.

The end result continues to be portable CLI apps and a GUI application
with the minimal OS dependencies possible. See the updated README file
for more information.

CHANGES

- add initial GUI app (see description above)
- update Makefile to provide conditional build logic
  - Fyne toolkit requires for GUI app
  - general build requirements for CLI apps
- update README to provide coverage for new GUI app
  - including updated build and runtime requirements
- update .dockerignore file
- swap out single build image for x86 and x64 build images with
  support for compiling Fyne toolkit applications
- update RPM and DEB package configs to bundle new GUI app
- update internal URL matching logic to use prefix based matching
  instead of regex matching
  - the regex matching support does not currently require a space
    delimiting input URLs whereas the prefix matching ignores URL
    patterns not surrounded by whitespace
  - this may be reverted in the future if it proves too limiting

refs GH-225
atc0005 added a commit that referenced this issue Mar 24, 2024
This is the initial implementation of a GUI application for decoding
input text containing one or more Safe Links URLs (while leaving
surrounding text intact). This new GUI app is currently named `dslg`
based on the existing `dsl` CLI app's functionality and name (with a
"g" suffix for "gui").

This implementation uses the Fyne toolkit which has different build
requirements than the existing CLI `usl` and `dsl` tools (e.g., CGO).
These new build requirements necessitated changing the associated
Makefile to conditionally apply Fyne toolkit settings just to the GUI
application while excluding existing CLI apps.

The end result continues to be portable CLI apps and a GUI application
with the minimal OS dependencies possible. See the updated README file
for more information.

CHANGES

- add initial GUI app (see description above)
- update Makefile to provide conditional build logic
  - Fyne toolkit requires for GUI app
  - general build requirements for CLI apps
- update README to provide coverage for new GUI app
  - including updated build and runtime requirements
- update .dockerignore file
- swap out single build image for x86 and x64 build images with
  support for compiling Fyne toolkit applications
- update RPM and DEB package configs to bundle new GUI app
- update internal URL matching logic to use prefix based matching
  instead of regex matching
  - the regex matching support does not currently require a space
    delimiting input URLs whereas the prefix matching ignores URL
    patterns not surrounded by whitespace
  - this may be reverted in the future if it proves too limiting
- update GitHub Actions workflows to pass Fyne toolkit OS
  dependency requirements to called workflows

refs GH-225
atc0005 added a commit that referenced this issue Mar 24, 2024
This is the initial implementation of a GUI application for decoding
input text containing one or more Safe Links URLs (while leaving
surrounding text intact). This new GUI app is currently named `dslg`
based on the existing `dsl` CLI app's functionality and name (with a
"g" suffix for "gui").

This implementation uses the Fyne toolkit which has different build
requirements than the existing CLI `usl` and `dsl` tools (e.g., CGO).
These new build requirements necessitated changing the associated
Makefile to conditionally apply Fyne toolkit settings just to the GUI
application while excluding existing CLI apps.

The end result continues to be portable CLI apps and a GUI application
with the minimal OS dependencies possible. See the updated README file
for more information.

CHANGES

- add initial GUI app (see description above)
- update Makefile to provide conditional build logic
  - Fyne toolkit requires for GUI app
  - general build requirements for CLI apps
- update README to provide coverage for new GUI app
  - including updated build and runtime requirements
- update .dockerignore file
- swap out single build image for x86 and x64 build images with
  support for compiling Fyne toolkit applications
- update RPM and DEB package configs to bundle new GUI app
- update internal URL matching logic to use prefix based matching
  instead of regex matching
  - the regex matching support does not currently require a space
    delimiting input URLs whereas the prefix matching ignores URL
    patterns not surrounded by whitespace
  - this may be reverted in the future if it proves too limiting
- update GitHub Actions workflows to pass Fyne toolkit OS
  dependency requirements to called workflows

refs GH-225
atc0005 added a commit that referenced this issue Mar 24, 2024
This is the initial implementation of a GUI application for decoding
input text containing one or more Safe Links URLs (while leaving
surrounding text intact). This new GUI app is currently named `dslg`
based on the existing `dsl` CLI app's functionality and name (with a
"g" suffix for "gui").

This implementation uses the Fyne toolkit which has different build
requirements than the existing CLI `usl` and `dsl` tools (e.g., CGO).
These new build requirements necessitated changing the associated
Makefile to conditionally apply Fyne toolkit settings just to the GUI
application while excluding existing CLI apps.

The end result continues to be portable CLI apps and a GUI application
with the minimal OS dependencies possible. See the updated README file
for more information.

CHANGES

- add initial GUI app (see description above)
- update Makefile to provide conditional build logic
  - Fyne toolkit requires for GUI app
  - general build requirements for CLI apps
- update README to provide coverage for new GUI app
  - including updated build and runtime requirements
- update .dockerignore file
- swap out single build image for x86 and x64 build images with
  support for compiling Fyne toolkit applications
- update RPM and DEB package configs to bundle new GUI app
- update internal URL matching logic to use prefix based matching
  instead of regex matching
  - the regex matching support does not currently require a space
    delimiting input URLs whereas the prefix matching ignores URL
    patterns not surrounded by whitespace
  - this may be reverted in the future if it proves too limiting
- update GitHub Actions workflows to pass Fyne toolkit OS
  dependency requirements to called workflows

refs GH-225
atc0005 added a commit that referenced this issue Mar 24, 2024
This is the initial implementation of a GUI application for decoding
input text containing one or more Safe Links URLs (while leaving
surrounding text intact). This new GUI app is currently named `dslg`
based on the existing `dsl` CLI app's functionality and name (with a
"g" suffix for "gui").

This implementation uses the Fyne toolkit which has different build
requirements than the existing CLI `usl` and `dsl` tools (e.g., CGO).
These new build requirements necessitated changing the associated
Makefile to conditionally apply Fyne toolkit settings just to the GUI
application while excluding existing CLI apps.

The end result continues to be portable CLI apps and a GUI application
with the minimal OS dependencies possible. See the updated README file
for more information.

CHANGES

- add initial GUI app (see description above)
- update Makefile to provide conditional build logic
  - Fyne toolkit requires for GUI app
  - general build requirements for CLI apps
- update README to provide coverage for new GUI app
  - including updated build and runtime requirements
- update .dockerignore file
- swap out single build image for x86 and x64 build images with
  support for compiling Fyne toolkit applications
- update RPM and DEB package configs to bundle new GUI app
- update internal URL matching logic to use prefix based matching
  instead of regex matching
  - the regex matching support does not currently require a space
    delimiting input URLs whereas the prefix matching ignores URL
    patterns not surrounded by whitespace
  - this may be reverted in the future if it proves too limiting
- update GitHub Actions workflows to pass Fyne toolkit OS
  dependency requirements to called workflows

refs GH-225
atc0005 added a commit that referenced this issue Mar 24, 2024
Pass custom OS dependencies to release build workflow.

refs GH-225
atc0005 added a commit that referenced this issue Mar 24, 2024
The called lint-project-files.yml file does not accept (nor need)
the os-dependencies list.

refs GH-225
atc0005 added a commit that referenced this issue Mar 24, 2024
Having it in the errors listing has unwelcome side effect
when attempting to decode empty input text.

refs GH-225
atc0005 added a commit that referenced this issue Mar 24, 2024
Once the upstream base image changes support will be dropped
for older Linux distros.

refs GH-225
@atc0005
Copy link
Owner Author

atc0005 commented Mar 24, 2024

Current pre-release version:

At this point all of the obvious issues I am aware of have been resolved.

Will use for a bit and gather feedback before merging a cleaned up version to the primary branch.

atc0005 added a commit that referenced this issue Mar 25, 2024
Add new recipes:

- podman-quick-build-linux
- podman-quick-build-windows
- podman-quick-build

These are intended for (fairly) quick one-off builds of either
both, just Linux x64 or just Windows x64 assets for testing.

refs GH-225
atc0005 added a commit that referenced this issue Mar 25, 2024
Add new recipes:

- podman-quick-build-linux
- podman-quick-build-windows
- podman-quick-build

These are intended for (fairly) quick one-off builds of either
both, just Linux x64 or just Windows x64 assets for testing.

refs GH-225
atc0005 added a commit that referenced this issue Mar 31, 2024
The `development` branch has already been reworked to support
separate build images for x86 and x64 architectures but the
Dependabot monitoring for those paths were not updated when
those path changes were merged to the primary branch.

This commit updates Dependabot monitoring to correctly cover
both build Dockerfile paths.

refs GH-225
atc0005 added a commit that referenced this issue Apr 9, 2024
We require additional OS dependencies in order to build, test
and lint GUI apps which use the Fyne toolkit.

refs GH-225
atc0005 added a commit that referenced this issue Apr 10, 2024
Add new `dslg` GUI application for decoding input text containing one
or more Safe Links URLs (while leaving surrounding text intact). This
new GUI app is currently named `dslg` based on the existing `dsl` CLI
app's functionality and name (with a "g" suffix for "gui").

Add new `eslg` GUI application for generating faux Safe Links URLs and
"scrambled" query parameter encoded URLs for testing purposes. This
app is named `eslg` for "encode Safe Links" and a "g" suffix for "gui".

These new GUI tools use the Fyne toolkit.

This toolkit has different build requirements than the existing CLI
`usl` and `dsl` tools (e.g., CGO) which necessitated changing the
associated Makefile and build container(s) to conditionally apply Fyne
toolkit settings just to the GUI application while excluding existing
CLI apps.

The end result continues to be portable CLI apps and GUI apps with the
minimum OS dependencies possible. See the updated README file for more
information.

Refactoring changes have also been applied in an effort to unify
functionality between the tools provided by this project. Further
refactoring opportunities are available.

CHANGES

- add initial GUI apps (see description above)
- update `Makefile` to provide conditional build logic
  - Fyne toolkit requires for GUI app
  - general build requirements for CLI apps
  - add `podman-quick-build*` Makefile recipes
    - `podman-quick-build-linux`
    - `podman-quick-build-windows`
    - `podman-quick-build`
  - these are intended for (fairly) quick one-off builds of both, just
    Linux x64 or just Windows x64 assets for testing purposes
- update `README` to provide coverage for new GUI apps
  - including updated build and runtime requirements
- update `.github/dependabot.yml` file to cover build Dockerfiles
- update `.dockerignore` file
  - add missing entry for `/dsl`
  - add entries for new GUI apps
- update `.gitattributes` file
- swap out single build image for x86 and x64 build images with
  support for compiling Fyne toolkit applications
- update RPM and DEB package configs to bundle new GUI apps
- vendor dependencies
- extend validation of URLs (general & Safe Links)

refs GH-225
atc0005 added a commit that referenced this issue Apr 10, 2024
Add new `dslg` GUI application for decoding input text containing one
or more Safe Links URLs (while leaving surrounding text intact). This
new GUI app is currently named `dslg` based on the existing `dsl` CLI
app's functionality and name (with a "g" suffix for "gui").

Add new `eslg` GUI application for generating faux Safe Links URLs and
"scrambled" query parameter encoded URLs for testing purposes. This
app is named `eslg` for "encode Safe Links" and a "g" suffix for "gui".

These new GUI tools use the Fyne toolkit.

This toolkit has different build requirements than the existing CLI
`usl` and `dsl` tools (e.g., CGO) which necessitated changing the
associated Makefile and build container(s) to conditionally apply Fyne
toolkit settings just to the GUI application while excluding existing
CLI apps.

The end result continues to be portable CLI apps and GUI apps with the
minimum OS dependencies possible. See the updated README file for more
information.

Refactoring changes have also been applied in an effort to unify
functionality between the tools provided by this project. Further
refactoring opportunities are available.

CHANGES

- add initial GUI apps (see description above)
- update `Makefile` to provide conditional build logic
  - Fyne toolkit requires for GUI app
  - general build requirements for CLI apps
  - add `podman-quick-build*` Makefile recipes
    - `podman-quick-build-linux`
    - `podman-quick-build-windows`
    - `podman-quick-build`
  - these are intended for (fairly) quick one-off builds of both, just
    Linux x64 or just Windows x64 assets for testing purposes
- update `README` to provide coverage for new GUI apps
  - including updated build and runtime requirements
- update `.github/dependabot.yml` file to cover build Dockerfiles
- update `.dockerignore` file
  - add missing entry for `/dsl`
  - add entries for new GUI apps
- update `.gitattributes` file
- swap out single build image for x86 and x64 build images with
  support for compiling Fyne toolkit applications
- update RPM and DEB package configs to bundle new GUI apps
- vendor dependencies
- extend validation of URLs (general & Safe Links)

refs GH-225
atc0005 added a commit that referenced this issue Apr 10, 2024
While porting changes for GH-225 I incorrectly placed the
Dockerfiles within the wrong subdirectory path. This commit
restores the intended path.

refs GH-225
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant