Manual escaping via JavaScript

This probably needs better testing. The dev workflow pipeline with the HTML code is a mess outside of vim right now. We might wanna consider to switch to a solution which supports preprocessing like https://kit.svelte.dev does. We also need to run a formatter over that code, since not only tabulation, but also naming of variables greatly differs between places.

Thanks a lot for this pull request, I will test it right now and let you know if everything works as expected.

The dev workflow pipeline with the HTML code is a mess outside of vim right now

Can you explain what you mean by "a mess" ? I am developing with the VS Code Live server, and never run into any problems.
Also, I am normally testing and developing the HTML file here: https://github.com/kolibril13/plywood-gallery-functions and then copy and paste it into the template.

consider to switch to a solution which supports preprocessing like https://kit.svelte.dev/ does

What do you mean by preprocessing? Preprocessing like in "rendering the images to a static page and not loading them via JavaScript"?

We also need to run a formatter over that code, since not only tabulation, but also naming of variables greatly differs between places

I ran the VSCode internal formatter. Do you have any suggestions for other good HTML formatter?

The dev workflow pipeline with the HTML code is a mess outside of vim right now

When testing I need to run plywood's generateHtml method each time I want to see how things are doing. It is lacking hot code reloading. We haven't setup any browser testing nor testing cases.

What do you mean by preprocessing? Preprocessing like in "rendering the images to a static page and not loading them via JavaScript"?

Preprocessing means processing the HTML (minification, optimization and prerendering states stored in javascript code) before runtime. This also allows us to use Typescript and ship the Webpage at very small sizes.

I ran the VSCode internal formatter. Do you have any suggestions for other good HTML formatter?

Prettier should do the job

Just tested this pr, but now I get wrong string formatting:
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
plt.rcParams['figure.dpi'] = 150
plt.rcParams['lines.linewidth'] = 2

where it should be
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
plt.rcParams['figure.dpi'] = 150
plt.rcParams['lines.linewidth'] = 2

that is actually the same error like here:
https://github.com/Rickaym/plywood-gallery-for-vscode/issues/6#issuecomment-1320100848
What we could do:
Remove this line also
https://github.com/kolibril13/plywood-gallery/blob/ab4aaf9253778aac78e7f77aff5adaf27acd297b/plywood_gallery/plywood_tools.py#L93
and it should probably work.

Just tested that, removing plywood-gallery/plywood_gallery/plywood_tools.py
actually works.
Do we want to do that?
That would require re-running all Jupyter notebooks for all plywood galleries for the next version, though.

When testing I need to run plywood's generateHtml method each time I want to see how things are doing. It is lacking hot code reloading. We haven't setup any browser testing nor testing cases.

That's true, my workaround was to make development not in the template but in an existing gallery. When I was happy, I was bringing back the code into the template. The hot code reloading would be a nice thing to have! Would you be interested in contributing browser and case testing? :)

Preprocessing means processing the HTML (minification, optimization and prerendering states stored in javascript code) before runtime. This also allows us to use Typescript and ship the Webpage at very small sizes.

That sounds very useful! How does one do that? Are you interested in making that contribution?

Prettier should do the job

Thanks for that suggestion!

Just tested this pr, but now I get wrong string formatting:
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
plt.rcParams['figure.dpi'] = 150
plt.rcParams['lines.linewidth'] = 2

where it should be
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
plt.rcParams['figure.dpi'] = 150
plt.rcParams['lines.linewidth'] = 2

We'd need to replace all the escape html sequences. While doing so this would also fix https://github.com/Rickaym/plywood-gallery-for-vscode/issues/6

That sounds very useful! How does one do that? Are you interested in making that contribution?

The easiest way would probably be to use a frontend framework like Svelte(Kit)

We'd need to replace all the escape html sequences. While doing so this would also fix https://github.com/Rickaym/plywood-gallery-for-vscode/issues/6

Let's do that then!
can you make a commit removing this line ?  https://github.com/kolibril13/plywood-gallery/blob/ab4aaf9253778aac78e7f77aff5adaf27acd297b/plywood_gallery/plywood_tools.py#L93

Should be fixed now.

The only downsides would be that

we'd need to change the templating algorithm to export to typescript configuration files

that's not a problem, the project is still new, and we can introduce breaking changes without making too much damage.

the user who wanted to generate the pages would need to have nodejs installed, since Svelte(Kit) is a JavaScript
framework

I think that's a bigger issue. Usability should be an important factor.
Also, I love this feature that one can just open a HTML Live Server in VS Code and see how the gallery is updating in real time. Would that from the below screen recording also still be possible with Svelte?
https://user-images.githubusercontent.com/44469195/208446580-cfd5a2da-e461-40b4-b2f1-93c284adcf3b.mov
Further thoughts:
One day, I also would love to integrate this into sphinx, the python framework that produces documentation like this https://seaborn.pydata.org/examples/index.html and this https://matplotlib.org/stable/gallery/index Would that still be possible when we use the JavaScript framework?
Also, I see two cases right now:

A) Developing the plywood gallery infrastructure
B) Using plywood gallery to build your own documentation

Is it also possible to have this build system only for point A) , so that point B) would only deal with plain HTML, JavaScript and CSS like right now?

The only downsides would be that

we'd need to change the templating algorithm to export to typescript configuration files

that's not a problem, the project is still new, and we can introduce breaking changes without making too much damage.

the user who wanted to generate the pages would need to have nodejs installed, since Svelte(Kit) is a JavaScript
framework

I think that's a bigger issue. Usability should be an important factor. Also, I love this feature that one can just open a HTML Live Server in VS Code and see how the gallery is updating in real time. Would that from the below screen recording also still be possible with Svelte?
live.mov
Further thoughts:
One day, I also would love to integrate this into sphinx, the python framework that produces documentation like this https://seaborn.pydata.org/examples/index.html and this https://matplotlib.org/stable/gallery/index Would that still be possible when we use the JavaScript framework?
Also, I see two cases right now:
* A) Developing the plywood gallery infrastructure

* B) Using plywood gallery to build your own documentation

Is it also possible to have this build system only for point A) , so that point B) would only deal with plain HTML, JavaScript and CSS like right now?

We could ship compiled (minified and preprocessed) html files which could then be templated after, however I do not think that this would be worth the work, neither would it be good to ship computer generated files over version control. It would still kinda be great to preprocess the HTML tho, so that we could atleast get typescript support.
There is a workaround tho, which involves using type documentation comments https://jsdoc.app/tags-type.html
We could try to find a python package which then minifies th3 generated HTML, removing the JS Comments as they are unneccessary in production.
I do not know if such exists. If not we could let the user minify their code by hand using external tools.

Yep, it's fixed. Should I merge?

You should be good to go

Cool, thanks a lot for this contribution!
Regarding our current discussion, I've opened:
https://github.com/kolibril13/plywood-gallery/issues/15
Would you have the time to summarize some of the ideas from here in that issue? :)

The new release is online https://pypi.org/project/plywood-gallery/ ! 🎉


Enhance readme

To acknowledge Pinocchio, the best way is to write something like: for more details about how to cite Pinnochio read the Readme file, instead of including the Pinocchio bibtex. This is also more appropriate since, for instance, we might want to cite the analytical derivatives paper or collision avoidance stuffs.

FIne to refer to the bibtex in Pinocchio, but at least this should be explicitly mentioned. I let you handle it.

@jcarpent  I have modified the readme as discussed.
I also included the tags for conda stuff.
Please confirm that you agree with it :)
Thank you for integrating Conda, I just have one single question.
Why is written BSD-2 in conda (https://anaconda.org/conda-forge/crocoddyl)?
Is this a mistake?

Why is written BSD-2 in conda (https://anaconda.org/conda-forge/crocoddyl)?
Is this a mistake?

Yes, this my mistake. I've just fixed it.

Looks good to me.

Thanks again!
It is very useful indeed the Conda support :)


Container adding inline padding that isn't needed on YT video

https://www.wearebirmingham.co.uk/wabtv/201920-kit-launch/
We're getting big black bars above and below each video that isn't needed on mobile or desktop. It's adding padding-bottom:74.9455%; to the player which when removed fits perfect. Not sure where it's getting this padding from though?

It's down to this section:
    function oe(e) {         if (!this.isVideo) return {};         var t = re.call(this, e),             n = a(E.array(t) ? t : [0, 0], 2),             i = 100 / n[0] * n[1];         if (this.elements.wrapper.style.paddingBottom = "".concat(i, "%"), this.isVimeo && this.supported.ui) {             //var s = (240 - i) / 4.8;             this.media.style.transform = "translateY(-".concat(s, "%)")         } else this.isHTML5 && this.elements.wrapper.classList.toggle(this.config.classNames.videoFixedRatio, null !== t);         return {             padding: i,             ratio: t         }     }
Is this important if I'm going to be solely using videos from YouTube?

That would be the ratio logic to accommodate unusual aspect ratios. I suspect you've not got the latest SASS/CSS? It should work fine with the latest as per the demo.

Your link seems to be ok but I presume you've changed something there.

I have the same problem here with some videos. Any workaround? Thanks.

Same issue here with latest Plyr version. Strange thing is it is only happening on localhost, not on a server with the same build. Still trying to figure out why the padding is added.


Update style.css

added sans serif as a backup font

Thank you for your invaluable contributions to our open-source project! 🚀 If you like our project, please consider to start ⭐ the repo.


refactor: use one method to add endpoints only

Description
Simplify the interface to add new endpoints. addSenderReceiver(T endpoint) should be sufficient.
Checklist

[x] My code follows the style guidelines of the project
[x] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation

:tada: This PR is included in version 2.1.1 :tada:
The release is available on:

2.1.1
GitHub release

Your semantic-release bot :package::rocket:


Support for CosmosSDK v0.46

Hey, I believe since v0.46.x onwards the LCD endpoints have changed
for example blocks/latest is now
https://api-umee-ia.cosmosia.notional.ventures/cosmos/base/tendermint/v1beta1/blocks/latest
and the old endpoints is now deprecated which means RESTake is now longer working for the chains that upgrade to the newer SDK chains such as Umee

I'll have this sorted later today - the necessary updates have been made to cosmos.directory but REStake still needs an update for custom restUrl configs.

Legend!

Hey one of my delegators just tried granting a new address via ledger on umee
https://www.mintscan.io/umee/txs/2160034687CC2C87AAF02B880EF487231D243DFCCA424F01ED0743D7186FF47A
however restake script is not picking it up
it is still working fine for his old non-ledger address though - could this be related to the new endpoints too?

Looks fine.. the logs should mention their address and the fact it's a generic grant but still allowed. Do you see any mention of their address at all?
The only other cause I can think of would be your node running behind and hadn't picked up the TX with the grant yet.


dlib Python module references save_jpeg() even if built with DLIB_JPEG_SUPPORT=0

When building dlib with -DDLIB_JPEG_SUPPORT=0, Python bindings shouldn't unconditionally refer to save_jpeg() (in face_recognition module), otherwise dlib becomes unimportable like so:
ImportError: dlib.cpython-36m-x86_64-linux-gnu.so: undefined symbol:
_ZN4dlib9save_jpegERKNS_7array2dINS_9rgb_pixelENS_33memory_manager_stateless_kernel_1IcEEEERKSsi

Why would you compile the python bindings without jpeg support in the first
place?

In my particular case? Since I only use dlib for its global opt module, nothing to do with image-related stuff - and because of this build issue all Python environments that use dlib have to carry a ljbjpeg around.

Are there any problems this causes? What bad things happen because of this?
I'm not excited about adding more switches because users find them
confusing.  I don't want to get questions from people like, "I compiled
with DLIB_JPEG_SUPPORT=0 and then got an error that I couldn't load a jpeg
file. I am confused."  I get lots of such questions already. :(

My point of view, as a user, may be different from yours, of course :) Ditto re: not being excited about adding more switches, but here goes:

Most 'normal' users of the Python side of dlib would just do a pip install or conda install a pre-built tarball, not having to mess with cmake compile flags and the like. This gives them the 'whole thing' if possible so, thus no questions.
Those who disable things on purpose (e.g. jpeg support) probably do so because they know what they're doing and why they're doing it - in which case it should be no surprise to them that this or that feature ends up being disabled; I would be very surprised if someone purposefully disabled jpeg support and then opened a ticket to complain about, as you've noted above.
There's parts of dlib (e.g. global optimization) that don't deal with any image related stuff; making libjpeg.so a hard dependency of the Python package is pretty brutal, since now you either have to ensure the boxes you deploy your Python package to have libjpeg installed, or haul it around in every conda environment your package gets installed to, depending on how you're structuring/packaging your Python code. If it wasn't for libjpeg, the only dependency is numpy - which makes total sense.
When building Python package, you could probably wrap module bindings that depend on libjpeg in an ifdef and possibly output a big red cmake warning when building pybind11 bindings (e.g. "face_detection module is disabled due to jpeg_support=0").

I would be very surprised if someone purposefully disabled jpeg
support and then opened a ticket to complain about, as you've noted above.

Yes, it's very surprising.  But I nevertheless get a huge number of
questions along these lines.

There's parts of dlib (e.g. global optimization) that don't deal
with any image related stuff; making libjpeg.so a hard dependency of the
Python package is pretty brutal, since now you either have to ensure the
boxes you deploy your Python package to have libjpeg installed, or haul it
around in every conda environment your package gets installed to, depending
on how you're structuring/packaging your Python code. If it wasn't for
libjpeg, the only dependency is numpy - which makes total sense.
When building Python package, you could probably wrap module
bindings that depend on libjpeg in an ifdef and possibly output a big red
cmake warning when building pybind11 bindings (e.g. "face_detection module
is disabled due to jpeg_support=0").

I'm convinced.  Can you submit a PR with the necessary #ifdefs or whatever
in the code so the build doesn't fail?

Thanks! I'll try and do so in the next few days.


how to access another hard drive

fclones-gui can't acess my other drives. How do I change snap permissions to allow this access?

I solved it with snap connect fclones-gui: ....


Run spec by default

This makes CI useful again.

Not going to take these patches, as I'm waiting for @PierreRambaud 's merge.  Thanks anyway.


Update PlainTextInputElement description

Summary
(Describe the goal of this PR. Mention any related Issue numbers)
Category (place an x in each of the [ ])

[ ] slack_sdk.web.WebClient (Web API client)
[ ] slack_sdk.webhook.WebhookClient (Incoming Webhook, response_url sender)
[x] slack_sdk.models (UI component builders)
[ ] slack_sdk.oauth (OAuth Flow Utilities)
[ ] slack_sdk.rtm.RTMClient (RTM client)
[ ] slack_sdk.signature (Request Signature Verifier)
[ ] /docs-src (Documents, have you run ./docs.sh?)
[ ] /docs-src-v2 (Documents, have you run ./docs-v2.sh?)

Requirements (place an x in each [ ])

[X ] I've read and understood the Contributing Guidelines and have done my best effort to follow them.
[X ] I've read and agree to the Code of Conduct.
[X ] I've run python setup.py validate after making the changes.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.admin-user seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Not sure how to add the correct labels

@jelizaga3-gatech Thanks for fixing this - LGTM. Could you sign the CLA?

Ah. all is set. Thanks!


Extend the "Create New Filter" with a new search function by the variable name from the translate file (to be used in the future version of the module)

Please use the search functionality before reporting an issue. Also take a look at the closed issues!
Issue description:
Selecting a function in the "Create New Filter" window would be worthwhile in the future to develop one more, more useful function.
We now have a choice:

Use the item we have in the window
Use the window name acquired from the Dictionary
Material
Mod ID

Would there be a chance in the future edition (n.1.13) to add a window named after its own name to the player so that the player could use the names from the translate files?
It would be very user friendly, especially from countries whose languages do not resemble English at all (Cyrillic, Chinese, Korean, Japanese).
Steps to reproduce:

Use the variable from the translate file to find the item

Version (make sure you are on the latest version before reporting):
Forge:
Mekanism:
Other relevant version:
If a (crash)log is relevant for this issue, link it here: (It's almost always relevant)
[gist/pastebin/etc link here]

So what happens on a multiplayer server, when two players have their games set to different languages, and they both try to add filters to the same sorter? I think this (and anything else that would make gameplay depend on localization) is a bad idea.

This is not really feasible as localisation is not possible server side (other than english)

After all, in Just Enough Items this sort is used and even on JeI Mod servers are working properly, so how come the objection?

I do not understand why words in local languages can not be used in search? After all, Just Enough Items Mod. We type the word in the local language, and the script translates the word into the variable used in the xx_xx.lang file. All variables used in xx_xx.lang files are identical.
Even on the server the item variable names are identical, otherwise the names could not be translated. This solution is used in Just Enough Items Mod

The current system used to sort the "Create New Filter" items is not enough if the player is not playing in Creative mode. Why? Let's try to sort the Coal, Redstone, Egg, Bone or Flint without having them in the backpack.
a) Item function - requires using the item to program the device (not suitable)
b) The Dictionary - item dictionary does not even detect items such as Coal, Redstone, or Flint, as in the rest of Vanilla in the Miscellaneous tab (not suitable).
c) Function Material - too broad sorting concept, with the rest of what raw is Coal or Egg? (unsuitable)
d) Mod ID - This is the ID of the module itself, because typing ID Coal or 263 Coal does not exist.

The current system simply does not search for a very large number of items, which in the case of a game in a different mode than Creative (where we can manually add items) it 's impossible to program at least 100-150 items only from Vanilla.

Because JEI runs entirely on the client, but the item sorter runs on the server.
Why exactly is option A not suitable?

josephcsible:
ad 1. Are there other variables on the server in the lang files than on the client? I doubt it.
ad 2. And how do you throw in an item item you do not own?
Do not know how to enter a name or ID in A (version 1.12.1) if no text entry window?

Minecraft's architecture is such that the server is never supposed to use the translation files. Those are meant to be a client-only resource, just like textures and sounds.
Does the + button in JEI let you do this? It's generally the standard way to add virtual items that you don't have a real one of.

So, according to you, how to add Coal Redstone, Flint, Bone etc. to the sort without having these items?
Probably a solution that eliminates 100-150 items only from Vanilla alone is a serious problem?
Elon Musk says that if something can not be done, it means that whoever says it can not do it, not that it can not be done at all.

I agree with @josephcsible on this one.. It's not feasable to implement something like you want.
Regarding your quote of Elon Musk, it's true what he said, only if you are in control of it all. We aren't in control of Minecraft & Forge. We can't change it so that the server knows every language, which is by the way client side adjustable without the server knowing.

So, according to you, how to add Coal Redstone, Flint, Bone etc. to the sort without having these items?

Again, the plus sign button in JEI.

The "+" button in JEI 1.12.1 does not cause any reaction. In Controls, the keys for JEI are only CTRL + F and CTRL + O, the same "+" is not programmed.

Not the + key on your keyboard. There's a + on-screen button in the recipe GUI.

The current filters are all you should need. The ore dictionary filter can do most of the 'I want this ore but don't have it' uses, and the ItemStack can do the rest.
I don't like the idea of just being able to type in an item name, and I seem to recall talk of that being denied previously.

josephcsible:
Hm, we have different versions of JEI. In my recipe GUI only icon with the letter "i" (Information?) Is displayed.
In the picture http://www.img4.9minecraft.net/img2/Just-Enough-Items-Mod-5.jpg there is such an icon - I do not have it.

@thiakil Personally, I wouldn't mind being able to filter items by registry name.
@EliogabalusPL It's right under the "1" in "Steps: 1" in that screenshot. (Also, eww 9minecraft).

@josephcsible In the picture I see those damn + but the problem is that in my Minecraft with JEI on the same prescription they are not there. Maybe version 1.12.1 has been removed?

It has not been removed. Is there any button there?

AFAIK mods need to add support for the + button (or something else) to allow JEI to fill in stuff like item filters. I don't know if any other mod has added support like this, I can only think of things that are similair that could have support, but I don't know for sure. ItemFilter from EnderIO, RefinedStorage/AE2/AL2 with their filters.

@josephcsible
I am sending you a link from my recipe window (there is + in it):
https://1drv.ms/i/s!At_Q76MtyFIHhwtavxlDRL8BgEHV

@thommy101 Good point. Other mods with item filters all support that button, so I assumed we would too. We really should add support for that ourselves.

We currently do support the + for crafting recipes in the formulatic assembler & robit crafting grid.
@josephcsible If you know (for sure) a mod which supports it for item filters (or something like it), I would love to know about it. Adding support (if possible) should be doable.

Integrated Dynamics supports making item variable cards that way.

Hm, but it's good that I was interested in this topic. Because it can solve this problem in a different way.

I'll create a separate issue about the + integration for the filters ;) (it's not something which is done in 5 min)


[META] Clarification needed on adding additional devices

I'm looking to start adding support for a couple of devices (STM32F070 and STM32F091), and I'm just looking for some clarification on something before I get started. I'm still relatively new to Rust so hopefully I'm not missing something simple :smile:
Initial support for the STM32F030, which is quite similar to the STM32F070, was recently added to the repository, so I planned on basing my patch(es) off of the work already done.  Most of the changes made so far make sense to me; at this time the major point of confusion for me lies in Cargo.toml.
This all makes perfect sense, and is exactly how I would expect it to look:
[features]
rt = ["stm32f0/rt"]
stm32f042 = ["stm32f0/stm32f0x2"]
stm32f030 = ["stm32f0/stm32f0x0"]

The remainder, however, has me a bit confused:
stm32f030x4 = ["stm32f030x6"]
stm32f030x6 = ["stm32f030"]
stm32f030x8 = ["stm32f030", "stm32f0/stm32f0x0"]
stm32f030xc = ["stm32f030", "stm32f0/stm32f0x0"]

My first question is, why does the STM32F030 have a feature for the base model as well as the four available variants, while the STM32F042 only has the base model listed as a feature, ignoring its variants?
Second, I'm not quite understanding the dependencies listed for the STM32F030 variants; I'm not sure if an error has been made here or if I'm just failing to understand it. In my mind the stm32f030 = ["stm32f0/stm32f0x0"] is the only line that should be required, and the remainders seems redundant, so hopefully somebody call fill in the blanks on what's going on here.
Thanks in advance, keep up the great work!

@jessebraham The reason for that is that STM32F030 comes in different packages which offers different peripherals while most other models have the same peripherals but some are simply not accessible externally when using a smaller package, e.g. the STM32F042.
The STM32F070 is indeed quite similar to the F030, including the peripheral nonsense, so it will also need the packages stuff, while the STM32F091 seems to be on the non-nonsense side.

Perfect, that is along the lines of what I was thinking, just wanted to be certain before doing too much work. Thanks for the quick reply!


New definition of uncontrolled components?

I was reading the new documentation for useRef, saw an overcomplicated example, made a PR where I wanted to reference the new docs for uncontrolled components, but for some reason the definition has completely changed from the original docs.
In my opinion, the new definition is wrong. An uncontrolled component is a component where the value is not stored by react at all, but rather stored natively in the DOM element.
The new docs state

It is common to call a component with some local state “uncontrolled”. For example, the original Panel component with an isActive state variable is uncontrolled because its parent cannot influence whether the panel is active or not.

The definiton from old docs:

In a controlled component, form data is handled by a React component. The alternative is uncontrolled components, where form data is handled by the DOM itself.

new docs

https://beta.reactjs.org/learn/sharing-state-between-components#controlled-and-uncontrolled-components
https://beta.reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state#recommendation-fully-uncontrolled-component-with-a-key

Old docs:

https://reactjs.org/docs/uncontrolled-components.html

I also wondered about this part.
In my opinion, rather than just being wrong, it seems to be a new definition.
but, it cam makes some confusing about understanding controlled, uncontrolled component.


Variable + string interpolation or concatenation inside background-image url()

Hi @stevelacy and all,
been trying to do
image-base-url = 'http://domain.com/images/'
body
    background-image url({image-base-url + 'image.png'})

and variations of that, so I can interpolate or concatenate the url.
Is that possible? If so, how do I do it?
Many thanks,
Gus

Please ask this on the stylus project: https://github.com/stylus/stylus
Or read the stylus docs: http://stylus-lang.com/docs/interpolation.html

Thanks!


Regarding the version numbering scheme

I understand a decision has been made to release a new ManimCommunity version each month to keep everyone participating in its development motivated, which seems great. However, the current numbering scheme being time based is unideal, since the quantity and quality of improvements made in a month's time can vary quite arbitrarily. Therefore, I'd suggest changing to a more useful numbering scheme, which is more indicative of both the amount and depth of the changes made in each release. This could help people currently doing animation projects in manim to have a rough idea of the changes made and whether or not to consider upgrading to the latest version, and not feel 'lost' regarding the newest version with each coming month -as has personallly happened to me and the team I work with.

Could you give an example of what exactly you mean with a "more useful numbering scheme"?
Ultimately, we are releasing often in order to "keep things flowing" and to distribute the bugfixes and enhancements made during one release cycle to users. (Or at least: to give them the opportunity to upgrade to a newer version.) In that regard, we are putting quite some effort towards maintaining a changelog giving an overview over all the changes we have made within a release cycle.
Now, from our side it would be easy for releases like the current one, where we are – at the time of releasing – not aware of any breaking changes introduced to the library, to make it a minor release (i.e., v0.7.1 instead of v0.8.0). We can definitely pay more attention towards this in the future, but I don't think that we want to change the monthly releases; at least not for the next few ones.
If a particular version of the community edition is already working for you and your team, I'd recommend to simply stick with that version for a given project – but if you upgrade and something is broken that isn't mentioned in a "Breaking Changes" section in our changelog, please definitely do file a bug report: chances that we don't discover it on our own are, unfortunately, pretty large.

I don't think it's fair to say that our numbering scheme is time based. Our release schedule is time based, but our versioning is not. Aside from keeping development pumping along, since we're still at a somewhat unstable point in the project, time based releases are the best way to conveniently allow people to experience the newest improvements in a timely, stable manner.
To the best that I can tell and from what I vaguely remembering being decided before, we're loosely following semantic versioning. This is a pretty good argument against SemVer in my opinion. I really agree with what he said here:

For a long time in the history of software, version numbers indicated the relative progress and change in a given piece of software. A major release (1.x.x) was major, a minor release (x.1.x) was minor, and a patch release was just a small patch. You could evaluate a given piece of software by name + version, and get a feeling for how far away version 2.0.1 was from version 2.8.0.

Now, I actually think we're following this ideal of major, minor, and patch pretty well. We have not reached a point where we have a major release -- we still have some big milestones ahead of a major release that we would like to tackle. We also aren't churning out patch releases (v0.1.1 was kind of an anomaly since we were still early in the project and figuring out how we would release versions). So I think we're well within releasing these, more or less, as minor releases. I could see here an argument for nightly releases or a vW.X.Y.Z scheme, but practically this won't work well with PyPI to the best of my knowledge.
If we started releasing our monthly releases as patch releases (like v0.7.1), then the meaning of the third number is lost. It no longer indicates that it is a very small update where pretty much the only change is a bugfix (which has been repeatedly discussed as a backup option if we merge something before a monthly release that ends up breaking important functionality). That all being said, if we were to change our release schedule or versioning scheme, I think it would be best to do so after a major release and not in the middle of major releases.

since the quantity and quality of improvements made in a month's time can vary quite arbitrarily.

While this can be true (and probably is more true of this last release with people being busy), I would argue that our monthly releases are, more or less, pretty consistent with each other. I think they belong as minor releases for now, and I think they generally consistently come with a lot of enhancements, bugfixes, and new features.

Therefore, I'd suggest changing to a more useful numbering scheme, which is more indicative of both the amount and depth of the changes made in each release ... This could help people currently doing animation projects in manim to have a rough idea of the changes made and whether or not to consider upgrading to the latest version, and not feel 'lost' regarding the newest version with each coming month -as has personallly happened to me and the team I work with.

As behackl said, read the changelog! It's there for your benefit so that you can discern for yourself whether or not you should/need to upgrade as well as to see what's changed. Just because there is a new release does not mean you must upgrade, and if you're in the middle of a project, I would never upgrade unless I absolutely need something from the new release. If you do find yourself needing something, check the PR mentioned in the changelog for that change and see if it's a change that you can easily replicate yourself locally. Sometimes replicating a change to fix a bug or add a feature is better than upgrading -- particularly if you're in the middle of development.


Fix CI docker compose error

To address the following error on GitHub Actions test running job:

The issue and fix is described here,

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 88.02%. Comparing base (3ce5335) to head (79a9ba5).
Report is 13 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #450      +/-   ##
==========================================
- Coverage   88.61%   88.02%   -0.60%
==========================================
  Files          39       38       -1
  Lines        9109     8282     -827
==========================================
- Hits         8072     7290     -782
+ Misses       1037      992      -45

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Added fixes for clippy issues.


Redo spark_runner exclude test

This test was excluded in #30030. However, the change was later reverted in https://github.com/apache/beam/commit/f73ce82fb37c62aac66fb1d06e941932faa0982a#diff-005880cee144b69c4a7a7ff12b65497a75a41011570c1585fc9eced3e2c73323 likely unintended rebase error
Please add a meaningful description for your change here

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

R: @shunping @kennknowles

