Font to Path

I just ran across your svg.textmorph.js plugin and wanted to make the following question / request.
I am trying to wrap my head around this, since chrome has dropped support for SVG Fonts.
Our Challenge.
We are using SVG.js to create SVGs which are later cut as stickers using adobe illustrator.  The biggest challenge has been working with fonts.   Right now we are working on getting around this by using PHP to turn a text string into an SVG path.  This causes a http request on every text change, and requires us to load external svgs.   This works, but its ugly because it requires PHP and so many server calls.
Feature request.
It would be great if SVG.js could load svg fonts and convert them to paths.
I see that that is a feature of the svg.textmorph.js but I wish we could take it a little further and part of svg.js with the following features:

Convert the whole string to a single path, or set of paths when letters dont overlap
The ability to adjust Kerning (spacing between letters)
The ability to have the text path auto fit a parent bbox or container
The ability to justify (right, left, center, full)

This would be an extremely useful feature for something like headings, or custom shirt printing.  So it would be very similar to fittext.js except it would be SVG paths.
The drawback is that the text is not accessible for screen readers, but since most of us will be using this for dynamic text, it should not be an issue.
Looking forward to your feedback!

Drawing text from an svg font will certainly not become a core future. But a plugin is always possible. I was thinking about a plugin for font-import when I wrote the textmorphing extension. I came to a point where I was wondering which types I should support.
In the plugin I read an svg-font but pulled the needed information into a data structure which remined me of typeface.js. So I thought if it would be worth to just use this structure instead and only build a svg-font to typeface converter (which are for sure already out there in the web). Thats why I finally didnt do it because I found no specification about typeface.
To your numbers:

I think thats possible. We just have to close the path ourselves and glue the path from the next glyph BUT you have to adjust every single coordinate which could be a problem since you have to scale them accordingly, too. Messy on second thought! Also textmorphing would morph the whole path and not letter by letter...
In case we just build a typeface interpreter and a font-to-typeface-converter it would be no problem to alter the typeface object before using it which includes kerning, too
Should work (only with point 1), but the path would be drawn in a wrong size forst before it is adjusted to the box because you dont know which factor you need, to scale a single glyph.
Something the rendered should take care about. Its just math. What does full mean btw?

Thank you for the detailed answer.  =)
I was not familiar with typeface.js, but it looks to me as the project is dead.
Our Use of SVG.js
I wanted to give you some background on what we are trying to use svg.js for.  Our use case is a little different than the traditional one where SVG's are used as an alternative to bitmap images for web consumption.   I assume that we are not the only ones with this specific use case, and am hoping we can use SVG.js as the foundation of the project we are trying to have developed.  I myself am more of a designer (not a coder) so please excuse my limited knowledge of what is possible.   =)
My partner forming a sign printing startup.  What is normal in our industry is to use Adobe Illustrator for the production of signs, t-shirts, and other print graphics.   In the case of signs, vectors are essential, because the items are not printed, but rather cut from sheets of colored vinyl.  The machinery (plotter), actually traces the paths from a vector and cuts out the final result.
For our project our goal is to create two tools:
Back End Tool
The first tool is a simple back end interface which will accepts "SVGs" as products.  In this tool we hope to accomplish the following:

Upload or Cut & Paste SVG Code generated by Illustrator

I wanted to get back to your points but also wanted to add some backgrounds to the conversation.  We are planning on using SVG.js to create svgs which are later cut / printed by illustrator.
I am assuming its a huge use case, as most printed / cut products use vectors and either illustrator or corel.   The issues with using just standard fonts with svgs are:

Fonts are rendered differently in the browser.  For example if I create an SVG online which uses Lobster font, and then open up that svg in illustrator, the text using Lobster will look different when illustrator loads the TTF font.  Usually the text position is different, but this can also affect the font size, letter spacing and more.   Makes it very difficult to build a web application where users create their own products with custom text, and let the business deliver exactly what the customer created.

Fonts are required on the client machine.   In a print / production setup, if the fonts are not flattened (converted to paths) then the fonts are required to be installed on each client machine which is running illustrator.   This becomes a bit of a headache, since adding new fonts to an application also requires the additional step of uploading fonts to computers used for the printing / cutting.

Thanks!!!
I am working a a more detailed write up because I think a text plugin would be extremely useful.  The full justification would adjust the kerning of a string to make it fit a complete box.
Lets say you have the string "WELCOME" and with 0 Letter spacing (kerning) the string is 100px wide.  And lets assume that the text is in a box which is 150px wide.

Left Justification = 100px for WELCOME and then 50px on right empty space
Right Justification = 100px for WELCOME and 50px on the left empty space
Center justification = 100px for WELCOME and 25px blank space on both sides
Full justification = 150px for WELCOME, with 8.33 px kerning space between each letter.

I am not a programmer, so please excuse my limited knowledge, but the more I think about it the easier this all seems if we made it a bit simpler by:

Using SVG font loaded for glyphs
Adjusting the spacing between letters (kerning)
Welding all overlapping paths, and then grouping all the paths.

Then the resulting group can be centered, left justified, right justified, and for full justification you could just play with the kerning to make it fit your needs.
The welding feature is important, specially if you stroke the text.   If you have a fancy font (something which looks cursive), then without welding overlapping paths, the strokes will mess up the text.
The welding function might be useful as a core feature of SVG.js.  If two paths overlap, and are the same exact color, a user might want to weld them into a single path.   This is easy to do in illustrator, not sure how it works in Javascript =)
Quick side note,
Are you or any developers you can recommend available for a small freelance project using SVG.js?
Thanks

Thank you for the detailed answer.  =)
I was not familiar with typeface.js, but it looks to me as the project is dead. At a minimum I think it would be worthwhile to have a 1st class Type pluing for SVG.js.   Working with Type is extremely hard, and SVG can solve a lot of issues.
In this long email I wanted ot give more detail on the matter, but I also wanted to pre-face it with how we are planning on using SVG.js to give you a real life use case outside of the browser.
Our Use of SVG.js
I wanted to give you some background on what we are trying to use svg.js for.  Our use case is a little different than the traditional one where SVG's are used as an alternative to bitmap images for web consumption.   I assume that we are not the only ones with this specific use case, and am hoping we can use SVG.js as the foundation of the project we are trying to have developed.  I myself am more of a designer (not a coder) so please excuse my limited knowledge of what is possible.   =)
My partner forming a sign printing startup.  What is normal in our industry is to use Adobe Illustrator for the production of signs, t-shirts, and other print graphics.   In the case of signs, vectors are essential, because the items are not printed, but rather cut from sheets of colored vinyl.  The machinery (plotter), actually traces the paths from a vector and cuts out the final result.
For our project our goal is to create two tools:
Back End Tool
The first tool is a simple back end interface which will accepts "SVGs" as products.  In this tool we hope to accomplish the following:

Upload or Cut & Paste SVG Code generated by Illustrator
Clean the Illustrator SVG by removing Doctype and Comments
Centering the SVG (Horizontal & Vertical) within a 1000px by 1000px space
Allowing us define groups (what we call layers) and then clicking on certian paths will move them to the selected layer. This is our way of re-organizing an svg.   Here is a link to a fiddle with the end result.   https://jsfiddle.net/pymg38o7/1/
The ability to define multiple text boxes where users can later input their own text input, font choices and text options.  https://jsfiddle.net/pymg38o7/2/
Other backend options (meta data, print size options, pricing, etc)

Front End Tool (Public Site)
With the svgs formatted and ready for use.  The front end site will just present the desired svg (1 per product) and then let the user choose colors for layers and fonts / colors / text string per text box.  With the 2nd JS Filddle example above The user would choose color for Layer1 (I SHOOT), Layer2 (RAW). The User would also choose Color, Font and Text for whatever they want in the text box.
The Problem with Fonts in SVG (Outside Browser)
Using fonts (such as google fonts) with SVG works great for web consumption, but breaks down once the SVG is opened outside the browser (Illustrator, Corel, Inkscape).
Here are a few problems which commonly occur:

Fonts are rendered differently in the browser.  For example if I create an SVG online which uses Lobster font, and then open up that svg in illustrator, the text using Lobster will look different when illustrator loads the TTF font.  Usually the text position is different, but this can also affect the font size, letter spacing and more.   Makes it very difficult to build a web application where users create their own products with custom text, and let the business deliver exactly what the customer created.

Fonts are required to be installed on the client machine.   Software like Illustrator cannot use webfonts.   In a print / production setup, if the fonts are not flattened (converted to paths) then the fonts are required to be installed on each client machine which is running illustrator.   This becomes a bit of a headache, since adding new fonts to an application also requires the additional step of uploading fonts to computers used for the printing / cutting.

The fonts themselves can vary a little bit between different format.   So a TTF font installed on the system can be different than the font used in the SVG.

Our Incomeplete Solution
To overcome the problem with how fonts are rendered in 3rd party applications we are generating svg paths using this PHP Script:  https://github.com/kartsims/easysvg.
The script simply takes an SVG font, text string, and then generates an SVG Path.  The path is no longer text, but works well for our uses.  The disadvantage is that for each time the suer changes fonts, or text string we do a server round trip.   This seems like an expensive way to accomplish our goals.   The advantage is the resulting SVG loads perfectly in Illustrator (What you see is what you get)
Text Plugin Wishlist

Ability to use SVG Fonts (your example handles this)

Kerning (Letter Spacing) Between Letters

Weld Function - Convert overlapping paths into a single path

Groupoing - Group the whole text element into its own group

Aligning - Center | Left | Right

Fitting - Fit height of bounding box, fit width of bounding box, fit best (will make the text fit within box, best use)

Arcing - Having the text follow an arc (up or down)

Jep - thats no problem
I differentiate Kerning and Letter Spacing. While kerning adjusts the default space between 2 letters (e.g. Ya) to look smoother, Letter Spacing adjusts the space between all letters with a factor or fixed value. Letter spacing should be no problem. Kerning is done in my plugin already.
Welding is not possible in javascript/svg - at least I cant imagine a way on how to accomplish that on an easy way. I saw a post saying, that you just have to combine the d-attributes of both paths but I dont know how this would work. Some tests would be needed
Well - that should be really no problem^^
check
You cant calcualte the dimensions of a path before it is drawn. No problems to fit one dimenson with one redraw but both dimensions may need more redraws
Its no problem to place a letter at a specific spot of a path - since arcs are allowed in paths this should be no problem. However if you use a path different from an arc I dont know how to get the specific tangent of that point to rotate the letter properly.

I am very busy right now - however you can mail me with my github mail

Firstly, thank you for the quick reply and the great news.
Is this something you might include as its own plugin or part of the core features?
#3 Welding.
I dont know how important this would be to others in the community.   The closest thing I could find was a source forge project which did the opposite of welding.   They call the project "clipper".   It seems pretty neat, but all of its features are far above my head.  https://sourceforge.net/projects/jsclipper/
#7 Text on Path (arc)
I think the most common use case for this would be a simple arc, but maybe others, or yourself would want more?    I dont know how this would work with alignment, or making the text full fit the complete arc.   For example if you have a circle path (full arc) and want to put the words SVG JS IS AWESOME, it could go all the way around, or start at a certain position?
Offline Messaging.
We are still a while away from getting everything figured out on our project.   Right now its mainly at the research phase.   Over the next few weeks or month I am going to write up a healthy spec, and maybe do my part by putting in some psuedo code and the UI portion in CSS.     Maybe after that is all done, you can look at what we are trying to do, and see if we can contract your services to do the coding work correctly.    Also on a side note, are there any JS frameworks which play nice with SVG?   Not a big fan of Angular, but I really like the way vue.js, react and knockout work.  For me things have never gotten past Jquery =).    Just wanted to pick your brain on that.
Thank you again!!!
Frank

The jsclipper is working with polygons and not with paths which is a huge difference. However - we should check if that is really needed in order to make things work.
There is heavy math included when you want to find the tangent from a beziere curve. Simple shapes would be the easy part here. Its also not that easy to make the text autofit a path. You would have to calculate the length of your text based on the glyphs you have (kerning included). I think thats something which just needs testing.
For simplicity the text would always start at the start from the path  when it should go the whole way round.
I myself have no knowledge about librarays which works super well with svg.js. Neither it should create any problems using it. Just try it ;)

@villanus I consider this as solved for now. If still task is still open dont hesistate to contact me.


Added support for "-" prefix in DEBUG variable

Disable debugging for somemodule.
DEBUG="* -somemodule"

This will also work with asterisks:
DEBUG="* -somemodule:*"

we should support the same on the client as well

oops, forgot about that!  added support for "-" on the client as well.

:+1: looks good to me, I was about to ask for the same feature.


How to share to gradio?

Is there any way to do this?

Please restate your question. This product has gradio setup. What are you trying to do?

Please restate your question. This product has gradio setup. What are you trying to do?

Just, how do I enable it?

Probably you are looking for this line
https://github.com/facebookresearch/audiocraft/blob/main/app.py#L136
And you want to use this gradio "share" feature?
demo.launch(share=True)

Just use the command: python app.py --share
and it will give u the public url


fix(Vehicles): Fix ability to fetch vehicles

Protect Api.ts class methods
Update Vehicle.ts to fix vehicle fetch

:tada: This PR is included in version 1.2.10 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Some way to import c-header-files directly would be a huge advantage

