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

CCSMB-11: Desktop Application Discovery #27

Open
wants to merge 22 commits into
base: master
Choose a base branch
from

Conversation

tomodachi94
Copy link
Member

This is a proposal for uniform discovery and installation of graphical applications.

Rationale

Currently, most ComputerCraft graphical operating systems, windowing and desktop management systems, and application launchers (collectively "target software") define their own method of discovering and launching applications. The behavior and expectations for each piece of target software vary wildly; for example, some target software expects programs to manage their own windowing through system-specific APIs, while other target software manages it entirely for all programs. Additionally, installation scripts and package managers ("software management tooling") contains wildly inconsistent behavior, varying from not defining any sort of application discovery, containing support for one or two specific target softwares, or attempting to maintain support for all target software.

The purpose of this specification is to standardize behavior for installing, discovering, and launching graphical applications, enabling greater interoperability in all target software and software management tooling.

@tomodachi94 tomodachi94 added the classification: proposal Introduction of a new proposal. label Mar 23, 2024
@tomodachi94

This comment was marked as outdated.

@tomodachi94 tomodachi94 self-assigned this Mar 24, 2024
@tomodachi94 tomodachi94 marked this pull request as ready for review March 24, 2024 01:04
@tomodachi94
Copy link
Member Author

Ready for general review.

@tomodachi94 tomodachi94 added the status: reviews needed A proposal needs reviews. label Mar 24, 2024
@tomodachi94

This comment was marked as resolved.

@MCJack123
Copy link
Contributor

MCJack123 commented Mar 24, 2024

Personally, I think this is a bit too premature, as there's only one actually fully functional graphical shell available, which is likely not going to use this standard. I'm also planning on using a different approach in Phoenix that's within the application file itself.

@tomodachi94
Copy link
Member Author

there's only one actually fully functional graphical shell available

Could you name it? Off the top of my head, there's LevelOS, Opus, and (discontinued) Dragonstone, along with the countless ones available in the forums. Additionally, there are far too many CC package managers to name fully (I tried making a very incomplete list).

I'm also planning on using a different approach in Phoenix that's within the application file itself.

Would permitting specs to be embedded in files (provided they have a file in /etc/ccsmb/applications that simply requires the program and returns the table from it) make this more attractive?

@Rainb0wSkeppy

This comment was marked as resolved.

@tomodachi94

This comment was marked as resolved.

@MCJack123
Copy link
Contributor

there's only one actually fully functional graphical shell available

Could you name it? Off the top of my head, there's LevelOS, Opus, and (discontinued) Dragonstone, along with the countless ones available in the forums.

I said functional (lol). LevelOS is that one, and Opus is kind of a special case I guess - it has a "UI", though it isn't really used much anymore. Anything on the forums is irrelevant, since they're all old and/or non-functional for actual useful purposes.

I'm also planning on using a different approach in Phoenix that's within the application file itself.

Would permitting specs to be embedded in files (provided they have a file in /etc/ccsmb/applications that simply requires the program and returns the table from it) make this more attractive?

I'll at the very least be using header comments of some sort, and probably macOS-like package folder structures, and maybe even custom packed executables. It'll probably be TOML-based since it's simpler to write, and I already have a parser for it. I'm not against allowing explicit descriptions separately - I just think it's a little bit dirty, and a hack that Linux people needed to throw together because they couldn't agree on a proper rich executable format.

Rainb0wSkeppy

This comment was marked as resolved.

@tomodachi94

This comment was marked as resolved.

@tomodachi94
Copy link
Member Author

Apologies, I now understand what you mean by text images 🤦

I have removed the Type field in favor of just the Format field. The Format field is also now a MIME type instead of a file extension.


### `ccsmb.desktop.install_target`

This setting MUST be a string containing a path to a directory. The directory MUST be created. Compliant software management tooling MUST install applications in this directory.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe you should mention that the path must start with a / and must not end with a /, the same way as in ccsmb-10

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
classification: proposal Introduction of a new proposal. status: reviews needed A proposal needs reviews.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants