Comments (12)
Sounds like, based on the above:
- TeX Live: 👎🏻
- JetBrains: 👎🏻
- Firefox: likely 👎🏻
- Google Chrome: 👎🏻
- VSCodium: should be fixed so current VSCode integration works as-is with insiders/VSCodium, don't see need for a new DSL here
- Docker: 👎🏻
- GitHub CLI: potentially 👍🏻
Closing but happy to keep discussing here.
from homebrew-bundle.
VSCodium: should be fixed so current VSCode integration works as-is with insiders/VSCodium, don't see need for a new DSL here
Could you give a syntax example for the Brewfile explaining how you would envision this? I am likely misunderstanding this at the moment.
from homebrew-bundle.
Could you give a syntax example for the Brewfile explaining how you would envision this? I am likely misunderstanding this at the moment.
I'm not sure yet. Are there extensions that only work on VSCode? VSCodium? VSCode Insiders? How can you find out?
from homebrew-bundle.
I am not sure about that but I am wondering whether that is actually … relevant? I would have thought it is the users' responsibility to put in valid data and the underlying application, e.g. vscodium, would validate this. Homebrew bundle only automates the invocation after all?
from homebrew-bundle.
@Okeanos I guess what I'm trying to understand is: what does supporting VSCodium/VSCode Insiders even look like? What breaks when using them today?
from homebrew-bundle.
Ah, I see. For VSCodium I just had a quick look at the docs:
- The way VSCodium sources extensions is different and people may wish to configure that (inside the Brewfile) by providing the extension gallery URLs and brew bundle could then prepend them as local env variables for the specific vscodium invocation … just a thought but probably over-engineered.
- VSCodium uses
codium
as CLI binary instead ofcode
that VSCode uses
For insiders / beta releases:
- VSCodium uses
codium-insiders
- VSCode uses
code
apparently, the app bundle doesn't contain a suffixed CLI binary the way VSCodium does
from homebrew-bundle.
Falling back to codium
or codium-insiders
seems appropriate if code
doesn't exist (and --install-extension
etc. all work the same)
from homebrew-bundle.
Having thought about that a little:
- I am wondering how common it is to have both, i.e. stable & insiders installed (disregarding the
code
-suffix problem for a second)? In such a situation I would like to be able to specify for all or any of them which extensions they get. - Having
codium
as a fallback tocode
feels a little unintuitive, i.e. like unexpected/unexplainable behavior when looking at it from a consumer runningbrew bundle install
: Migrating between them wouldn't work as expected because extensions cannot be properly specified per IDE and the order in which things work cannot be changed either. Additionally, extensions may be installed to an IDE that is not directly apparent from the instructions in the Brewfile.
To keep things simple I would have proposed to go through all known CLI names and attempt to install the extensions for all that were found (with proper log statements). However, for codium
this could pose a problem:
Since that is a rather new project, you will likely miss some extensions you know from the VS Code Marketplace.
Manual intervention at some level is required for that case. As a result I would propose to make codium
an explicit setting that consumers/users can toggle themselves.
Beyond that I would, as a first step ignore the insiders version for now instead ensuring that stable works (at all).
from homebrew-bundle.
- In such a situation I would like to be able to specify for all or any of them which extensions they get.
This introduces too much complexity.
- extensions cannot be properly specified per IDE
Why is this needed?
Manual intervention at some level is required for that case.
If manual intervention is required: it's not a good fit for homebrew-bundle.
As a result I would propose to make
codium
an explicit setting that consumers/users can toggle themselves.
This doesn't make sense to me. Settings like this are unintuitive and undiscoverable.
from homebrew-bundle.
Let me rephrase:
Manual intervention at some level is required for that case.
Codium makes no promises that all VSCode extensions are available to its users (for various reasons they outline in their docs). Obviously, brew wouldn't care and simply attempt to process user input and tell the user about the problem it (codium) encountered – same with any other option/parameter that an application implemented in brew-bundle cannot process. I would expect this to be a seldomly encountered error case (but have no hands on experience).
I would specifically like to make it clear to the homebrew-bundle users what is happing for a number of reasons:
- by making codium explicitly distinct from vscode a number of interaction/discoverability/user experience problems are prevented (which would result in more support overhead here I suppose): I specified vscode, why is codium targeted? (and the reverse); I have vscode and codium installed but only want to manage extensions for vscode, how do I do that?
- failure states are more easily explained to the user when explicit inputs were chosen, giving the user a better way to correct this problem (in the brewfilew, in vscode/codium, …)
- as explained, codium is subtly different from vscode (by way of which extensions it provides, not in the CLI syntax) and if I as a user have no way of influencing what brew does … this is undefined behavior for me and I am less likely to use it
- there is a clear migration path for users who wish to switch between vscode and codium improving user experience
A "setting" (as in args
or similar) is likely the wrong choice here and I agree that is less intuitive/discoverable. Having looked at the vscode-implementation I would think reusing it but making codium 'some.extension'
an additional entry-point could be a feasible compromise? The overall installation invocation syntax and code flow are after all the same and it would empower users to make deliberate choices while introducing minimal code overhead.
from homebrew-bundle.
I would expect this to be a seldomly encountered error case (but have no hands on experience).
If this isn't something you use/need: I don't think you are the best person to design or implement this, sorry.
from homebrew-bundle.
That's fair.
I wanted to give my input as an interested third party, however, to understand what could happen (in brew bundle, as a user), explore options for things I may be needing and want to contribute, and ultimately understand what you as maintainer think is feasible/sensible. Thanks a lot for your feedback and willingness to engage with me on this level ❤️ .
from homebrew-bundle.
Related Issues (20)
- Support exact versions for `vscode` plugins HOT 2
- Homebrew Bundle always starts services HOT 4
- With HOMEBREW_CASK_OPTS="--require-sha", brew bundle exits 0 even if installation is not successful HOT 6
- Feature Requests: Automatically Run `brew bundle dump` After `brew install` HOT 2
- Add SetApp support HOT 2
- VSCode extensions that have capital letters seem to not be registered, and get uninstalled HOT 2
- Feature request: Auto-start a cask after installation HOT 11
- Filtering installed software by a set of groups HOT 2
- Specify Package Installed from Source HOT 2
- Maintaining Ruby 2.6 compatibility HOT 4
- Qs on merging Brewfiles. HOT 2
- [Feature] Support groups HOT 1
- Error: cannot load such file -- abstract_command HOT 2
- npm & pip installers HOT 16
- Vscode : Case sensitive issue is back HOT 6
- [Question] Can formula and cask have the same name? HOT 4
- brew bundle dump spawns many ruby processes HOT 12
- Unattended install of a bundle HOT 4
- how to install only on specified macOS version or arch of OS HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from homebrew-bundle.