[messages] is 'music' export needed?

@rigrig I've just been looking through the messages library and I see we still have music export with the currently playing track info in.
But as far as I can see, this isn't used by anything now? Any playing music is treated as a new item in the messages list (which messagesgui uses), and since we're only saving it on exit now, it's not a big deal for us updating it.
Or am I missing something?

It's used to combine GB({"t":"musicinfo" and GB({"t":"musicstate" messages: we get musicinfo for every track change, but musicinfo only when music starts/stops.
This way (almost) all {id:"music"} messages have both "state" and "track" fields present.

Ok, thanks! Are you sure that's needed now though? Because it looks like we should really just store what's needed in the messages list?
... or maybe if it is needed, that code should go into the Android library as I guess it's not needed for iOS

that code should go into the Android library

You're right, ios already pushes {id:"music"} directly, so I guess the whole musicstate/musicinfo split should just be handled inside android.
And looking at ios, I wonder whether it even includes "state" info? (It uses NRF.amsGetMusicInfo(), which isn't in the documentation...) If not, I suspect auto open might just be broken for iOS, because the UI bootcode waits for both state and title to be present.

Yes, that's interesting - I don't know about iOS - maybe that doesn't work...
With the music var though, I'm still not sure it's needed? Without it, you get the two messages pretty close, so surely you'd get:
GB({"t":"musicstate","state":"play","position":0,"shuffle":1,"repeat":1})
// messages now contains {"id":"music","state":"play","position":0,"shuffle":1,"repeat":1}
GB({"t":"musicinfo","artist":"My Artist","album":"My Album","track":"Track One","dur":241,"c":2,"n":2})
// messages now contains {"id":"music","state":"play","position":0,"shuffle":1,"repeat":1,"artist":"My Artist","album":"My Album","track":"Track One","dur":241,"c":2,"n":2}

Or similar - I can't remember exactly what goes in, but you get the idea. Even if you jump to the messages app on the first message, you'd hope it would handle the changed message and then decide it should then display it?

With the music var though, I'm still not sure it's needed?

Oh right, it already combines them because they are {t:"modify"}. You're right, we don't need to keep special track of music.
(I think it's a leftover from trying to only emit/handle music with both state and info, but UIs should just be able to handle "incomplete" messages)

I can't remember exactly what goes in

Me neither, that's why I added sample_messages.js a while ago 😉 (should probably move that to android)

Ok, great. I'll leave this issue open then and will have a go at getting rid of that.

Me neither, that's why I added sample_messages.js

I didn't spot that! I have one (not committed!) here as well.
In the Espruino repo we have something where some actual tests are run on the factory apps in an emulator: https://github.com/espruino/Espruino/tree/master/tests/FactoryApps
How that's done isn't ideal, but I can't help thinking that we should probably have something in BangleApps - and specifically the whole messages system is so big it'd be really nice to have a clear set of tests so it was obvious if something broke.

specifically the whole messages system is so big it'd be really nice to have a clear set of tests so it was obvious if something broke.

Yes, that would be nice.

I've just added the basis of something at b89a368bd996b3cbfdbf728c9af8d9fa51329472 but not sure I'll get much further with it this year - hopefully at some point we'll have something usable though


applicationinsights-clickanalytics-js extension should allow defining which element types clicks are tracked on

Is your feature request related to a problem? Please describe.
In many frameworks (Under ReactJS/Angular/Vue), components are made out of elements that are not traditionally clickable. Example: Combo boxes that are defined in their popup with LI(List). We want to be able to track such clicked elements as well as the out of the box ones. See here:
https://github.com/microsoft/ApplicationInsights-JS/blob/master/extensions/applicationinsights-clickanalytics-js/src/handlers/AutoCaptureHandler.ts#L58
Example of such popular framework is React's Material UI: https://v4.mui.com/
Describe the solution you'd like
There should be a way to define in the configuration of this extension which additional elements types can be tracked.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
We had to add explicit event handlers to all these components to fire AI custom events. That creates a pretty big pollution to our code.

Any update on this feature? I have a customer project that consists only of custom elements based on divs. We have to use an additional framework for click tracking as long as we cannot specify either additional elements types, classes or id's.

Hi!. Any update on this??

Sorry, no we have not had any cycles to schedule this yet as we have been working on other items. And it's probably still months away before we will have any cycles (i.e. we have already planned out to the end of march '23)
Do you want to take a go at making the default value for clickCaptureElements configurable via the passed in IClickAnalyticsConfiguration?
It should be straight forward, but it will probably need additional test coverage (ie. I suspect that there will be more test code than actual production code required for this change).

I find this feature important and it's been regularly mentioned (#2318 and #2136).
Anyway we can bump this?


Python new grammar PEG and special operator

Hi @igordejanovic
I'm trying to adapt the new PEG grammar of Python to make it work with textX. I'm unsure it will work at the end, but anyway, it's worth the try. There is some easy adaptation to do, but I don't know how to deal with an operator that is available in the Pytho grammar: ~. It is said that
# ~
#   Commit to the current alternative, even if it fails to parse.
#

And in the related PEP:
Commit to the current alternative, even if it fails to parse.

rule_name: '(' ~ some_rule ')' | some_alt
In this example, if a left parenthesis is parsed, then the other alternative won’t be considered, even if some_rule or ‘)’ fail to be parsed.

What would be the best way to translate this operator in textX? I guess I can rewrite the rule, but I was wondering if there was another trick that could do it?
One example of the rules is the following:
assignment:
    | NAME ':' expression ['=' annotated_rhs ]
    | ('(' single_target ')'
         | single_subscript_attribute_target) ':' expression ['=' annotated_rhs ]
    | (star_targets '=' )+ (yield_expr | star_expressions) !'=' [TYPE_COMMENT]
    | single_target augassign ~ (yield_expr | star_expressions)

I rewrite it this way:
assignment:
    NAME ':' expression ('=' annotated_rhs)?
    | ('(' single_target ')'
    | single_subscript_attribute_target) ':' expression ('=' annotated_rhs)?
    | (star_targets '=' )+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
    | single_target augassign  (yield_expr | star_expressions)?
;

I used an optional for the rule after the the ~, but I don't think it's the right semantic as if yield_expr or start_expressions cannot be parsed, an error will be triggered by textX.

Hi Vincent,
If I understand ~ rule correctly what is specified before the rule is some kind of prefix which if parsed will prevent any subsequent alternative to be matched.
What you could try is something along this line (haven't tried this so might not work):
MyRule: Prefix Some Other Rules | !Prefix something else | !Prefix another one;
Prefix: ...;

Thus, if Prefix matches then only the first alternative would ever be considered as the others have negative lookahead assertion with the same prefix so they can't match.
Not sure what ~ does in the example above from the Python grammar as it is used in the last alternative so there is no other alternative to try.

Moving this issue to discussions.


Expose members: instance & data in ViewController

ViewController is a great way to get information about the current view.
It will be useful to get the instance of the current view and data parameters that generated it.
Scenario:
An ion-menu and ion-tabs share links.
For example, a tabs page has 2 sub pages: Home, About.
Home & About are also linked from the ion-menu and they are showing the same root page, the tabs page.
Clicking on menu link opens the tabs page with NavParams, the tabs page will show the right subpage using the NavParams
This configuration works, however it renders the Tabs page for every click on the menu items.
Using nav.getActive().instance I can get the tab's page instance, if it implements an interface (e.g: selectTab(NavParams)) I can call it and do an internal change of the sub pages without re-rendering the tabs page.
since instance is semi-private (by @private JS comment only) it kinda smell...
If there's another solution, i'd love to learn.
New to ionic and the new concepts of "routing" in ionic.

Wrong repo, closing.


Research more efficient World storage

Chunks in the World are currently stored in a HashMap. Rust uses a collision-resistant cryptographic hash by default (SipHash), which can be quite slow for small keys (and AxialPoint is very small).
A few different approaches should be implemented and compared:

Use a different hashing algorithm, but keep the HashMap
FNV-Hash - crate
Should be the easiest to implement
Use the BTreeMap
This requires the key to be Ord, which AxialPoint isn't. To keep AxialPoint clean, a private newtype wrapper can be implemented which implements PartialOrd and Ord (we can also just #[derive] it on AxialPoint for simplicity - but < and > on points doesn't really make sense).
Use a sparse vector holding a fixed NxN grid of chunks
This should be very fast, but you'll have to actually think a bit about what you're doing since the player can move around in the world (might need deeper integration than just world.rs)
... any other ideas?

If the chunk storage efficiency doesn't cause any practical problems, this isn't very important. But if anyone wants to fix this anyways, feel free to.

perf output:
   8,67%  plantex  plantex                     [.] glium::program::uniforms_storage::UniformsStorage::set_uniform_value::ha5e5f596cb2f2efe
   7,27%  plantex  plantex                     [.] client::render::Renderer::render::hcc24235783bb4164
   6,72%  plantex  plantex                     [.] _$LT$hash..sip..SipHasher$u20$as$u20$hash..Hasher$GT$::write::he3cca41a9c199b36
   6,54%  plantex  plantex                     [.] _$LT$hash..sip..SipHasher$u20$as$u20$hash..Hasher$GT$::finish::hcaaa5006afab4023
   4,08%  plantex  plantex                     [.] _$LT$hash..sip..SipHasher$u20$as$u20$hash..Hasher$GT$::write::he3cca41a9c199b36
   4,01%  plantex  plantex                     [.] _$LT$program..program..Program$u20$as$u20$ProgramExt$GT$::get_uniform::h98f3787d3c45f7b5
   3,50%  plantex  plantex                     [.] _$LT$hash..sip..SipHasher$u20$as$u20$hash..Hasher$GT$::finish::hcaaa5006afab4023
   3,45%  plantex  plantex                     [.] glium::draw_parameters::sync::he374d9e2f3825e96
   2,95%  plantex  plantex                     [.] glium::vertex_array_object::Binder::bind::hc8a902c9ed8a805f

Do we use a HashMap anywhere else?

i remembered sometime ago reading about "voxel engines" one part of it was read times of different types of different data structures.
if i remember correctly it turned out that "Interval tree + hashing" is by far one of the best ways if you do not have random reads, which we isn't really the case here.
ps: found the repository again git repo


add temperature plot

Closes #7
This graph doesn't update live though like the CO2 one

I get the following error when I try to run this @yuzhang0302
Traceback (most recent call last):
  File "/Users/keenan/Documents/GitHub/ghg-cloud-dash/app.py", line 68, in <module>
    co2_fig = px.line(get_influxdb_data(), x="_time", y="co2", title="Co2 PPM")
  File "/Users/keenan/Documents/GitHub/ghg-cloud-dash/app.py", line 30, in get_influxdb_data
    return df.drop(['result', 'table'], axis=1)
  File "/Users/keenan/Documents/GitHub/ghg-cloud-dash/venv/lib/python3.9/site-packages/pandas/core/frame.py", line 4308, in drop
    return super().drop(
  File "/Users/keenan/Documents/GitHub/ghg-cloud-dash/venv/lib/python3.9/site-packages/pandas/core/generic.py", line 4153, in drop
    obj = obj._drop_axis(labels, axis, level=level, errors=errors)
  File "/Users/keenan/Documents/GitHub/ghg-cloud-dash/venv/lib/python3.9/site-packages/pandas/core/generic.py", line 4188, in _drop_axis
    new_axis = axis.drop(labels, errors=errors)
  File "/Users/keenan/Documents/GitHub/ghg-cloud-dash/venv/lib/python3.9/site-packages/pandas/core/indexes/base.py", line 5592, in drop
    raise KeyError(f"{labels[mask]} not found in axis")
KeyError: "['result' 'table'] not found in axis"

Oh no it's working. I think there was some sort of local cache issue on my end perhaps.

@yuzhang0302 and I discussed this earlier today. She's going to add the feature to update the plot on a periodic basis and add that to this PR. Let me know if you need  any help or want to merge this first and then fix the updates in a separate PR @yuzhang0302 !

I resolved the merge conflicts and fixed the updating for the graph :)


Previewer Seek Broken

What system are you running Yazi on?
Linux X11
What terminal are you running Yazi in?
alacritty 0.13.1 (fe2a3c56)
Yazi version
yazi 0.2.2
Did you try the latest main branch to see if the problem has already been fixed?
Tried, but the problem is still present
Describe the bug
The previewer does not seek beyond a single increment.
The last version where seek within preview (Ctrl-J, Ctrl-K) was v 0.1.5 of yazi-fm.
Expected Behavior
Seek to EOF
To Reproduce
Go to a previewed file and (Ctrl-J, Ctrl-K)  to preview. It will not move beyond a single increment.
Configuration
No response
Anything else?
No response

See https://github.com/sxyazi/yazi/issues/461


Can I set ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE to show red text when history autosuggest strategy is used and blue text when completion engine is used?

I know that:

ZSH_AUTOSUGGEST_STRATEGY=(history completion) will first try to find a suggestion from the history, but, if it can't find a match, will find a suggestion from the completion engine.
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE configures the style that a suggestion is shown with.

Question: Is there a way to show one font color (e.g. red) for suggestions from my history and another font color (e.g. blue) for suggestions from the completion engine?

There's not really a supported way to do this right now. I was thinking that you may be able to write custom strategy wrapper functions around the history and completion strategy functions and set ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE accordingly in those wrapper functions, but that only works without async mode enabled, because in async mode the suggestion fetching runs in a separate process so can't set the value of the highlight style variable for the original process.
_zsh_autosuggest_strategy_color_completion() {
  _zsh_autosuggest_strategy_completion "$*"

  typeset -g ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE

  ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=red'
}

ZSH_AUTOSUGGEST_STRATEGY=(color_completion)

The way the async code works right now, the only thing communicated back to the main process is the actual suggestion. It doesn't send any info about what strategy generated the suggestion, so we'd need to figure that out first. This is the place where we get data back from the async process:
https://github.com/zsh-users/zsh-autosuggestions/blob/ae315ded4dba10685dbbafbfa2ff3c1aefeb490d/src/async.zsh#L64-L71
Maybe the async process could always send the name of the strategy that generated the suggestion as a separate line at the beginning.
We'd also need to modify the _zsh_autosuggest_fetch_suggestion function. Currently it only "returns" the suggestion (by setting the global suggestion parameter) but we'd need it to potentially set another global param to send the strategy back as well.
https://github.com/zsh-users/zsh-autosuggestions/blob/ae315ded4dba10685dbbafbfa2ff3c1aefeb490d/src/fetch.zsh#L9-L27

Wow thanks @ericfreese for the detailed reply! Interesting. I'm not too familiar with zsh and shell scripting in general so I don't know if I'd be able to make the changes myself. Do you think this is something that people would want? (I do :) )
Would it be a change that a contributor to the repo would want to make?


clang-tidy errors in headers must be fixed

clang-tidy has apparently not been applied to the header files of ChainerX for a while and this has lead to several warnings/errors to be merged into the master branch. Fixing all warnings/errors at once might be difficult so I'll open this issue so that partial fixes can refer to something.
See  https://github.com/chainer/chainer/pull/6441 for how to actually run clang-tidy on the headers and to check the existing failures (via the CI results).
Reported Warning/Errors (might not be up-to-date)
See the following CI log for actual failures.
https://gist.github.com/hvy/a0b808cca4898ea14e1dafeeb129ee09

The log contains a lot of duplicates. We should find out exactly how many there are. Fix them in separate PRs if there are too many, otherwise in a single PR that also enables the clang-tidy check on headers.
Certain errors can be ignored, such as the preferred use of variant when accessing union members.
Should find out why there are duplicates. Are included headers also checked? If so, are the headers not check when checking the .cc?

Fixed by https://github.com/chainer/chainer/pull/6441.


HTTPS Quality of Life Improvements

I've migrated from the classic load balancer to the application load balancer and implemented listeners that will default redirect HTTP -> HTTPS if HTTPS is enabled. I also removed the TomcatScheme parameter and automatically set the Tomcat scheme based on if a certificate is supplied. This may not be desired if we want to support customers bringing their own load balancer in front of the ALB.

I dug up this ticket for Jira: https://bulldog.internal.atlassian.com/secure/RapidBoard.jspa?rapidView=687&projectKey=DCD&view=detail&selectedIssue=DCD-248
Adding param set is a great idea. I can look into that. I should be able to adapt some of the previous build stuff I did for that parameter set to the current builds.
Migration path I hadn't thought of 🤔 I might just test it and update stack with update template and see what happens.
Happy to work together with Don for doc update for both these changes.

Build failed because load balancer name was too long 🤦♂ https://server-syd-bamboo.internal.atlassian.com/browse/DCD-AWSJIRA27-DEPLOY-2/log

After a quick test, for jira, migration is not possible. You're not allowed to change the resource type. However a migration may be possible for confluence.

Build has been implemented and tested and is now passing :)

I've also updated the description for SSLCertificateARN so that it includes that it configures Jira for SSL as well.

@nanux Build is all set up now in ZDCD and succeeding. We need to merge the bamboo specs but are we good to merge this PR now?


Bug Report: [Finishing songs softlocks the game.]

Which target are you using?
[ ] Windows
[ ] Linux
[x] Mac
Explain your issue
Please check first if your issue haven't already been reported yet.
When finishing a song, mainly modded in songs, the game shows a miniature-countdown and then freezes the game. You can only escape via the editors or by closing the game since you cannot pause. Not sure if this happens for Windows or Linux users though. Mainly happens for me in Freeplay but has happened once in Story Mode. No crashes.

im on linux and this doesnt happen for me
also i thought you said you were on linux

Fixed


Fix totally failed API

try to fix #78: "system ui is not responding" error

I've tried to add API 30, but it's still cancelled. Other changes are aimed for boot acceleration

API 26 totally failed, continue investigation

Doesn't solve the issue


Create CRS, CS and Datum subtypes

Current PROJ-JNI implementation creates only the CRS, CS and Datum base classes. The AuthorityFactory.wrapGeodeticObject(type, ptr) method has the necessary information for creating the appropriate subtype, but this is not yet used fully.

Missing BoundCRS, which is tracked in #11.


Update test-glossary.md

Currently, the Azure DevOps doc mainly has tutorials for end-to-end testing. While beneficial, it's insufficient. There is "best practices" for security but not for testing. I've added some best practices for automated testing in the pipeline along with some actionable tips. Also, I've added relevant guidelines that can help readers with their testing approach.

@wisdeom
Can you review the proposed changes?
Important: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off

@raviLiftr seems only you have the permission. Can you please sign this off?

@raviLiftr seems only you have the permission. Can you please sign this off?

@ttorble I'm a bit confused who can sign this off. Can you please contact the correct person?


File output fails within Workmanager task handler

I have a callback invoked by Workmanager.  Although Console output works fine from here, I have to reinitialise the file for the File Output at the start of the callback, which I guess makes sense.
However once I start processing within the Workmanager.executeTask() task handler, although I still get the console output fine, I get nothing written to the File output.  I've even tried reinitialising to a third file here, without any success.  There's no errors on the console.
Any ideas how I might fix this?
Notes:  Maybe caused by IOSink close/await done missing or faulty when called in task handler?

@IanWorthington , Did you find the fix, im also facing same problem.

@IanWorthington , Did you find the fix, im also facing same problem.

I'm afraid not.  I've had to stop using logger for the moment, but I hope to come back to it at some stage.


Warn when receiving unknown status type from fiddle

Fixes https://github.com/fern-api/fern/issues/653


[WIP] Support for file uploads

This is a work in progress to implement GraphQL multipart request specification to support file uploads.
The StandardServer now supports file uploads for request with multipart/form-data content type, but only for PSR-7 requests (IMHO it would be out of scope to parse raw request for uploaded files). A new type File was introduced to represent uploaded file in the schema.
Usage should look like:

$request = getPsr7RequestFromAnotherLibrary();

$schema = new Schema([
    'query' => new ObjectType([
        'name' => 'Query',
    ]),
    'mutation' => new ObjectType([
        'name' => 'Mutation',
        'fields' => [
            'testUpload' => [
                'type' => Type::string(),
                'args' => [
                    'text' => Type::string(),
                    'file' => Type::file(),
                ],
                'resolve' => function ($root, array $args) {

                    /** @var UploadedFileInterface $file */
                    $file = $args['file'];
                    $this->assertInstanceOf(UploadedFileInterface::class, $file);

                    // Do something more interesting with the file
                    // $file->moveTo('some/folder/in/my/project');

                    return 'Uploaded file was ' . $file->getClientFilename() . ' (' . $file->getClientMediaType() . ') with description: ' . $args['text'];
                },
            ],

        ],
    ]),
]);

$server = new StandardServer([
    'schema' => $schema,
]);

$response = $server->executePsrRequest($request);

On the implementation side of things, I would need advice on how to properly test \GraphQL\Type\Definition\FileType. For now we have \GraphQL\Tests\Executor\UploadTest which is more or less a functionnal tests for the entire stack. It's nice and working, but it only test a single case. It might be best to have unit tests covering only FileType, with more different cases, but I could not find anything similar. Would you have any recommendations about that ? where and how it should be done ?
Like I mentionned it includes PR #218, because at this point it would probably not be wise to parse uploaded file ourselves. But I suppose I could rebase without #218 if that's a problem for you.
It should be a solution for #178 (and https://github.com/Folkloreatelier/laravel-graphql/issues/125)
I'll write some docs, once we agree on the code.

Coverage increased (+0.004%) to 92.87% when pulling 9c855db9e1dcbe870778a11d88bc6844a28fc7b0 on PowerKiKi:upload into a3f18b51f76d071652777ec17b6664525340849b on webonyx:master.

testUpload' => [
                'type' => Type::string(),

shouldn't be a sort of Upload type?

Looks awesome, but I have couple notes:

I would like to separate utils like this from core types defined by GraphQL spec. So we should use something like Utils\UtilTypes::psrFile() for this instead of Type::file(). Also the type itself should live somewhere under Utils namespace (or maybe all of it should be placed under the Server namespace - what do you think?).

The server has to support "multipart/form-data" for default PHP globals method as well. Right now when you send multipart/form-data the server just won't do anything. But it should actually process the query passed in a request the same way it does for regular application/x-www-form-urlencoded. Then one can use $_FILES manually in the mutation resolver.
We can probably implement a similar scalar type (e.g. Utils\UtilTypes::phpFile()) which just returns corresponding entry from $_FILES in the resolver.

I am not convinced that https://github.com/jaydenseric/graphql-multipart-request-spec is a way to go for us because it introduces separate request format which is different from what we currently use for application/x-www-form-urlencoded. I'd prefer to stay consistent here. We do not support batched queries for application/x-www-form-urlencoded anyways.
We should probably stay closer to express-graphql, e.g. how they suggest doing uploads (with a difference that we use scalar type vs object type as in their example)

Please let me know what you think.

separate utils like this from core

I suspected you would say that. I really don't mind at all. I would tend to go Utils\UtilTypes rather than mix with server, because they could be used outside of standard server too.

support "multipart/form-data" for default PHP globals

I am not sure about that. I am actually not sure about the "raw" server at all. I feel supporting raw request (as opposed to PSR request) double our workload for really no gain. It's very easy to add a PSR compliant lib to parse globals just before calling the standard server. Supporting "raw" request is definitely convenient for new users, but I feel like it will bite us in the end, because we have to re-implement lots of PSR related things and maintain two very similar yet different paths in our code (one for raw, and one for PSR).
Instead of implementing multipart/form-data for globals, I would take the drastic opposite decision of dropping the raw server entirely.

not convinced about graphql-multipart-request-spec

This might be a deal breaker for me. I use Apollo Client on the browser side and it seemed to me that apollo-upload-client was the de-facto standard in that context. It's about 1 year old and rather popular according to GitHub stars and forks. So I can only assume that the spec that came out of that project should reflect all the experience accumulated from real-world experiences. And I did made a proof-of-concept with this PR and apollo-upload-client in my project very easily. It's also the only attempt to create a specification about uploads AFAIK.
I am not quite sure, but it seems that what express-graphql suggests would not be compatible (at all) with apollo-upload-client. And that would be a problem for me. I am willing to be convinced to use another format if there are ready-to-be-used solutions out there for Apollo, but I am not willing to work on a format that I could not use with Apollo on the client side almost out of the box.
What do you use on client side ? would you have a suggestion to combine express-graphql and Apollo Client ?

We have a separate endpoint for file uploads (not doing it via GraphQL). And also use our own simple GraphQL client (not Apollo or Relay)
I actually didn't realize that you want to implement some 3rd-party spec, just thought we'll mirror multipart/form-data after application/x-www-form-urlencoded with some sugar (as express-server does via multer).
As for graphql-multipart-request-spec... the problem is that we can't really say that it is a standard. Apollo server by itself doesn't support file uploads, Relay recommends doing it this way (a-la express).
I think it's better to extract this implementation as a separate project (same way as apollo-upload-server is separate from apollo-server). But still, the question remains if we can make life simpler in a Standard Server for those using such tools.

Actually apollo-server (at least for express) uses the same approach as express-server, so this actually looks like a standard for me.


Configure vite HMR host from vite.json development.host

Description 📖
Adjust vite configuration to set HMR host and port.
Background 📜
When running an app that uses multiple subdomains, I was running into an issue where I wanted to run vite listening on localhost, and having app loaded from sub1.app.test and sub2.app.test use vite HMR at localhost:3036. I configured development.host in vite.json which correctly set ViteRuby.config.host_with_port to localhost:3036, but vite client in the browser was trying to connect to sub1.app.test:3036, violating CSP.
The Fix 🔨
This change configures the vite client to use the same HMR config as what we're setting on the server side.
Screenshots 📷

Hi Grzesiek! Thanks for your contribution!
I'll make some adjustments to ensure the hmr option can still be overriden manually in vite.config.ts, but this is a good default.

Released in<EMAIL_ADDRESS>

Thanks!

@ElMassimo, Is it possible to document this somewhere. I had a slightly different but related problem. I ended up digging through the code to find this change. I think this will always use the Vite Ruby host config.
So the problem I had was with a docker configuration. With VITE_RUBY_HOST set to <IP_ADDRESS>, the client always loads the WebSocket via <IP_ADDRESS>:3036, which breaks when trying to access the Rails server from another machine  (i.e via "test.dev:3000" or "<IP_ADDRESS>:3000", for example).
In the end, I had to add this to vite.config.ts to make Vite fallback to working out the hostname automatically.
{
  server {
    hmr: {
      host: undefined,
    }
  }
}

This may be worth mentioning somewhere to save someone else trouble.

I'm considering reverting this change, which would require explicit configuration of server.hmr.host to localhost when using subdomains. Before making any changes, I would like to hear your thoughts @grk

Hi, I was setting Vite in a new project using docker (so VITE_RUBY_HOST is set to <IP_ADDRESS>) and I couldn't find the reason why it didn't work until I tried to upgrade another project from Vite 2.x to 3.x., and then I found this change when digging in the commits related to Vite 3.x to find the cause.
@ElMassimo I agree with your previous comment, because I think that this change breaks the more simple or common setups.
@RichGuk thanks for take the time to post a comment with your findings.

@grk Reverting this change, since Docker setups are more common than testing subdomains locally.
I might release it in a patch version, since it doesn't affect production usage, and will add a note in the Troubleshooting section about subdomains.
Please leave any feedback you have around this issue.

@RichGuk @rbngzlv Released<EMAIL_ADDRESS>which reverts this PR.
This should simplify the setup with Docker and similar setups that require listening on <IP_ADDRESS>. Please upgrade, and let me know how it goes.

@ElMassimo upgraded a project from 2.x to 3.0.8 and worked fine, thanks!

@ElMassimo without action cable in rails application is it possible to run HMR

@ElMassimo  its throw below error

@uzaif313 That's unrelated to this issue, please open a Discussion instead.
You need to configure CSP in your application.


Want to sort with array object value

Expected Behavior
So i want to sort name , but there is a link function in it

Current Behavior
This my code for table options
const data = projects.map(p =>[        '${p.id}','${p.status}',['${p.id}','${p.name}'],'${p.type}','${p.createdBy}','${p.createdAt}','${p.live}'     ])
there's an array object in it = ['${p.id}','${p.name}']
and this is my code for column name
{         name: "name",         id:"name",         label: "Name",         options: {           filter: false,           customBodyRender: (value) => {             return ( <Link to ="" onClick = {e => this.setID(e, value[0])}> {value[1]} </Link>             );             },         },       }
so value[0] is ${p.id} and value[1] is ${p.name}
i think column name can't sort because there's two value in it
take a look at my filters for column name

both id and name appear in it

Tech
Version

Material-UI
^3.9.3

MUI-datatables
^2.0.0

React
^16.8.6

browser

etc

Have a look at the customSort option, as this might allow you to handle your array data.

 Sorting single values and arrays together doesn't have any default meaning or order, so you have to supply the logic to tell it what you want it to do. Look into the js sort function for more information: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort.
customSort is what you want, but you've got to build out the logic that fits your use case.

thanks for your help, finally i found the solution
this is my code sandbox maybe it can help the other with same issues
https://codesandbox.io/embed/elegant-mclaren-l9buv?fontsize=14


Link to the DeterminateSystems Nix installer

Just a suggestion to also link to the DeterminateSystems Nix installer in the readme as it comes with flake support preconfigured.

Hi, thank you, I actually didn't know that thing existed, the installer seems nice!
I'm going to change the README to mention it then.


Upgrade to React v18

We need to upgrade to React v18 before we can upgrade Next.js to v13 and/or Material UI any further, so this should be the next upgrade priority.
Here is the migration guide for React v18:
https://react.dev/blog/2022/03/08/react-18-upgrade-guide

The Next.js docs for upgrading to v13 could be useful too: https://nextjs.org/docs/pages/building-your-application/upgrading/version-13


Cannot install django-choices due to version import that was added setup.py

When running pip install django-choices in a clean virtualenv I'm getting this error:
  Downloading django-choices-1.4.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 20, in <module>
      File "/tmp/pip-build-EUbJR5/django-choices/setup.py", line 11, in <module>
        from djchoices import __version__
      File "djchoices/__init__.py", line 1, in <module>
        from djchoices.choices import ChoiceItem, DjangoChoices, C
      File "djchoices/choices.py", line 2, in <module>
        from django.core.exceptions import ValidationError
    ImportError: No module named django.core.exceptions

The traceback shows that setup.py imports __version__, and this causes a premature import of djchoices.choices .
The bad import was added here: https://github.com/bigjason/django-choices/commit/9e640f6dd89a9824e0fd8e524a53069f57b7f017
I think that if you want to import the version in setup.py, you should move it to a separate file (one that does not cause djchoices.choices to get imported)

Indeed, this has been on my to-fix list for a few days as I ran into it myself recently. It happens because in __init__.py the api is imported, which depends on Django in one place (iirc). A temporary work-around is installing Django before installing django-choices.
I will probably put out a fix for this by the end of the week, and move to Tox to run the tests, as that would've been caught by tox. Thanks for the report, I had forgotten about this a bit.

Unfortunately the workaround does not solve my particular problem - it works under virtualenv/pip but not with our company's buildout-based build system.
Perhaps if you move from django.core.exceptions import ValidationError from the top of choices.py into the method that actually uses ValidationError, it will solve the problem.
It would be greatly appreciated if you could fix it this week... Thanks!

That was my initial idea to fix it, yes. I understand the problem and will fix it asap.

django-choices==1.4.2 is available in PyPI now, let me know if you run into any more issues


Run eslint in project's subdir, resolved package report failure

