-
Notifications
You must be signed in to change notification settings - Fork 48
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
Deprecate vscode-ansible in favor of yaml extension #272
Comments
@bristea redhat.vscode-yaml doesn't say anything about the support for ansible. Are you sure that everything included here for ansible is also included there? If yes it really would be good to mention this at least in its README and keyword list. |
There seem to be some issues regarding Ansible there, but I am not seeing any code mentions of Ansible 🤷🏼♂️ https://github.com/redhat-developer/vscode-yaml/search?q=ansible&type=issues |
Hi! I'm one of the maintainers for VSCode-YAML. We don't have any Ansible specific code, we rely on having the user set a JSON schema and associate it to their YAML files. This will grant you the ability to have hover, completion, validation, etc. The way you can do this is by associating a schema to a glob pattern in VSCode-YAML: https://github.com/redhat-developer/vscode-yaml#associating-a-schema-to-a-glob-pattern-via-yamlschemas. You can use one of the Ansible schemas that's available on the JSON Schema Store: |
I am really curious how vscode-ansible determines what is an ansible file or yet another YAML files unrelated to ansible. Maybe they already addressed that conundrum. The "we rely on having the user set..." approach is sadly guaranteeing a poor default user experience, mainly the awesome vscode-yaml extension is unable to help any Ansible users with its default setup (same applies for a wide range of other YAML config files). I think that what we should all aim to achieve here is a behavior where freshly installed extensions do not need tuning in order to cover for most common use case. That is not an easy issue to address because YAML spec still lacks an official schema marker. Luckily, if you read the ticket you will find an workaround specific to vscode. While this workaround may prove practical to use for random tool config files, it is practically close-to-impossible to apply to repositories containing more than a couple of Ansible files, as it would require user to add a comment line to each ansible file. It is quite common to have hundreds of such files in a single repository and you would have to add different header for each file-type supported by ansible (6 or more already). The worst part being that it would be a vscode specific file, and not every developer is using vscode, and I am sure that even if someone proposed adding these headers on open source projects, there will a big clash from other core reviewers arguing against it as being "developer specific config". For example OpenStack has a policy for not allowing developer editor specific excludes in @JPinkney I wonder if it would be possible for vscode-ansible to rely on vscode-yaml and help it recognize ansible files easily, without manual configuration. Is such hook possible to implement? Maybe we should also investigate the possibility to transfer the maintenance of this extension to https://github.com/ansible-community where I suspect there are many people with a strong interest in making this extension awesome too. My impression is that could be a chance to revive this effectively dead extension. |
@ssbarnea
As far as package.json looks - it doesn't. It defines a new language identifier "ansible" which extends "yml". If you want travis.yml/appveyor.yml not be "recognized" as ansible then you have to switch its language identifier (either one-time or via vscode setting). |
The extension point for this has existed for around ~3 years at this point, VSCode-Ansible just doesn't use it. vscode-kubernetes, vscode-tekton, vscode-knative and a few more are all using it though. Essentially what happens is every time you make a completion/hover/validation request VSCode-YAML will ask other VSCode extensions if it recognizes the content. If they do then they send back a schema to use with the request. That way users don't have to set the schema themselves. VSCode extensions using the API are then responsible for determining if the content in the file is relevant to their application and sending back the correct schema |
That sounds very useful. This extension (or a fork of it) may drop its own yaml file handling, use the extension point (adding a dependency on the vscode-yaml and a "logic" does this look like ansible) and keep all its action handling. To "answer" the original question/request of deprecating this extension in favor of vscode-yaml: that's not useful as this extension has al the ansible specific actions like (run in ...) which are not relevant for the general purpose vscode-yaml extension. As @bristea called for the deprecation: do you think you could get the fork running if @yungezz, which is still active at GitHub, don't plan to update this repo? (Is that the case btw?) |
@GitMensch @yungezz I observed that few months back a "RETIRED" was squeezed inside the extension description but I still see it listed in the marketplace and not only that but is still listed as first result on any search for "ansible". That was indeed a good move. What I do not understand is why that extension was not just unpublished from the marketplace. Its current state does not really motivates still keeping it listed, especially as it manages to endup being "no1" search result, even if is not of any practical use. The newer https://marketplace.visualstudio.com/items?itemName=zbr.vscode-ansible keeps adding new features and welcomes others to join. First version was published in January and was listing as no14, now is listed at no3. |
Summary
vscode-ansible was a good addition when it was created 3 years ago but it become unmaintained and cluttered with bugs that make it usability negative.
Please officially acknowledge that this extension is deprecated and can easily be replaced by a more feature reach alternative which is https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml
Expected Results
Deprecation of vscode-ansible
Details
The contributions graph is a proof of lack of maintenance.
If a bug like #261 that indicates that the extension is not able to load even the most basic ansible command "set_fact", has ~60 confirmations but is not addressed is another way to express the reality.
Instead of confusing vscode users looking for Ansible related extensions in Marketplace with an unmaintained extension, the team should update the Marketplace listing to change status to deprecated.
The text was updated successfully, but these errors were encountered: