API Console feature

Implement API Console functionality.
Each method in ReDoc will have a button: “Try this method” which will open interactive console modal window.
There is the list of key features that should be implemented in the first version:

Ability to send GET, POST, PUT, DELETE, UPDATE requests
Ability to input/use/save authorization credentials
Show UI for easy entering parameters for path, headers, query and body (payload) parameters
UI should show selectbox for enums, checkboxes for boolean, text input for other simple types
Request should be validated before send according to OpenAPI spec
Support different environments (e.g. sandbox, dev, testing, etc) through OpenAPI vendor extension (each env will have unique base url and description) + ability to set default env specially for API-console
For most parts response will be shown “as is”. JSON response will be only prettified (with possibility of collapsing). The other responses will be represented as strings.
Show response headers that are documented in swagger. HTTP response headers that are not documented will be hidden under “Show undocumented response headers” button

A few mockups:

Do you have a timeline for this feature? If you are done with it, SwaggerUI should be replaced by Redoc as the official solution ;)

@SebastianStehle can't promise anything. It is on our list but before we have a few other things to implement. I will update the roadmap shortly.
Hopefully, we will get this ready in 3-4 month

Hey, any update on this?

API Console is one of the priorities now. But so far we haven't started working on that :(
This seems to be the next big task on our roadmap.
I will post here once we start work on this.

It may be good if the console can also send PATCH requests too.

About the support for "different environments" in the description of this issue, I don't think this should be a priority: the host and the basePath are specified in the Swagger spec and allowing to switch environments would imply to override the information from the spec. But there would be a much simpler to way to have this feature: have multiple instances of ReDoc with its own spec with the specialized spec with the specific host/basePath settings. That's how I'm handling multiple environments with swagger-ui right now.

It will be awesome to have API Console. +1

1  for API Console. Do you guys have a timeline for this?

+1 for API Console.

+1 for API Console

+1 for API Console

+1 for API Console

+1 for API Console

Please stop adding "+1" comments. Use instead the reaction feature of GitHub.

Hey @RomanGotsiy Thanks for such an awesome API documentation tool :) Are you currently working on implementing API console ? Do you have any timeline for this feature?

@j26nz no, I'm on 2-week vacation now and don't have any timeline for now.
I have this partially implemented for very simple use-cases but swagger has so many ways to describe the same thing that there's still a lot of work to finish this.
I will try to keep all you guys updated on the progress

@RomanGotsiy - did you all look into the support that Postman has for generating collections from swagger? (you have to scroll down a bit)
I'm not saying that there's no reason for ReDoc to have a console, but if there's another workable option, I wonder if there are other features that would be more valuable. Especially when I think about not only the complexity of supporting the multiple ways of expressing the same thing that OpenAPI supports, but also the tough time properly supporting built-in security features and allowing for user extensions.
I know the community is really looking forward to a built-in console, but having come to ReDoc from the disappointments of SwaggerUI, I'd hate to see this great tool get bogged down in the implementation and support of a "nice to have" feature when there are workable alternatives.
I hope over the next few days to look into Postman's support and will share my experience here too.

Update on trying out Postman-generated collections, first impressions:

imported a couple specs that make use of "advanced" OpenAPI features without issue, including:

use of discriminator (polymorphic types)
use of additionalProperties

interpretation of markdown in descriptions (including tables and fenced code) ...

(this is a little bit handy, but I'd still have the ReDoc rendering for real documentation)

ability to add a pre-request script for calculating any security headers

Generated Postman collections look good for our use cases, at least. We'll proceed beyond the quick POT I've done and see what more we learn.
@RomanGotsiy (and others) I would be really interested in hearing about your exploration of generated Postman collections and understanding what advantages a custom built-in API console has over them.

Thanks for the update @seanpk .

I have this partially implemented for very simple use-cases but swagger has so many ways to describe the same thing that there's still a lot of work to finish this.

@RomanGotsiy you can release a very simple version. After releasing, people interested in more features will create new issues.

hi is there any update on this feature. May be we can have a PR for this??

@indolent-developer @j26nz @raderio sorry for the long delay. The last couple of months were pretty busy for me.
For those who haven't seen it yet, I'm migrating ReDoc to React. Here is the corresponding issue to track: https://github.com/Rebilly/ReDoc/issues/327
Console feature is definitely the next in the queue but there is no point to work on it before I finalize React version.
Thanks for being patient and for pinging me! It really motivates me to work on this!

Thanks @RomanGotsiy. Did you get a chance to update requirement for this feature? Thanks.

A word of caution when implementing this for API console purpose is to handle redirects properly. Browsers follow redirect transparently. There is no way to prevent it in XHR, but the Fetch API allows redirect: manual as an option when creating a request. This will make sure that the browser does not automatically follow if the returned response is 3xx which might be the expected response as per the documentation of a specific API endpoint. If the browser follows redirects then the console will never be able to show what was returned from the server. Imagine documenting a URL shortner service API where a 301 response with an appropriate Location header woyld be more interesting than letting the console dereference and load the eventual URL.

I think redirect can be added later, usually API do not use redirects.

I think redirect can be added later

Any particular technical motivation/reason to push it back?

usually API do not use redirects.

I differ from you on this. While 3xx coder might be less common than 2xx in documented APIs, they are more common than 5xx and perhaps 4xx.

Any particular technical motivation/reason to push it back?
To deliver this feature as soon as possible.

To deliver this feature as soon as possible.

I did not propose anything difficult, I just noted it here not to miss this caveat and mentioned the potential solution too.

@ibnesayeed thanks for the note! 👍
@raderio no need to worry. Adding one field to request option won't take so much time 😄
@j26nz didn't have time to update requirements. But I can share a gif of what I have right now locally:

And here is the request with request body payload:

@RomanGotsiy, thanks for the preview. By looking at these GIFs, I feel like a toggle switch is not a suitable/intuitive UI element to use for this purpose. It is best suited when the state of an object or the value of a field is toggled, for example, enabling/disabling dark mode of a UI or enabling/disabling airplane mode in a device. Try it out is more like an action, hence a button UI will make more sense here.

@ibnesayeed thanks for the note! +1
@raderio no need to worry. Adding one field to request option won't take so much time smile

It is possible that the real documented response of an API endpoint is served after a few redirects (though, cases like that should be documented) while in other case the redirect response itself is a potential valid response. To handle situations like this, there are a few approaches that can be used:

Match the response with documented response signatures (to see if redirect response is expected, if so, then display that otherwise follow the redirect)
Make it part of the API documentation to add an annotation that tells the UI whether following redirects is intended or not (with not following as the default).
Add a toggle switch in the Try it out UI to Follow redirects (disabled by default) and let the users decide what they want
In the response UI, add a Follow next link button to allow the user to step through redirection chain manually, only if the returned response has a 3xx status and contains a Location header

In the response UI, add a Follow next link button to allow the user to step through redirection chain manually, only if the returned response has a 3xx status and contains a Location header

Actually I believe that could also be useful for 201 status codes, that provide a link to the newly created object. Those responses may also provide a Location header.

Actually I believe that could also be useful for 201 status codes, that provide a link to the newly created object. Those responses may also provide a Location header.

It occurs to me that we can also show such a button if the response contains a Content-Location header, irrespective of the response code.

This feature would be useful to release even with a bare minimum of features

Indeed, could be a game changing feature and make us use redoc instead of swagger UI v3 which became awful compared to v2.
Still don't know why they now all of a sudden have to wast half of the space on my screen, make me scroll endlessly and provide no visual clue anymore where a parameter starts or ends...

Absolutely! We will try to "Make Swagger Consoles Great Again" 🇺🇸
I pledge to release it soon after 2.0 release 🎉

Thanks @RomanGotsiy any ETA for this?

@RomanGotsiy Entire world is waiting for this feature.... Please add it soon...

@RomanGotsiy we at Nutanix really like your ReDoc platform. We are looking at replacing it with current swagger ui we use. API Console feature is something we cannot live without. I have forked this repo and would start working on this. I'll follow the ui mocks that we have in this issue and keep everyone in the loop.
If someone has already started working on it please let me know, otherwise I'll keep marching.

Any recommendations for what validator to use for validating request payloads against schema. I have used AJV before and is quite good. Also for building complex request payload I was thinking of using an editor like ace. Schemas get complicated and editor will be handy.

Few other issues I noticed are #461 and slowness for large spec files as everything is rendered right away. Lazy render or rendering only selection endpoint/operation will help.

@harjeethans I cannot speak for the project owner but I think it's safe to say that your work is much appreciated by the community. The lack of response probably isn't due to lack of interest but rather the fact that he had a mad dash getting 2.0 out of the door and needs a little break.
I for one am very excited for this feature.
Personally I would not pull in a heavy depency like ace for the first iteration of the feature, but rather get something out of the door quickly and easily. To me, even a very stripped down version, that doesn't have a lot of features, would be extremely helpful.

@harjeethans - we've used tv4 + some code for handling polymorphism (models that use discriminator) and request parameters.
We run it in node, but can probably get extracted if you like. I think this code would be the place to start looking ...
Also, I mentioned above, on this this issue, how we were going to start using Postman collections generated from our swagger. That has really turned out great for us. Not only are we able to share the docs with our API users, but we're giving them executable samples in the Postman collection that we know work. It has got to the point where non-technical business users are also using those collections to explore behavior and to confirm that business rules are properly implemented.
An even bigger benefit of that investment is that we've hooked Newman into our deployment pipeline to run API tests automatically.
I bring this up again because I'd recommend that approach to anyone who asked (and clearly a bunch of folks who didn't) over counting on a console in the docs. For us, at least, the console is a nice to have, but it is no longer a requirement at all.

You should take a look at https://github.com/hapijs/joi as well, for schema validation, it’s by the guys at hapijs, but works 100% on its own. I’ve used it a couple of times and have been pleased with it.