This may be done with c2ffi, (but I'm not experienced with it, nor json)
It could be implemented as a cto-function and macro
I need to know the functions anyway, but when I need foreign types and variables, where I don't have to know the exact values, nor all struct fields, I'd still have to rewrite them in dale for all libraries.
maybe even cl-autowrap can be copied without too much effort

I think, it may be easier to implement it as output driver for c2ffi, see this (untested, will not compile, currently only have older llvm installed):
https://github.com/porky11/c2ffi

Given that the existing output drivers for c2ffi are language-agnostic, it looks like it would be difficult to have it merged upstream.  If a user's OS packages c2ffi, too, then it's more hassle for them to have to compile a custom version rather than using the existing one and passing its output to a Perl script.

Nice, most things should work now. Unions may be implemented as variants maybe, but I don't think, they are important.
Being able to use different files (on for types, one for constants, one for functions etc.) or as they were in the original files (additional using includes in the main file) may also be useful.
And also something like auto-renaming and using specific namespaces for libs would be nice (not sure, if this would be implemented in this perl program) (Something like this: glClearColor->gl.clear-color, glUniform3f->gl.uniform, glUniform1i->gl.uniform, thats what I have written defc for (#165))

One simple error I found:
typedef GLvoid void => (def GLvoid (struct extern ((a void))))
Solutions:
fix manually (not a clever solution)
use macros instead of structs (easy, maybe even a better solution than structs, because casts won't be necessary that often anymore, but types don*t have to be used anymore)
only use macro for typedef void (difficult to know, in the funciotns using this type. Symbol-macros could fix this)
just skip it and let the lib-maintainer manually define it

Some other problem:
In c, arrays as function parameters are valid (even if it may be bad style), in dale not.
In c, arrays as function parametere are implemented as pointers (remember #104), so in dale this could be converted to function pointers in this case.

I currently try to make a more complete opengl wrapper using your perl program: https://github.com/porky11/dale-opengl
some things still seem difficult (especially defines, but thats a problem with opengl, i think)

Thanks for raising this issue, the script should cover the main use cases well enough now.  Some comments on specifics:

Unions may be implemented as variants maybe, but I don't think, they are important.

This has been implemented.

Being able to use different files (on for types, one for constants, one for functions etc.) or as they were in the original files (additional using includes in the main file) may also be useful.

Do you mean using the per-binding file information from the c2ffi data to produce separate output files?

And also something like auto-renaming and using specific namespaces for libs would be nice (not sure, if this would be implemented in this perl program) (Something like this: glClearColor->gl.clear-color, glUniform3f->gl.uniform, glUniform1i->gl.uniform, thats what I have written defc for (#165))

This has been implemented, via the --casing and --namespace options, except that it doesn't automatically derive overloaded functions.

typedef GLvoid void => (def GLvoid (struct extern ((a void))))

This is a tricky problem, as per your comments.  Using macros just for void typedefs won't work, and using them for all typedefs will make the common case more annoying, as well as requiring parentheses for struct typedefs due to not being able to distinguish them from others.  Given that this should be relatively uncommon, it skips defining them and leaves it to the user to fix, per your pull request.

I meant you can specify multiple files for different objects (one for functions, one for constants etc.), but I don't think, this is that useful (pcl-autowrap can do it, I think). Specifying output files seems useful enough which can also be done by multiple calls.
About void type: OpenGL has GLvoid. In my automatic opengl wrapper I replaced the types inside the perl program. Not because of the void problem but also becuase it's easier to use the original types since in c typedefs also work similar to macros, so operations on the original types can still be used and casting doesn't lead to problems.
(having to write (gl.uniform3f (GLuint ((value loc))) (GLfloat ((value 0.0))) …) instead of just (gl.uniform3f 0.0 0.0 0.0) is too complicated)

I found some problems:
With casing or namespace options enabled, even extern-c functions are only defined with the new name, which should mean, the original functions in the c lib won't be accessed by calling them.
You removed the way for only printing things from specific files i added. This means, if something like <stdlib.h> is included in the header file, all functions from stdlib.h are also included into the generated header file. Another option may be only including the new objects from namespace. (so if namespace is gl, only functions that start with gl will be included into the namespace gl). But this will often not work (for example if something starts with glut and should be in namespace glut, but not gl (not a realistic problem, since gl.h doesn't include glut.h))

Not sure how I missed the need to retain the original bindings :S.  It should work properly now.  The option to include only the bindings from a specified file has been restored, too, via the --file option.

Thanks, these problems have been fixed (assuming I understand all the problems correctly).

Most important was the double struct problem, which lasts pretty long to fix manually.
Namespaces don't work correctly now. But removing namespace-prefixes is mostly also pretty easy in texteditor.
Changing casing is not that important. For most types using the original names seems the better option anyway (especially for Types).
So changing everything to the same casing doesn't seem that useful.

Hey, can't macros in dale execute basically any code? If you can. You could write a C pre-processor in dale. And a C parser. And then you could use those to implement an include macro which processes and parses and generates declarations in dale? Seems like it would be neat to be able to just include C files in the language instead of running an external tool.

Parsing directly in dale was also my first idea. Maybe that's better than using c2ffi, since some information isn't shown in its output.
But writing parsers in such a low level language probably is more difficult. Maybe there already are other good paresers for C written in C.

I think since there is shared pointers etc it should be easy to use that to build some higher level DSL stuff which makes it feel fairly high level. You could probably basically implement scheme except without the eval.
But to be honest when I write parsers in higher level languages I miss pointer arithmetic.

For optimal usability you'd really kind of need to parse the header and transpile it. Since they could sometimes contain static function definitions or C macros. So you'd also need to be able to translate that into dale lol. But You could probably also just skip them since that's rare. And in that case a Dale programmer can translate by hand.

I also thought, it would be possible to implement some real lisp (i.e. CL) in dale. Most things should be implementable in dale itself, reader macros would need parsing, which could also be done in dale, but not (that easily) be used in the same file.
The only case, where I use pointer arithmetic is iterating over an array, but this is also possible in heigh level languages using iterators or similar. Where I would use it for parsing, I don't know.
In most cases it is enough to parse #defines that define variables.

And writing eval should also be possible. There is a cto function called eval-expression, so it's possible to add a repl with something like this
(def eval (macro intern (void)
  (let ((a \ (parse-into-sexpression)))
    (eval-expression mc (q int) …(qq fn int (void) (uq a) 0)))
  (q (eval)))

Yeah compile time eval is possible. I just meant that without implementing an actual interpreter that you embed in your program, you can't have runtime eval that modifies the entire dale program. It would sort of live a little bit outside your dale program, but you could still use compile-time introspection to expose basically all of your program's API to an interactive environment!
Well, in C, when you parse a string you can just use pointer arithmetic while iterating over, and if you have a function like startsWith you can just pass the pointer there and it will work just like a string, you don't have to treat it separately. Recently in .NET I had to implement my own ParserString which is a string with an offset. And implement helper functions like that. I can't use the StartsWith method that is built in to the actual string class.
But yeah I would like to have reader macros in dale itself. Lisps quasi quotation syntax is more pleasant than qq. So it would be neat to be able to make a quasi quote reader macro that expands to qq.

When I wrote a parser in C (or when writing read macros in CL) I just used read-char, peek-char and unread-char, but for more complicated parsers this may probably become too complicated.
Wouldn't it be preferable to define some Substring class, which contains two indices and a string reference, instead of copying?
I like that dale itself doesn't have reader macros, so it's easier to use it as IR, that's easy to generate.
In CL most reader macros do more complicated things than expanding into an sexpression. Quasiquote gets expanded to something with list or list* in most cases, and vectors will be converted to vectors at read time. But I think, this should be discussed in some different issue

Well in some parsers you wanna be able to backtrack when you failed parsing. And a nice way to do this is to just save the pointer for the current state, try to parse, and then if you fail set the value back to where it starter.
For the thing you mentioned that's basically what I did in .NET but with only an offset from the beginning since I don't need to offset from the end of the string while parsing.
I don't see how having reader macros in Dale would make it harder to use it as IR. And nor is the purpose of Dale to be IR to the best of my knowledge.

I just thought, it would also be good as IR for other languages, since generating sexpressions is easier than generating llvm or similar directly.

I mean that's fine. But having reader macros in dale would be a none issue for that use case. Since you would still have the ability to output code that is without reader macros.


Exported file unreadable content error

Hi,
I am having issues with the file generated by the plugin. I've tried it with several projects and in all cases I'm getting the 'unreadable content' error when trying to open the exported file.
Plugin version v1.0.7
Is there a way to fix this?

@eMkoC4 Did you find any solution to that ?
Been facing the same problem and I do not understand why, quite problematic.

Hi @eMkoC4,
Could you please show me data on the strapi admin panel so that I can get an understanding of the issue?


FALCON-1610: Instance commands in spring shell

Rebased after merge of #14

Closing in favor of https://github.com/apache/falcon/pull/249


[DDW-1040] Tooltips on dialogs hidden on hover

PR intends to fix the tooltip hidden when hovering on the copy button in diagnostics.
Screenshots

Before (Without Tooltip)
After (With Tooltip)

Review Checklist
Basics

[ ] PR assigned to the PR author(s)
[ ] input-output-hk/daedalus-dev and input-output-hk/daedalus-qa assigned as PR reviewers
[ ] If there are UI changes, Alexander Rukin assigned as an additional reviewer
[ ] All visual regression testing has been reviewed (assign run Chromatic label to PR to trigger the run)
[ ] PR has appropriate labels (release-vNext, feature/bug/chore, WIP)
[ ] PR link is added to a Jira ticket, ticket moved to In Review
[ ] PR is updated to the most recent version of the target branch (and there are no conflicts)
[ ] PR has a good description that summarizes all changes
[ ] PR contains screenshots (in case of UI changes)
[ ] CHANGELOG entry has been added to the top of the appropriate section (Features, Fixes, Chores) and is linked to the correct PR on GitHub
[ ] There are no missing translations (running yarn manage:translations produces no changes)
[ ] Text changes are proofread and approved (Jane Wild / Amy Reeve)
[ ] Japanese text changes are proofread and approved (Junko Oda)
[ ] Storybook works and no stories are broken (yarn storybook)
[ ] In case of dependency changes yarn.lock file is updated

Code Quality

[ ] Important parts of the code are properly commented and documented
[ ] Code is properly typed with typescript types
[ ] React components are split-up enough to avoid unnecessary re-renderings
[ ] Any code that only works in main process is neatly separated from components

Testing

[ ] New feature/change is covered by acceptance tests
[ ] New feature/change is manually tested and approved by QA team
[ ] All existing acceptance tests are still up-to-date
[ ] New feature/change is covered by Daedalus Testing scenario
[ ] All existing Daedalus Testing scenarios are still up-to-date

After Review

[ ] Update Slack QA thread by marking it with a green checkmark

for CPU we also have tooltip hidden

stakepool delegation hover is also do not show popup

stakepool delegation hover is also do not show popup

Sorry, what is this supposed to look like?

Sorry, what is this supposed to look like?

this is an old screenshot, but idea is the same, so on hover you need to see details of stakeppol, same like you have on hover in big stakepool list

Hmm I'm confused. I don't even see these on Master. Is there anything I need to do in settings to see them?

Ok I thought it was the base screen. Didn't notice that it's the step two for delegation.

here how it looks on latest release

Hi @shawnbusuttil,
This is an interim report for build 21387 as it's still being tested and taking a while to fully test it.
I have noticed upon hovering on icon "i" on Create a new wallet dialog, no tooltip was shown.Please see video here
I have also checked develop build 21384 and could reproduce this issue. However, on testnet production 20689, this issue didn't exist.
Could you look into this issue please and advise if this could be fixed in this PR? Thank you.


fix sorting, cycle detection still broken

I did some work on the topological sort. I made the find_roots function (which should better be called find_leafs) behave properly and changed how we find dependencies. This works OK.
I think we should move the sorting though into an earlier stage (basically before applying variants) and then use that sorting throughout the building process.
E.g. it might be better to find the general sort without taking into account multiple outputs etc. as libzlib -> zlib_wapi -> zlib and then we just expand variants afterwards and sort based on that initial sorting.

maybe ... scratch that because it might also not work properly if there are complicated if statements etc.

PS:

cycle detection still doesn't work in this version (we should compare the names and not the PackageMeta. The big problem of the PackageMeta is that the variant doesn't match up.
The "pin_subpackage(..., exact=True) thing is also not yet handled. Maybe that should be done in the variant discovery phase.


[159] Fix issue with argument parsing logic for tf apply

What?

Implemented enhanced parsing logic in handle_apply_arguments_parsing to handle Terraform apply command arguments.
Added support for various argument formats including -var, -var-file, -target, -lock, -parallelism, -compact-warnings, -input, -json, -auto-approve, -no-color, and combinations thereof.

Why?

Enhance robustness and flexibility in handling Terraform apply command arguments.
Ensure accurate parsing and inclusion of specified arguments while discarding irrelevant or malformed inputs.
Improve compatibility with diverse use cases and user input scenarios.
Address user feedback regarding parsing inconsistencies and edge cases.

References

Use closes #159, if this PR closes a GitHub issue #159

Before release
Review the checklist here

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

44 of 63 (69.84%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 69.182%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

leverage/logger.py
4
5
80.0%

leverage/modules/terraform.py
36
54
66.67%

Totals

Change from base Build<PHONE_NUMBER>:
0.2%

Covered Lines:
2042

Relevant Lines:
2846

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>5
Details

20 of 24 (83.33%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.1%) to 69.151%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

leverage/logger.py
4
5
80.0%

leverage/modules/terraform.py
12
15
80.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.1%

Covered Lines:
2011

Relevant Lines:
2800

💛  - Coveralls

After consulting with @borland667 I've pushed a simplification to the originally proposed solution.
The only thing we really need to worry is to find out if we are receiving a plan file as a last argument for the apply command. And in turn, prepend or not our terraform default parameters, which basically are the references to the correct .tfvar files.
Instead of parsing the entirety of the parameters, looking at the last two or so received arguments we can deduct if the last one is a positional argument or not (the plan file is the only positional parameter supported by plan). Any other errors/incompatibilities that the user may have introduced in the arguments we leave to terraform to decide.


Support persistence trigger extensions

Feature Request
Description of Problem:
Allow other modules to extend persistence specifications with custom trigger definitions, e.g. for triggers specific to different persistence platforms OR for non open-sourced trigger mechanisms.
Potential Solutions:
Use standard pattern for protocol / grammar / compiler extensions with island syntax.

This issue is stale because it has been open for 30 days with no activity. Please remove stale label or add any comment to keep this open. Otherwise this will be closed in 5 days.

This issue was closed because it has been inactive for 35 days. Please re-open if this issue is still relevant.


[RAC] - Ability to unselect a ListBoxItem in an uncontrolled Select

Provide a general summary of the feature here
It would be nice to have the ability to unselect a ListBoxItem in an uncontrolled select.
I know i could probably do that in a controlled one with a state by calling onAction in ListBoxItem but it would be nice if there was an option i could pass to SelectListBox that allows me to do so without changing my select to a controlled one.
NOTE: I am talking about clicking on a selected ListBoxItem to unselect it rather than having an outside button to clear the state.
🤔 Expected Behavior?
Pass a property to Select or SelectListBox that says i can unselect an item. When that is passed when i click on a selected ListBoxItem that should unselect it in a uncontrolled mode
😯 Current Behavior
No way to unselect a selected item by clicking on selected item in uncontrolled mode.
💁 Possible Solution
No response
🔦 Context
https://mantine.dev/core/select/
You can check the behavior in mantune ui.
💻 Examples
No response
🧢 Your Company/Team
No response
🕷 Tracking Issue
No response

That's not how a Select works. You can put a button next to the Select to clear it though.
But really I would say go back to my earlier suggestion https://github.com/adobe/react-spectrum/issues/6859#issuecomment-2283201083 as the thing you're building isn't a Select

@snowystinger
I am building a differenct component from what i mentioned in #6859 , its just a normal select this time.
But you are right, there is no rule stating that a normal Select should have this option. In stead i will have a "None" option in the list.


requierement.txt csv seem changed to python-csv

csv is not found with pip3. It seem to be python-csv now.

csv should be a built-in library, so it shouldn't need installing (https://docs.python.org/3/library/csv.html). That means that the requirements.txt file is incorrect, so I'll remove that line. Thanks


BUG ProductDataExtension - getActiveDiscount() sorting

Describe the bug
Now that we've added support for Amount in addition to Percent, we need to update the getActiveDiscount() method in ProductDataExtension to sort by type. For example - if $Discount->Type == 'Percent', then discounts should be sorted by Percent DESC. If $Discount->Type == 'Amount', then sort by Amount DESC.
The purpose of the sorting is to ensure the customer gets the largest of the active discounts.
Additional context
This may be tough to implement, since Discounts could be either type. Might need to query for active Discounts of each type and merge the DataLists.
https://github.com/dynamic/silverstripe-foxy-discounts/blob/master/src/Extension/ProductDataExtension.php#L51

resolved via #16, #17
resolved via dynamic/silverstripe-foxy#71, dynamic/silverstripe-foxy#72


whoami Windows Uses an Oversized Buffer

getusername() in whoami uses a 2048-byte buffer to get the username from GetUserNameA():
    pub unsafe fn getusername() -> String {
        let mut buffer: [libc::c_char; 2048] = mem::uninitialized();   // XXX: it may be possible that this isn't long enough.  I don't know
        if !GetUserNameA(buffer.as_mut_ptr(), &mut (buffer.len() as libc::uint32_t)) == 0 {
            crash!(1, "username is too long");
        }
        String::from_utf8_lossy(::std::ffi::CStr::from_ptr(buffer.as_ptr()).to_bytes()).to_string()
    }

When, in practice, usernames can only be up to 104 characters in windows (https://technet.microsoft.com/en-us/library/bb726984.aspx). It's safe to make the buffer 105 bytes.

@mattico thank you


Integration Test - Release - 2019/02/21 17:38:30

Auto create for integration test. IssueCommandFlow

@PRMergerTest3 : Thanks for your contribution! The author, @v-caxian, has been notified to review your proposed change.


RsXslt doesn't understand absolute URIs

RsXslt doesn't understand absolute URIs

@rultor release, tag is 1.3.1

@rultor release, tag is 1.3.1

@yegor256 OK, I will release it now. Please check the progress here

@rultor release, tag is 1.3.1

@yegor256 Done! FYI, the full log is here (took me 9min)

Oops! Job gh:yegor256/takes#735 was not in scope


vmap doesn't seem to work with toggle commands

I am trying to create a shortcut for various toggle commands for lists. For example, toggling a list to a numbered list.
Reproduce
Setup
Here is what I put in my .vimrc:
exmap toggleNumberedList obcommand editor:toggle-numbered-list
nmap gl1 :toggleNumberedList
vmap gl1 :toggleNumberedList

Problem
When I do a visual select of a bullet list and press gl1, only the last item is turned into a numbered item. For example, the result is
- foo
- bar
1. baz

after selecting the whole list and applying the command.
Environment

OS: MacOS
Vimrc plugin version: 0.9

I also have the same problem. I found out that it is because of obcommand. If you highlight the text in visual mode and use the command via the command palette it works. There is also one old issue #187 that covers this. But it didn't get implemented.


[Java] Create sequential serializer failed

Describe the bug
java.lang.RuntimeException: Create sequential serializer failed
at io.fury.serializer.CodegenSerializer.loadCodegenSerializer(CodegenSerializer.java:48)
	at io.fury.resolver.ClassResolver.lambda$getObjectSerializerClass$2(ClassResolver.java:949)
	at io.fury.builder.JITContext.registerSerializerJITCallback(JITContext.java:132)
	at io.fury.resolver.ClassResolver.getObjectSerializerClass(ClassResolver.java:947)
	at io.fury.resolver.ClassResolver.getSerializerClass(ClassResolver.java:902)
	at io.fury.resolver.ClassResolver.getSerializerClass(ClassResolver.java:805)
	at io.fury.resolver.ClassResolver.createSerializer(ClassResolver.java:1161)
	at io.fury.resolver.ClassResolver.getOrUpdateClassInfo(ClassResolver.java:1101)
...
Caused by: java.lang.IllegalStateException: Impossible because we just compiled class
	at io.fury.builder.CodecUtils.loadOrGenCodecClass(CodecUtils.java:95)
	at io.fury.builder.CodecUtils.loadOrGenObjectCodecClass(CodecUtils.java:40)
	at io.fury.serializer.CodegenSerializer.loadCodegenSerializer(CodegenSerializer.java:45)
	... 65 more
Caused by: java.lang.ClassNotFoundException:
	at io.fury.util.ClassLoaderUtils$ByteArrayClassLoader.findClass(ClassLoaderUtils.java:209)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
	at io.fury.util.ClassLoaderUtils$ByteArrayClassLoader.loadClass(ClassLoaderUtils.java:225)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	at io.fury.builder.CodecUtils.loadOrGenCodecClass(CodecUtils.java:93)
	... 67 more

Expected behavior
A clear and concise description of what you expected to happen.
To Reproduce
Steps to reproduce the behavior.
Please try to provide a reproducible script.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):
Please specify the versions of Fury, OS, and others such as JDK/Python/Gcc/Clang/Go/NodeJS if they are used.

@qinzhikui thanks for creating this issue, could you provide the reproduction code and fury version?

Fury version 0.3.0.
I cannot reproduce it locally.
I use ThreadLocalFury in production. Most threads are fine, only a few threads will have this problem.
I find this log 'Compile [class] take xxx ms'
I found that one thread will print 'Compile [class] take xxx ms', but other threads will generate the above exception
`private ThreadSafeFury fury;
public FuryOHCacheSerializer(Class clazz) {
    fury = new ThreadLocalFury(classLoader -> {
        Fury f = Fury
                .builder()
                .withLanguage(Language.JAVA)
                .withClassLoader(classLoader)
                .build();
        f.register(clazz);
        return f;
    });
}`

Seems this is a multi-thread related issue, but it's not easy to figure out what happend without the reproduction code. I checked the implementation, this exception should not happen.

close it first and see if anyone else is encountering this problem

I'll try to reproduce it, and give you feedbacks if I make it

Looks like we're seeing the same issue. https://github.com/apache/incubator-fury/issues/1325


Fix Json formatting in autoscale doc

Issue:
The JSON payload for enabling autoscale results in HTTP Bad Request as it is malformed.
Fix:
Fix the autoscale REST payload to adhere to valid JSON format.

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

@surajj-naik Thank you very much for your contribution!

#sign-off


getAll is not a function Lab ColorSpace

I recently have issue with some PDF's with version 1.1.3. I'm getting an Object doesn't support property or method 'getAll'. It is coming from the function ColorSpace.parseToIR in pdf.worker.js. I see a similar issue #5747, only this issue is with CalGray mode, my error is coming from the Lab mode.
If I look into the fix of issue #5747, I see the following change:
 - params = cs[1].getAll();
 + params = xref.fetchIfRef(cs[1]).getAll();

For the Lab mode params is still defined by just doing getAll. If I change that part to the part shown above, everything is working fine.

Thanks for the report; however this was fixed (two days ago) by PR #6112, hence I'm closing this issue.


Unable to detect and adjust for network connection change

Have been extremely happy with delivered functionality when in a same site connecting to a single network connection.
Have found though,
When deployed on a laptop moving from one wireless network to another, Win10 networking is able to automatically detect new wireless network connection and automatically connect but DNScrypt-proxy is unable to also adjust accordingly, connectivity to remote DNS is broken. Restarting the DNScrypt-proxy service also does not work, seems unable to use the new wireless network connection. Configured fallback in config to <IP_ADDRESS> does not work, likely confirming the problem likely is the wireless network connection connectivity problem and not a networking configuration problem like bad DNS.
In the meantime, I have disabled DNScrypt-proxy when moving between wireless networks (by resetting the IPv4 adapter property to DHCP client, removing <IP_ADDRESS>)
Problem should be easy to replicate based on my description...

Is that when using DNSCrypt servers or DoH?

When DNScrypt is running, is using DNS that can be found using standard
startup.
On Wed, Jun 27, 2018 at 10:01 AM, Frank Denis<EMAIL_ADDRESS>wrote:

Is that when using DNSCrypt servers or DoH?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jedisct1/dnscrypt-proxy/issues/530#issuecomment-400756356,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABrA4_c1ZU8JZ1Vx5Wi-bKl98PUKDRKIks5uA7pbgaJpZM4U59zl
.

@jedisct1 with DNS-over-HTTPS

So, it doesn't happen with DNSCrypt?

Hi,
I guess I'm not entirely clear about the question.
When DNScrypt-proxy is running, it works for the existing wireless network
connection, but won't if I connect to a different WiFi connection. Nothing
I try including restarting the DNScrypt-proxy service can get name
resolution working.
To resolve, I have to change network properties to point directly to DNS
servers instead of the DNScrypt-proxy service (<IP_ADDRESS>).
I don't know if DNScrypt is configured to connect to different types of DNS
when the service starts (or restarts).
On Wed, Jun 27, 2018 at 2:51 PM, Frank Denis<EMAIL_ADDRESS>wrote:

So, it doesn't happen with DNSCrypt?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jedisct1/dnscrypt-proxy/issues/530#issuecomment-400840655,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABrA4zcfUp6lW5HP7JDC9f0kaD-yLcZ6ks5uA_5KgaJpZM4U59zl
.


adding mix user functionality

Adding ability to choose the 'mix user' , a source that is somebody besides dav
Note that as written, this changes the default behavior to use USER, instead of seb, as the source.
Probably this should be split into a third option -n
But I wanted to run the pull request by you to discuss design defaults of how to gracefully use -u, -m, and -n

Fixed this. It should now be ready to merge without change in default functionality.

hmm yes that's nice!

@sbenthall are you planning to update this PR based on the discussion here?

I don't have a ton of bandwidth for this but in principle yes


Define http4sVersion key to derive version for cross builds

This sets up defining version in an alternate way on the cats branch and keeping the releases in sync for #875.

Another victim of #817.


error: [zcash] (Thread 12) Could not parse rpc data from daemon instance  0

z-nomp reporting error with zcash deamon, and sometimes goes away.
2018-06-21 23:52:20 [Pool]      [zcash] (Thread 12) Could not parse rpc data from daemon instance  0
Request Data: {"method":"getblocksubsidy","params":[],"id":1529596340058}
Reponse Data: Work queue depth exceeded

z-nomp sending too many packets to the daemon. limiting sending freq, fixed issue.

@c2h2 where to limit frequency in which file?


Feature/listing update

Clean up the codes

Getting an error clicking on Edit. Looks like there is a router.push that's not set up correctly maybe?

See error in comment

The tests are failing

The Spacing between buttons is missing

Other issues:

Export > mark the bounty as paid > open the bounty again. The UI is not updated
Able to mark open/inprogress/unassigned/unclaimed bounties as paid. This should not be possible
Not able to mark old bounties/bounties not created by me paid
Question and label not visible in light theme (check screenshot)


Improve or remove Blacklisting logic

https://travis-ci.org/fsprojects/Paket/jobs/266553668#L7258

yeah potentially.
maybe we need to remember the errors and print them here..

Aha, I think this is related to that boring-ssl crap. If the first request hits the mono bug, then the source gets blacklisted.
https://github.com/fsprojects/Paket/pull/2637 may lessen the impact of this, but ultimately the paket behavior is probably ok.

Yes that's what I thought, but the message is still not optimal...

There are also issues with feeds getting blacklisted, if a package was not yet indexed:
I uploaded https://www.nuget.org/packages/0x53A.ReferenceAssemblies.net45/0.1.0 a few minutes ago:
 - 0x53A.ReferenceAssemblies.net45 0.1.0
Possible Performance degration, blacklist '1_https://www.nuget.org/api/v2/Packages(Id='0x53a.referenceassemblies.net45',Version='0.1.0')'
Possible Performance degration, blacklist '1_https://www.nuget.org/api/v2/Packages(Id='0x53a.referenceassemblies.net45',Version='0.1.0')'
Possible Performance degration, blacklist '1_https://www.nuget.org/api/v2/Packages(Id='0x53A.ReferenceAssemblies.net45',Version='0.1.0')'
Possible Performance degration, blacklist '1_https://www.nuget.org/api/v2/Packages(Id='0x53A.ReferenceAssemblies.net45',Version='0.1.0')'
Possible Performance degration, blacklist '2_https://www.nuget.org/api/v2/Packages?$filter=(Id eq '0x53A.ReferenceAssemblies.net45') and (NormalizedVersion eq '0.1.0')'
 - FSharp.Formatting 3.0.0-beta07
 - RoslynTools.MSBuild 0.4.0-alpha
Possible Performance degration, V3 was not working: Value cannot be null.
Parameter name: uriString
 - RoslynTools.ReferenceAssemblies 0.1.1
Possible Performance degration, V3 was not working: Value cannot be null.
Parameter name: uriString
 - FAKE 4.63

Yes this is real especially when a package is not existing on a source.
The huge problem is that we cannot trust a source that a 404 is correct (as some sources always do that for some V2 urls).
To be honest I have no idea anymore what to do. We need to somehow intelligently detect that a source is trustworthy and "trust" 404 responses as well.

I'm slowly starting to think that the only sane way forward is:

Implement what nuget.exe is doing exactly (figure that out by using fiddler on various sources)
Use this logic to validate before blacklisting a source or just remove the current logic

Yes this is real - especially when a package is not existing on a source.

Thinking about this again, maybe the problem is something different.
We should not try to call GetDetails on package versions only returned by another source. I always thought this is already implemented but maybe this is broken in the special case when the other source is a local directory...

I told you about that 404 debacle.
Am 03.09.2017 11:58 nachm. schrieb "Matthias Dittrich" <
<EMAIL_ADDRESS>
I'm slowly starting to think that the only sane way forward is:

Implement what nuget.exe is doing exactly (figure that out by using
fiddler on various sources)
Use this logic to validate before blacklisting a source or just
remove the current logic

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/fsprojects/Paket/issues/2640#issuecomment-326833860,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AADgNG4CcdBvR6NJwLMhWrVOj-TX-El4ks5seyECgaJpZM4O8uDm
.

@forki look at my last comment, maybe there is another bug here. Because when I implemented it the assumption was: when we make the request we already know the package exists on this source (because we got the version from it). Therefore we can follow: 404 -> broken Uri.

yeah that assumption is sound.

I'm totally ignoring "This package has not been indexed yet", because IMHO that is clearly a server bug (and is only a transient error)

@Desarc Can you post your paket.dependencies or tell us if you had any "pinned" packages? Just want to ensure we actually solved the issue you are seeing.

We get this in many different projects, with many different paket.dependencies configurations. It's generally a mix of pinning some packages to specific versions, while specifying version ranges for other packages (with ~> or @~>, typically internal packages). We also mostly use strategy: max.
I don't know if it's relevant, but we usually don't use groups, and list multiple sources. The number of packages listed in one paket.dependencies can be anything from a few to over 100 (not counting unspecified transitive dependencies).


gzip doesn't work as a parameter at all

TL;DR
When passing gzip as a parameter in UploadOptions to Storage
Expected behavior
I expected the content-encoding not to be gzipped
Observed behavior

Reproduction
I published a forked version of this with gzip hardcoded to false. https://github.com/omrihq/upload-cloud-storage/commit/2f3b2496c08da3bf32cee46dd475f2af140477ac
And the encoding is still gzipped.
Repository
Repo: https://github.com/omrihq/upload-cloud-storage/
Additional information
I recently merged this expecting to fix this: https://github.com/google-github-actions/upload-cloud-storage/pull/15
I will happily put up another PR when I get to the bottom of it, however this seems not as straightforward as adding the flag originally.
Thanks @bharathkkb and @averikitsch for being so responsive, I appreciate it!

@omrihq Did you rebuild the dist/index.js file for your test? I just merged the updated dist/index.js from your PR. We have a process to automatically generate this. Can you target your workflow at upload-cloud-storage@main to test?

@averikitsch I did not build dest/index.js, how should I rebuild that? trying again with google-github-actions/upload-cloud-storage@main

Hey @averikitsch, I just confirmed that it works. Thanks for bearing with me. Closing this issue!


New file loading dialog flow

This implements a new file loading dialog UX, which is designed to help integrate other data sources such as Girder (@HastingsGreer).
This is an initial draft, so comments and suggestions are welcome. You can view a build of it here (link is valid so long as this PR is active): https://paraview-glance-dev.netlify.com/
TODO:

[x] add drag-n-drop to the dialog
[x] test on mobile

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


"this" type constraint incorrectly and automatically gets widened to a nullable type

TypeScript Version:  2.2.2
Code
export interface Message<P> {
  with<Data, E extends Event>(this: Message<[E, Data]>, data: Data): Message<E>
}

function Message<P>(): Message<P> { return {} as any }

const myMessage = Message<[Event, string]>()

myMessage.with(null)

Expected behavior:
I shouldn't be able to call with() with null when using strictNullChecks = true. string is not a nullable type.
Actual behavior:
It compiles.
Notes:
It's only broken when using null or undefined. I can't pass a completely different type like  number.
It also seems possible to work around it with this redundant hack:
export interface Message<P> {
  with<Data extends P[1], E extends Event>(this: Message<[E, Data]>, data: Data): Message<E>
}

I don't understand why we infer a union type for Data here.

I don't understand why we infer a union type for Data here.
We have two inferences, string and null, we try to get the common super type,  but we first remove nullable types, get the super type, then add nullable back. I do not think this is the intended behavior here though..

Here's something that will avoid drawing null as an inference for Data:
export interface Message<P> {
  with<Data, E extends Event, Arg extends Data>(this: Message<[E, Data]>, data: Arg): Message<Arg>
}

function Message<P>(): Message<P> { return {} as any }
const myMessage = Message<[Event, string]>()
myMessage.with(null)

Unfortunately, this is a place where the inference algorithm doesn't match intuitions. @AlexGalays does @DanielRosenwasser's workaround help?

@sandersn  / @DanielRosenwasser  The workaround appears to work fine. Is it "safe" because function params are stuck to being bivariant anyway? Otherwise I wouldn't want a covariant argument.

There are other issues with the this pointer constraint. Not sure if it's related?
In 2.3.2 or next
type ObjectLiteral = object & { reduceRight?: 'nope' }

interface CanBeChained<O> {
  at<A>(this: CanBeChained<A[]>, index: number): CanBeChained<A | undefined>
  at<K extends keyof O>(this: CanBeChained<ObjectLiteral>, key: K): CanBeChained<O[K]>
}

({} as any as CanBeChained<string>).at('oops')

I would expect at to not be callable at all (e.g fail with a no signature found error) when using a CanBeChained since it's not an object or an Array.
Instead the error is :
[ts] Argument of type '"oops"' is not assignable to parameter of type '"match" | "replace" | "search" | "split" | "codePointAt" | "includes" | "endsWith" | "normalize" ...'.

Which indicates the compiler decided to infer string as being an ObjectLiteral. In fact, it will give up and use the last function definition.


Fixes binary compatibility between 2.6.3 and 2.7.x

This PR fixes issues presented in #1043 where sprint data redis stopped working due to binary compatibility issues.
@HeartSaVioR @xetorthio this is the last PR needed to release 2.7.3. Plz review and comment

LGTM.

@marcosnils We should apply this to 2.8 branch.

@HeartSaVioR merged into 2.8 as well!.

@marcosnils Great! Thanks for the quick fix.


Removing the List of Selected options

Seeing as there doesn't seem to be a way to use the translate pipe for the selected options, is there a way to remove the list for deselecting options?  This way I only have the multiselect checkbox drop down?

Please use global css. This component is multiselect basically.


validation inside modal not working in IE 9

Inside a modal i have a form which uses jquery validation. The validation is not working in the modal in only IE 9. Outside on the rest of the page the validation works fine.

This sounds like an implementation bug - and not a problem with bootstrap. I suggest asking for help in either the jquery mailing list or bootstrap mailing list


silver-dev-cv:1.0.0

I am submitting

[x] a new package
[ ] an update for a package

Description: This is a resume designed for remote software developers. We use it to update the resume of candidates that go through our talent agency (https://silver.dev). Currently we recommend a set of resumes from typst, this one is more streamlined.

I have read and followed the submission guidelines and, in particular, I

[X] selected a name that isn't the most obvious or canonical name for what the package does
[X] added a typst.toml file with all required keys
[X] added a README.md with documentation for my package
[X] have chosen a license and added a LICENSE file or linked one in my README.md
[X] tested my package locally on my system and it worked
[X] excluded PDFs or README images, if any, but not the LICENSE

[X] ensured that my package is licensed such that users can use and distribute the contents of its template directory without restriction, after modifying them through normal use.

The warning is about using a font amply used in other packages, so assuming it is ok.

@elegaanz Would love to get some feedback / if it's possible to get it merged. I'm excited to land this template for my community!

Gotcha. I have no issues changing the name to accommodate guidelines. I was following this instruction:
Additional guidance for template packages: It is often desirable for template names to feature the name of the organization or publication the template is intended for. However, it is still important to us to accommodate multiple templates for the same purpose. Hence, template names shall consist of a unique, non-descriptive part followed by a descriptive part. For example, a template package for the fictitious American Journal of Proceedings (AJP) could be called organized-ajp or eternal-ajp. Package names should be short and use the official entity abbreviation. Template authors are encouraged to add the full name of the affiliated entity as a keyword.

If we want it abbreviated it would be sd_cv (strange?) or silver_cv. Thanks for your response.

After discussion, the name is fine :)


Fixes broken document links

1. Issue, if available:
Yes, https://github.com/aws/karpenter/issues/1198
2. Description of changes:
Fixes broken document links
3. How was this change tested?
4. Does this change impact docs?

[X] Yes, PR includes docs updates
[X] Yes, issue opened: link to issue
[ ] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Hey @zeagord , I was just talking to @geoffcline about this issue. The challenge is that the grafana-values.yaml file needs to be versioned with {{latest_release_version}}, but since it's a static file, it will need to be updated for each version. We were thinking that we could move the values.yaml into the doc itself, so that we can inject this version (preview in this case) into the docs.

Just to throw out another option on versioning this: We could also treat this yaml as a release asset and upload to github release assets w/ our github action release process. We will need to do something like this eventually to sync this to grafana.com to be installed like this https://grafana.com/grafana/dashboards/650

Both of your points are valid. I will fix the link and point to the preview like https://karpenter.sh/preview/getting-started/karpenter-pod-metrics.json.
In another PR, we can automate publishing the Grafana dashboards to the grafana.com via GH Actions.
Does that work?

Specifically this will need to be versioned
dashboards:
  default:
    pod-dashboard:
      url: https://karpenter.sh/preview/getting-started/karpenter-pod-metrics.json
    node-dashboard:
      url: https://karpenter.sh/preview/getting-started/karpenter-node-metrics.json

Closing this as it is fixed in the release https://github.com/aws/karpenter/releases/tag/v0.5.6


Add support for architectures in the wrappers

This is still very much work in progress
Still to do:

[ ] Need to define an extended_platform_key_abi()?
[ ] Extend gcc_version to take march into account?
[ ] Inform auditor about the march

[ ] Fix is_for_platform to use base_platform defined in this PR.  It should use arch() function instead of accessing .arch field

[ ] Teach minimum_instruction_set more instruction sets

It would be great to issue a warning if we're building for an higher instruction sets, but none (or very few?) of those instructions are used, so to avoid building useless stuff

First package built for multiple architectures: https://github.com/giordano/Darknet_jll.jl


PowerPC not handling large number of function arguments

Version and Platform (required):

Binary Ninja Version: 3.5.4432-dev
OS: Windows
OS Version: 11
CPU Architecture: x64

Bug Description:
When analyzing PPC32 binaries with functions that take a relatively large number of arguments (sometimes as low as 8, sometimes not until the 10th argument) the output fails to properly present the function call.
Steps To Reproduce:
Please provide all steps required to reproduce the behavior:

Open the attached PPC binary
Observe that the call to my_func should have 10 arguments, but instead it has 8

Expected Behavior:
Please provide a clear and concise description of what you expected to happen.
Screenshots:

Additional Information:
My initial thought was that it was stumbling when parsing arguments passed on the stack, but it occasionally falters on register arguments and also occasionally identifies some but not all arguments on the stack.
test.zip

@w1282  I am kind of confused by this. I do see that the format string of printf is asking for 10 arguments, but I only see that arguments r3-10 (which are 8 in total) are passed as arguments. Where are the other two arguments? Sorry I am not very good at ppc arch.

@xusheng6 They're being stored on to the stack by the instructions between 0x100005b8 - 0x100005cc (in main) and then copied onto the stack again by my_func between 0x10000530 and 0x1000054c.
This is being presented in the MLIL at main.mlil[0] and my_func.mlil[0] as var_[30|50] = &arg_0 which is passed as the final argument to each call.


Adding properties provided for cursor API

Hi
Is it possible to add the properties offered by ArangoDB's cursor API to python-arango's cursor interface?
From what I understand a PUT request is already being made, so would adding a request payload solve this?
I am particularly interested in the ttl option - this would allow me to keep the cursor connection live for a longer time (than the default) because I have queries in my application which have high response time.
I might be able to implement the feature if you could hint me in the right direction.

Hi @akki,
I believe what you are asking for is already implemented in python-arango.
Did you mean this?

Hi @joowani
Yeah, that's it. I think I looked up only in the cursor API's documentation and code, hence couldn't find it. I reckon that this is implemented under the aql.execute function.
Thank you for the great work and apologies for this inconvenience.

No problem @akki!


Topshelf

Use Topshelf for service registration.

For what we use Topshelf? For MS Service Registering?

Yes, that is what it is intended to be used for.


Consider adding support for Union descriminators

Is your feature request related to a problem? Please describe.
AFAIK, there is currently no way to, on deserialization, know the type that is included in a given Union. While Unions are flexible and necessary, the inability to ensure that types are preserved and to (de)serialize them while maintaining such type information is critical, since it affords polymorphic behavior, especially for applications that rely on strongly typing these objects (e.g. c# and bonsai).
Describe the solution you'd like
Pydantic’s discriminator feature (which follows the proposal by OpenAPI, see below) allows the definition of data structures with multiple types, using a discriminator field to determine the actual object type.
Some references:
https://typethepipe.com/post/pydantic-discriminated-union/
https://docs.pydantic.dev/latest/concepts/fields/
https://swagger.io/docs/specification/data-models/inheritance-and-polymorphism/
https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.0.md#discriminatorObject
Describe alternatives you've considered
Using pydantic2 seems to improve this support even further by simply declaring
Field(discriminator='type')])

Additional context
This would be a critical feature for a sustainable integration between python-schemas<->JSON-schemas<->bonsai.

I was surprised that your pydantic model seem to be able to infer the type of the class, but now I understand why:
From the Pydantic docs:

However, as can be seen above, pydantic will attempt to 'match' any of the types defined under Union and will use the first one that matches. In the above example the id of user_03 was defined as a uuid.UUID class (which is defined under the attribute's Union annotation) but as the uuid.UUID can be marshalled into an int it chose to match against the int type and disregarded the other types.

This is super dangerous undefined behavior. Say I have the following situation:
OuterClass -> Union[ClassA, ClassB]
ClassA -> decimal
ClassB -> int
If I try to deserialize a OuterClass object with the values: [1, 1.2], the OuterClass will actually return OuterClass[ClassA, ClassA], since ClassA is valid for both a decimal and an int, and appears first in the Union, even though the user might have specified [ClassB, ClassA].


Releases 1.12.1 and 1.12.0 are not in PyPY

Please, publish latest Ninja versions to pypi

There's specified ninja-build.org On page https://pypi.org/project/ninja/ as homepage which is quite misleading.

I agree, this is misleading and should be addressed. The project is https://github.com/scikit-build/ninja-python-distributions. They base their releases in the Kitware ninja builds, which are a couple of releases behind.


Support React v15.0 and later

Currently I'm trying to update my react version to 15.0.2 but blocked my this lib(now the peerDependency is react >=0.12).
Do we have a plan to support the newest version?

@kpaxqin It's likely another module incompatibility:
https://github.com/sanniassin/react-input-mask/issues/35

npm ERR! peerinvalid The package<EMAIL_ADDRESS>does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer<EMAIL_ADDRESS>wants<EMAIL_ADDRESS>
Error message here @sanniassin

@kpaxqin Try to delete your node_modules dir and run npm install again. If error persists, please provide your package.json and npm version.

@kpaxqin Still can't reproduce even with npm2. Can you make and post on github a minimal project which fails on npm install?

@sanniassin I'm trying to update my npm version and see what happened but meet some problem with the network to npm server, and if still can't resolve it I will try to post a minimal project. Thanks.

@sanniassin I think I found that problem and it's caused by the<EMAIL_ADDRESS>When I have<EMAIL_ADDRESS>as a dependency and try to update to react@15, it will fail with the error message I posted before (which says the validation also failed becuz of react-input-mask), but when remove react-router, it can update successfully. This minimal project  shows how to reproduce it.
So it should not be a defect with react-input-mask.
Thanks for your support.


[BUG]-Slot after essentials doesn't wait for GoWithLoad() to complete

Describe the bug
When Essentials is part of an app stack, it seems like it should be holding the next program from booting until the entire Plugin Loading sequence is complete.  Currently the next program boots immediately, and if it reads config itself will conflict with Essentials reading files.
Additional context
It seems to me like this is the intent; as there is a property on the SystemMonitor class for ProgramInitializationComplete set to true after the GoWithLoad() Method finishes.

There are a couple of properties that need to be set. SystemMonitor.ProgramInitialization.ProgramInitializationUnderUserControl should be set to true, probably in the ControlSystem constructor. The actual complete signal should take place at the end of the StartSystem method, as the system would appear to hang if the system is set to not load on next boot.

@ngenovese11 Can you elaborate more here on the issue.  There shouldn't be a problem with Essentials reading it's config file while other slots might be trying to read theirs.  The OS can handle multiple programs accessing the file system concurrently.
If, as @andrew-welker suggests, we need to set the other property to true, the SystemMonitor.ProgramInitialization.ProgramInitializationComplete = true; value should be set either if no config is found or after the config is read.

Sure.  So what I was expecting to happen (and what I think is intended) is for all of the plugins to load and go through their activation phases before the next program slot begins to boot.  What actually happens is that the next program slot begins to boot almost immediately, and prior to Essentials even having a chance to read its own config file.  I think what is happening is not what it intended.
Nick Genovese
Developer
PepperDash
www.pepperdash.com
240.888.6090
PepperDash Mobile Control™ - BYOD Crestron Control, no special app required

From: Neil Dorin<EMAIL_ADDRESS>Sent: Tuesday, July 7, 2020 4:43:20 PM
To: PepperDash/Essentials<EMAIL_ADDRESS>Cc: Nick Genovese<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [PepperDash/Essentials] [BUG]-Slot after essentials doesn't wait for GoWithLoad() to complete (#305)
@ngenovese11https://github.com/ngenovese11 Can you elaborate more here on the issue. There shouldn't be a problem with Essentials reading it's config file while other slots might be trying to read theirs. The OS can handle multiple programs accessing the file system concurrently.
If, as @andrew-welkerhttps://github.com/andrew-welker suggests, we need to set the other property to true, the SystemMonitor.ProgramInitialization.ProgramInitializationComplete = true; value should be set either if no config is found or after the config is read.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/PepperDash/Essentials/issues/305#issuecomment-655122236, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFSO2YY6AN2XZMPB6KNMXNDR2OCGRANCNFSM4OTIVX6A.


apply: add apFirst, apSecond

This PR will add two functions apFirst and apSecond, and a new section Apply with these two functions in the document.
Please see the discussion here https://github.com/sanctuary-js/sanctuary/issues/269
Ready for review

Thanks for the pull request, @zhangchiqing!
I like @safareli's suggestion that these functions could be defined in sanctuary-type-classes (and added to Sanctuary in #216). Would you like to port this pull request to that project?

What if we use left/right instead of first/second? this way the left/right would be consistent with foldLeft/Right as well. Also could define apLeftAll taking array of Applicatives and names would be consistent in this case too: apLeftAll = reduce(apLeft) instead of apLeftAll = reduce(apFirst)
ap1 `apLeft` ap2 `apLeft` ap3 = apLeft(apLeft(ap1, ap2), ap3) = apLeftAll([ap1, ap2, ap3])

I'm not saying to add this apLeftAll but the Left/Right i think is better name.
Also it would be nice if we add chainLeft/chainRight too.

I'm reluctant to go with ap{Left,Right} when the PureScript team chose apply{First,Second}. Do you think they should have chosen apply{Left,Right} instead? These functions are new to me, so I don't have an opinion one way or the other, but I default to following in the footsteps of Haskell and PureScript where applicable.
It's not obvious to me why apLeftAll is a better name for the related function than apFirstAll.

Also it would be nice if we add chainLeft/chainRight too.

Absolutely. These needn't be added in the same pull request as (<*) and (*>), but we should release all four functions in<EMAIL_ADDRESS>

Personally I feel Left/Right are better than First/Second, because Left/Right are good names  for any number of arguments. There might not be big difference for apLeftAll and apFirstAll, but apRightAll is better than apSecondAll if you have more than 2 elements. We could also define ap{Left,Right}{3,4,5,..},  for example apRight4 is better than apSecond4.
Or if we want to use First I think at least we should use Last instead of Second in which case apLast4 is basically same as apRight4.
So i think Left/Right is good name but First/Last is better than First/Second. If we want to be sortof consistent with purescript maybe First/Last is most optimal version.

Unlike me, you know why these functions are useful, @safareli, so I give your view significant weight. I'd like to know what @joneshf and @scott-christopher think before committing to names, though.

why these functions are useful
I have never used them :D.
They are useful to sequence actions, In case of monadic >> one could do

// `remove`, `touch` and `append` are FS actions returning `IO` actions
remove('./a') >> touch('./b') >> append('some text', '/b')
// or
[remove('./a'), touch('./b'),append('some text', '/b')].reduce(chainRight)
// or
chainRight(remove('./a'), chainRight(touch('./b'), append('some text', '/b'))
// instead Of
remove('./a').chain(_ => touch('./b').chain(_ => append('some text', '/b')))

I was initially going to suggest apLeft/apRight too but then thought they may cause confusion with having something relating specifically to Either.
My personal preference would perhaps be apL/apR to distinguish the difference from Either, but I'd be happy with any of the suggestions made so far.
apFirst/apLast could potentially be used as the names for the suggested apLeftAll/apRightAll, as they'll end up evaluating to either just the first or last result in the list of applicatives. The only downside with this function is that you will then have to somehow handle the empty list case, so perhaps it's simpler to just provide examples like apL(ap1, sequence(of, [ap2, ap3])) and apR(sequence(of, [ap1, ap2]), ap3) to cover those use cases instead?
I also don't think we need to be too concerned with aligning with PureScript if there is a preference for something else, I just threw that out as an example where someone has already given it a name.
And lastly, I think chainLeft/chainRight are perhaps a little redundant, as they would effectively just become aliases of apL/apR.

I like @safareli's suggestion that these functions could be defined in sanctuary-type-classes (and added to Sanctuary in #216). Would you like to port this pull request to that project?

OK, I will try to add these functions to sanctuary-type-classes and make a new PR for adding them to #216

Closing in favour of sanctuary-js/sanctuary-type-classes#11


Add support for stopping persistence to prepare for shutdown.

Adds a method that stops accepting new writes and waits for all existing writes to finish. This allows us to ensure that the store is persisted before restarting the app.

Hmm, on further thought, given that this corresponds to the currently published. How about we merge this one as is and make a follow up PR that address the remaining issues?

Agreed, if we have this publish already let's merge it.


Made a couple of member protected

I needed this in a derived class of the Auth0Client. Thought it would be nice to have in the original.

Could you share a bit more about your use case? We have noticed that extending Auth0Client sometimes requires this info if subclassing, but making members protected might not be the best/only solution.

Sure thing. I'm integrating the auth0 account into the android account manager. We want the account to show up there to add that native feeling to the app.
To do so you have to write a an android service that binds to a implementation of AbstractAccountAuthenticator. In this implementation you have to deliver an intent for android to start if the user adds an account from the settings page. This is just a little different from the default implementation that the Auth0Client delivers.
The SendLoginAsync starts the intent itself and has no knowledge of where the account wil be stored. We wanted an implementation that delivers an intent that is fully aware where it should store the account if succesfull and it should not start itself.
Does that make any sense? If you need more info just let me know.

Great, I get the general idea and think the update might be beneficial for other lib consumers to thank you!
Would you mind making a few changes to the PR?
I think it would be nice to:

Add all constants to a different public class. There is no private information in them anyways. We could make it protected but there is no point in that IMO.
Change the private readonly fields into readonly protected properties.

I'll review the SetupCurrentUser change when I get a bit more time.
/ccing: @siacomuzzi @sandrinodimattia @ntotten in case they have more feedback.

Hi Damian,
I processed your feedback. An other change I made with in the new commit is making the setter for CurrentUser public. I needed this to set my current user in the Auth0Client so I can get a new token for the user.
Let me know if you have any more feedback.
Youp

Great! Just left a minor comment regarding that last change.
All the constant files were added as project links, right? If that is the case once this is done I'll download the latest version and if everything is working merge this :)

Jep, the files were added by reference.
Sounds great! Looking forward to the merge.

Merged https://github.com/auth0/Xamarin.Auth0Client/pull/10 as I did added small change.
It might take some time until we publish a new version of the component since the publishing process takes some time, which is why we usually batch changes together.


Investigate reducing the data payload from the database

We're retrieving the raw geometries from the database for all features. We will want to revisit this for certain types of features, like boundaries. Note that it could be that another layer is responsible for the payload size here, I'm just guessing that it's boundaries.

There are two layers where we're going geometry matching requiring original, non-simplified geometry for it to work; boundaries and water polygons. Thinking about it a little more, the water ones would probably be okay with simplified boundaries, but it might increase the incidence of those "dashing" artefacts near overlapping polygons.
For the boundaries; at the moment, we just filter on boundary='administrative'. Might it be worth reducing that to boundary='administrative' and admin_level in ('2', '4') for the general case, allowing '8' for zoom > whatever zoom we want county boundaries for?

Also, buffered_land is a set of very large polygons. We should try chopping that up into a series of unioned blocks so that inland intersections don't pull in the whole coastline.

Cane do more clipping (versus simplification)?
Sent from my handsful device.

On Oct 13, 2015, at 03:47, Matt Amos<EMAIL_ADDRESS>wrote:
Also, buffered_land is a set of very large polygons. We should try chopping that up into a series of unioned blocks so that inland intersections don't pull in the whole coastline.
―
Reply to this email directly or view it on GitHub.