If I run eslint in the project's root dir, everything goes right. However as the title describes, if i cd ./somedir, and  run eslint again, the resovled package cannot be found.
  resolve: {
    alias: {
      helpers: path.resolve(__dirname, './client/helpers')
....
    },

This will throw error that says: cannot resolve helpers/xxx

If path.resolve is what's issuing that error, that's coming from node itself, not from this plugin.


Remove callbacks from ExportStreamListeners

Currently some of the listeners have callbacks.  These callbacks are called during protocol parsing which is extremely timing sensitive at higher bus speeds.  We should move these out and any code that was executed there should be triggered at end of frame.

Is there any guideline how to work with StringBuffers after this change?

I recommend using the release versions. I have not tested the code in the current master branch much, most of my development time has been spent on implementing RS-485 support. When I get that done, I will integrate it and release a new, tested version.

Current versions only copy the data to another buffer during parsing, callbacks are called from DcsBios::loop().


Unable to delete uploaded file from storage

I tried to unlink file which I uploaded before . but it was unable to delete . Or no feature for deleting file in this API ?

This issue may no longer be relevant due to its age. Feel free to re-open.


Store Images and Annotations to different directory

What is the correct way to store the images and annotations in different directories?
As per the docs, the data are stored in cvat_data and cvat_db respectively. So I edited the compose file to point to the volumes as
volumes:
  cvat_db:
    driver_opts:
        type: none
        device: /gdrive/Docker/CVAT/cvat_dv
        o: bind
  cvat_data:
    driver_opts:
        type: none
        device: /gdrive/Docker/CVAT/cvat_data
        o: bind
  cvat_keys:
  cvat_logs:
  cvat_events_db:
  cvat_cache_db:

where the /gdrive is mounted to my google drive using google-drive-ocamlfuse with permission set properly. I see the files in cvat_db being created in my drive but I cannot access the UI as I get Cannot connect to the server. on the webpage.
I have also seen this in the FAQ
services:
  cvat_server:
    volumes:
      - cvat_share:/home/django/share:ro
  cvat_worker_import:
    volumes:
      - cvat_share:/home/django/share:ro
  cvat_worker_export:
    volumes:
      - cvat_share:/home/django/share:ro
  cvat_worker_annotation:
    volumes:
      - cvat_share:/home/django/share:ro

volumes:
  cvat_share:
    driver_opts:
      type: none
      device: /d/my_cvat_share
      o: bind

but I think this is used to access existing images in the mount, whereas I want to store the uploaded pictures and their annotations in different folders to prevent my VM's disk utilization. Am I doing something wrong?

Hi @SathvikKS
There is nothing to suggest without any details provided.


chrome://version information on executable path vs command line arguments are contradictory

Tell your chrome people that this info is contradictory and requires further explanation?

here is the raw text:

Command Line | /usr/bin/google-chrome-stable --flag-switches-begin --allow-insecure-localhost --flag-switches-end --disable-webrtc-apm-in-audio-service
-- | --
Executable Path | /opt/google/chrome/google-chrome
Profile Path | /home/oleg/.config/google-chrome/Profile 1

the executable path contracts the command line executable?


kpt pkg diff -- inconsistent behaviour depending on directory

This might be related to #885.
The kpt pkg diff works when run outside of the package directory, but doesn't when it's run inside:
theochamley@cloudshell:~/helloworld-set (theochamley-tests)$ kpt pkg diff .
Error: failed to stage current package: open git/COMMIT_EDITMSG: no such file or directory
theochamley@cloudshell:~/helloworld-set (theochamley-tests)$ git commit -am "Update to package-examples/helloworld-set/v0.5.0"
[master 79ae4f5] Update to package-examples/helloworld-set/v0.5.0
 2 files changed, 41 insertions(+), 41 deletions(-)
 rewrite Kptfile (93%)
theochamley@cloudshell:~/helloworld-set (theochamley-tests)$ kpt pkg diff .
Error: failed to stage current package: open git/COMMIT_EDITMSG: no such file or directory
theochamley@cloudshell:~/helloworld-set (theochamley-tests)$ kpt pkg diff ../helloworld-set/
diff /tmp/kpt-383345995/deploy.yaml /tmp/kpt-808501294/deploy.yaml
13a14
>
21,22d21
[...]

tagging this as a good first issue even though the fix might be fairly involved.

This has been fixed in kpt v1. Please follow the installation guide to update to latest version.


Initial setup issue (linux/python problem)

Following the README in gopro-py-api: I am up to the step which requires the command:
from goprocam import GoProCamera, constants
I believe this should be easy to troubleshoot, but my minimal experience with Linux and Python both is causing me trouble. I have already successfully installed everything instructed at the beginning of the document. Anytime I attempt the command, it seems to cause many errors and I'm not sure what's happening. Right now, my process is:
pi@LoRaGateway:~ $ cd gopro-py-api
pi@LoRaGateway:~/gopro-py-api $ python
Python 2.7.13 (default, Sep 26 2018, 18:42:22)
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.

from goprocam import GoProCamera, constants
Traceback (most recent call last):
File "", line 1, in
File "goprocam/init.py", line 1, in
from goprocam import GoProCamera
File "goprocam/GoProCamera.py", line 3, in
import urllib.request
ImportError: No module named request

Any help would be appreciated, I'm pretty positive the issue is simply stemming from my lack of know-how in linux and/or python.

It seems you are using Python 2.7. gopro-py-api relies on Python 3.6 !

How would I install the updated version? Would it be related to the "python setup.py install" command?
Thank you for the swift response...

Use python 3 and pip3

So not the linux terminal? Apologies for misunderstanding... I have the Python 3 (IDLE) program installed already, so should I run the commands from there instead?

or simply use linux commands to install pip3 and python3 instead

Maybe this could help the OP. I made a video about installing gopro-py-api and Python 3.6
There are scripts that make things easy (in the description).
https://www.youtube.com/watch?v=TML8L3RmN60

Everything seemed to install fine, but now I get this error, and the "python3.6" command will not function. It seems a website is not functioning?
This will install Python 3.6. Do you want to proceed (Y/N)?
Installing Python 3.6
Installing Python 3.6...
Get:1 http://raspbian.raspberrypi.org/raspbian stretch InRelease [15.0 kB]
Hit:2 http://archive.raspberrypi.org/debian stretch InRelease
Fetched 15.0 kB in 1s (10.4 kB/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
build-essential is already the newest version (12.3).
checkinstall is already the newest version (1.6.2-4).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
libbz2-dev is already the newest version (1.0.6-8.1).
libc6-dev is already the newest version (2.24-11+deb9u4).
libgdbm-dev is already the newest version (1.8.3-14).
libncursesw5-dev is already the newest version (6.0+20161126-1+deb9u2).
libreadline-gplv2-dev is already the newest version (5.2+dfsg-3).
libsqlite3-dev is already the newest version (3.16.2-5+deb9u1).
libssl-dev is already the newest version (1.1.0j-1~deb9u1).
tk-dev is already the newest version (8.6.0+9).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
--2019-06-17 12:53:07--  http://wget/
Resolving wget (wget)... failed: Name or service not known.
wget: unable to resolve host address ‘wget’
--2019-06-17 12:53:07--  https://www.python.org/ftp/python/3.6...
Resolving www.python.org (www.python.org)... <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, ...
Connecting to www.python.org (www.python.org)|<IP_ADDRESS>|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2019-06-17 12:53:07 ERROR 404: Not Found.
tar (child): Python-3.6.0.tgz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
./install-python3.6.sh: line 58: cd: Python-3.6.0: No such file or directory
bash: configure: No such file or directory
make: *** No rule to make target 'altinstall'.  Stop.
test launch Python 3.6 : python3.6 command
type exit() to quit Python3.6

OOPS !!!
I think you followed the instructions in the tutorial. And I made a BIG mistake !!!
I wrote (in the script) :
# donwnload Python 3.6 sources archive
wget wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz

wget wget !
delete one wget !
I edit the comments right now !
(I don't understand how this came in the script ; I tested this procedure maybe 20 or 30 times before I released ; but I'm also a beginner...)

I got Python3.6.0 installed! Now, I have reached a new hurdle:
After defining my camera as the function "GoProCamera.GoPro()", it gives an extremely (extremely) long string of 2 repeating lines:
HERO6 Black
HD<IP_ADDRESS>.00
until finally giving a RecursionError in python and shutting it down, leaving it still undefined...
Any initial thoughts?

This means that it is at least recognizing the gopro for what it is while connected to its wi-fi signal! But no commands using the GoPro's defined name work, as the variable never completes definition...

At this point, I can't help, as I have no H6. But have a look to the constructor in gopro-py-api, AFAIR it could depend on the GoPro version. Many things changed since the H3.  On my side, I had many issues until I use a WiFi USB dongle.

A RecursionError? What's your code?

pi@LoRaGateway:~ $ cd gopro-py-api
pi@LoRaGateway:~/gopro-py-api $ python3.6
Python 3.6.0 (default, Jun 17 2019, 13:16:50)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.

from goprocam import GoProCamera, constants
LoftCam2 = GoProCamera.GoPro()

HERO6 Black
HD<IP_ADDRESS>.00
repeats for about 30sec
File "/home/pi/gopro-py-api/goprocam/GoProCamera.py", line 235, in infoCamera
if self.whichCam() == constants.Camera.Interface.GPControl:
File "/home/pi/gopro-py-api/goprocam/GoProCamera.py", line 154, in whichCam
self.prepare_gpcontrol()
File "/home/pi/gopro-py-api/goprocam/GoProCamera.py", line 23, in prepare_gpcontrol
firmware = self.infoCamera(constants.Camera.Firmware)
repeats for about 30sec
File "/home/pi/gopro-py-api/goprocam/GoProCamera.py", line 235, in infoCamera
if self.whichCam() == constants.Camera.Interface.GPControl:
File "/home/pi/gopro-py-api/goprocam/GoProCamera.py", line 154, in whichCam
self.prepare_gpcontrol()
File "/home/pi/gopro-py-api/goprocam/GoProCamera.py", line 23, in prepare_gpcontrol
firmware = self.infoCamera(constants.Camera.Firmware)
File "/home/pi/gopro-py-api/goprocam/GoProCamera.py", line 235, in infoCamera
if self.whichCam() == constants.Camera.Interface.GPControl:
File "/home/pi/gopro-py-api/goprocam/GoProCamera.py", line 154, in whichCam
self.prepare_gpcontrol()
File "/home/pi/gopro-py-api/goprocam/GoProCamera.py", line 23, in prepare_gpcontrol
firmware = self.infoCamera(constants.Camera.Firmware)
File "/home/pi/gopro-py-api/goprocam/GoProCamera.py", line 235, in infoCamera
if self.whichCam() == constants.Camera.Interface.GPControl:
File "/home/pi/gopro-py-api/goprocam/GoProCamera.py", line 140, in whichCam
response_raw = urllib.request.urlopen('http://' + self.ip_addr + '/gp/gpControl', timeout=5).read().decode('utf8')
File "/usr/local/lib/python3.6/urllib/request.py", line 223, in urlopen
return opener.open(url, data, timeout)
File "/usr/local/lib/python3.6/urllib/request.py", line 526, in open
response = self._open(req, data)
File "/usr/local/lib/python3.6/urllib/request.py", line 544, in _open
'_open', req)
File "/usr/local/lib/python3.6/urllib/request.py", line 504, in _call_chain
result = func(*args)
File "/usr/local/lib/python3.6/urllib/request.py", line 1346, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "/usr/local/lib/python3.6/urllib/request.py", line 1318, in do_open
encode_chunked=req.has_header('Transfer-encoding'))
File "/usr/local/lib/python3.6/http/client.py", line 1239, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/local/lib/python3.6/http/client.py", line 1285, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.6/http/client.py", line 1234, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.6/http/client.py", line 1026, in _send_output
self.send(msg)
File "/usr/local/lib/python3.6/http/client.py", line 964, in send
self.connect()
File "/usr/local/lib/python3.6/http/client.py", line 936, in connect
(self.host,self.port), self.timeout, self.source_address)
File "/usr/local/lib/python3.6/socket.py", line 704, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File "/usr/local/lib/python3.6/socket.py", line 745, in getaddrinfo
addrlist.append((_intenum_converter(af, AddressFamily),
File "/usr/local/lib/python3.6/socket.py", line 103, in _intenum_converter
return enum_klass(value)
File "/usr/local/lib/python3.6/enum.py", line 291, in call
return cls.new(cls, value)
File "/usr/local/lib/python3.6/enum.py", line 519, in new
if type(value) is cls:
RecursionError: maximum recursion depth exceeded while calling a Python object

This is all while the board has been keeping (seemingly) constant connection to the camera and the internet

Sorry, it was this PR. Perform a git pull.
Code needs some cleaning, including our own exception, utils, private functions, logger, tests.... I made this when my python knowledge was not very good :)

Could you define "git pull" haha. Where should I input this command?
Glad you were able to spot the issue, thank you!

In the command line.

pi@LoRaGateway:~ $ cd gopro-py-api
pi@LoRaGateway:~/gopro-py-api $ git pull
Already up-to-date.
pi@LoRaGateway:~/gopro-py-api $ python3.6
Python 3.6.0 (default, Jun 17 2019, 13:16:50)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
from goprocam import GoProCamera, constants
LoftCam2 = GoProCamera.GoPro()
Then the same issue occurs. Do I need to do something else to update the api from github?

(ignore the cross-throughs, not sure why those appeared)

It successfully updated, and successfully recorded the 10sec test footage. Thank you for your help! I may be back soon for more--my goal is currently to transmit photos over LoRa using the GoPro.


Adding methods for accessing windows credential manager #70

Adds

CredWrite
CredRead
CredFree (required after CredRead)
CredDelete

One weird behavior with GetLastError: when I first check the result code and afterwards call GetLastError it is always zero:
  final result =
      CredRead(TEXT('nonExistingCredential'), CRED_TYPE_GENERIC, 0, credPointer);
  if (result != TRUE) {
    final error = GetLastError();
    print('Error: $error');
  }

This will always print Error: 0, but when i move the GetLastError before the if:
  final result =
      CredRead(TEXT('nonExistingCredential'), CRED_TYPE_GENERIC, 0, credPointer);
  final error = GetLastError();
  if (result != TRUE) {
    print('Error: $error');
  }

It will print: Error: 1168 (which is ERROR_NOT_FOUND) - Maybe dart invokes some system calls in the if? Did you stumble upon this before? The current version in this PR uses the first variant, ie. is buggy.. but I think it is kind of strange to always call GetLastError() without checking whether it was an error before?

Thank you so much for your contribution! I made some minor reordering changes just for consistency, but otherwise this was great. I've also seen your GetLastError issue -- I think you may be right as to the diagnosis. Need to figure out what's going on here -- I wonder if it's a debug-mode thing, perhaps?
I've overhauled the way I handle HRESULT since you checked out the code, since it wasn't being treated consistently as a signed value. As a result, I made a minor change to the const values in your code to store them as signed values.
Lastly, I fixed a minor bug, which was that CredFree was being called on the Pointer<Pointer<CREDENTIAL>>, rather than the Pointer<CREDENTIAL>. That fixed the occasional crash that I was getting with the test and example.
Thanks again -- I really appreciate it!


Remove CoreRegistry usage: Part VII - Add depenency injection support to WorldGenerators.

Add depenency injection support to WorldGenerators to get rid of CoreRegistry usage.

Refer to this link for build results (access rights to CI server needed):
http://jenkins.terasology.org/job/TerasologyPRs/196/
Hooray Jenkins reported success with all tests good!


Paragraphs that start with valid HTML element or override do not include element or override within them

First things first, thanks for the amazing package.
Here is an example of the issue. I expected valid HTML elements would be included within the
 tag.
Markdown
# Example

This is a test

<Initial>T</Initial>his is anoter test

React
const Initial = styled.span`
  font-size: 4rem;
  padding-top: 4px;
  margin-right: 10px;
  line-height: 1;
  display: block;
  float: left;
`

<MarkdownToJSX
  options={{
    overrides: {
      Initial: Initial,
    },
  }}
>
  {md}
</MarkdownToJSX>

HTML

Example

T

his is a test

T

his is anoter test

Expected HTML

Example

This is a test

This is anoter test

@sunknudsen I've come up against the same hurdle - did you manage to find a fix or a workaround?

If it helps anyone, my workaround is the following:
Define a function that takes the compiler output and re-arranges the children using the logic of "if current child is a component, and the next child is a paragraph that starts with a space (your particular needs might warrant a different condition), then don't keep the current child and instead insert it at the start of the children of the next child".
export function collapseComponentsInsideParagraphsIfNecessary(output) {
  if (!Array.isArray(output.props.children)) return;

  const newChildren = [];
  for (let i = 0; i < output.props.children.length; i++) {
    const child = output.props.children[i];
    if (i === output.props.children.length - 1) {
      newChildren.push(child);
      break;
    }

    const childIsComponent = typeof child.type === 'function';
    if (!childIsComponent) {
      newChildren.push(child);
      continue;
    }

    const nextChild = output.props.children[i + 1];
    const nextChildIsParagraph = nextChild.type === 'p';
    if (!nextChildIsParagraph) {
      newChildren.push(child);
      continue;
    }

    const paragraphBeginsWithSpace =
      nextChild.props.children[0].charAt(0) === ' ';
    if (!paragraphBeginsWithSpace) {
      newChildren.push(child);
      continue;
    }

    nextChild.props.children.unshift(child);
    newChildren.push(nextChild);
    i++;
  }
  output.props.children.splice(0, output.props.children.length);
  newChildren.forEach((child) => output.props.children.push(child));
}

And then use it like:
const output = compiler(markdown, options);
collapseComponentsInsideParagraphsIfNecessary(output);

return
{output}
;

Where compiler is import { compiler } from 'markdown-to-jsx';

I would still very much like this to be the default behaviour of the library if the contributors agree that it would be more intuitive.


PDFs are not written on docker/linux environments

There is an issue on linux/socker systems where the path of the downloaded files could not be determined.

:tada: This issue has been resolved in version 1.0.0-dev.12 :tada:
The release is available on:

npm package (@dev dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


bin/grav install: AWS EB2

I'm having a cache directory problem using Elastic Beanstalk to deploy the platform, which could be just a devops problem or could be something inherited in grav from Symfony.
EB tries to run bin/grav install and comes up with the following error:
Activity execution failed, because:
[BadMethodCallException]
Cache folder not defined.
There is no cache folder at the moment as it pulls a git repo where the cache folder is in .gitignore. The cache folder is defined in system/defines.php, so I'm not sure what's tripping it up. Probably permissions...?

Might be permissions. Check https://learn.getgrav.org/troubleshooting/permissions first, before inspecting something else.

It looks like it's permissions of some sort - the installation looks like it's worked, but I don't know if there is a possible conflict between composer and grav CLI. At the moment, once Elastic Beanstalk receives a payload, it runs composer itself because it can see there's a composer.json there.
However, grav CLI runs as well (because I told it to). It doesn't appear to change anything (I don't see why it would) but I've got a http 500 from the server. I don't think it's apache, but I also don't think it's permissions either as I got round the cache directory issue by creating it and doing a chmod on it.
This looks like it's turning into a devops problem really, so I guess it's time to close it.


support chinese search?

escause me, how can i setting it to support chinese search?

Project title: Howto for adding Polish language to PostgreSQL
Question: escause me, how can i setting it to support chinese search?
Come on bruh. You know better.


C3: Turn auto-update back on

Fixes #3865.
What this PR solves / how to test:
In an earlier PR, we changes c3 so that it would automatically update to the latest minor version of the package when available. Unfortunately, this behavior was accidentally reverted shortly afterwards due to a merge conflict.
This PR turns auto-updates back on and fixes an issue with this functionality when used in conjunction with wrangler init.
Associated docs issue(s)/PR(s):

[insert associated docs issue(s)/PR(s)]

Author has included the following, where applicable:

[ ] Tests
[ x ] Changeset (Changeset guidelines)

Reviewer is to perform the following, as applicable:

Checked for inclusion of relevant tests
Checked for inclusion of a relevant changeset
Checked for creation of associated docs updates
Manually pulled down the changes and spot-tested

Note for PR author:
We want to celebrate and highlight awesome PR review! If you think this PR received a particularly high-caliber review, please assign it the label highlight pr review so future reviewers can take inspiration and learn from it.

I agree with @dario-piotrowicz about the insertion complexity of --.

We should be using package-manager-manager here to avoid worrying about this stuff: https://github.com/james-elicx/package-manager-manager/blob/main/src/commands/getRunExec.ts#L38

I just gave this a shot and I found several issues that make package-manager-manager a bad fit for us right now:

It detects the PM from directory contents, not user agent. We need to determine the right PM commands in several places before we've scaffolded a new directory. In fact, calling the scaffolding tool is itself an operation that requires pm detection.
package-manager-manager has an incorrect or incomplete implementation of getRunExec. Package managers actually support 2 flavors of this command (dlx vs exec) with different semantics, which we rely on in some places. For example when using pnpm, we invoke scaffolding tools via pnpm dlx create-qwik, which globally caches and installs create-qwik. However in the next step when we wrangler login, we want to pnpm exec this so that the locally installed copy of wrangler is leveraged instead of performing yet another global install.
It doesn't seem to account for discrepancies across different major versions of PMs. The exec and dlx commands vary between different major versions of pnpm and yarn.
getRunExec is async while getRunScript is synchronous, which makes for an awkward API
Integrating this with runCommand would be a heavy lift since the API's are so different, and since we use runCommand for shell commands in addition to pm executed commands.

I just gave this a shot and I found several issues that make package-manager-manager a bad fit for us right now:

It detects the PM from directory contents, not user agent. We need to determine the right PM commands in several places before we've scaffolded a new directory. In fact, calling the scaffolding tool is itself an operation that requires pm detection.

yeah valid point 😕

package-manager-manager has an incorrect or incomplete implementation of getRunExec. Package managers actually support 2 flavors of this command (dlx vs exec) with different semantics, which we rely on in some places. For example when using pnpm, we invoke scaffolding tools via pnpm dlx create-qwik, which globally caches and installs create-qwik. However in the next step when we wrangler login, we want to pnpm exec this so that the locally installed copy of wrangler is leveraged instead of performing yet another global install.

I'm not sure if I am misunderstanding or if you've missed the API there, anyways package-manager-manager does use both dlx and exec based on provided options 🤔

It doesn't seem to account for discrepancies across different major versions of PMs. The exec and dlx commands vary between different major versions of pnpm and yarn.

yeah true again 😓

getRunExec is async while getRunScript is synchronous, which makes for an awkward API

yeah... I guess getRunScript could also be made synchrnous if it helps 🤔

Integrating this with runCommand would be a heavy lift since the API's are so different, and since we use runCommand for shell commands in addition to pm executed commands.

👍
Anyways @jculvey thanks a lot for trying the lib out! ❤ Sorry it's not a right fit 😢
I think the above are things I can iron out but it's probably not worth it to block progress on this PR for it, I'll try to improve things so that we might maybe use it later 🙂


Sort by birth year has error

While testing the sort by Birth Place it became clear that there are problems with the sort by Birth Year
In this example the Birth Year was to be ordered by increasing birth year.

You will also note there is no census district for those entries

You will also note there is no census district for those entries

It is worse than I thought there are 534337 records without a search_date.
Not only will they sort incorrectly but they will not be retrieved by a search with a date range

It is worse than I thought there are 534337 records without a search_date.
Not only will they sort incorrectly but they will not be retrieved by a search with a date range

A fix for search display has been deployed to test3
The fix for the date range in a search needs a crawler rake task

A fix for search display has been deployed to test3
The fix for the date range in a search needs a crawler rake task


$refs not recognized

Describe the bug
The Vue $refs object is not recognized as valid by the parser, which says Property '$refs' does not exist on type.
To Reproduce
Steps to reproduce the behavior:

Use this.$refs in a method.

Expected behavior
All of Vues internals should be recognized
Screenshots/Recording

Info (please complete the following information):

OS: MacOS 11.1
IDE: VS Code Insiders
TypeScript Version: N/A

Please provide a small code sample. If you could, you can send a PR to add a new file with this issue in samples/feature-diagnostics directory.

closing this because it's 2 years old and i want to clean up my issues tab


Bad UI experience

Describe the bug
Buggy view of Contact Section
https://eduhubcommunity.tech/index.html#services

Expected behaviour
The CSS of the section provides a disturbing user experience . The  shadow effect should be removed / corrected for a better experience
box-shadow : rgba(214, 215, 216, 0.6);
A high opacity box shadow with such config is not a right choice in terms of UI design !
Screenshots
No response
Additional context
No response
Code of Conduct

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

Sounds good to me. I'm willing to contribute.


python310Packages.aioairq: init at 0.1.1

Description of changes
Library to retrieve data from air-Q devices"
https://github.com/CorantGmbH/aioairq

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 187580 run on x86_64-linux 1

2 packages built:

python310Packages.aioairq
python39Packages.aioairq


Refactor logging macros

Changes:

Removes the logging macros from the installed headers. The installed headers are now pure C. There are now separate headers in common and each of the frameworks (I'm open to suggestion on this design).
Reimplements the logging macros in common to use the string utility functions and to improve the error messages (see https://github.com/NVIDIA/TransformerEngine/issues/376).
Follow the Google style guide for header includes in the files that I touched.

The refactored logging macros are backward compatible, but it's now easier to make descriptive error messages. For example, consider:
https://github.com/NVIDIA/TransformerEngine/blob/cbfb8c6b230bcfd511d73c87b73b47d93d4b5bff/transformer_engine/common/transpose/transpose.cu#L130
We can now do something like:
NVTE_CHECK(input.data.shape.size() == 2,
           "Input must have 2 dimensions, ",
           "but found ", input.data.shape.size(), ".");

Closes https://github.com/NVIDIA/TransformerEngine/issues/376.

/te-ci

/te-ci

/te-ci

We would have to also change to the correct includes for the cpptests

/te-ci

/te-ci

/te-ci

Why not reuse logging across the FWs?

As I see it, common has three kinds of headers:

Public C API headers (common/include/transformer_engine/transformer_engine.h)
C++ headers that are shared between frameworks (common/include/transformer_engine/logging.h)
C++ headers for internal implementation (common/rmsnorm/rmsnorm_kernel_traits.h)

I'd prefer to avoid the frameworks accessing (3) as much as possible (although there is leakage in PyTorch due to the attention infrastructure). It would also be better if we didn't expose (2) to external users.
This PR makes logging.h depend on common/util/string.h. I see a few solutions:

Move framework-common header to something like common/include/transformer_engine_utils, which is exposed to the frameworks but not installed with the C API headers.
Remove logging.h from the installed headers and reimplement in frameworks. This gets rid of the framework-common headers.
Move string.h to common/include/transformer_engine.
Expose implementation headers in frameworks.

I think (1) is the right answer, but it's complicated. (2) and (3) are simple, but have some iffiness. I don't like (4).

/te-ci

I would probably prefer changing current common directory to core or libtransformer_engine and have common directory as an actual source for common code across both core and the FW-dependent code, like the logging.

I would probably prefer changing current common directory to core or libtransformer_engine and have common directory as an actual source for common code across both core and the FW-dependent code, like the logging.

Should we handle that now or in a future PR? That would significantly increase the scope of this refactor since we would need to change the build system to build the "common" library separately from the "core" library.

/te-ci

/te-ci


Generate more of the release notes

This patch makes GitHub automatically generate more of the release notes
so that release managers have less work to do.
Your pull request should…

[x] have a concise title
[x] close an accompanying issue if one exists
[x] be against the correct branch
[x] include migration scripts and documentation, if appropriate
[ ] pass automated tests
[x] have a clean commit history
[x] have proper commit messages (title and body) for all commits

Some of this conflicts/duplicates #3553. Go ahead with this, or mine, don't care. Haven't had any more time for 3553, trying to find the time Soon(tm).

LGTM, and this is a cleaner impl.


Add R validation library

I compared  some different ID numbers to the results returned by the python function and they all gave the same results in R and python, but I haven't extensively validated the code. Are there a set of example IDs that I could try?
I'm also didn't know if the highlight.js will automatically correctly format the R code? I used a language-r class inside the code tag, but I wasn't sure if anything else is needed

I found these test ids and the R function returned the same result as the python function for all of them. The intermediate checksum values were also all the same.


Add configuration parameters to additional classes

Some classes contain hardcoded values, that should be given as configuration parameters instead. This also means that those classes need to take the configuration as an argument to the init function.
Classes that need to be considered are Agent, Space, and the user interface (could be some selections of what to view).

Vehicle drawing has been fixed.

Moved some parameters from TransportSystem to RoadNetworkGrid.


Will there come a new Version from Pogy?

Will there come a new Version from Pogy or a other Bot like Pogy?
I love Pogy but it is using an old Discord.js Version

From Owner Pogy Petter


Moving to new dnsmasq configuration

Moving to new dnsmasq configuration provided https://github.com/openshift/assisted-service/pull/5658/files#diff-5db168b848f6639a70b54fcd040b97dfeaf0ead692af19fc8154c48e0203831aR86

/lgtm
/cc @jc-rh

/retest

/approve


Idea: server start and stop at specific time

In the panel there is the possibility to restart the server at a specific time, it would be very useful to be able to set a start and shutdown time for the server

Yes, you can do automatical restarts in the settings part of the panel. But you cannot shutdown the server have it down and then have it turn back on 2 hours later. Would possibly be a cool idea though.

I see no real use case for that except maybe an event server, in which case you better have some staff anyways.
Also, nobody ever asked for this so not worth doing it.


Add new bootscript with stock Ubuntu Linux kernel

The Linux kernel in the Ubuntu Xenial (Ubuntu 16.04) image is not the stock Ubuntu Linux kernel.
It is the mainline Linux kernel without the appropriate .config and changes that are suitable for Ubuntu.
The source of the Ubuntu Linux kernel is at
https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/xenial?h=master
and includes additional patches for AppArmor and ZFS support as well.

Do not forget ip_vs_nfct module for docker kernel version.


Fix typo in readme file

Simply removed an apostrophe as it was not needed (let's -> lets)

Thanks!


Service::InputSources on Service::Television stopped working in iOS 17

After updating to iOS 17 the Home app is not showing the list of configured InputSources anymore, neither in the switcher nor in the configuration. Everything else is working as expected though. I could even reproduced this behaviour with the example provided in this repository. I am using the release version 1.8.0 in all my projects.

Hopefully this will be addressed in the production version of iOS17.  Do you know if this effects commercial devices as well?

Works fine - only issue I do have is that the list of inputs isn't in order its Radom …

Thanks for the update.  Not sure how to address the issue of the list of inputs being in random order.  This may be an apple problem.

@mLihs What iOS version do you use? Does your Remote Switch app work correctly? Since I updated to iOS 17 the Remote Switch app stopped working properly:

@mLihs What iOS version do you use? Does your remote switch app work correctly? Mine got stopped working properly after I updated to iOS 17 last year:

I'm on iOS 17.3.1 and can confirm the remote control app is not working correctly - neither with HomeSpan nor my Sony TV that has HomeKit built in.  Both TVs work fine when using the Home App, but the remote control app is messed up.  The volume buttons do not work, the power button does not work, and the play/pause button seems to turn the TV power on instead.  Same things happens for both my commercial and HomeSpan-controlled TV.
The previous remote control app (I guess I have not checked since iOS 16) worked fine with both TVs, including the volume controls.  Seems like Apple made some changes in the remote app that are inconsistent with even the specs used by commercial devices.  Not sure this will be possible to debug, especially since Apple provides no specs for this.


Correct unmarshal order for SignedManifest

To ensure that we only unmarshal the verified payload into the contained
manifest, we first copy the entire incoming buffer into Raw and then unmarshal
only the Payload portion of the incoming bytes. If the contents is later
verified, the caller can then be sure that the contents of the Manifest fields
can be trusted.

LGTM

LGTM

LGTM


ENH sparse matrix .resize() methods

This follows the semantics of dok_matrix.resize() (which differs from np.resize and np.ndarray.resize), providing resize functions for all formats but dia_matrix. These are useful when one is populating a matrix without predetermined shape, for example.
As well as the resize method, these are accessible by setting A.shape = (m, n), which was previously silently broken for LIL (and obscurely called reshape).

I'll try look back at this, but I'm okay for it to be completed by someone else too!

Merged master in, @perimosocordiae

I'm +1 to merge once the CI finishes, but I'll wait a bit to give others a chance to comment before doing so.

Currently testing: Added a dia_matrix.resize implementation; using check_shape for *args syntax.

I'm also adding a comment on the difference from numpy resize semantics.

Please take another quick look, @perimosocordiae. But all is green.

Travis error is unrelated. Looks a bit strange, like a variable substitution error in the linker options:
/usr/local/bin/gfortran -Wall -g -L/usr/local/lib build/temp.macosx-10.6-intel-3.6/build/src.macosx-10.6-intel-3.6/scipy/fftpack/_fftpackmodule.o build/temp.macosx-10.6-intel-3.6/scipy/fftpack/src/zfft.o build/temp.macosx-10.6-intel-3.6/scipy/fftpack/src/drfft.o build/temp.macosx-10.6-intel-3.6/scipy/fftpack/src/zrfft.o build/temp.macosx-10.6-intel-3.6/scipy/fftpack/src/zfftnd.o build/temp.macosx-10.6-intel-3.6/build/src.macosx-10.6-intel-3.6/scipy/fftpack/src/dct.o build/temp.macosx-10.6-intel-3.6/build/src.macosx-10.6-intel-3.6/scipy/fftpack/src/dst.o build/temp.macosx-10.6-intel-3.6/build/src.macosx-10.6-intel-3.6/build/src.macosx-10.6-intel-3.6/scipy/fftpack/fortranobject.o -L"gfortran: warning: x86_64 conflicts with i386 (arch flags ignored)
/usr/local/Cellar/gcc/6.2.0/lib/gcc/6/gcc/x86_64-apple-darwin15.6.0/6.2.0" -Lbuild/temp.macosx-10.6-intel-3.6 -ldfftpack -lfftpack -lgfortran -o build/lib.macosx-10.6-intel-3.6/scipy/fftpack/_fftpack.cpython-36m-darwin.so
ld: warning: directory not found for option '-Lgfortran: warning: x86_64 conflicts with i386 (arch flags ignored)
/usr/local/Cellar/gcc/6.2.0/lib/gcc/6/gcc/x86_64-apple-darwin15.6.0/6.2.0'
Undefined symbols for architecture x86_64:
  "_PyArg_ParseTupleAndKeywords", referenced from:
      _f2py_rout__fftpack_zfft in _fftpackmodule.o
...and many more...

So from my perspective this is good to go.

Merged. Thanks for returning to this after more than 3 years, @jnothman !

yeah, quick merges after 3 years of silence don't happen so often huh?
Thanks for reminding me of it!

PS: I assume you'll sort out release notes at some point.


Power on

Adds the ability to directly power a node on.

@zenhack what do you think of the solution I posted?

Quoting Naved Ansari (2018-05-29 14:47:55)

good catch, in my head I was thinking that f(node) will "raise" an
error rather than simply "return" error

Makes sense. Go doesn't really have exceptions as such. There's
panic/recover, which are mechanically similar, but the idiom is to use
those in the way we make use of assert in Python -- as a
this-should-never-happen sanity check, not a routine error handling
mechanism; in general, errors are reported via return values.

That all definitely makes sense, I think I addressed all of the issues.

LGTM, merging.


Check limits on texture or framebuffer creation

Fixes: https://github.com/godotengine/godot/issues/38879
Check for max viewport size when initializing drivers. When users try to create a texture or viewport larger than the max size, warn them and shrink the size. This will help a lot in 3D when users try to have large shadows. And will help in 2D when users use textures that are too large.
supercedes: https://github.com/godotengine/godot/pull/45454

Thanks!


jGRASP unavailable

jGRASP 2.0.5_03 has been released which means that the version we are installing is no longer available. Users who install jGRASP for the first time or whose zip file have been corrupted or deleted will have their Ansible runs fail.

@showalrm or @coledn do you want to take this one? You'll need to update the URL and SHA1 hash in the jGRASP vars file, and then prepare a backport to tara. Please self-assign the issue if you're interested.

Issues has been assigned. Removing 'help wanted' tag. Thanks for taking this @coledn! Let us know if you have any questions!

Despite @coledn's message in #222, this issue was not automatically closed. Closing since both #221 and #222 fixed this in master and tara respectively.


Fixes bug described https://github.com/EOSIO/ual-reactjs-renderer/iss…

Change Description

Description of issue #92 from aaroncox:
When using the ual-reactjs-renderer within an application that uses a minification build process, the names of the authenticators are getting mangled and corrupting the local storage value for UALLoggedInAuthType. The value saved in local storage ends up being the minified value (like n) and causes session persistence to break.
This is happening because it's currently using the constructor value which seems to be a valid target for mangling
A note on priority: This is blocking my adoption of UAL for the Acueos (Compound Finance protocol implementation on EOS) dApp.
API Changes

[ ] API Changes

Documentation Additions

[ ] Documentation Additions

Hi @prfigueroa -- thanks for adding this PR. Instead of using getStyle, we're going to update the UAL packages to use a new method getName. I'll report back here once that's complete, but these updates should be finished today and release as part of 0.3.0.

@prfigueroa This was fixed as part of an enhancement to the base universal-authenticator-library. You can see these changes for this particular repo in the following PRs:

https://github.com/EOSIO/ual-reactjs-renderer/pull/95
https://github.com/EOSIO/ual-reactjs-renderer/pull/96

ual-reactjs-renderer v0.3.0 is now be available with these changes here: https://www.npmjs.com/package/ual-reactjs-renderer/v/0.3.0
Thanks again for logging this PR. Please let us know if you have any issues with the latest version.

Unfortunately, the bug is still occurring as confirmed through testing in the Acueos staging environment and the testing Aaron Cox did for the Anchor authenticator RC that added the getName method.  Can you please reactivate the pull request or issue?  Much appreciated.


(docs): Comparison to -> with

Per https://english.stackexchange.com/a/588/27261

@all-contributors please add @dandv for doc

@allcontributors please add @dandv for doc
Per https://github.com/formium/tsdx/pull/734#issuecomment-658461325, this was broken due to the org changes and is now configured again, apologies for any spam


Login Page - Hardcoded Copyright Year

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
Hey @anuragverma108 . This issue reports that the copyright year in the login page footer is currently hardcoded. This means the year needs to be manually updated every year, which can be inconvenient.
We propose changing the copyright year to a dynamic value that automatically reflects the current year.
Please add the gssoc labels and I would like to work on it under GSSOC'24. Thank you!!
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Assigned!
Make sure to attach before & after screenshots in your PR. Also, star the repo before working on it. While creating your PR, ensure you pull all existing changes beforehand to avoid conflicts.
Happy open-source contributing!


Add support for LLaVA model

🚀 The feature, motivation and pitch
LLaVA seems to be currently a strong open-source competitor to GPT4-V, it doesn't seem to be supported by the library. Do you plan on adding it? If yes, is there something I could contribute with to help?
Alternatives
No response
Additional context
No response

Hi @youssefadr, thanks for opening this issue. LLaVA is definitely something we're interested in adding and we would be happy to have you contribute. Is there a specific portion of the model you're especially interested in helping out with?

Thanks for your answer @ebsmothers, I would like to add the model to torchmultimodal/models first.

That sounds reasonable to me. We already have CLIP visual encoders in the library here, so feel free to reuse those. Then the bulk of the work for the model should be to add the LLM. A couple pointers to help with that: TransformerDecoderLayer, RMSNorm. We also have an open PR for rotary positional embeddings (#450) that might be useful. Let me know if this makes sense, happy to provide more details as needed.

Nice ! I'll come back to you with more questions later, not sure I'll start working on it this week.

@youssefadr have you worked on this to any capacity? i'm interested in picking this up if not

@theadamsabra if not, you are more than welcome to take it up


refac: don't use external parameters that specifies container paths

Description

References

#0000

Can you add an issue reference?


METRON-1483: Create a tool to monitor performance of the topologies

Contributor Comments
In performance evaluation, generating synthetic load and monitoring the write throughput of our kafka-to-kafka topologies has required a lot of custom scripting.  We should have a tool that could do the following:

Take a file representing a message template and generate synthetic load at a given events per second
Monitor the kafka offsets of a topic and report throughput numbers in events per second

Currently pending:

Documentation

Pull Request Checklist
Thank you for submitting a contribution to Apache Metron.
Please refer to our Development Guidelines for the complete guide to follow for contributions.
Please refer also to our Build Verification Guidelines for complete smoke testing guides.
In order to streamline the review of the contribution we ask you follow these guidelines and ask you to double check the following:
For all changes:

[x] Is there a JIRA ticket associated with this PR? If not one needs to be created at Metron Jira.
[x] Does your PR title start with METRON-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.
[x] Has your PR been rebased against the latest commit within the target branch (typically master)?

For code changes:

[x] Have you included steps to reproduce the behavior or problem that is being changed or addressed?

[x] Have you included steps or a guide to how the change may be verified and tested manually?

[x] Have you ensured that the full suite of tests and checks have been executed in the root metron folder via:
mvn -q clean integration-test install && dev-utilities/build-utils/verify_licenses.sh

[x] Have you written or updated unit tests and or integration tests to verify your changes?

[x] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

[x] Have you verified the basic functionality of the build by building and running locally with Vagrant full-dev environment or the equivalent?

For documentation related changes:

[x] Have you ensured that format looks appropriate for the output in which it is rendered by building and verifying the site-book? If not then run the following commands and the verify changes via site-book/target/site/index.html:
cd site-book
mvn site

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.
It is also recommended that travis-ci is set up for your personal repository such that your branches are built there before submitting a pull request.

Testing Plan:
We presume

ZOOKEEPER is an environment variable set to the zk quorum (e.g. node1:2181)
BROKER is an environment variable set to the broker (e.g. node1:6667)

Unbiased Generation
In order to test this, we will:

create a new topic

# Create dummy_12_unbiased with 12 partitions
/usr/hdp/current/kafka-broker/bin/kafka-topics.sh --zookeeper $ZOOKEEPER --create --topic dummy_12_unbiased --partitions 12 --replication-factor 1

Create some dummy data to send into kafka

# Generate some templates of dummy data that look like CSV in ~/dummy.templates
# With a number, a string, a GUID and the timestamp
for i in $(seq 1 100);do echo "$i,foo,\$METRON_GUID,\$METRON_TS";done > ~/dummy.templates

Write into that topic from a set of templates at a specified rate

# Write out 1000 messages per second to dummy_12_unbiased
# Monitor dummy_12_unbiased
# Each message is drawn from the set of templates in step 2.
# Stop after 60 seconds and report how much you've written
$METRON_HOME/bin/load_tool.sh -p 5 -ot dummy_12_unbiased -mt dummy_12_unbiased -t ~/dummy.template -eps 1000 -z $ZOOKEEPER -tl 60000

It should indicate that it generated something like 60k messages

Measure if the messages generated roughly match the requested rate.

# You will have to ctrl-c this in a few seconds
/usr/hdp/current/kafka-broker/bin/kafka-console-consumer.sh --bootstrap-server node1:6667 --topic dummy_12_topic --from-beginning | wc -l

It should output something like Processed a total of 60400 messages, which would be about 1000 messages per second.

@justinleet thanks for the review.  I reacted to your comments either by fixing them or suggesting why I prefer what is there.  I will add a new set of tests in the next commit.

Moving this conversation to the top.  I believe I have refactored the KafkaProducers appropriately.  Let me know if I missed something, @justinleet

I'm all set, +1. Thanks for this, it's great stuff.


perf: build HNSW and quantization storage in parallel

retrieve all vectors in one call to leverage concurrency impl of take_rows
build HNSW and quantization storage in parallel

Codecov Report
Attention: Patch coverage is 86.40777% with 14 lines in your changes are missing coverage. Please review.

Project coverage is 81.29%. Comparing base (b051a30) to head (bbc445c).

Files
Patch %
Lines

rust/lance/src/index/vector/ivf/io.rs
84.50%
0 Missing and 11 partials :warning:

rust/lance/src/index/vector/pq.rs
88.88%
0 Missing and 3 partials :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2196      +/-   ##
==========================================
- Coverage   81.30%   81.29%   -0.02%
==========================================
  Files         183      183
  Lines       51694    51719      +25
  Branches    51694    51719      +25
==========================================
+ Hits        42031    42046      +15
- Misses       7237     7246       +9
- Partials     2426     2427       +1

Flag
Coverage Δ

unittests
81.29% <86.40%> (-0.02%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

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

LGTM. In general, can this actually improve a lot of parallel builds?

take_rows takes long time for large partition before this


Add getEMHIRES pipeline

Why is there an empty file  data-integration/getEEA.py?

Why is there an empty file  data-integration/getEEA.py?

It seemed to exist in my local branch... Anyway, I took the version from the master and pushed again


What loader should I introduce to make it function properly, there is no error before the introduction

ERROR in ./~/sharp/package.json
Module parse failed: node_modules/sharp/package.json Unexpected token (2:8)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (2:8)
at Parser.pp$4.raise (node_modules/acorn/dist/acorn.js:2221:15)
ERROR in  /sharp/build/Release/sharp.node
Module parse failed:/sharp/build/Release/sharp.node Unexpected character '�' (1:0)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected character '�' (1:0)
@ ./~/sharp/lib/constructor.js 10:14-52
What loader should I introduce to make it function properly, there is no error before the introduction

Hello, is this using Webpack? If so, please see #932 and #794.

Hopefully this answered your question but please feel free to re-open if not.


ios: startup incurs UIWebView creation costs

When doing some simple profiling I noticed a complete UIWebView is created and torn down when launching an app with react-native-device-info. Apparently, someone thought it was a good idea to use a complete UIWebView environment to determine a device's user agent.
For your reference: a UIWebView is expensive. It incurs 10s of megabytes worth of allocations loading things like sqlite storage backends and other stuff you really don't need. I would suggest to find another way to determine the user agent on iOS, or otherwise load the property lazily.

https://github.com/react-native-community/react-native-device-info/pull/442 should fix this


feat: add resource requests and limits to yaml

Purpose

Add resource requests and limits to deployment manifests

Does this introduce a breaking change?

[ ] Yes
[x] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

Looks right to me