On Apr 20, 2018, at 8:38 AM, Sean Kennedy<EMAIL_ADDRESS>wrote:
@harjeethans - we've used tv4 + some code for handling polymorphism (models that use discriminator) and request parameters.
We run it in node, but can probably get extracted if you like. I think this code would be the place to start looking ...
Also, I mentioned above, on this this issue, how we were going to start using Postman collections generated from our swagger. That has really turned out great for us. Not only are we able to share the docs with our API users, but we're giving them executable samples in the Postman collection that we know work. It has got to the point where non-technical business users are also using those collections to explore behavior and to confirm that business rules are properly implemented.
An even bigger benefit of that investment is that we've hooked Newman into our deployment pipeline to run API tests automatically.
I bring this up again because I'd recommend that approach to anyone who asked (and clearly a bunch of folks who didn't) over counting on a console in the docs. For us, at least, the console is a nice to have, but it is no longer a requirement at all.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Here is an update, the api invocation works to some extent, for my samples I have used a proxy with basic auth but will have to work on it. Also validation is running into some issues. OpenAPIParser.ts has deref at https://github.com/Rebilly/ReDoc/blob/master/src/services/OpenAPIParser.ts#L148 and it is not dereferencing the schema. Some of the open source validators either run into issues with OpenAPI 3.0 . Will have to research a bit more on that.

Hey @harjeethans!
Sorry for not responding for the last two weeks... I was getting married: https://twitter.com/RomanHotsiy/status/991280469332422656
Thanks for your interest in the feature and your efforts to implement it.
Unfortunately, I don't have much time to help you with this right now 😞.
I need a short break (~1 month) on ReDoc to build an MVP of a new product based on ReDoc we are working on.
Check out an article: https://medium.com/redoc-ly/from-redoc-to-redoc-ly-42319f100ac0
Because of this, I would not be able to review your work for at least next month.
You're free to use anything you find convenient (just one restriction - try to keep bundle size small, i.e. do not use heavy deps).
Also, this feature will definitely not get into 2.0. Most likely it will get into 2.1.
I will get back to this once I'm done with MVP and release ReDoc 2.0.
Thanks again for your hard work!

congratulation @RomanGotsiy my apologies had I known, would have mentioned you. Have fun and enjoy, let me add more to it and will get back.

Hi @harjeethans!
Could I checkout your implementation, for my demo about ReDoc. Thanks.

@longit644 you can checkout https://github.com/nutanix/ReDoc/tree/add-validation that we forked from ReDocs. I uses proxy in dev environment to connect to api server. We have no-cors for our api server and had to do it this way for development environment. If you do not need it you can remove proxy settings from package.json

Hi @harjeethans ,
I just did a demo about ReDoc. I'm trying to move away from swashbuckle and this looks like my best bet. My only worry is the test console. I see it's on the roadmap. I wonder if it is it possible to share the expected timeline for this feature?
Thanks

Congratulations! I will get married, too.

Hi, do you know when approximately this feature will be implemented ?  I think you can commit initial version then gradually add new features to api console.

I'm also waiting for this feature, thanks :)

While waiting on this issue, I hacked up a small demo for the try-out feature using JQuery to provide some basic features, hopefully being a stopgap solution before the real implementation is released.  You can find it at https://github.com/edmunds/redoc-tryout
A demo has been setup at:
http://technology.edmunds.com/redoc-tryout/demo.html

@yuhanz the demo URL is not working. Can you please check

Was busy with some work and just got some time for Console, I have made few minor changes to enable console as part of option that we pass to ReDoc like
const specUrl = '/static/v3/swagger.json';
        const options = {
          theme: {baseFont: 'ProximaNovaSoft'},
          providedByName: 'Intent ApiDocs by Nutanix',
          providedByUri: 'http://www.nutanix.com',
          enableConsole: true
        };
        Redoc.init(specUrl, options, document.getElementById('redoc-container'), (args) => console.log('Done bootstrappoing docs!'));

Will enable/disable console. Few other options like provider* for setting up right name url etc for a hosting. Had to spend some time pulling from master and making sure everything works as expected.
Few minor things I'll clean up and then post a PR, here is a gif of ReDoc hosted on out local Nutanix cluster enabling Console feature.

Was debating for a lean JSON editor for forming request with some sort of validation against the schema. Started with Ace but adds a lot of generated bundle. Also do we add a full screen button to pull out request response for easy visibility. At Nutanix most of the request and response are quite large and small space available right now does not scale very well. We can make it configurable if all of us do not want it.

I'm using the workaround proposed by @yuhanz  but I need can select the 'Content Type' (application/json, text/json or text/xml). Some suggestion?
@harjeethans Is possible setup it enabling the console?
Thanks in advance

@ExeLeeVanCleef would you be able to clone https://github.com/nutanix/ReDoc and then checkout nutanix-master , this branch is quite close to ReDoc/master is I pull from master last week. After you build you can try out console by enabling it thru option flag enableConsole set to true. Ping me if you run into any issues.

@harjeethans could you publish a standalone version like the one at
<EMAIL_ADDRESS>

@fantastory will by EOD today.

@fantastory @ExeLeeVanCleef  I just tried an adhoc release for this feature that can be access from
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
Also take note there are few for options that you can pass namely
// if you do not want to have console feature
enableConsole?: boolean;
// any additional headers that you want to add to api request calls. We have some custom we add.
additionalHeaders?: object;
// String that shows up on let side navigation defaults to Documentation Powered by ReDoc
providedByName?: string;
// String that shows up on let side navigation defaults to https://github.com/Rebilly/ReDoc
providedByUri?: string;
// For a url like /pet/{petId} it would be { also defaults to { , value for petId will be picked from path parameters values that are provided thru textbox
queryParamPrefix?: string;
// For a url like /pet/{petId} it would be } also defaults to }
queryParamSuffix?: string;

I need to get all this reviewed asap meanwhile this can be tried out. @ExeLeeVanCleef  the contenttype you can select by selecting the one you want from dropdown. I have tried this with json only, will try to setup something with xml support, the editor also just supports json for now, that seems to work for us at Nutanix as json is ll we support, but may not work for others. These issues are delaying me from filing a PR for now.

@harjeethans is somehow can not add show/hide-console button
I tried your
<EMAIL_ADDRESS>The same when using bundle from bc59d13a5ca824bb483fb9e65dff5f3ea3424198
I add option as:

I can not check it in sources because
npm start run:demo
shows me an error of
ReDoc/node_modules/typescript/lib/typescript.js:107655
var entry = hostCache.getEntryByPath(path);

@fantastory I just set up a sample project to test, try cloning https://github.com/harjeethans/test-redoc followed by nm install and npm start , the ReDocs seem to show up with console option.

@harjeethans Do you plan to make your ReDoc branch public? Seems you've only distributed the bundled version.

I ended up giving it a go myself, and its quite achievable. Although there is still a lot of edge cases for me to find and handle...
This is the design I went with:

Is it not the console branch:
https://github.com/nutanix/ReDoc/tree/nutanix-master
Any way this version does not cover query string parameters.

Its not, and it does. The example given just doesn't have any query params.

Guys, I might sound like snob here but do we really need API console feature in REDOC. I believe adding this feature will complicate the core ReDoc functionality. Also from my experience in API from last few year, it is almost impossible to create a good enough API console feature. Also even if it is created it is sparingly used. It happend to product I created. No wonder big player like apigee themselves are removing this feature and paying attention to more important topics.
https://apigee.com/about/blog/api-technology/were-sunsetting-classic-api-consoles
This is not to discourage lot of hard work that has been going on this.. but I feel we can work on more high value and high usage features.

I agree with @indolent-developer that the console is not an essential part of doc tool.
Since switching to ReDoc from Swagger UI, we've been using Postman collections to give our consumers a headstart on using our APIs. In addition to helping these users get up and running faster than the built-in API console, we've been able to reuse those collections for automated testing as part of our CI/CD pipeline to protect against regressions in our API implantations.
I'm not saying our solution is the one for everyone, but I do wonder if better Postman integration (it might not take much work since you can create a basic collection from the OpenAPI spec that you can download from ReDoc) would solve most people's needs.

partially that is the reason I was not motivated to do doing a PR with console so far. To make it useful we need to have more then just console being able to execute some api calls. Here are few things that were useful for past console like feature I worked on

pre populate the request with required only or all the request object.
have ability to validate the request we are trying to send against the schema and report errors for missing or invalid input.
be able to have a way to add multiple api requests in a series/parallel scenarios for some playbook like functionality. Import/Export the same.
better editor for building request (lots of editors available)
better way to show response like full page view just for response.
generate some code like curl/python etc.

Again list can keep evolving!
The console that I tried to add, I had made it optional thru configuration, if you do not want we can cut it out. I can do a PR if we need.

In my experience postman collections have worked pretty good. I have even integrated postman collection download with documentation.
The collection are rich and already usable test parameters for various environment. Also there is possibility to embedded test client credentials in them. So in terms of API try outs postman just is more easy and flexible for my use-case.

Why would I create postman collections when I put so much of effort in creating and maintaining example values in my API Spec ? postman collections and params  may be more suitable for testing, but a quick and dirty try-out within the doc can be beneficial to some.
I would like to go with @harjeethans openion, presence of optional(configurable) console wont do a lot of harm

from @harjeethans it seems clear this feature is a much bigger enterprise than it looks at quick glance, have we considered building this as a separate project,  eg. as a React component that depends only on swagger spec? (and not ReDoc dependant) if a swagger-based sandbox component existed that could be embedded by ReDoc (or any other swagger UI).

Hi all, Adam here (the ReDoc project founder).  We have built an API Console "try it out" feature, but have decided it should not be a part of ReDoc core.  We'll write more about this within the next two months.  We are expecting to open up the beta somewhat in about a month.
I feel bad about not writing something here to let you know of our direction.  And even though this message is incomplete, I wanted to post something sooner rather than later, as this thread continues to be active.
Thank you all for supporting ReDoc.

Too bad, I was looking forward to using ReDoc.

@adamaltman,
Is this API Console feature you are alluding to the one demonstrated as "Try It" in the Rebilly "Real-life usages" example linked to in the README for this repo?
If not in core, will it be an add-on or plug-in and work like the in the example above or will it be free standing?

I really wanted interactive API docs like Unity Cloud Build and Contentful, but the Apigee link @indolent-developer shared convinced me that it might not be the best way to go after all.
The decision not to include an API console in ReDoc could possibly mean it will only be available with a paid https://redoc.ly account?

have decided it should not be a part of ReDoc core. We'll write more about this within the next two months. We are expecting to open up the beta somewhat in about a month.

Cool, we really need it. Have you created another repository?
Thanks.

Too bad, I was looking forward to using ReDoc.

You can still use ReDoc.  It works great, and powers thousands of companies API reference docs.

If not in core, will it be an add-on or plug-in and work like the in the example above or will it be free standing?

@worthlutz it is part of a software (that we called ReDoc Pro) that uses ReDoc in its core.  It's trying to solve some different problems than ReDoc was initially.  For example, speeding up the load time of API documentation:
See here:  https://www.zuora.com/developer/api-reference/  (this takes about 5 seconds on my laptop, and used to take about 45 seconds -- and they don't use the "try it out" feature).

speed (mentioned above)
Handling multiple specs/api definitions (we find this common in large enterprises who have adopted microservices, where each dev team may be responsible for its own spec, but they roll up into part of a more cohesive API)
Handling authentication
Handling more complex search scenarios.

@nickkraakman

The decision not to include an API console in ReDoc could possibly mean it will only be available with a paid https://redoc.ly account?

We don't know exactly.  We believe it will still be free for certain types of usages.  May be similar to how you have a free plan on Headjack.
@raderio
Yes, we have created another repository -- it is a private repository for now.

We think there is a really big and missing gap in the market of developer documentation.  ReDoc was focused on the API Reference docs exclusively.  And these days tutorial docs (or use cases) are largely free-form.  We subscribe to a "docs like code" philosophy, where all the developer docs should be treated as code (kept in a source control repository such as Github).  This opens up an opportunity to leverage the spec and reference docs within tutorial docs.  While this is not very useful for APIs with very few endpoints that serve few use cases, it becomes more important for larger APIs that can serve a variety of use cases.  We've already committed a year of R&D to the idea, and we can't pursue it to its full potential without commercializing.
Thank you all for your feedback.  We really appreciate it, as it helps us shape our views for the future.

@harjeethans Trying to set up the demo you provided https://github.com/harjeethans/test-redoc seems like https://github.com/nutanix/ReDoc/tree/nutanix-master doesn't support query parameter input? If yes, could you point out if there is any configuration I need to set to enable this feature? If not, could you provide some thoughts on how to add this? Thanks!

I too wanted console in my API Documentation, checkout MrinDoc if it can address your issues.

RapiDoc, created a custom element for OpenAPI spec viewing, and plenty of options for customization

Can someone give an update on when it will be possible to test ReDoc API console? It is highly needed function.

@paperplanemove see https://github.com/Rebilly/ReDoc/issues/53#issuecomment-422574142 and https://github.com/Rebilly/ReDoc/issues/53#issuecomment-439445605

Can't understand why are you referring to these comments? I've read them but they aren't giving answer if API console is publicly available, no matter in which form, whether it's a part of ReDoc project (as it's still on their roadmap - https://github.com/Rebilly/ReDoc/#roadmap) or as a standalone project or as part of some commercial project. I want to see it in action on some demo project in web or see it's source code if it is published somewhere on github. I didn't find any signs of "API console" on https://www.zuora.com/developer/api-reference/. @adamaltman can you please give an update where API console can be seen in usage on some live example or give answer when and how it will be available for developers.

Comment is not an official statement, they still have api console feature on redoc roadmap, so it's not 100% clear that it won't be implemented in no shape or form . Thank you, I tried api console at Rebilly web page and tried contacting redocly team via "Request your invitation" form at https://redoc.ly but didn't get a response letter.

I tried api console at Rebilly web page and tried contacting redocly team via "Request your invitation" form at https://redoc.ly but didn't get a response letter.

@paperplanemove
Hang on tight they must be getting a lot of such request, meanwhile try the out what Google chrome/polymer team is excited and recommending on twitter

I emailed you @paperplanemove ...

Added to Todo list:

[ ] update roadmap
[ ] make it clear how to get/try the API console

@adamaltman could you please email me as well? I tried "Request invitation" a couple of times but didn't get any invite.

@mona24 I don't know your email address.

Hi Adam,
My email ID is<EMAIL_ADDRESS>Anyhow, one of my teammates got in
touch with the redoc team already. Thanks!
Regards,
Manogna
On Fri 3 May, 2019, 5:01 PM Adam Altman<EMAIL_ADDRESS>wrote:

@mona24 https://github.com/mona24 I don't know your email address.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Rebilly/ReDoc/issues/53#issuecomment-489065827, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AB4F3KFEJJDOYQO72YY7RNLPTQPC5ANCNFSM4CFJMV6A
.

Hi Adam,
We are looking for this also.  Please email more info to<EMAIL_ADDRESS>Thank you,
GG Anderson

Contacted.  Thanks GG.

Hi @adamaltman.
I'm also looking for this.
Can you please email me at<EMAIL_ADDRESS>Thank you.

Hi @adamaltman,
Please keep me updated.
Thanks a lot!

Hi @adamaltman.
I'm also looking for this.
Could you email me at<EMAIL_ADDRESS>Thank you,
Erik

Any plan to release "Tryout"  feature in your upcoming releases?

Hi could you be so kind and send me also some info about Try It? This is my email<EMAIL_ADDRESS>

Can you send me information on console<EMAIL_ADDRESS>:)

Any ETA on when the Try It functionality will hit a release?

Can you send the information to me as well?
<EMAIL_ADDRESS>

+1 for API Console

Well, our company needs API-console on redoc, so we have to try to implement it. I'm looking for a proper solution to avoid implement un-necessary implementation.
Please let me know about the existing solutions which match our(Redoc) requirements.


Create Symbol QR scaner

@OlegMakarenko could you add more details what was changed in this task?

@OlegMakarenko could you add more details what was changed in this task?

Added QR scanner page which allows to scan majority of the Symbol QRs. Accessible from home page

@cryptoBeliever Added QR scanner page which allows to scan majority of the Symbol QRs. Accessible from home page


SpecWORMS edit description

Present description: WoRMS AphiaIDs for ICES assessment species
Suggested: Selection of WoRMS AphiaID species references
and long descr.: Complete WoRMS database: https://www.marinespecies.org/

Implemented.


Add colored diff between expected and actual

Currently the diff between 2 arrays is shown this way:

Code Example

        $this->assertSame(
            [
                'firstName' => 'Hikaru',
                'lastName' => 'Sulu',
                'Street' => '12',
                'Country' => 'Austria',
                'phone' => '123',
            ],
            [
                'firstName' => 'Hikaru',
                'lastName' => 'Sulu',
                'Street' => '20',
                'Country' => 'Austria',
                'phone' => '27',
            ]
        );

Instead I thought it would be nice to use also colors here and printing it this way:

This helps specially when using the coduo-php-matcher for api endpoints with big arrays.

@alexander-schranz How confident you are you this pull request?

@nunomaduro I think it should work as expected could not find a case where the output was wrong. Do you have something specific assertion in mind which could not work?


the relative distance between the object and host vehicle

I would like to know the detected objects' relative x position(meters)  and  y position(meters) related to the host vehicle.I wonder which message and information represent such two values.Thanks so much!

This depends on your configuration.
If you're using a single LUX sensor, the measurements are relative to the origin of the sensor (center of the front of the sensor). In this case, you can publish a static transform (using static_transform_publisher, for example) from the frame of the sensor to the frame of your vehicle (usually base_link). Then, if you apply that transform to the X and Y positions of the detected objects, you'll get the relative offset to the vehicle's origin.
If you're using a fusion system, you can connect to the Fusion box using Ibeo's software and set the location of each Lux relative to the vehicle's origin. The scans will then come out relative to the vehicle.


SSE Independent from Resolution Density & Cesium Renders at Screen Res

Please see: https://github.com/AnalyticalGraphicsInc/cesium/issues/8082
Changes

SSE is independent from resolution density - Created a resolution constant within Scene and FrameState that is used to either upscale or downscale SSE values. I took the approach of dividing the SSE value by the constant opposed to scaling up the max sse value.
Resolution scaled by the devices pixel ratio - Just scales the resolutionScale by the window device pixel ratio.
Removed Force Update in Viewer - There used to be a _forceResize attribute in Viewer that was used to make the canvas resize when the window size changed. However, this was only called when the resolutionScale function was called which calls the the  resolutionScale function of the cesiumWidget. Basically resolutionScale is a proxy to a class that already has a force update function and so that logic should be handled solely in the class it proxies the call.

Thanks for the pull request @ProjectBarks!

:heavy_check_mark: Signed CLA found.
:grey_question: CHANGES.md was not updated.

If this change updates the public API in any way, please add a bullet point to CHANGES.md.

:grey_question: Unit tests were not updated.

Make sure you've updated tests to reflect your changes, added tests for any new code, and ran the code coverage tool.

Reviewers, don't forget to make sure that:

[ ] Cesium Viewer works.
[ ] Works in 2D/CV.
[ ] Works (or fails gracefully) in IE11.

Besides the comment about the globe, the approach here seems like the correct one - leaving resolutionScale and maximumScreenSpaceError alone but still having 3D Tiles / Globe render the same content regardless of pixel density. @mramato and @emackey can you review too?

https://www.diffchecker.com/qUyoflwq
It looks like (while zooming in gives different results) it ends up with the same results for the quad tree.
Here are the sandcastles I used to test:

1.61 - Local
1.60

I think I've convinced myself that all of these changes are good and will produce the behavior we desire.
The only gotcha here is that maximumScreenSpaceError is now computed in CSS pixels while Cesium renders in device pixels.  So if you are on a 4K screen with devicePixelRatio of 2, your maximumScreenSpaceError is double what you would get on a 4K screen with devicePixelRatio of `1.  I liked @lilleyse's original idea of having a separate property for controlling this behavior so this aspect wasn't completely hidden from the user, but I guess @lilleyse decided that wasn't worth it?
If I wanted to render Cesium at full resolution, with full tiles.  I would essentially have to add code so that maximumScreenSpaceError for tilesets and globe get devided by devicePixelRatio, correct?  That seems doable, but a little odd.

I liked @lilleyse's original idea of having a separate property for controlling this behavior so this aspect wasn't completely hidden from the user, but I guess @lilleyse decided that wasn't worth it?
If I wanted to render Cesium at full resolution, with full tiles.  I would essentially have to add code so that maximumScreenSpaceError for tilesets and globe get devided by devicePixelRatio, correct?  That seems doable, but a little odd.

Yeah I'm on the fence about the option. But it's really easy to add and might be useful to some people, even if most won't touch it. It could be worth adding back. And I like your summary

The only gotcha here is that maximumScreenSpaceError is now computed in CSS pixels while Cesium renders in device pixels.

which could inform both the name and description of that variable.

The only property I would consider adding is something similar to:

renderFixedResolutionwhich allows someone to render a fixed resolution 1080p, 2K, 4K`

