microsoft / vscode-vsce Goto Github PK
View Code? Open in Web Editor NEWVS Code Extension Manager
Home Page: https://code.visualstudio.com/
License: Other
VS Code Extension Manager
Home Page: https://code.visualstudio.com/
License: Other
Categories are not passing through - see JSON to VSIX spec
From @lukehoban
The vsce documentation mentions:
Note: development dependencies listed in devDependencies will be automatically ignored, you don't need to add them to the .vscodeignore file.
However, I'm not seeing this happen for my own extensions. I'm seeing whatever happens to be in my node_modules folder get pulled into the package. In my development environment where I am using npm install
locally to pull in devDependencies, this includes those files.
I can go ahead and selectively ignore these, but not sure what that text above is intended to convey.
Vsce should pick up a displayName
field and use it as the Display Name
of the extension in the gallery.
From @seanmcbreen:
I added a keywords section to my package.json
"keywords": [ "Markdown", "Linter", "Spell", "Grammar" ],
This prevented us finding it – perhaps I needed another keyword you depend upon.
It appears that a newer version of vso-node-api
returns proper errors. Let's update to that and get them displayed to the user, if they occur.
I'd like to be able to separate out the package step and the publishing step. At the moment I can create a package without uploading it, but I can't upload a package without first building the package. I'd love to have a variation of the package command that is something like this:
vsce publish --vsix [path to vsix] --publisher [publisher name] --name [extension name]
Are not passing through see VSIX to JSON spec
'vsce help' tells me:
list [publisher] Lists all extensions published by the given publisher
'vsce list' tells me
C:\Users\egamma\Projects\go-code>vsce list
Error: Missing publisher name
OR I just misunderstood the notation OR the help message should be
vsce list <publisher>
see the npm help for an example:
owner npm owner add
vsce list publisherName lists all extensions and not only the extensions of the given publisher.
C:\Users\egamma\Projects\go-code>vsce list eg2
uuid-improved @ 3.0.2
movelines @ 0.0.1
go-code @ 1.0.1
uuid @ 3.1.2
theme-green @ 0.1.0
ben-best @ 0.0.2
benbest @ 0.0.2
C:\Users\egamma\Projects\go-code>vsce list
Error: Missing publisher name
C:\Users\egamma\Projects\go-code>vsce list eg
uuid-improved @ 3.0.2
movelines @ 0.0.1
go-code @ 1.0.1
uuid @ 3.1.2
theme-green @ 0.1.0
ben-best @ 0.0.2
benbest @ 0.0.2
We are currently using the homepage
link for that. We need to use the repository
link for that.
I'm trying to create a publisher with a Personal Access Token
but it fails to create it.
Error: Failed Request: Unauthorized(401) - https://app.market.visualstudio.com/_apis/gallery
Similar to apm
's install
and uninstall
commands, it would be great to have an official way of installing and uninstalling extensions via the command line in a platform independent way.
This would enable a nicer way of maintaining a consistent development environment across multiple PCs/platforms without resorting to symlinking the extensions to cloud storage (see microsoft/vscode#679).
Extension names may only contain
A
throughZ
,a
throughz
,0
through9
and-
. The extension name must start with an alphabetic or numeric character.
Publisher names have the same validation rules.
API should be exposed so vsce commands can easily be automated using a gulp task.
It might be that if the icon is in a folder, then it's never picked up. Investigate. Also check backslash paths.
From @lukehoban:
One small but nice thing that Atom’s publishing does is to auto-increment version number based on a version increment flag and commit/tag/push that in the repo before packaging.
This is definitely more opinionated – but makes it really convenient to re-publish frequently, and avoids accidentally re-publishing without incrementing version number.
Here's a snippet from the APM docs that talks about the behaviour.
Usage: apm publish [<newversion> | major | minor | patch | build]
apm publish --tag <tagname>
apm publish --rename <new-name>
Publish a new version of the package in the current working directory.
If a new version or version increment is specified, then a new Git tag is
created and the package.json file is updated with that new version before
it is published to the apm registry. The HEAD branch and the new tag are
pushed up to the remote repository automatically using this option.
...
Would it makes sense to add something similar for to vsce
's publish command?
See error below
/usr/local/lib/node_modules/vsce/node_modules/denodeify/index.js:40
return new Promise(promiseHandler);
^
ReferenceError: Promise is not defined
at /usr/local/lib/node_modules/vsce/node_modules/denodeify/index.js:40:15
at Object.read (/usr/local/lib/node_modules/vsce/out/util.js:30:12)
at Object.createPublisher (/usr/local/lib/node_modules/vsce/out/store.js:90:19)
at Command. (/usr/local/lib/node_modules/vsce/out/main.js:51:73)
at Command.listener (/usr/local/lib/node_modules/vsce/node_modules/commander/index.js:301:8)
at Command.EventEmitter.emit (events.js:98:17)
at Command.parseArgs (/usr/local/lib/node_modules/vsce/node_modules/commander/index.js:615:12)
at Command.parse (/usr/local/lib/node_modules/vsce/node_modules/commander/index.js:458:21)
at module.exports (/usr/local/lib/node_modules/vsce/out/main.js:67:13)
at Object. (/usr/local/lib/node_modules/vsce/out/vsce:2:18)
Are dependencies of devDependencies ignored?
When I use npm install
and then vsce ls
a lot of node_modules are still listed. the devDependencies are ignored but their dependencies are not.
Wouldn't it be better to include all production dependencies and their production dependencies and ignore all other modules?
Publisher human-friendly name: (adam.baldwin) Adam Baldwin
Personal Access Token: ****************************************************
Error: Failed Request: Bad Request(400) - The publisher name 'adam.baldwin' is invalid. Publisher names may only contain 'A' through 'Z', 'a' through 'z', '0' through '9', '.' and '-'. The publisher name must start with an alphabetic or numeric character.
however when I tried adambaldwin it worked just great.
From @willsmythe:
You may have already noticed a problem, but if not, you will J … the problem: relative images and links in the readme are not going to resolve when the readme (details content) is rendered on the Marketplace site. This is because an item’s assets are not addressable relative to the “item details” page of the Marketplace (the assets are also served from a different domain).
One quick, but not great option is: allow an extension developer to specify a base absolute URI that all relative URIs in the readme will get transformed as (during packaging). For example:
vsce --baseContentUri=https://raw.githubusercontent.com/MyOrg/MyRepo/master
. You’ll then need to parse the readme, possibly update it with absolute URLs (for any relative URLs), and include this version of the readme as the details content.Longer term, we’ll find a way to make this work. But, at a minimum this means ensuring all files referenced by the readme (and therefore referenced from the Marketplace items details page) are marked as “Addressable” assets in the .vsix.
João:
Great catch!
Actually there is an extension.vsixmanifest file and a extension/.vsixmanifest. That is scary and probably a mistake from the user that created it.
Is that (multiple *.vsixmanifest) the thing that makes it fail, you think? If so, I'll fix it right now in our tool and be sure no other .vsixmanifest ends up in the archive.
Sean Lumley:
I do think that is the cause. I think we process both of them and since one of the properties is in both we are hitting a dup key exception. We need to handle that better, but I think removing one of them will work.
C:\GitDevelopment>vsce delete-publisher foo
Personal Access Token for publisher 'foo': ****************************************************
Authentication successful. Found publisher 'Foo Bar'.
Error: EPERM, open 'C:\Users\name\.vsce'
I am on 0.7.2
Disallow an engine of '*' on packaging
Set a target ID
Will get details on the XML tomorrow
From @Wosi:
This is a small bug. I write it just for documentation purpose.
When I published my plugin I used the publisher "wosi". I was able to login and publish the package. I could see it in the extension gallery but I when I tried to install it I received a publisher mismatch error.
After updating the package.json to use the publisher "Wosi" I could install it. Obviously VSCE ignores the case while VSCode does not.
When packaging the extension every .git/**
is added to the package. They should all be ignored.
Categories did not end up in my VSIX for spell-check.
When an extension does not have any categories defined in project.json
add the other
category in for them so they land there.
When trying to install the extension 'solidity 0.0.1' still this error (now with the url starting with matkerplace, not app.marketplace).
if I understand correctly, .vscodeignore
is meant for files that should be ignored when the extension is installed.
In npm
, this is already done by the files
property in package.json
. More information can be found under the files
section https://docs.npmjs.com/files/package.json#files.
Where .vscodeignore
is a blacklist of files that should not be installed, the files
property is a whitelist of files that should be installed.
In my opinion, it would be way better to use the files
property. Node package developers (should) already know about this setting and no extra file is used.
Originally posted at https://github.com/Microsoft/vscode-extensionbuilders/issues/35#event-438763500
Hi There,
I have published my snippet extension over marketplace. I have put all details in package.json.
But in extension home page, it doesn't show any description about tool.
https://marketplace.visualstudio.com/items/UVBrain.Angular2
If you go to my extension above, it mention as
"No overview has been entered by publisher"I do have readme.md file in my github
https://github.com/ultrasonicsoft/vscode-ng2-typescript-snippets
Could you please let me know how can I provide description in overview section?
Thanks!
I understand vsce automatically ignores devDependencies so we don't have to include them in .vscodeignore, but they're still listed by vsce ls
.
Are not passing through see VSIX to JSON spec
I'm not sure whether this is a vsce
issue or a gallery issue.
Relative paths from READMEs are being redirected to GitHub, which is nice, but they appear to be redirected to /raw which looks pretty bad – seems they can be directed to the normal GitHub page instead which renders content in the expected way (e.g. As markdown):
Current:
https://github.com/Microsoft/vscode-go/raw/master/src/debugAdapter/Readme.md
Expected:
https://github.com/Microsoft/vscode-go/blob/master/src/debugAdapter/Readme.md
booo not cool
This is not working as expected. The RegExp does not get the correct 2nd match:
Something more like:
github\.com\/([^]+)\/([^]+)\/([\w-_]*|$)
is required
for:
https://github.com/Microsoft/vscode-spell-check.git
From @willsmythe :
Hi Joao,
At a minimum, the developer should provide a 128x128 icon for his/her extension
· Don’t worry about “wide” --- we’re not planning on using itYour packaging tool should include any icons specified by the developer in the generated vsix package
· I wouldn’t inject a default icon at package time if the developer didn’t specify one. The Marketplace should present a default icon if none was specified. This gives the Marketplace more control over how it present extensions without icons. Sandeep - can you make sure this happens/works?Set the `<icon>xxx</icon>` tag in the `<metadata>` section of the .vsixmanifest to the “default” icon (128x128). The value is the path to the icon from the root of the .vsix package.
· For example:Define an asset for the icon in the Assets section of the .vsixmanifest:
<Asset Type="Microsoft.VisualStudio.Services.Icons.Default" d:Source="File" Path="icons/myicon.png" Addressable="true"/>
· Note: the Marketplace should (but currently doesn’t) extract theicon
from the .vsixmanifest and make it theIcons.Default
addressable resource.
https://www.visualstudio.com/en-us/integrate/extensions/get-started/visual-studio
Related to Microsoft/vscode-extensionbuilders#116
URL: https://app.marketplace-int.tfsallin.net/
I'm not sure the '-' is the cause but I set up the ms-vscode publisher. I can happily upload via the web but VSCE fails to store the creds:
The result of my successful uploads can be seen here:
https://marketplace.visualstudio.com/vscode/Themes
I want to use this account for our 'supported' extensions.
I followed the instructions here and when I do vsce publish I get the forbidden error. See full stack below:
peterj at Peter-MacBook-Pro in ~/projects/work/github/vscode-docker on master [!?]
$ vsce create-publisher DockerTools
Publisher human-friendly name: (DockerTools) DockerTools
Personal Access Token: ****************************************************
Successfully created publisher 'DockerTools'.
peterj at Peter-MacBook-Pro in ~/projects/work/github/vscode-docker on master [!?]
$ vsce login DockerTools
Publisher 'DockerTools' is already known
Do you want to overwrite its PAT? [y/N] y
Personal Access Token for publisher 'DockerTools': ****************************************************
Authentication successful. Found publisher 'DockerTools'.
peterj at Peter-MacBook-Pro in ~/projects/work/github/vscode-docker on master [!?]
$ vsce publish
Executing prepublish script 'tsc'...
Publishing [email protected]...
Error: Failed Request: Forbidden(403) - https://app.market.visualstudio.com/_apis/gallery/extensions
We want to automate the release process of the F#, FAKE and Paket plugins. Currently we fail to login since the vsce login is asking for the Personal Access Token. It would be much easier for us if we could give it as optional parameter to vsce login command.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.