R: @damccorm (https://github.com/apache/beam/pull/30586#issuecomment-1986481920)

LGTM


Enable extension in untrusted workspace should be enabled and guide to trust worksapce

Testing #122228

Have an untrusted workspace, install eslint
Open extensions view, notice eslint is disabled
Context menu -> "enable" buttons are all disabled

I suggest to make these buttons enabled and that clicking on them takes the user to the workspace trust editor. I think that would be a nice flow.

This is a regression that has recently introduced and fixed today (thanks @sandy081!).
Tomorrow's insiders build will have the button to enable the extension which will prompt for trust.

Thanks, I can verify this with tomorrow's vscode insiders build.


Questions about sample code?

Hello, I am new to python and machine learning but need to use the library for a project. I read the website and the sample code but am still confused on how I can retrieve the features that have been (selected?) by each of the Relief algorithms.
Apologies if the site goes over this, but I didn't see any information on this. I had a couple questions:

How do we get back the features selected by each algorithm?
The sample code below for the ReliefF algorithm prints a number at the end of running the code, is this number relevant to feature selection?

import pandas as pd
import numpy as np
from sklearn.pipeline import make_pipeline
from skrebate import ReliefF
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score

genetic_data = pd.read_csv('https://github.com/EpistasisLab/scikit-rebate/raw/master/data/'
                           'GAMETES_Epistasis_2-Way_20atts_0.4H_EDM-1_1.tsv.gz',
                           sep='\t', compression='gzip')

features, labels = genetic_data.drop('class', axis=1).values, genetic_data['class'].values

clf = make_pipeline(ReliefF(n_features_to_select=2, n_neighbors=100),
                    RandomForestClassifier(n_estimators=100))

print(np.mean(cross_val_score(clf, features, labels)))
>>> 0.795

Thanks for any help, I've been trying to figure out this code using the internet for a couple weeks now but have not really gotten anywhere

Hello, I am new to python and machine learning but need to use the library for a project. I read the website and the sample code but am still confused on how I can retrieve the features that have been (selected?) by each of the Relief algorithms.
Apologies if the site goes over this, but I didn't see any information on this. I had a couple questions:

How do we get back the features selected by each algorithm?
The sample code below for the ReliefF algorithm prints a number at the end of running the code, is this number relevant to feature selection?

import pandas as pd
import numpy as np
from sklearn.pipeline import make_pipeline
from skrebate import ReliefF
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score

genetic_data = pd.read_csv('https://github.com/EpistasisLab/scikit-rebate/raw/master/data/'
                           'GAMETES_Epistasis_2-Way_20atts_0.4H_EDM-1_1.tsv.gz',
                           sep='\t', compression='gzip')

features, labels = genetic_data.drop('class', axis=1).values, genetic_data['class'].values

clf = make_pipeline(ReliefF(n_features_to_select=2, n_neighbors=100),
                    RandomForestClassifier(n_estimators=100))

print(np.mean(cross_val_score(clf, features, labels)))
>>> 0.795

Thanks for any help, I've been trying to figure out this code using the internet for a couple weeks now but have not really gotten anywhere

I met the same problem, there seems no way to find clear instructions on how to get ReliefF object from the pipeline object and how to get to know the selected features. I kept getting 'AttributeError: 'ReliefF' object has no attribute 'feature_importances_'' error prompt.


Add multiple nodes

This pull request introduces a significant new feature to the Lilypad Node Checker, allowing users to add multiple nodes at once via a comma-separated or multiline list of wallet addresses. Additionally, it includes various updates to the UI components and hooks to support this new functionality.
New Feature: Bulk Addition of Nodes

README.md: Added documentation for the new bulk addition feature, including instructions on how to use it. [1] [2]
src/components/wallet/AddWalletForm.tsx: Updated the form to accept multiple wallet addresses, including validation and error handling for invalid addresses. [1] [2] [3] [4]
src/hooks/useWalletData.ts: Modified the addWallet function to handle an array of wallet addresses, including validation and error handling for duplicate or invalid addresses. [1] [2]

UI Component Updates

src/components/ui/input.tsx: Removed unused import to clean up the code.

Hook Enhancements

src/hooks/useWalletData.ts: Updated dependencies in useEffect hooks to ensure proper reactivity and initialization. [1] [2]

Closes #1


offsetPosition error

Hi -
Thank you for making a great control!  I'm using this circular slider with Ionic framework and am running into an error as described below.  The circular slider has been working and only appeared after placing the circular slider within an Ionic modal, .
Perhaps you can provide some clues as to the root cause problem.  Thank you!

The error is as follows:
TypeError: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'.     at TypeError (native)     at $$ (http://localhost:3000/lib/angular.lib.js:31909:32)     at Object.position (http://localhost:3000/lib/angular.lib.js:31958:15)     at redrawShape (http://localhost:3000/lib/angular.lib.js:32662:32)     at link (http://localhost:3000/lib/angular.lib.js:32627:7)     at http://localhost:3000/lib/ionic.bundle.js:107:33     at Y (http://localhost:3000/lib/ionic.bundle.js:107:89)     at S (http://localhost:3000/lib/ionic.bundle.js:96:52)     at g (http://localhost:3000/lib/ionic.bundle.js:88:384)     at g (http://localhost:3000/lib/ionic.bundle.js:88:407) <circular-slider class="amount-slider acs-slider" shape="Circle" on-slide="c.onSlide" on-slide-end="c.onSlideEnd" radius="125" handle-dist-ratio="0.865" indicator-ball-ratio="0.28" min="c.min" max="c.max" value="c.amount">
Here are the relevant calls in the stack:
In redrawShape:
`function redrawShape() {
var component = buildComponents();
var radius = getRadius();
shapes[scope.shape].drawShape(component, radius);
drawIndicatorBall(component, radius);
    var $$acs = $$(component.acs);
    var $$acsIndicator = $$(component.acsIndicator);
    cs.acsPosition = **$$acs.position()**;`

In Object.position:
When offsetParent() is called the dom object is populated but the offsetParent = null.
function position() {       var p = $$(**offsetParent()**);
In $$:
function $$(elem) {     // only one element     var dom = elem[0];     var computedStyle = **window.getComputedStyle(dom, null);**
In window.getComputedStyle() 'dom' is undefined.
My dom is as follows:

<ion-modal-view class="applet-modal modal animated zoomIn ng-enter active ng-enter-active">

	  <ion-nav-bar class="bar bar-header bar-stable side='right' nav-bar-container" nav-bar-transition="ios">
			<ion-nav-buttons side="right" class="hide"></ion-nav-buttons>

<ion-header-bar class="bar bar-header bar-stable side='right'" align-title="center">

</ion-header-bar>

<ion-header-bar class="bar bar-header bar-stable side='right'" align-title="center">

</ion-header-bar>
</ion-nav-bar>

				  25

				  USD

				<circular-slider class="amount-slider acs-slider" shape="Circle" on-slide="c.onSlide" on-slide-end="c.onSlideEnd" radius="125" handle-dist-ratio="0.865" indicator-ball-ratio="0.28" min="c.min" max="c.max" value="c.amount">

    </circular-slider>

		      <button class="button outline round tiny" ng-click="c.pay()" ng-style="{'background': c.applet.view.payButtonBackground, 'border': c.applet.view.payButtonBorder, 'color': c.applet.view.payButtonColor}" style="border: 1px solid rgb(165, 178, 191); color: rgb(133, 151, 167); background: none;">
		        Donate now
		      </button>

</ion-modal-view>

can you try this?
    function offsetParent() {
      return angular.element(dom.offsetParent || dom.parentElement);
    }

Tried as suggested, not working.  The error is suppressed (since dom.parentElement is not null) but the math is all wrong and the indicator does not move.  The indicator is displayed in the upper left and the range (min..max) is cut down (I specify 10..100 and the presentation shows 32..52..32 on one complete path around the circle).  The parent element is acs-panel.

@ajp8164 I have no idea about ionic framework. If I can able to reproduce this issue, I can help you on that.

I don't have a minimal sample that breaks, I may try to recreate the error by doing this.  I'm just putting the circular slider inside an Ionic modal.  Found this but it doesn't point to anything concrete yet - http://stackoverflow.com/questions/306305/what-would-make-offsetparent-null.

How do I would check if the slider is hidden during rendering?

I'm trying to setup a codepen for testing but it's not working.  See http://codepen.io/ajp8164/pen/pgZqpJ. Thanks!

@ajp8164 try this

Great!  I added Ionic and placed CS in a modal.  The behavior in this pen exactly replicates what I see in my app.

@ajp8164 Hope this helps.

You were a few minutes ahead of me ;-)  The problem is that the modal is not fully loaded at the time the circular-slider is rendered.  This article states correctly that the offsetPosition is null if the document (in this case, the modal) is not finished loading.  This pen reflects what I implemented.  Thanks for your help on this!


Max value on Y axis with stacked column/line combo chart is adding column/line point totals instead of taking the max between them

Description
When using a stacked column/line chart combo, the max should be set to the maximum value(sum of a stacked column or a single data point for the line) across the entire data set. Instead, it appears to be taking the max when adding the column stack with the line on its same x-intersect.
Steps to Reproduce

Create a combo stacked column/line chart. Using high values will help notice the disparity.
Label the columns are stacked: true and the line as stacked: false
The y axis max will be the line/column stack values added together.

Expected Behavior
The highest value is used to calculate the max for the y axis
Actual Behavior
The highest among the stacked/line, not the combined total, is used to create the y-axis values. Notice in the example that the y axis extends far beyond the highest point in the graph (line or column).
Reproduction Link
https://codepen.io/Bfalls158/pen/GRMqaZy

Anything on this by chance? Running into issues when trying to calculate max on values after ajax has loaded and unable to find a workaround.

+1
This issue in 2024 is still here.

@junedchhipa, we are still facing this issue. Is there any workaround for it ?


kvdbproxy handle disconnect in kvdbplugin

when the kvdbplugin is disconnected from datastore ignoreList in kvdbproxy should be cleared

not applicable anymore


Vim filename/path completion

Before using vim-rooter, I had set autochdir, so that the current folder was always the active buffer folder. This was great in combination with filename completion (compl-filename) .
Since I started using airblade/vim-rooter, the filename completetion starts from the project folder, which can be a pain in some projects.
Is there a way to make the filename completion use the directory of the active buffer instead of the current directory? Or some other workaround?
Also asked in stackoverflow

The last sentence of :h compl-filename says:

Note: the 'path' option is not used here (yet).

Therefore I think filename completion always starts from the current directory.
It's not quite the same but you can navigate down through your directories by C-X C-Fing on directory names.
I can think of two possible workarounds:

Write a little custom filename completion function which would change directory to the current buffer's directory, list the files, then change directory back again afterwards.  You would invoke it with C-X C-U.
Use a fuzzy file finder.  I'm not sure if any of them present matches in an autocomplete window but hopefully some do.

Closing this because it's outside the scope of the plugin.  Sorry!


Debug Output in "Get Device Info"

What happened?
response = await self._request("getDeviceInfo")
print(response)
return (
ReturnDeviceInfo(
deviceId=response["data"]["deviceId"],
devVer=response["data"]["devVer"],
ssid=response["data"]["ssid"],
ipAddr=response["data"]["ipAddr"],
minPower=int(response["data"]["minPower"]),
maxPower=int(response["data"]["maxPower"]),
)
if response and response.get("data")
else None
)
came in with Version 1.1.0
The python error
Every function call prints an Output - all other functions does not, so looks like a debug leftover.

Your python version
3.12
Your OS inlcuding your version
Windows 11

Indeed. Shouldn't be there, thank you for noticing that!

I've removed that in the version 3 release.


Feat/dsl/spin lock and test

IMPORTANT: Please do not create a PR without creating an issue first!
(Any change needs to be discussed before proceeding. Failure to do so may result in the rejection of the pull request).
Summary

Explains the information and/or motivation for making this changes...
Proposed of changes
This PR fixes/implements the following bugs/features:

Bug 1
Bug 2
Feature 1
Feature 2
Breaking changes

How has this been tested?
Proof:

Closing issues
Fixes #
Checklist:

[ ] My code follows the code style of this project.
[ ] My changes successfully ran and pass linters locally (run make lint).
[ ] I have written new tests for my changes.

[ ] My changes successfully ran and pass tests locally.

[ ] My change requires a change to the documentation.

[ ] I have updated the documentation accordingly.

Codecov Report
Patch and project coverage have no change.

Comparison is base (b9df742) 71.78% compared to head (8efe046) 71.78%.

Additional details and impacted files
@@           Coverage Diff           @@
##           master      #69   +/-   ##
=======================================
  Coverage   71.78%   71.78%
=======================================
  Files           5        5
  Lines         964      964
=======================================
  Hits          692      692
  Misses        227      227
  Partials       45       45

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Roll engine bdc9708d235e..fa05d367add3 (4 commits)

https://github.com/flutter/engine/compare/bdc9708d235e...fa05d367add3
git log bdc9708d235e..fa05d367add3 --first-parent --oneline
2020-01-02<EMAIL_ADDRESS>Roll src/third_party/skia c65d0069ec56..107c66669d37 (4 commits) (flutter/engine#15088)
2019-12-30<EMAIL_ADDRESS>Roll src/third_party/skia 7c095dc67ce6..c65d0069ec56 (9 commits) (flutter/engine#15084)
2019-12-30<EMAIL_ADDRESS>Roll src/third_party/skia 5a2f962313a5..7c095dc67ce6 (6 commits) (flutter/engine#15067)
2019-12-28<EMAIL_ADDRESS>Roll src/third_party/dart c547f5d933e5..b52d264f5b2f (19 commits) (flutter/engine#14827)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

Trybots failed. These were the failed builds: https://github.com/flutter/flutter/runs/370966489 , https://github.com/flutter/flutter/runs/370966483

Commit queue failed; closing this roll.


fix: add compile hook

Summary
I noticed that the compile hook functions seem to not be called in source  code, but it in documents ,and I'm not sure if this is intentional,and I'm not sure if my implementation is correct.

Related issue (if exists)

Types of changes

[ ] Docs change / Dependency upgrade
[x] Bug fix
[ ] New feature / Improvement
[ ] Refactoring
[ ] Breaking change

Checklist

[ ] I have added changeset via pnpm run changeset.
[ ] I have added tests to cover my changes.

this mr is outdated, feel free to open a new one if you're still interested


Dfs forwarding

Adding forwarding stuff

Looks good - the structure of the convo cards has changed so there are going to be things that will break. Pull from convo-feature as soon as possible.


update: log token count for code generated and button click events across the extension

RE: https://docs.google.com/document/d/1UcjUdon1XO5GoLDIJJCGBq1zyhR6VfL2FE_apSPeLQo/edit#heading=h.m8ojuhhojtjm
Close https://github.com/sourcegraph/cody/issues/672
Add loggings for following events

Description
Type
Example Log Entry

Chat submit from sidebar
submit
CodyVSCodeExtension:chat:submitted {"source":"chat"}

Chat submit from inline
submit
CodyVSCodeExtension:chat:submitted {"source":"inline"}

Chat submit from command menu
submit
CodyVSCodeExtension:chat:submitted {"source":"menu"}

Code generated for chat
response
CodyVSCodeExtension:chatResponse:noCode {}

Code generated for chat
response
CodyVSCodeExtension:chatResponse:hasCode {"lineCount":20,"charCount":575}

Fixup code lens button: apply
click
CodyVSCodeExtension:fixup:codeLens:clicked', { op: apply)

Fixup code lens button: show diff
click
CodyVSCodeExtension:fixup:codeLens:clicked', { op: diff)

Fixup code lens button: cancel
click
CodyVSCodeExtension:fixup:codeLens:clicked', { op: cancel)

Fixup token count for code applied
applied
CodyVSCodeExtension:fixup:applied {"lineCount":20,"charCount":575}

Chat title bar button: new convo
click
CodyVSCodeExtension:chatTitleButton:clicked {"name":"reset"}

Chat title bar button: history
click
CodyVSCodeExtension:chatTitleButton:clicked {"name":"history"}

Copy event on code generated for Inline Chat
keydown
CodyVSCodeExtension:inlineChat:event:detected {"op":"copy","lineCount":5,"charCount":76}

Paste event on code generated for Inline Chat
keydown
CodyVSCodeExtension:inlineChat:event:detected {"op":"paste","lineCount":5,"charCount":76}

Copy event on code generated for side bar chat  triggered by copy button click:
click
CodyVSCodeExtension:copyButton:clicked {"lineCount":2,"charCount":27,"op":"copy"}

Paste event on code generated for side bar chat  triggered by copy button click:
keydown
CodyVSCodeExtension:pasteButton:clicked {"lineCount":2,"charCount":27,"op":"paste"}

Copy event on code generated for side bar chat, but not triggered by buttons
keydown
CodyVSCodeExtension:copyKeydown:clicked {"lineCount":2,"charCount":27,"op":"copy"}

Paste event on code generated for side bar chat, but not triggered by buttons
keydown
CodyVSCodeExtension:pasteKeydown:clicked {"lineCount":2,"charCount":27,"op":"paste"}

Insert code block button
click
CodyVSCodeExtension:insertButton:clicked {“op”:“insert”,“charCount”:194,“lineCount”:11}

On “Stop Generating” button click in sidebar
click
CodyVSCodeExtension:abortButton:clicked' { source: 'sidebar' }

On “Stop Generating” button click in Inline Chat
click
CodyVSCodeExtension:abortButton:clicked' { source: inline }

Code generated for fixup task
response
CodyVSCodeExtension:fixupResponse:hasCode {"lineCount":12,"charCount":354}

CodyVSCodeExtension:completion:accepted was added by @philipp-spiess in https://github.com/sourcegraph/cody/pull/674
CodyVSCodeExtension:completion:suggested is not added. Will work on this in a separated PR
Test plan

Added test for token count methods.
To test the newly added token events
Start Cody from this branch in debug mode, and check the Output channel for logged events after performing an action:

Thanks! Mostly looks good to me. Let me give this a spin in the IDE to QA later today
QQ, for the first 3 events:

Chat submit from sidebar	submit	CodyVSCodeExtension:chat:submitted {"source":"chat"}
Chat submit from inline	submit	CodyVSCodeExtension:chat:submitted {"source":"inline"}
Chat submit from command menu	submit	CodyVSCodeExtension:chat:submitted {"source":"menu"}

Don't we already have events for these as "executed" events? CC: @kelsey-brown

Don't we already have events for these as "executed" events?

@chenkc805 They are currently logged as:
CodyVSCodeExtension:recipe:chat-question:executed
CodyVSCodeExtension:recipe:inline-chat:executed

But this does not capture the chat-question submitted from the command menu, or if the chat submitted was a slash command, it would be logged under custom-prompt executed when it was also submitted from chat (hope this makes sense 😅 )

@abeatrix Is the goal to centralize the "chat" events for VSCode under one event name, add the source field to event metadata so we can distinguish where they are coming from, then retire the old events (CodyVSCodeExtension:recipe:chat-question:executed, CodyVSCodeExtension:recipe:inline-chat:executed)?
This looks good overall, I think the only thing I'd love to see if possible is for the source (command menu, sidebar, inline) and the action (copy, paste, insert) to be logged in the same place/uniformly for relevant events.
E.g. for copy events they always have copy (or insert) in the name, or they always have op:copy in the metadata. My reasoning is that we'll need to do GROUP BYs on both of these fields so we can run various aggregations, and having some uniformity ensures we won't miss anything. If it's a ton of trouble to make that happen, no worries, we can figure it out on our end. But if not, it would save us a lot of hassle in terms of data prep/cleaning.  Let me know what you think!

Is the goal to centralize the "chat" events for VSCode under one event name, add the source field to event metadata so we can distinguish where they are coming from, then retire the old events (CodyVSCodeExtension:recipe:chat-question:executed, CodyVSCodeExtension:recipe:inline-chat:executed)?

@kelsey-brown basically, yes.

This looks good overall, I think the only thing I'd love to see if possible is for the source (command menu, sidebar, inline) and the action (copy, paste, insert) to be logged in the same place/uniformly for relevant events.

I was following what the naming of the existing event added by the data team but I can look into updating those.
Do you mean instead of CodyVSCodeExtension:pasteButton:clicked {"lineCount":2,"charCount":27,"op":"paste"} and CodyVSCodeExtension:pasteKeydown:clicked {"lineCount":2,"charCount":27,"op":"paste"}, you want: CodyVSCodeExtension:clicked {"lineCount":2,"charCount":27,"op":"paste", "source": "button"}  and CodyVSCodeExtension:clicked {"lineCount":2,"charCount":27,"op":"paste", "source": "keydown"}

@kelsey-brown basically, yes. Cause the recipe executed from chat does not always log under chat-question as mentioend
Makes sense, this works for me then!

I was following what the naming of the existing event added by the data team but I can look into updating those.

This naming is totally fine! I actually think the easiest way to do this would just be to change these:

CodyVSCodeExtension:inlineChat:event:detected --> CodyVSCodeExtension:inlineChat:Copy:detected
CodyVSCodeExtension:inlineChat:event:detected --> CodyVSCodeExtension:inlineChat:Paste:detected

So all the copy events contain copy, and all the paste events contain paste. Does that make sense? It's a bit of a nitpick, but the uniformity helps us a lot with filtering and grouping!

@kelsey-brown  Fair! Just updated:

CodyVSCodeExtension:inlineChat:event:detected --> CodyVSCodeExtension:inlineChat:Copy:detected
CodyVSCodeExtension:inlineChat:event:detected --> CodyVSCodeExtension:inlineChat:Paste:detected

Having trouble getting my local environment setup so I'll review this in pre-release. Based on the documentation here though, looks good to me.


Advanced validation support

Hi, thanks for the great project!
I have a question regarding request params object validation.
For example I have a request with 2 dates like this:
    PeriodRequest:
      type: object
      properties:
        start:
          type: string
          format: date
        end:
          type: string
          format: date

and want to validate that start doesn't exceeds end.
One option is to use custom Bean Validation constraint annotation:
    // here  @StartEndConstraint
    @GetMapping(...)
    Collection getResponse(
      @Valid
      // or here  @StartEndConstraint
       PeriodRequest r
     );

But I can't do it because Api interface above is generated and at the same time i can't put annotations on the implementation class:
javax.validation.ConstraintDeclarationException: HV000151: A method overriding another method must not redefine the parameter constraint configuration

As I understand the only solution is to switch to the not generated pojo and use annotation on it:
map:
  types:
    - type: PeriodRequest => my.not.generated.PeriodRequest

But that's undesirable solution because of the potential discrepancy between validation described in api.yaml and in code.
Are there any other options to solve this problem?
May be to have some annotation mapping features would be a better solution, something like:
map:
  types:
    - type: PeriodRequest annotate my.validation.StartEndConstraint

Thanks in advance!

I fear there is currently no way to add additional annotations except skipping the generated type.
I'm fine with adding it. It will add a bit of flexibility.
It is just a matter of choosing the right path ;-)
The simple path will only allow custom annotations in context of bean validations. The bean validation code already handles annotations so it would be "just" a matter of providing the info to it (with something like your suggestion above).
More complex one would allow custom annotations independent of bean validation. More flexibility, but I'm not sure it is worth implementing. It would have bean nice maybe once or twice.  ;-)

I'm not feeling that I'm in a position to decide on the right path =)
but "the simple path" seems more preferable to me from the pragmatical perspective: as I understand it's simpler to implement and covers specific and very typical problem (in contrast to rare and imaginary ones).

Was more a question to myself ;-)
.. but you are right. I prefer the first path too :-)

have something running, somehow went for the more general approach. :-)
the mapping looks like this:
map:
    parameters:
      - type: Foo @ io.openapiprocessor.samples.validations.Sum

Foo is the OpenAPI object, and the mapping will add @Sum to a Foo parameter of an endpoint method:
    @PostMapping(
            path = "/validation",
            consumes = {"application/json"},
            produces = {"application/json"})
    Foo postValidation(@RequestBody @Sum @Valid @NotNull Foo body);

I think, I will add the following variation
map:
    types:
       - type: Foo @ io.openapiprocessor.samples.validations.Sum

to add the annotation to the generated Foo class:
@Sum
public class Foo {

    @DecimalMin(value = "0")
    @JsonProperty("foo1")
    private Integer foo1;

    // ....
}


[15:52:53] ERROR (payload): APIError: No User when i logout

Bug Report

Current Behavior
[15:52:53] ERROR (payload): APIError: No User

When i logout from admin panel, an error appears on the console
[15:52:53] ERROR (payload): APIError: No User
Expected Behavior

Possible Solution

Steps to Reproduce

Detailed Description

Just logging out shouldn't send that error. There is likely another request happening after you logout. Is there an extra tab open or something else making an additonal request?
Can log the incoming request out to know what request is being made to throw the error?

@DanRibbens i have the same error

I've got this error too in production on a site I haven't touched for a month. I can login but cannot save any content, all the requests throw 401 or 403. I can read content OK. Restarted the server and the database but no change. Cleared cookies etc. Will investigate further tomorrow but haven't found a way round it yet.

Hey @Giovni @mrobst — thank you for the reports!
I just found a small optimization in the admin UI and tweaked accordingly. This did rectify a duplicative logout operation, so this should be resolved.
It will be released shortly!

I've updated to latest version with the fix but it hasn't resolved my issue yet. After logon as soon as I go into a collection I get a 401 on /api/_preferences/collection-name . None of the collections will save. Will investigate further, any pointers on what to check appreciated

OK - this is a different issue then. Is this happening locally, or in production?

Production - Digital Ocean App platform - shall I open a different issue for it?

I cleared cookies and logged in. New cookie is set ok. No error. Then navigated to the first collection and I get a 401 error from /api/_preferences/categories-list with this log

Hey @Giovni @mrobst — thank you for the reports!
I just found a small optimization in the admin UI and tweaked accordingly. This did rectify a duplicative logout operation, so this should be resolved.
It will be released shortly!

Does this mean it was in 1.2.0 (2 days ago?)
I still get the "No User" APIError whenever I try to log out (via graphql mutation)

I can observe a similar behaviour with payload@


Add collection parameter into built-in runners

To use built-in queue runners in fine-grained manner within a single graph,
each thread shouled be managed in different collection, not default collection.
Threads in different user-defined collections can be started and stopped,
separately.
Signed-off-by: Taeksang Kim<EMAIL_ADDRESS>

Can one of the admins verify this patch?

I signed it!

Thanks for the contribution. We are in the process of deprecating the QueueRunner-based input pipeline API, and encouraging users to move to tf.data, which supports creating multiple different pipelines in the same program (the use case for this change) as well as giving users the ability to restart pipelines, and improving overall performance.
Since there is already a substitute for this change in tf.data, and we are no longer devoting resources to enhancing the QueueRunner-based pipelines, I'm going to close this PR. If you need help to convert an existing pipeline to use tf.data, see the Programmer's Guide for an introduction to the new API.


Removed ANSI output from codeception as this was confusing the parser

... At least on OSX, if codeception was running with ANSI output then the output parsing was getting mixed up.

Hi, thanks for help!


Tailwind changes no longer detected

Describe the bug
It's like it suddenly stopped working and it became a really painful DX. I am not really certain when did this happen, but I've been developing some new features on another branch, with so much time waste and pain. Every time I make some style changes, I must restart WXT in order to see them. Reloading the extension does not work either. Previously, this behaviour was only when I made changes in entry file popup/index.html for example, but now it is happening in all files.
To Reproduce
Will update issue once I figure out what the problem is.

Pending...

Expected behavior
Should take effect once file is saved.
Video recording
Video recording
Environment

  System:
    OS: macOS 14.2.1
    CPU: (12) arm64 Apple M2 Max
    Memory: 55.40 GB / 96.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 21.2.0 - ~/.asdf/installs/nodejs/21.2.0/bin/node
    npm: 10.2.3 - ~/.asdf/plugins/nodejs/shims/npm
    pnpm: 8.14.3 - /opt/homebrew/bin/pnpm
    bun: 1.0.21 - /opt/homebrew/bin/bun
  Browsers:
    Brave Browser: <IP_ADDRESS>
    Chrome: 121.0.6167.85
    Edge: 121.0.2277.83
    Firefox Nightly: 124.0a1
    Safari: 17.2.1
    Safari Technology Preview: 17.4
  npmPackages:
    wxt: ^0.13.0 => 0.13.5

Additional context
I tested the TW example, saw it's broken, but HMR works. Going to fix the template and then hunt down why it isn't working for me anymore.

I see you're working on the reproduction, but I just wanted to say, I like the gradient border and logo you've got, it looks very crisp 😎

I see you're working on the reproduction, but I just wanted to say, I like the gradient border and logo you've got, it looks very crisp 😎

Yeah, I am trying to reproduce on my own project. Go back a handful of commits to the point where it worked and then see how/where could I fu*k it up.
Thanks, we could probably use something similar for WXT examples too. 💯

From what I can tell looking at the example, the tailwind CSS file doesn't contain all the classes, just the ones present at build time. This is the usual behavior for production, obviously we want to strip out all the classes that aren't used, but in development, I thought tailwind's CSS file was populated with all it's classes...

OK, so the problem is that when we render the HTML file to the file system (so that Chrome doesn't say "ERR can't find popup.html for action.default_popup" while loading the extension), the assets should be loaded from localhost, not from the extension's directory.
This is because the code WXT uses to load ignores TSConfig path aliases 🤦 . The condition on line 60 is just looking for relative paths, and doesn't work with something like ~/assets/tailwind.css 🤦
https://github.com/wxt-dev/wxt/blob/9cee9eefb407dd5a1294b78e97b1ccf3712e8c15/src/core/builders/vite/plugins/devHtmlPrerender.ts#L50-L68

In the example:

With ~/assets/main.css
With ../../assets/main.css

To fix this:

In wxt/src/core/builders/vite/plugins/devHtmlPrerender.ts, we need to grab the resolve.alias option from the configResolved hook and store it in a varaible.
Then, in the pointToDevServer in the same file, we need to attempt to resolve the path using the aliases. I don't know how to do this off the top of my head? Maybe @rollup/plugin-alias (the plugin vite uses to make it's resolve.alias work) provides a helper function we can use? Or we can just do simple str.replace? Like I said, not sure.

Yeah, I am at that point now. Just looking at ~/assets/app.css in my codebase.
I'm sorry, I do not follow the codebase snippet from above.
How the heck did you figure this so quickly? I went 30 commit behind, thinking it could be the src/public directory changes in the config.

Given the input, I'll try to add make this and see if it works.
I read it once, sounds simple, I read it twice, sounds complex. But I'll give it a shot.
If I fail, I'll simply wait for your solution. No rush. I developed for over a week with no tailwind styles being applied 🤣

You already have aliases in the config argument:
    alias: {
      '@': '/Users/nn/Projects/Personal/ultrawideo-v3/src',
      '~': '/Users/nn/Projects/Personal/ultrawideo-v3/src',
      '@@': '/Users/nn/Projects/Personal/ultrawideo-v3',
      '~~': '/Users/nn/Projects/Personal/ultrawideo-v3'
    },

Identical to the ones from the configResolved hook:
    {
      find: '@',
      replacement: '/Users/nn/Projects/Personal/ultrawideo-v3/src'
    },
    {
      find: '~',
      replacement: '/Users/nn/Projects/Personal/ultrawideo-v3/src'
    },
    {
      find: '@@',
      replacement: '/Users/nn/Projects/Personal/ultrawideo-v3'
    },
    {
      find: '~~',
      replacement: '/Users/nn/Projects/Personal/ultrawideo-v3'
    },

So unless we also need those for something:
    {
      find: 'webextension-polyfill',
      replacement: '/Users/nn/Projects/Personal/ultrawideo-v3/browser.ts'
    },
    {
      find: '@wxt/reload-html',
      replacement: '/Users/nn/Projects/Personal/ultrawideo-v3/node_modules/wxt/dist/virtual/reload-html.js'
    },
    {
      find: /^\/?@vite\/env/,
      replacement: '/@fs/Users/nn/Projects/dvlden-wxt/node_modules/.pnpm/vite@5.0.12_@types+node<EMAIL_ADDRESS>    },
    {
      find: /^\/?@vite\/client/,
      replacement: '/@fs/Users/nn/Projects/dvlden-wxt/node_modules/.pnpm/vite@5.0.12_@types+node<EMAIL_ADDRESS>    }

I'll assume we can use config.alias object instead? So sounds like we need just another condition that checks for alias? Will test this now.

Yeah, using InternalConfig.alias should be fine... If anyone wants to add custom aliases, that's where they would add it.

Yeah, using InternalConfig.alias should be fine... If anyone wants to add custom aliases, that's where they would add it.

Released in https://github.com/wxt-dev/wxt/releases/tag/v0.15.2


Couldn't find preset "stage-0" relative to directory

error  in ./node_modules/react-tag-input/dist-modules/ReactTags.js

Module build failed: Error: Couldn't find preset "stage-0" relative to directory

i just installed package using npm and trying example build but it throws above error in build

can you share stackblitz link for the above issue ?

i googled it and find solution here

missing babel-preset-stage-0  package

below solution works for me
install stage-0 preset with npm
npm install babel-preset-stage-0

and add it to webpack
    module: {
        loaders: [
            {
                test: /\.jsx?$/,
                exclude: /node_modules/,
                loader: 'babel-loader',
                query: {
                    plugins: ['transform-runtime'],
                    presets: ['es2015', 'react', 'stage-0'] // <--- here
                }
            }, {
                test: /\.[s]?css$/,
                loader: 'style!css!sass'
            }
        ]
    },

thank you..!


Support for allOf

Is there any support for allOf planned? The generated code for PushPaginated does not correctly inherit from the referenced types.
Pagination:
      type: object
      properties:
        draw:
          type: integer
        recordsTotal:
          type: integer
          format: int64
        recordsFiltered:
          type: integer
          format: int64
        error:
          type: string
      required:
        - draw
        - recordsTotal
        - recordsFiltered
PushItem:
      type: object
      properties:
        title:
          type: string
        subtitle:
          type: string
        content:
          type: string
PushPaginated:
      type: object
      allOf:
        - $ref: '#/components/schemas/Pagination'
        - type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/PushItem'

Hi @kroegerama.
allOf is supported. In your case just remove the type: object from PushPaginated and it should work. Let me know how you go

Thank you so much! Works fine now :)

but does this also work with structs? Inheritance is not possible there...
And what happens for something like this?
SomethingAndSomethingelse:
     allOf:
     - $ref: ‘#/components/schemas/Something’
     - $ref: ‘#/components/schemas/SomethingElse’

multiple inheritance is even less possible...

Structs will get the properties of both

currently I get
public struct SomethingAndSomethingelse: Something {

with the error Inheritance from non-protocol type 'Something'

Have you set the template property modelInheritance to false and the modelType to struct?

yes; with modelInheritance false it works, but only the first reference is used, the SomethingElse is ignored...


v0.2.0 release; merge stage to main

NEW Feature: Car's BLE MAC address is now auto-detected
NEW Feature: Info Bluetooth Adapter, view in add-on's Log tab
NEW Feature: Added more car specific commands; see below for the list
NEW Feature !! BREAKING !!: Migrated buttons to covers and switches
NEW: Icons were added in the UI!
CHG: Increased tesla-control command-timeout from 5s to 20s
CHG: Removed Setting ble_mac_list; obsoleted by BLE MAC address auto-detection
CHG: Removed scan-bleln-macaddr, obsoleted by BLE MAC address auto-detection

[!WARNING]
Merge #100 and unlock "main" branch before merging this one.


createReader adds ~500kB to bundle size with /app directory

Steps to reproduce:

Create a new project with npm create @keystatic@latest
Build it (using yarn and nextjs)

Now / and /[slug] have a bundle size of over ~580kB.
It seems like createReader gets bundled into the client bundle, because when removing it it has the expected size of about ~70kB
Versions:
"@keystatic/core": "^0.0.109",
"@keystatic/next": "^0.0.11",
"next": "^13.4.4",
macOS 13.4 (22F66)
node v18.15.0

Thanks for the report @georgwindhaber
Can you share any more details on how to reproduce? Is the repo you're working on open source, or can you post a (possibly stripped back) example of how you're calling the reader here?
I took a look at an open source / real life example (the SydJS website) and can't see a similarly large bundle being created, code here for reference - https://github.com/Thinkmill/sydjs-keystatic
So I'm wondering if it's something specific to your project or how you're using the Reader that's causing the large size, any other information you can provide might help us figure it out.

Hey, thanks for the fast reply!
I'm working on this project https://github.com/georgwindhaber/diesindnichtnormal but the steps to reproduce for me were very little:
npm create @keystatic@latest
-> Select next.js
-> ./bundle
cd bundle
yarn install
yarn build

And I'll end up with a build like this, where / and /[slug] are pretty large

I hope this helps, thank you!

Yep, that's helpful, we'll take a look!

Got some more information about this — it seems like the way that fields are implemented in the codebase sometimes causes bundler heuristics to (incorrectly) include Keystatic Admin UI code (and the corresponding design system components) in front-end bundles.
We're going to keep looking into it further and ship a fix, which may include (for now) disabling custom fields. I'm not sure how much that feature is used anyway, so I'll open a separate issue to discuss and track it.

Thank you for the investigation!
For myself I can say that I don't use custom fields, but I just started with Keystatic (loving it so far!) and did not find it in the docs - but yeah, that's just my anecdotal  evidence
Thanks! :)


feat(breadcrumb): add breadcrumb component

https://user-images.githubusercontent.com/79363260/226710676-90e8963f-1dd1-4987-a358-a07bc58d1d7b.mp4

@its-monotype Can we use asChild rather than as? This way we can do things like passing in a next.js Link component with typed hrefs for example.

@its-monotype Can we use asChild rather than as? This way we can do things like passing in a next.js Link component with typed hrefs for example.

Yeah, great idea, would look into it

@tonyxiao Inside BreadcrumbLink, we currently replace the current element with a  if it represents the current page. While the "asChild" approach you mentioned has its merits, it poses a challenge when it comes to replacing or modifying the slotted child, as well as removing the href attribute from it. I don't have any ideas on how to solve this so far, and would greatly appreciate any help in finding a solution.

I found this PR when looking for a Breadcrumb component for shadcn/ui. Awesome work @its-monotype! This would be a great addition to the library, I hope this PR doesn't go stale.

This repo has made me SOOOOO productive on my side projects and I was reaching for a breadcrumb component but saw it wasn't done yet.
This is working fantastic in my application right now. Thank you @its-monotype for implementing this.
+1 to getting this in as an oficially supported component!
Appreciate what you have done for the community @shadcn

anyone working on it!

Looks really good visually! Would +1 a previous request to support using Next Links if this PR gets picked back up again. Makes a pretty big speed difference and is a bit jarring to the user if the rest of the app is using Next Links but these aren't.

In response to my prev comment, if anyone else is looking for a next link breadcrumb, can use the breadcrumb in this PR with the following updated BreadcrumbLink:
`export const BreadcrumbLink = React.forwardRef<
HTMLAnchorElement,
BreadcrumbLinkProps

(
({className, as: asComp, isCurrentPage, ...props}, forwardedRef) => {
if (isCurrentPage) {
return (
<span
className={cn(
"text-sm font-medium underline-offset-4 aria-[current]:opacity-60",
className
)}
aria-current="page"
{...props}
ref={forwardedRef}
/>
);
}

        return (
                <Link href={props.href as string} passHref {...props}
                      className={cn(
                              "text-sm font-medium underline-offset-4 [&:not([aria-current])]:hover:underline",
                              className
                      )}
                      ref={forwardedRef}>
                </Link>
        );
    }

)`
great work @its-monotype regardless

@shadcn Could review this pr if you have time please, much appreciated :)

@its-monotype I know this is a big ask (since this was blocked by me) but any chance you can reroll this against main? If not, I'll take a stab at it during the week. Thank you.

@its-monotype this feature could be awesome, is there possible to do what @shadcn said.

bumping this!

@Balance8 I'll make some updates to the component API and merge. Thank you.

We're excited and waiting for it! thank you!

any updates quite good to have this component in Shadcn :3

I need this component!

Ofc I am also looking forward to an official integration, but to everyone waiting impatiently: just copy the component manually into your project for now 🤷

Ofc I am also looking forward to an official integration, but to everyone waiting impatiently: just copy the component manually into your project for now 🤷

That's exactly what I did, I'll update later when they merge

Awesome work @its-monotype. Will be super helpful when it gets merged.

Awesome! I also need this component, hope it will be merge soon ⚡

Any status why it's still not meged ?

Any status why it's still not meged ?

It's currently in the milestones https://github.com/shadcn-ui/ui/milestone/1

Hi everyone, I've made some updates to the breadcrumb component. Let me know if you have any feedback.

Reworked the component a bit so that they are more composable.
Added a <BreadcrumbEllipsis /> component to display collapsed state.
Refactored to use asChild prop for custom router <Link />.
Added examples for custom separator, dropdown and responsive with drawer.

👉 Demo: https://ui-git-fork-its-monotype-feat-breadcrumb-shadcn-pro.vercel.app/docs/components/breadcrumb

Drawer example have no code for it, and probably all other examples work not as expected - code is below the preview, not in the Code section

Drawer example have no code for it, and probably all other examples work not as expected - code is below the preview, not in the Code section

Custom separator as an example:
Preview shows the code in context (related to that example)
Code shows all the code for that example
Drawer and Dialog have very simple implementations:
Drawer
export const BreadcrumbDrawer = () => {
  return (
    <Drawer>
      <DrawerTrigger>Drawer</DrawerTrigger>
      <DrawerContent className="h-[400px]">
        <DrawerHeader>
          <Breadcrumb>
            <BreadcrumbList>
              <BreadcrumbItem>
                <BreadcrumbLink href="/">Home</BreadcrumbLink>
              </BreadcrumbItem>
              <BreadcrumbSeparator />
              <BreadcrumbItem>
                <BreadcrumbLink href="/">Dashboard</BreadcrumbLink>
              </BreadcrumbItem>
              <BreadcrumbSeparator />

              <BreadcrumbItem>
                <BreadcrumbLink href="/">Users</BreadcrumbLink>
              </BreadcrumbItem>
              <BreadcrumbSeparator />

              <BreadcrumbItem>
                <BreadcrumbLink href="/">John Doe</BreadcrumbLink>
              </BreadcrumbItem>
            </BreadcrumbList>
          </Breadcrumb>
        </DrawerHeader>
      </DrawerContent>
    </Drawer>
  );
};

Dialog
export const BreadcrumbDialog = () => {
  return (
    <Dialog>
      <DialogTrigger>Breadcrumb</DialogTrigger>
      <DialogContent>
        <DialogHeader>
          <Breadcrumb>
            <BreadcrumbList>
              <BreadcrumbItem>
                <BreadcrumbLink href="/">Home</BreadcrumbLink>
              </BreadcrumbItem>
              <BreadcrumbSeparator />
              <BreadcrumbItem>
                <BreadcrumbLink href="/">Dashboard</BreadcrumbLink>
              </BreadcrumbItem>
              <BreadcrumbSeparator />

              <BreadcrumbItem>
                <BreadcrumbLink href="/">Users</BreadcrumbLink>
              </BreadcrumbItem>
              <BreadcrumbSeparator />

              <BreadcrumbItem>
                <BreadcrumbLink href="/">John Doe</BreadcrumbLink>
              </BreadcrumbItem>
            </BreadcrumbList>
          </Breadcrumb>
        </DialogHeader>
        Dialog content
      </DialogContent>
    </Dialog>
  );
};


UX: Option to accept passphrase from an external program / file descriptor

What were you trying to do
Accept passphrase from an external program / file descriptor, e.g. zenity, similar to -pass file:<(zenity --password) option in openssl

I just finished a long UX discussion about this and other passphrase-related topics (https://twitter.com/FiloSottile/status/1401578831836856325), and the outcome is that we aren't going to support scriptable passphrase inputs natively in our CLI apps. The alternatives:

We will add native support for passphrase-encrypted age identities. Then encryption can be scripted (using the age recipient).
We've ensured that the plugin system is flexible enough to support a plugin that does handle passphrases in alternative ways (e.g. from a file descriptor). Given that a plugin is an external program (invoked by age/rage), it can do whatever it wants to obtain the necessary information.


Cannot create profile with Standard Microsoft SKU

Azure CLI hasn't been updated to support the Standard_Microsoft SKU, even though it's been GA since September 24th, and in preview for more than 6 months now.
Same goes for the equivalent Powershell module/command.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: d57c3a30-b150-2982-a70e-72ae5b2b95cf
Version Independent ID: 5075b7f3-d8ca-c051-d9a1-0b1e6921300a
Content: az cdn profile
Content Source: src/command_modules/azure-cli-cdn/azure/cli/command_modules/cdn/_help.py
Service: cdn
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

Haven't heard anything back in over two weeks.
Any idea when this will be implemented ?
Thanks.

As of today the CLI does not support the Standard_Microsoft SKU yet.
A workaround is to create the CDN profile through the resource base command:
# Create a new CDN profile
az resource create \
    --name myname \
    --resource-group myresourcegroup \
    --resource-type Microsoft.Cdn/profiles \
    --is-full-object \
    --properties \
        '{
            "location": "WestEurope",
            "sku": {
                "name": "Standard_Microsoft"
            },
            "tags": {
                "projectName": "MyProject",
                "environment": "Staging",
                "tier": "FrontEnd"
            }
        }'


MAINT: minor updates

Codecov Report

Merging #38 (f622edf) into main (a56ce87) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main       #38   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            2         2
  Lines           86        86
=========================================
  Hits            86        86

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a56ce87...f622edf. Read the comment docs.


Env variable LANGUAGES is persisted beyond scope of runs

The LANGUAGES environment variable is not cleared after snippet generation script is run.
Subsequent runs on the snippet generation pipeline generate snippets for the last set LANGUAGES variable.

This is so bizarre, every run should be isolated ideally.


added CLI options --plugins and --ade-extensions

picocli 4.6.0 introduced a new preprocessor parser plugin called IParameterPreprocessor. This might be an option to dynamically load CLI plugins from a provided folder as proposed in this PR but still to use the parsing capabilities of picocli. I will take a look at it and re-open this PR if it works.

picocli 4.6.0 introduced a new preprocessor parser plugin called IParameterPreprocessor. This might be an option to dynamically load CLI plugins from a provided folder as proposed in this PR but still to use the parsing capabilities of picocli. I will take a look at it and re-open this PR if it works.

Reopened this PR.
Unfortunately, the new picocli preprocessor does not really help. But what I did is to adapt the original proposal as follows:

The CLI generally supports abbreviated forms for all options. For instance, instead of --plugins you can also provide --plu as long as the abbreviated form is unique. I added this behaviour to the parsing of the --plugins option.
Folders provided through --plugins and --ade-extensions are resolved against the current working directory (ClientConstants.WORKING_DIR) instead of the installation directory (ClientConstants.IMPEXP_HOME).

@yaozhihang, would you please review?

Reopened this PR.
Unfortunately, the new picocli preprocessor does not really help. But what I did is to adapt the original proposal as follows:

The CLI generally supports abbreviated forms for all options. For instance, instead of --plugins you can also provide --plu as long as the abbreviated form is unique. I added this behaviour to the parsing of the --plugins option.
Folders provided through --plugins and --ade-extensions are resolved against the current working directory (ClientConstants.WORKING_DIR) instead of the installation directory (ClientConstants.IMPEXP_HOME).

@yaozhihang, would you please review?

@clausnagel thanks very for the revision. It looks very good and works well in my tests.

@clausnagel thanks very for the revision. It looks very good and works well in my tests.


Feature Request Workspace

Kong EE version has started supporting workspace, services/routes/cnosumer on the workspace .
Is it possible to provide support for this.
Thanks

@mynameisgv , out of curiosity, why would you need Konga supporting Kong EE?
Kong EE has it's own manager UI out of the box and I recon they provide support for all those cool EE only features.
Cheers.

Konga is very user friendly compared to the native ui. Configuring plug-ins, routes, consumers are all very easy in konga. There is a nice flow in konga. I use Kong ui only for seeing performance.


Using globalize gem

Thanks for this amazing gem.
We translated all of our tags and the migration works great. The trouble we're having now is new tags don't write to the table tags.name column. The causes the name to be blank even though the tag is created the first time.
When we try to reuse that tag, because of the blank name it runs into problems with:
self.find_or_create_all_with_like_by_name(*list)
The hack we built is to run self.update_columns(name: self.name) on after_create. The issue with this is it requires tag.name to always be in sync with tag_translation.name for :en.
What is the best way to use globalize? Can the dependence on tags.name be circumvented or removed?

+1

@nitsujri  What about having
`
. set_tag_list_on(:german, 'kein, tag, hier, suche, etc')
. tag_list_on(:german) # german tags by context
. set_tag_list_on(:english, 'no, tags, fund, here, sorry')
. tag_list_on(:english) # english tags by context
`

@lorenzosinisi in general, that's not how the [globalize](https://github.com/globalize/globalize) or [I18n](https://github.com/svenfuchs/rails-i18n) gems work.
In the end, that doesn't solve the dependency on tag.name which is the primary problem I am raising here.
I have to sync tag.name to :en as a hack, not a solution.

I overrided some method in the ActsAsTaggableOn::Tag to implement the localization of Model Tag, but the name field in the tags table is still blank.
module ActsAsTaggableOn
  class Tag < ::ActiveRecord::Base
    translates :name,:slug

    def cache_key
      super + '-' + Globalize.locale.to_s
    end

    extend FriendlyId
    friendly_id :name,:use => [:slugged,:finders,:globalize]

    def self.named(name)
      if ActsAsTaggableOn.strict_case_match
        where(name: as_8bit_ascii(name))
      else
        where(name: as_8bit_ascii(unicode_downcase(name)))
      end
    end

    def self.named_any(list)
      arr = []

      list.each do |tag|
        t = ActsAsTaggableOn::Tag.where(name: tag).first
        arr << t if t.present?
      end

      return arr
    end
  end
end

@alebacca89 Thanks. That's works only for CRUD tag, but not work tagged_with.


react-static v6.0.5  - yarn start doesn't start - Throws error on styled-components

Are you reporting a bug?
Yes
Environment

react-static -V: 6.0.5
node -v: v8.11.3
npm -v: 6.4.1
Operating system: Mac OSX Sierra 10.12.6 (16G1618)
Browser and version (if relevant): Chrome Version 71.0.3578.98 (Official Build) (64-bit)

Package.json:
{
"name": "react-static-example-styled-components",
"version": "6.0.0-beta.30",
"main": "index.js",
"license": "MIT",
"scripts": {
"start": "react-static start",
"stage": "react-static build --staging",
"build": "react-static build",
"serve": "serve dist -p 3000"
},
"dependencies": {
"axios": "^0.18.0",
"react": "^16.6.3",
"react-dom": "^16.6.3",
"react-hot-loader": "^4.3.12",
"react-static": "^6.0.0-beta.30",
"react-static-plugin-styled-components": "^6.0.0-beta.28",
"styled-components": "^4.1.1"
},
"devDependencies": {
"babel-plugin-styled-components": "^1.3.0",
"eslint-config-react-tools": "1.x.x",
"serve": "^10.1.1"
},
"gitHead": "350700130b7501622eac16aa139107c684b62b01"
Steps to Reproduce the problem
Base your steps off of any freshly installed react-static template!

react-static create
fill in a project name
chose for styled-component
project is created succesfully
cd into folder, named from step 2
yarn start (console shows yarn start v0.24.6, in my case)

Error:
Failed to build! Fix any errors and try again!
...src/App.js
Attempted import error: 'injectGlobal' is not exported from 'styled-components'.
@ /src/index.js
@ multi node_modules/react-dev-utils/webpackHotDevClient.js (webpack)/hot/only-dev-server.js ../lib/bootstrapTemplates.js
src/index.js
=> File changed: /tmp/dev-server/react-static-templates.js
=> Updating build...
Failed to build! Fix any errors and try again!
src/App.js
Attempted import error: 'injectGlobal' is not exported from 'styled-components'.
@ /src/index.js
@ multi node_modules/react-dev-utils/webpackHotDevClient.js (webpack)/hot/only-dev-server.js ../lib/bootstrapTemplates.js src/index.js
Expected Behavior
The site should spawn up, without errors.

Tracking in #876

When updating App.js to this:
`import React from 'react'
import { Root, Routes, Link } from 'react-static'
import styled, { createGlobalStyle } from 'styled-components'
//
const GlobalStyle = createGlobalStyle  body {     font-family: 'HelveticaNeue-Light', 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, Arial,       'Lucida Grande', sans-serif;     font-weight: 300;     font-size: 16px;     margin: 0;     padding: 0;   }
const AppStyles = styled.div`
a {
text-decoration: none;
color: #108db8;
font-weight: bold;
}
nav {
width: 100%;
background: #108db8;
a {
  color: white;
  padding: 1rem;
  display: inline-block;
}

}
.content {
padding: 1rem;
}
img {
max-width: 100%;
}
`
const App = () => (

Home

About
Blog

)
export default App
`
and
yarn start
returns this error in the browser:
Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
Check the render method of App.


Failed compiling the first example

🐛 Bug Reports
🌍 Environment

Your operating system and version: Windows 10
Your python version: 3.7.3
How did you install python (e.g. apt or pyenv)? Did you use a virtualenv?:  miniconda with no virtualenv.
Your rust version (rustc --version): 1.36.0
Are you using the latest pyo3 version? Have you tried using latest master (replace version = "0.x.y" with git = "https://github.com/PyO3/pyo3")? YES. I tried both 0.8.0 from crates.io and the master repo on github.

💥 Reproducing
Please provide a minimal working example. This means both the rust code and the python.
use pyo3::prelude::*;
use pyo3::types::IntoPyDict;

fn main() -> PyResult<()> {
    let gil = Python::acquire_gil();
    let py = gil.python();
    let sys = py.import("sys")?;
    let version: String = sys.get("version")?.extract()?;
    let locals = [("os", py.import("os")?)].into_py_dict(py);
    let code = "os.getenv('USER') or os.getenv('USERNAME') or 'Unknown'";
    let user: String = py.eval(code, None, Some(&locals))?.extract()?;
    println!("Hello {}, I'm Python {}", user, version);
    Ok(())
}

Error message
Fatal Python error: initfsencoding: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'

Current thread 0x0000aa2c (most recent call first):
error: process didn't exit successfully: `target\debug\pyo3-test.exe` (exit code: 0xc0000409, STATUS_STACK_BUFFER_OVERRUN)

Please also write what exact flags are required to reproduce your results.

:thinking:

It's actually working when I use Windows command line. The one that was not working was on git bash.

I was wrong. "cargo +nightly build" works, but not "cargo +nightly run".

The solution is adding PYTHONHOME and PYTHONPATH in environment variables.


add parameter: support pass ethereum account password

Thank you for contributing to our goduck tool. This feature looks reasonable to me and i will merge this.

LGTM