but the whole SSE to css pixel seems like a logical progression.

A CSS pixel, on the other hand, is designed to be roughly equivalent across devices. If you load the same website on side-by-side devices with a similar physical dimensions, but different pixel ratios, the website will appear to be roughly the same visual size.

@lilleyse @mramato  is this good to merge?

@lilleyse I'm okay with punting on the option for this PR and adding it later if needed.  Feel free to merge if you are otherwise happy with this PR. I'd like it in master at least a week before we ship.

I'm seeing some test failures locally:
Widgets/CesiumWidget/CesiumWidget resizing triggers a render in requestRender mode
Many Widgets/Viewer tests are failing from this error: RuntimeError: The browser supports WebGL, but initialization failed.

@mramato this looks good to me. Can you check out the changes to customizeJasmine and spec-main to see if that's ok?

@lilleyse that was my suggested placement of the fix, so I'm good with them.  We really need to clean-up and revisit our jasmine config (since we have two of them right now) could be a nice sprint issue.  I'm doing a little light testing now and will merge assuming no surprises.

Thanks again @ProjectBarks!  Everything working as advertised.

@mramato the change in this PR prevents the tests from running in IE11:
Assignment to read-only properties is not allowed in strict mode
spec-main.js (19,5)

The issue is that window.devicePixelRatio is supposed to be a read-only property (but only IE11 complains about this).

IE11 can't really run the WebGL tests anyway, so in practice it might not matter.  However, since the spec says devicePixelRatio is read-only, feel free to revert the change and write up a separate issue to ensure our tests all pass on non-1 devicePixelRatio machines.

@kring @DanielLeone  you can now replace any workaround code with viewer.useBrowserRecommendedResolution = true. It will ship with Cesium 1.62. https://github.com/AnalyticalGraphicsInc/cesium/pull/8222


Fix documentation for deprecated 'reports' object (Issue #5908)

I made a completely new branch and removed whitespaced and fixed the deprecated reports object.
Fixes #5908

should i write a test case for the detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/FormattingRule.kt
line 97

That's not necessary. Thanks to improve the documentation


Converging to 25 ppl after 7 days?

Hi,
I've been training the model on the 1 million benchmark for 7 days now on 4 tesla k80 gpus and it seems to be converging to a perplexity around 25 (it has not improved for 24h now). See tail of log below.
Is this expected behaviour? Has it converged?
Batch 142200, train_perplexity=24.746037
Total time:<PHONE_NUMBER>390545
Batch 142300, train_perplexity=25.46843
Total time:<PHONE_NUMBER>296906
Batch 142400, train_perplexity=25.55357
Total time:<PHONE_NUMBER>500832
Loading data from: ../../data/1-billion-word-language-modeling-benchmark-r13output/training-monolingual.tokenized.shuffled/news.en-00026-of-00100
Loaded 306324 sentences.
Finished loading
Loading data from: ../../data/1-billion-word-language-modeling-benchmark-r13output/training-monolingual.tokenized.shuffled/news.en-00028-of-00100
Loaded 305485 sentences.
Finished loading
Batch 142500, train_perplexity=26.139242
Total time:<PHONE_NUMBER>65456
WARNING:tensorflow:Error encountered when serializing lstm_output_embeddings.
Type is unsupported, or the types of the items don't match field type in CollectionDef.
'list' object has no attribute 'name'
Batch 142600, train_perplexity=24.84199
Total time:<PHONE_NUMBER>260384
Batch 142700, train_perplexity=25.43104
Total time:<PHONE_NUMBER>823261
Batch 142800, train_perplexity=25.182297
Total time:<PHONE_NUMBER>879414
Batch 142900, train_perplexity=24.556465
Total time:<PHONE_NUMBER>479813
Batch 143000, train_perplexity=25.966608
Total time:<PHONE_NUMBER>603981
Batch 143100, train_perplexity=25.03588
Total time:<PHONE_NUMBER>204861
Batch 143200, train_perplexity=25.981043
Total time:<PHONE_NUMBER>641373
Loading data from: ../../data/1-billion-word-language-modeling-benchmark-r13output/training-monolingual.tokenized.shuffled/news.en-00065-of-00100
Loaded 305213 sentences.
Finished loading
Batch 143300, train_perplexity=25.373167
Total time:<PHONE_NUMBER>370457
Loading data from: ../../data/1-billion-word-language-modeling-benchmark-r13output/training-monolingual.tokenized.shuffled/news.en-00041-of-00100
Loaded 306092 sentences.

Seems like it's converged, have you evaluated the held out perplexity for this model?

Average held out perplexity seems to be close to what you report in the paper (around 36) so it has indeed converged. Would be nice to add some indications on how to verify that the model is training correctly in the README or somewhere to make it easier to replicate results. Thanks for your help!


fix: articles/cloud-services/cloud-services-workflow-process.md

Put paths in code fences to avoid elments being swallowed
Trim trailng space

@nschonni : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@@nschonni  Thanks for helping to improve the article.  There is an upcoming change to this article. To avoid conflict, I will close this issue and include your suggestion in that PR.
#please-close


add embeddings to embeddings callback hooks

Description
The embeddings callback hook currently returns the embedded text but not the embeddings themselves, which are useful for analysis and debugging of retrieval-augmented systems. I am building a callback handler that requires access to the embeddings for use with Phoenix.
Type of Change

[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?

[x] I stared at the code and made sure it makes sense.

Suggested Checklist:

[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

Force-pushed over previous commits to add Roger as a co-author.

@axiomofjoy if you can run black to fix the linting, that would be great! I can't seem to push the change myself

lol I guess you need ruff . --fix too

Might also be worth checking mypy llama_index (our three linters are mypy, ruff, and black)

@logan-markewich Good to merge?

Thanks @logan-markewich 👍


Remove clear cache on verification start so that no pincode is needed for phone verification

Description
The password cache is currnetly cleared on start of the verification user journey, with the intent to ensure that the account is unlocked for the whole verification duration. This forces the user to enter their pin, even if they've just entered it for something immediately beforehand (e.g. in the current onboarding flow)
Discussing with Jean, the important thing for the verification flow is that the geth account is unlocked for the maximum time (to ensure all transactions within the rather long verification process would be able to be signed successfully). We already call the geth unlock saga with the force flag in this flow, so the unlock period should be at its maximum.
The pincode is only needed for unlocking the geth account, and is not needed during the verification process. Therefore, it should be safe to avoid clearing the password cache here. I tested by shortening the cache time and kicking off the verification process shortly before the cache expires. Can confirm that there was no need to input the pincode again.
Other changes
N/A
Tested
Manually
How others should test
Phone verification in onboarding flow or through setting screen should only prompt for pincode if the user hasn't entered their pincode in the last 5 minutes (and if they haven't force closed the app)
Related issues
N/A
Backwards compatibility
Yes

The reason this was added before starting the verification flow is to make sure all transactions within the rather long verification process would be able to be signed successfully without asking the user for their PIN within it. We need to check but it's likely the rest of the flow assumes the PIN is unlocked and may not try to unlock later one.
Knowing this, I think we could skip this only if the PIN was entered within less than X secs. Where is X is way smaller than the unlock duration.
Or do you have another proposal?

ooohhh i see. that's subtle. what do you think about extending the cache duration when entering this flow? e.g. after unlocking the account we update the pin cache again. worst case scenario the pin is cached for 10 minutes instead of 5 (if the user starts this flow with 1 second left of the cache value) but am thinking this is okay?

hey @jeanregisser i updated the description of this PR following our discussion yesterday, and did some testing. I think we are safe with this approach :D

Hey @MuckT we have verified the above task on Latest iOS TestFlight Release Build V:1.33.0 and updated the status in Test Rails
Observation :  Pin page occurs when user has not entered PIN in last 5 mins and if user has killed the app and reopened it
TestRail link
iOS 14: https://valoraapp.testrail.io/index.php?/tests/view/37179
Devices : iPhone 12(14.7.1)
Cc: @kathaypacific
Thanks..!!


Does it support with sql input?

For example
$ database-sanitizer my-db.sql > output.sql  # mysql db

Or
$ database-sanitizer my-db.psql.gz > output.psql.gz     # compression
$ database-sanitizer my-db.psql > output.psql           # default postgre

Sorry, but the input cannot be read from a file currently, but must come through a database connection. Support for sanitizing a SQL dump file would be a great feature though. So PRs are wellcome! :slightly_smiling_face:

I'll close the issue for now. 💯 points to whom makes the feature happen.


DeployTabularModel Version Validation Error

I'm getting the following error in Publish-Cube even though the PreferredVersion passed in is 140 (which IS in the list).
Error: Cannot validate argument on parameter 'Version'. The argument "" does not belong to the set "150,140,130,120,110,latest"
Here is the section that shows what is set as the PreferredVersion:
2019-06-25T22:17:09.7708205Z Invoking Publish-Cube from DeployCube module with the following parameters:
2019-06-25T22:17:09.7712494Z AsDatabasePath:     D:\AzureDevOpsAgent_work\3\s\xxx\bin\Development\xxx.asdatabase
2019-06-25T22:17:09.7716702Z AsServer:           xxx
2019-06-25T22:17:09.7720932Z CubeDatabaseName:   xxx Data Mart
2019-06-25T22:17:09.7724964Z PreferredVersion:   140

Hi, can you please confirm that you actually have "Microsoft.AnalysisServices.Deployment.exe" installed on your deployment machine by running:
Find-AnalysisServicesDeploymentExeLocations
I suspect the "Microsoft.AnalysisServices.Deployment.exe" is not present

I presume "Microsoft.AnalysisServices.Deployment.exe" was not present??

Hi, thank you for the prompt response, and I apologize for my late reply!
We are doing this on the side, so other projects are taking our time.
The problem is that we install everything on the D: drive, and your script
expects it to be on the C: drive.  We changed the script, and it works.  On
the tackling the next error!
Do you think it would work to have your script look at the system path
environment variable?  I may try that as well.
Thanks again.
Chad McKee
On Wed, Jul 3, 2019 at 4:11 PM Dr John Tunnicliffe<EMAIL_ADDRESS>wrote:

Hi, can you please confirm that you actually have
"Microsoft.AnalysisServices.Deployment.exe" installed on your deployment
machine by running:
Find-AnalysisServicesDeploymentExeLocations
I suspect the "Microsoft.AnalysisServices.Deployment.exe" is not present
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/DrJohnT/DeployCube/issues/1?email_source=notifications&email_token=ABKV66ZIS3KXU4S5NS6EJODP5UIYRA5CNFSM4H5IXZ62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZFWBYI#issuecomment-508256481,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABKV665WKWYKVXQGP2KNOBLP5UIYRANCNFSM4H5IXZ6Q
.

The script uses the env variable ${env:ProgramFiles(x86)} but that does assume SQL Server is installed in that path.  I could try the registry.  Tell me. does this key in your registry accurately reflect the install location of SSMS?
HKEY_CLASSES_ROOT\ssms.sql.XX.0\Shell\Open\Command
Where XX is the SQL version
e.g.
HKEY_CLASSES_ROOT\ssms.sql.14.0\Shell\Open\Command

Yes...
[image: image.png]
On Wed, Jul 10, 2019 at 9:03 AM Dr John Tunnicliffe <
<EMAIL_ADDRESS>wrote:

The script uses the env variable ${env:ProgramFiles(x86)} but that does
assume SQL Server is installed in that path. I could try the registry. Tell
me. does this key in your registry accurately reflect the install location
of SSMS?
HKEY_CLASSES_ROOT\ssms.sql.XX.0\Shell\Open\Command
Where XX is the SQL version
e.g.
HKEY_CLASSES_ROOT\ssms.sql.14.0\Shell\Open\Command
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/DrJohnT/DeployCube/issues/1?email_source=notifications&email_token=ABKV666BUDOLC6N257ZZ53TP6XT37A5CNFSM4H5IXZ62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZTSANA#issuecomment-510074932,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABKV664KAJHW77HQD2X6PODP6XT37ANCNFSM4H5IXZ6Q
.

OK will take a look

Hi, I also have this issue.
When I run the TFS task I have the error "The specified module 'sqlserver' was not loaded because no valid module file was found in any module directory.".
The readme says "The module also requires the Microsoft SQL Server PowerShell module SqlServer which is installed automatically." but starting from SSMS 17 the PowerShell module is installed in separate.
After installing the module in the system I have the following error:
"Cannot validate argument on parameter 'Version'. The argument "" does not belong to the set "150,140,130,120,110,latest" specified by the ValidateSet attribute. Supply an argument that is in the set and then try the command again."
I have SSMS v18.2 installed which installs Microsoft.AnalysisServices.Deployment.exe on "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common 7\IDE" and not in "C:\Program Files (x86)\Microsoft SQL Server" as the Find-AnalysisServicesDeploymentExeLocations task expects.
Regards,

Hi, I also have this issue.
The extension does not find Microsoft.AnalysisServices.Deployment.exe when installed on D: drive and I get the same error as jabteles.
It would be nice if also iterated through the paths in the Path System Environment variable.
Thanks,
Troels Vastrup

Hi All, any update on this? I have my exe installed on
E:\Microsoft SQL Server Management Studio 18\Common7\IDE

I see we have a fix for the issue (https://github.com/DrJohnT/DeployCube/pull/3) will we have a release soon? Regards

Version 1.2 supports an environment variable $env:CustomAsDwInstallLocation which allows you to specify your own custom install directory.

Version 1.2 supports an environment variable $env:CustomAsDwInstallLocation which allows you to specify your own custom install directory.

Version 1.2 supports an environment variable $env:CustomAsDwInstallLocation which allows you to specify your own custom install directory.

Hi, this doesn't solve my issue and I believe the original issue from this thread, since Microsoft.AnalysisServices.Deployment.exe is installed on a default location and not a custom.
SSMS v18.2 installs Microsoft.AnalysisServices.Deployment.exe on "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common 7\IDE".
Will you release a DevOps Task version with the fix reported in https://github.com/DrJohnT/DeployCube/pull/3?

Version 1.2 supports an environment variable $env:CustomAsDwInstallLocation which allows you to specify your own custom install directory.

Hi, this doesn't solve my issue and I believe the original issue from this thread, since Microsoft.AnalysisServices.Deployment.exe is installed on a default location and not a custom.
SSMS v18.2 installs Microsoft.AnalysisServices.Deployment.exe on "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common 7\IDE".
Will you release a DevOps Task version with the fix reported in https://github.com/DrJohnT/DeployCube/pull/3?

@jabteles

SSMS v18.2 installs Microsoft.AnalysisServices.Deployment.exe on xxx

Issue fixed.  Please see release notes.
https://github.com/DrJohnT/DeployCube/releases/tag/1.2.0
PowerShell module now published on the gallery here https://www.powershellgallery.com/packages/DeployCube/1.2.0

@jabteles

SSMS v18.2 installs Microsoft.AnalysisServices.Deployment.exe on xxx

Issue fixed.  Please see release notes.
https://github.com/DrJohnT/DeployCube/releases/tag/1.2.0
PowerShell module now published on the gallery here https://www.powershellgallery.com/packages/DeployCube/1.2.0

@DrJohnT I apreciate that, but will you update the DevOps Task with the new feature? (https://marketplace.visualstudio.com/items?itemName=DrJohnExtensions.DeployTabularModel)

@DrJohnT I apreciate that, but will you update the DevOps Task with the new feature? (https://marketplace.visualstudio.com/items?itemName=DrJohnExtensions.DeployTabularModel)

@DrJohnT I appreciate that, but will you update the DevOps Task with the new feature?

That's the plan!

@DrJohnT I appreciate that, but will you update the DevOps Task with the new feature?

That's the plan!

Hi,
I am still getting this error,
"Cannot validate argument on parameter 'Version'. The argument "" does not belong to the set "150,140,130,120,110,15,14,13,12,11" specified by the ValidateSet attribute. Supply an argument that is in the set and then try the command again." when trying to deploy the DACPAC file.

Hi,
I am still getting this error,
"Cannot validate argument on parameter 'Version'. The argument "" does not belong to the set "150,140,130,120,110,15,14,13,12,11" specified by the ValidateSet attribute. Supply an argument that is in the set and then try the command again." when trying to deploy the DACPAC file.

Hi,
I am still getting this error,
"Cannot validate argument on parameter 'Version'. The argument "" does not belong to the set "150,140,130,120,110,15,14,13,12,11" specified by the ValidateSet attribute. Supply an argument that is in the set and then try the command again." when trying to deploy the DACPAC file.

You mention a DACPAC, but this error is for the DeployTabularModel task.  No DACPAC involved??!!??

Hi,
I am still getting this error,
"Cannot validate argument on parameter 'Version'. The argument "" does not belong to the set "150,140,130,120,110,15,14,13,12,11" specified by the ValidateSet attribute. Supply an argument that is in the set and then try the command again." when trying to deploy the DACPAC file.

You mention a DACPAC, but this error is for the DeployTabularModel task.  No DACPAC involved??!!??

But I am getting it for the DACPAC task. Please check the attached screenshot.

But I am getting it for the DACPAC task. Please check the attached screenshot.

But I am getting it for the DACPAC task.

OK, but this bug (i.e. see title at top of page) was raised against the DeployTabularModel task.
As I happens, I have fixed other issues in the Deploy DacPAC extension and just republished it to the Visual Studio Marketplace.  Please check if v1.2.6 of the extension fixes your issue.   If not, please raise a new bug with the correct title :-)

But I am getting it for the DACPAC task.

OK, but this bug (i.e. see title at top of page) was raised against the DeployTabularModel task.
As I happens, I have fixed other issues in the Deploy DacPAC extension and just republished it to the Visual Studio Marketplace.  Please check if v1.2.6 of the extension fixes your issue.   If not, please raise a new bug with the correct title :-)

@DrJohnT I appreciate that, but will you update the DevOps Task with the new feature? (https://marketplace.visualstudio.com/items?itemName=DrJohnExtensions.DeployTabularModel)
@jabteles
Republished last week.  :-)

@DrJohnT I appreciate that, but will you update the DevOps Task with the new feature? (https://marketplace.visualstudio.com/items?itemName=DrJohnExtensions.DeployTabularModel)
@jabteles
Republished last week.  :-)


Part1: Using jasmine2 in protractor tests

This is a first part for forcing using the jasmine2 in protractor depending on environment variable.
Example usage is:
export USE_JASMINE2=true
protractor protractor-conf.js
grunt build

In order to allow multiple versions of jasmine-reporters i have forked a project and temporary renamed the package name. Once we completely move to jasmine2 we will get rid of that fork.
Here is the example output of the e2e tests run with jasmine2 and shim.

part 2 is unit tests?


Android - Settings - Dropdown arrow is non functional in dropdown selectors

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Expected Result:
Dropdown menu options should be displayed on tapping the dropdown arrow
Actual Result:
Dropdown arrow nonfunctional, tapping the v does nothing.
Action Performed:

Launch the app and login
Tap on the profile icon to open settings
Tap on profile
Unselect checkbox for Set my time zone
Tap dropdown arrow for Timezone , Preferred pronouns and Priority mode in preferences

Workaround:
User can tap on the left side of the dropdown and it will work
Platform:
Where is this issue confirmed?
Web
iOS
Android ✔
Desktop App
Mobile Web
Version Number: 1.0.51-2
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Video

Upwork URL: https://www.upwork.com/jobs/~01ef186547791f24ac

Triggered auto assignment to @cead22 (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

I was able to reproduce this, will tackle this!

Issue not reproducible during today's KI retests

Issue reproducible during today's KI retests

Triggered auto assignment to @trjExpensify (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

Version Number: 1.0.7-0

👋 @isagoico just to confirm, this is reproducible on the latest v1.0.51-2 Android release right? (the screenshot in the OP looks old as it doesn't have the phone number field).
In the meantime, I'm going to add the external label to get this prepped for Upwork.

Voila, what are the chances! Let me know about the above and I'll get it over to Upwork. A fresh Android screenshot would be awesome too if you could.

Yep! I was able to reproduce the issue on Android build 1.0.51-2 with the same steps.

The proposed solution for this bug would be just to change some RN component which are connected to the dropdown menu and change some function or style.

PROPOSAL
We need to add fixAndroidTouchableBug props at this position and it'll work fine
https://github.com/Expensify/Expensify.cash/blob/0d5be8275b6f50054867b9e2f0a7a30a6db95492/src/components/Picker/index.js#L17
Reference: https://github.com/lawnstarter/react-native-picker-select/issues/354
Thanks

That's funny ... hopefully that fixAndroidTouchableBug prop is temporary and the maintainers decide to merge a long-term solution which doesn't require a separate prop that literally says "yes I want this bug" or "no I don't want this bug"...
But good find @aliabbasmalik8! Feel free to submit a pull request once you've been hired on Upwork!
@trjExpensify feel free to hire @aliabbasmalik8 on Upwork 👍

Thanks, @aliabbasmalik8. Hired! 👍

Issue reproducible today during KI retests


How do I use this? Does it work for .flac files?

Could you provide more info on how to use this in your readme?

Good point.  I just added some examples from the javadocs to the project README.  That should get you started.  Detailed javadocs are in the release zip (see "releases").
Regarding .flac files.  It might work, you'll just have to try it (backup your file first!).  Tell me how it goes.  The library was written and tested against Ogg-Vorbis files.  I won't claim FLAC support until the test-suite has coverage for FLAC files.

@cruxic Thanks a ton, looks pretty good. You might want to also provide a maven URL to make it usable.


Predictor load fails when model is compiled manually

I can't load the predictor using the following code snippet:
import tensorflow as tf
from tensorflow.keras import activations
import ktrain
import ktrain.text as txt
def focal_loss(gamma=2., alpha=4., from_logits=False):

    gamma = float(gamma)
    alpha = float(alpha)

    def focal_loss_fixed(y_true, y_pred):
        epsilon = 1e-9
        y_true = tf.cast(y_true, dtype=tf.float32)
        y_pred = tf.cast(y_pred, dtype=tf.float32)
        if from_logits:
            y_pred = activations.softmax(y_pred)

        model_out = tf.add(y_pred, epsilon)
        ce = tf.multiply(y_true, -tf.math.log(model_out))
        weight = tf.multiply(y_true, tf.pow(tf.subtract(1., model_out), gamma))
        fl = tf.multiply(alpha, tf.multiply(weight, ce))
        reduced_fl = tf.reduce_max(fl, axis=1)
        return tf.reduce_mean(reduced_fl)
    return focal_loss_fixed

(x_train, y_train), (x_test, y_test), preproc = txt.texts_from_df(data,
                                                                  text_column='body',
                                                                  label_columns=['x'],
                                                                  maxlen=256,
                                                                  preprocess_mode='bert')

model = txt.text_classifier('bert', (x_train, y_train), preproc=preproc)

model.compile(loss=focal_loss(alpha=1, from_logits=False),
              optimizer='adam',
              metrics=['accuracy'])

learner = ktrain.get_learner(model,
                             train_data=(x_train, y_train),
                             val_data=(x_test, y_test),
                             batch_size=12)

predictor = ktrain.get_predictor(learner.model, preproc=preproc)
predictor.save('./predictor/test')
predictor = ktrain.load_predictor('./predictor/test')

gives the following error:
Call to keras.models.load_model failed.  Try using the learner.model.save_weights and learner.model.load_weights instead.
Error was: SavedModel file does not exist at: ./predictor/test/{saved_model.pbtxt|saved_model.pb}
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-4-b82c696f6fc5> in <module>
     43 predictor = ktrain.get_predictor(learner.model, preproc=preproc)
     44 predictor.save('./predictor/test')
---> 45 predictor = ktrain.load_predictor('./predictor/test')

~/anaconda3/lib/python3.7/site-packages/ktrain/core.py in load_predictor(fpath, batch_size)
   1481     # return the appropriate predictor
   1482     if not isinstance(model, Model):
-> 1483         raise ValueError('model must be of instance Model')
   1484     if not isinstance(preproc, (ImagePreprocessor, TextPreprocessor, NERPreprocessor, NodePreprocessor, LinkPreprocessor, TabularPreprocessor)):
   1485         raise ValueError('preproc must be instance of ktrain.preprocessor.Preprocessor')

ValueError: model must be of instance Model

If I comment out the model.compile line it works.

This is fixed in the develop branch by adding a custom_objects argument to load_predictor, but is not released yet:
predictor = ktrain.load_predictor('/predictor/test', custom_objects={'focal_loss_fixed': focal_loss_fixed})

You can install develop branch with: pip3 install git+https://github.com/amaiya/ktrain@develop.
However, since the BERT model you're using is not a transformers model, in order for the above to work, you'll need to redefine the inner loss function (focal_loss_fixed)  to be outside and hardcode variables like gamma and alpha. This can simply be copied outside the function.
If using a custom loss function like this, it's probably easier to use the transformers version of BERT (or DistilBERT), as shown in the  FAQ.  Unlike vanilla keras models like keras_bert (which you're using), transformers models are not saved with compiled loss functions and optimizers, so this issue is completely avoided.

Got it. Thanks!


mongodb connect

hello sir im trying to self host your bot but i dont know how to connect mongodb i have installed mongodb on my server ....
will you plz tell me how to do ....
thx
best regards

this is the link for mongoDB when running on the same server:
mongodb://localhost:27017/database

where have database i just have to put my db name m i right sir

I'm sorry, I don't understand what you wrote.

one more think is that im haveing problem with all API is that all API are important cos  i dont have all API

mongodb://localhost:27017/(onr here my database name)

mongodb://localhost:27017/(onr here my database name)

yes that is correct.

one more think is that im haveing problem with all API is that all API are important cos i dont have all API

just fill out the ones you need and then remove the if statements of the ones you don't have in src/scripts/verify-config.js

ok sir i just want to use for music play and i think for rest like meme poll and reaction no need API
so for music play which API important
thx

ok sir i just want to use for music play and i think for rest like meme poll and reaction no need API
so for music play which API important
thx

there is no API for music play, only for spotify

so may i remove all API to run Bot its will work with all comand?

hello sir
i find this erroe
############
Error: Cannot find module './modules/logging/logger'
Require stack:

/root/prottoy/src/index.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
at Function.Module._load (internal/modules/cjs/loader.js:725:27)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object. (/root/prottoy/src/index.js:1:16)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/root/prottoy/src/index.js' ]
}

################


Missing locked specs should not block installation.

Hey all,
Not sure if this is the appropriate way to solve the issue I was running into, but the TLDR is that when a Gemfile.lock is pointing to a private remote locked to a given sha, when I attempt to set a local override and run bundle install --path=vendor/bundle, bundler blows up with the following backtrace.
bundle install --path=vendor/bundle --verbose
Bundler::PathError: The path `/Users/darrencheng/dependents/mobile/vendor/bundle/ruby/2.1.0/bundler/gems/[redacted]-c48c8b0f95ad` does not exist.
/Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/source/path.rb:160:in `load_spec_files'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/source/git.rb:188:in `load_spec_files'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/source/path.rb:92:in `local_specs'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/source/git.rb:159:in `specs'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/definition.rb:437:in `specs_changed?'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/definition.rb:463:in `block in converge_locals'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/definition.rb:462:in `each'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/definition.rb:462:in `any?'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/definition.rb:462:in `converge_locals'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/definition.rb:96:in `initialize'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/dsl.rb:173:in `new'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/dsl.rb:173:in `to_definition'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/dsl.rb:11:in `evaluate'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/definition.rb:24:in `build'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler.rb:120:in `definition'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/cli/install.rb:102:in `run'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/cli.rb:172:in `install'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/vendor/thor/lib/thor.rb:359:in `dispatch'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/vendor/thor/lib/thor/base.rb:440:in `start'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/cli.rb:10:in `start'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/exe/bundle:19:in `block in <top (required)>'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/friendly_errors.rb:7:in `with_friendly_errors'
  /Users/darrencheng/.rbenv/versions/2.1.7/lib/ruby/gems/2.1.0/gems/bundler-1.11.2/exe/bundle:17:in `<top (required)>'
  /Users/darrencheng/.rbenv/versions/2.1.7/bin/bundle:23:in `load'
  /Users/darrencheng/.rbenv/versions/2.1.7/bin/bundle:23:in `<main>'
<EMAIL_ADDRESS>(at
[redacted]@c48c8b0) is not yet checked out. Run `bundle install` first.

I took a peak at the bundler source code and it looks like there is a GitError raised if the locked spec is missing from vendor/bundle. The change I made patches the exception and allows usage of the local override.
I'm happy to spend some time setting up a public example that replicates this issue, but here are the basic steps that I think will reproduce the above backtrace (untested):

set up a simple ruby projects with a Gemfile loading a gem (let's call it the-gem) via git: and path: options
let bundler create a Gemfile.lock by running bundle
clone the gem locally and add a commit
override local bundler config for that gem (bundler config local.the_gem ~/path/to/the-gem)
attempt to run bundle install --path=vendor/bundle

Here's a more in depth description of the problem / my use case. My team maintains an internal rails engine that we use to share our core models between a number of rails applications. Normally, our Gemfile looks something like this (with relevant names replaced):
gem 'engine',
  git<EMAIL_ADDRESS>  branch: (ENV['ENGINE_BRANCH'] || master)

This works well for the most part - when we make a change to the engine, we just run bundle update engine in the dependent application and the commit sha in the Gemfile.lock updates.
Right now, I'm working on a relatively complex CI setup for the engine that clones the dependent apps' codebases, resets hard to a branch that matches the one that kicked off CI, sets up local bundle override for the engine, runs bundle install --path=vendor/bundle, then kicks off specs. This all works well when the sha captured in the dependent app's Gemfile.lock matches the local engine's sha. However, I'm getting the exception listed above when that's not the case.
Let me know if you need any more info or if there is another way around the exception.
Cheers,
Darren

Git locals should (I think) only work when the shas match. The app that depends on the engine will need to run bundle install or bundle check to update the sha in its lock to the sha of the local checkout of the engine. If that's not working, this is probably a bug in locals.

@indirect is this a PR we can close as a "behaves as intended"?

Apologies for not responding earlier. The problem is that when bundle install is run, the Run 'bundle install' first. error message appears. As you mentioned, it might be a bug in how local dependencies are handled.
I haven't been blocked on this, but I'll re-open this and provide a reproduce example for this when I get around to it.

@drn that does sound like a bug in locals—maybe it's expecting the git repo to be checked out first, so that the local can be compared to it? If you can provide a repro example, that would help a lot.

Okay, no prob. I'll try to reproduce an example so you can take a look at the issue. Might not get to this for a little while, but will reply back here when I get to it.

Hey @indirect,
I finally got around to reproducing the issue in a minimal ruby project ( https://github.com/drn/bundler-locals-issue-project ). There are instructions in the README.
I dug into the bundler source code and traced the exception to this line:
https://github.com/bundler/bundler/blob/master/lib/bundler/definition.rb#L483
The issue arises if there are no other dependencies in the project that are unlocking. All the other conditions are false, so source.specs != locked.specs triggers. source.specs returns a Bundler::Index instance. However, locked.specs raises an exception.
The exception that's raised is in https://github.com/bundler/bundler/blob/master/lib/bundler/source/git.rb#L192. The error message is:
The path /Users/darrencheng/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/bundler-locals-issue-gem-d8a205d072a3 does not exist., which in turn raises a GitError which isn't handled in the specs_changed? method.
The changes in this pull request patches the issue, but maybe there is a better fix for the issue? Potentially ensuring unlocking = true if a GitError is raised?


Logging and error-handling design

Discussion
It would be good to have a clear mental map/documentation on how Huak handles errors and logging.
Since these are 2 things that are ubiquitous throughtout Huak, I figure it would be good to have a discussion before something like logging is implemented (i don't huak does much in the way of logging right now?). That way we can be internally consistent.
Another example, the error handling has been improving with HuakError, but do we have a consistent approach across the lib for propogating. Like where does the error propogation stop and turn into a nice readable error for the user? in Ops i'm guessing, but it would be good to document that design decision and why.
I can whip up a quick and dirty digram to aid the conversation.

I've put this basic google sheet together, mostly for my comprehension but maybe it can be used as a basic starting point for documentation to help new contributors as well.

Note to self: https://github.com/cnpryer/huak/blob/557a61a9b3b9ac5f6dcbc67fd00b81cd97c78881/crates/huak_cli/src/main.rs#L24-L25

Another note would be that adding application-like experience of "a problem occurred" to library errors implemented with thiserror is a little messy. Ideally library error messages and data is limited to what's useful for the specific error so that applications can layer in the experience-enhancing text.


Update ModelNet tutorial

https://kaolin.readthedocs.io/en/latest/notes/datasets_tutorial.html#modelnet

Closing the bug as it is no longer relevant to this repo.


Merge unsmoothed time series plot code

Instead, just leave the branch there in case those plots are needed again. branch is remove-smoothed-time-series


[Feature]: Mulit-LLM support

Feature Request
What would it take to have multi-llm support ? I'm working on a SAAS product where we allow the end-user to choose between various providers (for cost, fit and latency reasons), so for us this feature is important. I may have some resources available to devote to this if it's attainable with not too much of a lift.
Is there an interface that the OpenAI integration uses that is sufficiently general to be a basis for other implementations ?
Code of Conduct

[X] I agree to follow this project's Code of Conduct

I am not quite sure what you mean by multi-llm support but Rivet already supports Ollama, OpenAI, Anthropic and (all) HuggingFace compatible models via their built-in plugins you can install with one click.
You are also able to provide the model to the node via a text node which can come from the Graph Input that you plug in to your API, so when a user picks a model you use that as an input to your LLM node.

Yeah what kucukkant said


Recommended placement of gettingStarted.mlx conflicts with MATLAB documentation

The recommended location for gettingStarted.mlx is "at the top level of the toolbox folder." This recommendation conflicts with the MATLAB documentation page, "Create and Share Toolboxes," which says:
"For the Package a Toolbox tool to recognize a Getting Started Guide, include the guide as a live script named GettingStarted.mlx in a doc subfolder within your toolbox folder."
There is also a capitalization discrepancy (gettingStarted.mlx vs GettingStarted.mlx).

I see in the documentation for ToolboxOptions that there is a scriptable way to tell the toolbox packager where to find the getting started file. That lessens the importance of this issue, in my mind, but I think it would still be worthwhile to reconcile the two recommendations.

Hi Steve,
Hope you're doing well.  Yes -- there is a conflict between our recommendations and what is currently documented.  We've worked with the various teams at MathWorks who are associated with this to make sure that future versions of the documentation system, toolbox packaging, and File Exchange align on this best practice.  Our position is that the gettingStarted.mlx is so important that it belongs prominently at the top of a toolbox, rather than down in the doc directory, even though it doesn't match the assumptions that the tooling makes about it.
Like you mention, the ToolboxGettingStartedGuide property on the matlab.addons.toolbox.ToolboxOptions object can be set to point to the GettingStarted.mlx.  As an example, we do this in the Arithmetic Toolbox example in the buildfile.m:
https://github.com/mathworks/arithmetic/blob/41a80d9c36c86cba2dca20c0d278dc0fa3a17090/buildfile.m#L31
-Rob


[Bug] errno -13, Permission denied 1.11 on Android

Describe the bug
Can't store file, even I have granted the storage access permission.
To reproduce
Send file from the PC (Win11, 1.11.0(34))  to Android (Android10, 1.11.0), translate finished, but the Android app complains it can't store the file because "errno -13, Permission denied".
Expected behavior
The Android app can receive and store the file.
Screenshots

Desktop (please complete the following information)

OS: win11 Home edition
version 10.0.22621

Smartphone (please complete the following information)

Device: oppo r17
OS: Android 10

Additional context
I have reinstalled 1.10.0 on my Android mobile, it works fine.

Hello,
I have uploaded a modified version to the releases page: https://github.com/localsend/localsend/releases/download/v1.11.0/LocalSend-1.11.1-pre-fix-permission.apk
Can you try this out?

It works fine.

Hello,
I have uploaded a modified version to the releases page: https://github.com/localsend/localsend/releases/download/v1.11.0/LocalSend-1.11.1-pre-fix-permission.apk
Can you try this out?

I also encountered this bug when I tried to send files to my Huawei Pad, running HarmonyOS2(Android 10) and app 1.11.0. However, your modified app works just fine.

Hello, you can use the latest version 1.11.1.


Cannot install using ya pack

What system are you running Yazi on?
Linux X11
What terminal are you running Yazi in?
wezterm 20240203-110809-5046fc22
yazi --debug output

Yazi
    Version: 0.3.0 (Nixpkgs 2024-08-01)
    Debug  : false
    OS     : linux-x86_64 (unix)

Ya
    Version: 0.3.0

Emulator
    Emulator.via_env: ("xterm-256color", "WezTerm")
    Emulator.via_csi: Ok(WezTerm)
    Emulator.detect : WezTerm

Adapter
    Adapter.matches: Iterm2

Desktop
    XDG_SESSION_TYPE: Some("x11")
    WAYLAND_DISPLAY : None
    DISPLAY         : Some(":0")

SSH
    shared.in_ssh_connection: false

WSL
    /proc/sys/fs/binfmt_misc/WSLInterop: false

Variables
    SHELL              : Some("/bin/bash")
    EDITOR             : Some("nvim")
    YAZI_FILE_ONE      : None
    YAZI_CONFIG_HOME   : None
    ZELLIJ_SESSION_NAME: None

Text Opener
    default: Some(Opener { run: "${EDITOR:=vi} \"$@\"", block: true, orphan: false, desc: "$EDITOR", for_: None, spread: true })
    block  : Some(Opener { run: "${EDITOR:=vi} \"$@\"", block: true, orphan: false, desc: "$EDITOR", for_: None, spread: true })

tmux
    TMUX   : false
    Version: 3.4

Dependencies
    file             : 5.45
    ueberzugpp       : No such file or directory (os error 2)
    ffmpegthumbnailer: 2.2.2
    magick           : 7.1.1-36
    fzf              : 0.54.3
    fd               : 10.1.0
    rg               : 14.1.0
    chafa            : 1.14.2
    zoxide           : 0.9.4
    7z               : 23.01
    7zz              : 24.07
    jq               : 1.7.1

--------------------------------------------------
When reporting a bug, please also upload the `yazi.log` log file - only upload the most recent content by time.
You can find it in the "/home/mcrowe/.local/state/yazi" directory.

Did you try the latest nightly build to see if the problem got fixed?
No, and I'll explain why below
Describe the bug
I'm using nix and the latest in unstable.
When trying to install plugins such as chmod in a folder, this happens:
~/.config/yazi ❯ ya pack -a yazi-rs/plugins:chmod
Error: Invalid package `use`

This is referenced in https://github.com/sxyazi/yazi/issues/1511, but that issue is closed
Expected Behavior
ya pack should install the plugin
To Reproduce
Execute:  ya pack -a yazi-rs/plugins:chmod
Configuration
no config
Anything else?
No response

Please use the latest main branch, or at least the latest version 0.3.1


[Bug]: tfcdk-cli version value other than latest breaks build

Feature id and version
ghcr.io/devcontainers-contrib/features/tfcdk-cli:1.0.1
Devcontainer base Image
mcr.microsoft.com/devcontainers/base:bullseye
What happened?
Setting a value for version other than latest (for example 0.17.0) breaks the container build. The reason seems to be that the version number is appended instead of replacing the string latest: #0 13.80 npm ERR! Invalid tag name<EMAIL_ADDRESS>of package "cdktf-cli<EMAIL_ADDRESS>Tags may not have any characters that encodeURIComponent encodes..
devcontainer.json:
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/debian
{
	"name": "WS_CDKTF_Python",
	// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
	"image": "mcr.microsoft.com/devcontainers/base:bullseye",

	// Features to add to the dev container. More info: https://containers.dev/features.
	"features": {
		...
		"ghcr.io/devcontainers-contrib/features/tfcdk-cli:1": {
                        "version": "0.17.0"
		},
		...
	},
       ...
}

Relevant log output
=> ERROR [dev_containers_target_stage  9/18] RUN --mount=type=bind,from  14.2s
------
 > [dev_containers_target_stage  9/18] RUN --mount=type=bind,from=dev_containers_feature_content_source,source=tfcdk-cli_11,target=/tmp/build-features-src/tfcdk-cli_11     cp -ar /tmp/build-features-src/tfcdk-cli_11 /tmp/dev-container-features  && chmod -R 0755 /tmp/dev-container-features/tfcdk-cli_11  && cd /tmp/dev-container-features/tfcdk-cli_11  && chmod +x ./devcontainer-features-install.sh  && ./devcontainer-features-install.sh  && rm -rf /tmp/dev-container-features/tfcdk-cli_11:
#0 0.105 ===========================================================================
#0 0.105 Feature       : Terraform CDK CLI (via npm)
#0 0.105 Description   : Cloud Development Kit for Terraform (CDKTF) allows you to use familiar programming languages to define and provision infrastructure. This gives you access to the entire Terraform ecosystem without learning HashiCorp Configuration Language (HCL) and lets you leverage the power of your existing toolchain for testing, dependency management, etc.
#0 0.105 Id            : ghcr.io/devcontainers-contrib/features/tfcdk-cli
#0 0.105 Version       : 1.0.1
#0 0.105 Documentation : http://github.com/devcontainers-contrib/features/tree/main/src/tfcdk-cli
#0 0.105 Options       :
#0 0.105     VERSION="0.17.0"
#0 0.105 ===========================================================================
#0 0.107 bash: cannot set terminal process group (1): Inappropriate ioctl for device
#0 0.107 bash: no job control in this shell
#0 1.451 nanolayer
#0 4.762 cd /tmp/tmpa76wp63l && chmod +x -R . && _REMOTE_USER="vscode" _REMOTE_USER_HOME="/home/vscode" PACKAGE="cdktf-cli@latest" VERSION="0.17.0" NANOLAYER_VERBOSE="" NANOLAYER_FORCE_CLI_INSTALLATION="" NANOLAYER_PROPAGATE_CLI_LOCATION="1" NANOLAYER_CLI_LOCATION="/tmp/nanolayer-qygosF8rTU/nanolayer" bash  -i  +H ./install.sh
#0 4.762 Installing node and npm...
Get:1 http://deb.debian.org/debian bullseye InRelease [116 kB]
Get:2 https://dl.yarnpkg.com/debian stable InRelease [17.1 kB]
Get:3 http://deb.debian.org/debian-security bullseye-security InRelease [48.4 kB]
Get:4 http://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]
Get:5 https://dl.yarnpkg.com/debian stable/main arm64 Packages [10.9 kB]
Get:6 https://dl.yarnpkg.com/debian stable/main all Packages [10.9 kB]
Get:7 http://deb.debian.org/debian bullseye/main arm64 Packages [8071 kB]
Get:8 http://deb.debian.org/debian-security bullseye-security/main arm64 Packages [242 kB]
Get:9 http://deb.debian.org/debian bullseye-updates/main arm64 Packages [12.1 kB]
Fetched 8572 kB in 1s (7354 kB/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
#0 7.078 Recommended packages:
#0 7.078   nodejs
#0 7.091 The following NEW packages will be installed:
#0 7.091   yarn
#0 7.093 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
#0 7.093 Need to get 893 kB of archives.
#0 7.093 After this operation, 5415 kB of additional disk space will be used.
Get:1 https://dl.yarnpkg.com/debian stable/main arm64 yarn all 1.22.19-1 [893 kB]
Fetched 893 kB in 0s (5609 kB/s)
#0 7.673 Selecting previously unselected package yarn.
(Reading database ... 25619 files and directories currently installed.)
#0 7.683 Preparing to unpack .../yarn_1.22.19-1_all.deb ...
#0 7.684 Unpacking yarn (1.22.19-1) ...
#0 7.761 Setting up yarn (1.22.19-1) ...
#0 7.997 => Downloading nvm from git to '/usr/local/share/nvm'
=> Cloning into '/usr/local/share/nvm'...
#0 8.611 remote: Enumerating objects: 360, done.
remote: Counting objects: 100% (360/360), done.
remote: Compressing objects: 100% (306/306), done.
remote: Total 360 (delta 40), reused 170 (delta 28), pack-reused 0
Receiving objects: 100% (360/360), 219.85 KiB | 4.23 MiB/s, done.
Resolving deltas: 100% (40/40), done.)
#0 9.508 * (HEAD detached at FETCH_HEAD)
#0 9.508   master
#0 9.511 => Compressing and cleaning up git repository
#0 9.515
#0 9.519 => Profile not found. Tried  (as defined in $PROFILE), ~/.bashrc, ~/.bash_profile, ~/.zprofile, ~/.zshrc, and ~/.profile.
#0 9.519 => Create one of them and run this script again
#0 9.519    OR
#0 9.519 => Append the following lines to the correct file yourself:
#0 9.519
#0 9.519 export NVM_DIR="/usr/local/share/nvm"
#0 9.519 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
#0 9.519
#0 9.542 => Installing Node.js version lts/*
#0 9.775 Downloading and installing node v18.16.1...
#0 9.925 Downloading https://nodejs.org/dist/v18.16.1/node-v18.16.1-linux-arm64.tar.xz...
######################################################################## 100.0%
#0 10.39 Computing checksum with sha256sum
#0 10.47 Checksums matched!
#0 12.24 Now using node v18.16.1 (npm v9.5.1)
#0 12.39 Creating default alias: default -> lts/* (-> v18.16.1 *)
#0 12.49 => Node.js version lts/* has been successfully installed
#0 12.49 => Close and reopen your terminal to start using nvm or run the following to use it now:
#0 12.49
#0 12.49 export NVM_DIR="/usr/local/share/nvm"
#0 12.49 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
#0 12.76 default -> lts/* (-> v18.16.1 *)
#0 12.76 Updating /etc/bash.bashrc and /etc/zsh/zshrc...
#0 12.78 Skip installing pnpm because npm is missing
#0 12.78 Verifying node-gyp OS requirements...
#0 12.95 nvm cache cleared.
#0 12.98 Done!
#0 13.80 npm ERR! code EINVALIDTAGNAME
#0 13.80 npm ERR! Invalid tag name<EMAIL_ADDRESS>of package "cdktf-cli<EMAIL_ADDRESS>Tags may not have any characters that encodeURIComponent encodes.
#0 13.80
#0 13.80 npm ERR! A complete log of this run can be found in:
#0 13.80 npm ERR!     /root/.npm/_logs/2023-06-29T07_26_16_800Z-debug-0.log
#0 13.80 Traceback (most recent call last):
#0 13.86   File "<string>", line 1, in <module>
#0 13.86   File "nanolayer.__main__", line 50, in main
#0 13.86   File "typer.main", line 328, in __call__
#0 13.86   File "typer.main", line 311, in __call__
#0 13.86   File "click.core", line 1130, in __call__
#0 13.86   File "typer.core", line 778, in main
#0 13.86   File "typer.core", line 216, in _main
#0 13.86   File "click.core", line 1657, in invoke
#0 13.86   File "click.core", line 1657, in invoke
#0 13.86   File "click.core", line 1404, in invoke
#0 13.86   File "click.core", line 760, in invoke
#0 13.86   File "typer.main", line 683, in wrapper
#0 13.86   File "nanolayer.cli.install", line 65, in install_devcontainer_feature
#0 13.86   File "nanolayer.installers.devcontainer_feature.oci_feature_installer", line 134, in install
#0 13.86   File "nanolayer.utils.invoker", line 56, in invoke
#0 13.86 nanolayer.utils.invoker.Invoker.InvokerException: The command 'cd /tmp/tmpa76wp63l && chmod +x -R . && _REMOTE_USER="vscode" _REMOTE_USER_HOME="/home/vscode" PACKAGE="cdktf-cli@latest" VERSION="0.17.0" NANOLAYER_VERBOSE="" NANOLAYER_FORCE_CLI_INSTALLATION="" NANOLAYER_PROPAGATE_CLI_LOCATION="1" NANOLAYER_CLI_LOCATION="/tmp/nanolayer-qygosF8rTU/nanolayer" bash  -i  +H ./install.sh' failed. error: Return Code: 1. see logs for details.
#0 14.01 ERROR: Feature "Terraform CDK CLI (via npm)" (ghcr.io/devcontainers-contrib/features/tfcdk-cli) failed to install! Look at the documentation at http://github.com/devcontainers-contrib/features/tree/main/src/tfcdk-cli for help troubleshooting this error.
------
Dockerfile.extended:60
--------------------
  59 |
  60 | >>> RUN --mount=type=bind,from=dev_containers_feature_content_source,source=tfcdk-cli_11,target=/tmp/build-features-src/tfcdk-cli_11 \
  61 | >>>     cp -ar /tmp/build-features-src/tfcdk-cli_11 /tmp/dev-container-features \
  62 | >>>  && chmod -R 0755 /tmp/dev-container-features/tfcdk-cli_11 \
  63 | >>>  && cd /tmp/dev-container-features/tfcdk-cli_11 \
  64 | >>>  && chmod +x ./devcontainer-features-install.sh \
  65 | >>>  && ./devcontainer-features-install.sh \
  66 | >>>  && rm -rf /tmp/dev-container-features/tfcdk-cli_11
  67 |
--------------------
ERROR: failed to solve: process "/bin/sh -c cp -ar /tmp/build-features-src/tfcdk-cli_11 /tmp/dev-container-features  && chmod -R 0755 /tmp/dev-container-features/tfcdk-cli_11  && cd /tmp/dev-container-features/tfcdk-cli_11  && chmod +x ./devcontainer-features-install.sh  && ./devcontainer-features-install.sh  && rm -rf /tmp/dev-container-features/tfcdk-cli_11" did not complete successfully: exit code: 1
[24760 ms] Error: Command failed: docker buildx build --load --build-context dev_containers_feature_content_source=/var/folders/nv/pp7kflls789brz1v4r63sxhw0000gn/T/devcontainercli/container-features/0.42.0-1688023553347 --build-arg _DEV_CONTAINERS_BASE_IMAGE=mcr.microsoft.com/devcontainers/base:bullseye --build-arg _DEV_CONTAINERS_IMAGE_USER=root --build-arg _DEV_CONTAINERS_FEATURE_CONTENT_SOURCE=dev_container_feature_content_temp --target dev_containers_target_stage -t vsc-ws-cdktf-python-61b4e39198fccad39ad73015cd9cf30b6ff6aec765642294c774bec4971eb90d-features -f /var/folders/nv/pp7kflls789brz1v4r63sxhw0000gn/T/devcontainercli/container-features/0.42.0-1688023553347/Dockerfile.extended /Users/felix/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data/empty-folder

@fex01 Thanks for reporting this!
Indeed it was a bug - it was fixed in  PR #485
In the same PR an new test has been added to verify version selection is working properly
please try:  ghcr.io/devcontainers-contrib/features/tfcdk-cli:1.0.2

This project is not associated with the devcontainer project and appears to have been abandoned https://github.com/devcontainers-contrib/features/issues/628 . The official project has removed all devcontainer-contrib features from their listing. https://github.com/devcontainers/devcontainers.github.io/issues/451. There is a fork that is being worked on to update and maintain the features https://github.com/devcontainers-extra/features