[ENH] Include underlying compound information

Proposed new feature or change:
Opening this issue because a quick search doesn't turn up any prior discussion.
Per documentation for Laps object Compound column:

the actual underlying compounds C1 to C5 are not differentiated

This information is critical for comparing tyre performance across races. Although it may be redundant/repetitive at the Laps level, it would still be good to have it as a part of either Session or Event.
My own investigation has not turned up a good way to fetch this information automatically.

The Pirelli Motorsports Twitter will definitely be a hard source to use. I doubt their tweets will be formatted in a set way each week and it would be challenging to automatically extract information from their graphics.
I have somehow never thought of using FIA documents for this. I took a quick look and the compounds are included in the event notes for each race under the Pirelli preview. (Example)[https://www.fia.com/sites/default/files/decision-document/2023 Saudi Arabian Grand Prix - Event Notes - Pirelli Preview Pit Lane Drawing and Red Zone.pdf]
These are already uploaded to Twitter automatically (sample Tweet)[https://twitter.com/fiadocsbot/status/1636362532805042183]. Since these are well-formatted PDFs I am guessing there are tools available to parse the information. I will look into this more when I get around to it.

I have never tried to automatically parse a PDF so I can't judge whether it's easier to extract data from a table in there versus a table in an image.
I am still wondering, whether it's actually worth automating this. Or if it's better to just have a very simple manual process. The effort for automating this completely is relatively high. On the other hand I don't really want to be rrsponsible for doing this task before every race weekend, even if it is simple.

It's fairly easy to parse FIA documents and get the tyre compounds, but not sure  if and how should we add this into the package. Manually searching for the compounds seems much easier to me. Or should we build our own API for this?
Minimal example (I don't think it works for all races): https://github.com/harningle/Fast-F1/blob/master/fastf1/compound/docparser.py

It's fairly easy to parse FIA documents and get the tyre compounds, but not sure if and how should we add this into the package. Manually searching for the compounds seems much easier to me. Or should we build our own API for this?
Minimal example (I don't think it works for all races): https://github.com/harningle/Fast-F1/blob/master/fastf1/compound/docparser.py

I want to add something like this. The way that I'd prefer is to automate the parsing of the documents and build an own API server that serves the data on a public API.
I might get around to that later this summer.
I don't really want to do processing like this in FastF1 itself, because it is inefficient, likely to cause rate limit issues and it's more difficult to fix incorrectly parsed results.

It's fairly easy to parse FIA documents and get the tyre compounds, but not sure if and how should we add this into the package. Manually searching for the compounds seems much easier to me. Or should we build our own API for this?
Minimal example (I don't think it works for all races): https://github.com/harningle/Fast-F1/blob/master/fastf1/compound/docparser.py

I want to add something like this. The way that I'd prefer is to automate the parsing of the documents and build an own API server that serves the data on a public API. I might get around to that later this summer.
I don't really want to do processing like this in FastF1 itself, because it is inefficient, likely to cause rate limit issues and it's more difficult to fix incorrectly parsed results.

Yes make sense! I've never built an API server but would like to learn and get involved. Let me know if there is anything I can help! Btw, Oracle has pretty good lifetime free virtual instances and we may be able to build the API there.

I've parsed the event notes and pirelli preview for all races since 2019, to get the tyre compounds: https://github.com/harningle/fia-doc/blob/main/tyres.json. The race name in the json can be matched with EventName here. Happy to revise the format or set an API for this!

Nice, especially that it's possible to parse all those races with the same script. That's very promising.
I'm planning to set up an API server anyway but this is still very much a work in progress. But it's needed for multiple reasons and I think the point has come where it's actually reasonable to do.
The current list of things to do to make this work is the following:

set up general FastF1 API server (currently leaning towards Cloudflare Workers with Cloudflare D1 Database)
automate running this script (and others) (how, where, ... is still to be determined)
implement in FastF1

The API server is the most blocking part here right now. But I'm kind of working on it. It's new territory for me, though. Therefore, it's going a bit slowly and I need to play around with some stuff and see how it works.

Thoughts on how to bring 2018 compounds into the fold? I have the data in TOML but I am more thinking about how to make the code/API more general to anticipate for future compound changes

Thoughts on how to bring 2018 compounds into the fold? I have the data in TOML but I am more thinking about how to make the code/API more general to anticipate for future compound changes

FIA has all documents in PDF format in their archive, all the way back to 2012. However, the formats are different: my current script can handle 2018 with simple revision, while I can't find compound info in any document for year 2014. For historical data maybe it's easier to do it manually once. If we want to go even more back in time, next year FIA will have a public E-library, which will host all documents since the first days.
No idea for the potential changes in the future though.

So, after a bit of thinking, I came up with something like this for the required data structure, if we want to support all past and future events.
{
  'season': <int>,
  // the season year

  'events': [
  // an array of events
    {
      'round': <int>,
      // the round number

      'eventKey': <int, optional>,
      // the eventKey that is used in the F1 livetiming API, only exits for current events

      'compoundSpecifications': {
      // an object that lists all possible compounds for this event
      // each compound gets an id that it can be referred to by
        compoundId <any>: {
          'manufacturer': <str>,
          // name of the tyre manufacturer

          'compoundName': <str>,
          // array of compound names, e.g. C1, C2, ...

          'simpleName': <str, optional>
          // "simple" names i.e. HARD, MEDIUM, ...
          // this name may change per event
        }
      },

      'compounds': {
      // this object maps an array of compound ids to each constructor
      // (preferably use ergast constructor ids)
        constructorId <int>: [
          {
            'compoundId': <compoundId>,

            'availableCount': <int>
            // number of available tyre set of this compound
            // could be interesting if we manage to get the data
          },
          ...
        ]
      }
    },
  ]
}

This should make it possible to handle all reasonable cases that I can think of right now, like

one manufacturer, one set of compounds for all teams
multiple manufacturers with each one set of compounds for their teams
a custom mix of compounds from multiple manufacturers per team
all changing on a per-event basis.

Instead of using compound ids, we could also just directly include the compound information in the mapping for each team. That would make for lots of redundant (which probably doesn't matter too much) but less complexity.
Annoyingly, this looks pretty complicated. Much more complicated then I'd like it to be. But supporting various compounds, manufacturers and compound sets and names that change per event is complicated I guess.
If anybody can come up with something simpler, please suggest it.

@harningle this tyre data stuff might get somewhat delayed, considering that #445 has popped up. I want to integrate it into the potential Ergast successor, to not have many different systems. That whole project will hopefully get more traction starting in October. In case you are interested in helping out there, I really could need some help from people who know about relational databases and how to build an API server. Even if it's just a bit of consulting.

Comment to say I would like to be in the loop as well. Has done some DB and SQL but building API server will be a good learning opportunity

I'm in! I work frequently with SQL and API in my job, but have never built anything. Happy to learn and contribute.

Hello @theOehrly, this might be already an old topic, but I just published something that might become useful.
I have created a generalist parser for FIA documents that works with LLMs and text summarizers and that is able to extract tyre compound information, as well penalties and decisions for given races by running the race documents through an Large language model.
Wanted to share the repo (https://github.com/marcll/f1-fia-doc-parser) in case that it might be useful and that the problem and use case is still relevant.
Thanks for your amazing work!

For 2024 at least, there was a "Pirelli preview" pdf doc with tyre information provided in the following format:

Example: https://www.fia.com/sites/default/files/decision-document/2024 Abu Dhabi Grand Prix - Event Notes - Pirelli Preview.pdf

Yes someone have already explored parsing from that PDF doc repo
I haven't really kept up with the development of the Ergast replacement API so I cannot say whether this functionality will be incorporated, and if so, when it will be

For 2024 at least, there was a "Pirelli preview" pdf doc with tyre information provided in the following format:

Example: https://www.fia.com/sites/default/files/decision-document/2024%20Abu%20Dhabi%20Grand%20Prix%20-%20Event%20Notes%20-%20Pirelli%20Preview.pdf

yes we are aware of this and have tried something already: https://github.com/jolpica/jolpica-f1 and https://github.com/harningle/fia-doc/blob/main/parse_event_note.py, as @Casper-Guo pointed out above.
The top priority now is to achieve full parity with Ergast. Ergast does not have the underlying compounds behind the tyres, which means jolpica (the new API after the sunset of Ergast) wouldn't have it very soon. I can't promise anything about the timing, as I still have data correctness checks to be done for jolpica, before continuing on this compound info parsing. I'm aiming at late Feb for getting the parser working for compounds.


PrometheusSource should implement apis.Validatable and apis.Defaultable

cc @syedriko @matzew
Then we should set up the webhooks for these source types like in this PR: https://github.com/knative/eventing-contrib/pull/1107

I want to try.

/assign @MIBc


Replace balance strategies by sample weight

This pull request changes the balancers. Instead of sampling the training data, the balancer now computes a vector of sample weights. This is passed as an argument to classifier.fit. The hope is that this performs well enough that we do not need to use any other balancing.
Currently the default ratio of 1.0 is used in the Balanced balancer. With this ratio the behavior is the same as passing "balanced" in sklearn.utils.compute_sample_weight. Some preliminary testing (n=1) seems to indicate that a ratio of 15.0 performs better, and is on par with the current asreview performance.
Some tests still fail because they import historic asreview files which still contain mentions of deprecated balance strategies. So we still need to consider how to read/convert these files.

Looks good! I look forward to using the class weight functionality of the classifiers themselves. Thanks! Ill make sure to work this into Makita/NEMO

Are there other balancing methods that might work with this new format aside from what the balancer does in this PR?

Are there other balancing methods that might work with this new format aside from what the balancer does in this PR?

Most likely yes!

It was fun to work on this with you!


[Note] Building GCC from Spack's develop fails

Using the latest version of Spack's develop now fails to build GCC 11 with the following error:
  >> 4652    lto-compress.c:(.text+0x173): undefined reference to `ZSTD_compressBound'
  >> 4653    /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: lto-compress.c:(.text+0x194): undefined reference to `ZSTD_maxCLevel'
  >> 4654    /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: lto-compress.c:(.text+0x1b0): undefined reference to `ZSTD_compress'
  >> 4655    /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: lto-compress.c:(.text+0x1bb): undefined reference to `ZSTD_isError'
  >> 4656    /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: lto-compress.c:(.text+0x231): undefined reference to `ZSTD_maxCLevel'
  >> 4657    /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: lto-compress.c:(.text+0x240): undefined reference to `ZSTD_getErrorName'
     4658    /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: lto-compress.o: in function `lto_end_uncompression(lto_compression_stream*, lto_compression)':
  >> 4659    lto-compress.c:(.text+0x4ff): undefined reference to `ZSTD_getFrameContentSize'
  >> 4660    /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: lto-compress.c:(.text+0x532): undefined reference to `ZSTD_decompress'
  >> 4661    /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: lto-compress.c:(.text+0x53d): undefined reference to `ZSTD_isError'
  >> 4662    /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: lto-compress.c:(.text+0x5a0): undefined reference to `ZSTD_getErrorName'
  >> 4663    collect2: error: ld returned 1 exit status
  >> 4664    make[4]: *** [/tmp/rmeli/spack-stage/spack-stage-gcc-11.3.0-6lzw62v4qr6t3mlie3yeqa4l5dsye6lj/spack-src/gcc/cp/Make-lang.in:136: cc1plus] Error 1

This is likely related to the latest version of zstd added in https://github.com/spack/spack/pull/35438.

Note

This is observed when building the bootstrap compiler.

This issue seems to be related to the switch from Makefile to CMake in https://github.com/spack/spack/pull/35104. @bcumming confirmed that reverting to https://github.com/spack/spack/pull/35104 and building with @1.5.4 does work (hence the new version is not the issue).
Fixing the MakefileBuilder (see https://github.com/spack/spack/pull/35104/files#r1155738834) and using build_system=makefile does work:
diff --git a/stackinator/templates/compilers.bootstrap.spack.yaml b/stackinator/templates/compilers.bootstrap.spack.yaml
index 88c0b54..63ae106 100644
--- a/stackinator/templates/compilers.bootstrap.spack.yaml
+++ b/stackinator/templates/compilers.bootstrap.spack.yaml
@@ -20,7 +20,8 @@ spack:
     mpfr:
       variants: [libs=static]
     zstd:
-      variants: [libs=static]
+      variants: [libs=static build_system=makefile]
+      version: [1.5.2]
     zlib:
       variants: [~shared]

diff --git a/stackinator/templates/compilers.gcc.spack.yaml b/stackinator/templates/compilers.gcc.spack.yaml
index cf186e4..36bda85 100644
--- a/stackinator/templates/compilers.gcc.spack.yaml
+++ b/stackinator/templates/compilers.gcc.spack.yaml
@@ -21,6 +21,7 @@ spack:
     mpfr:
       variants: [libs=static]
     zstd:
-      variants: [libs=static]
+      variants: [libs=static build_system=makefile]
+      version: [1.5.2]
     zlib:
       variants: [~shared]
lines 29-79/79 (END)

https://github.com/spack/spack/pull/36606 fixes the MakefileBuilder and revert the default from CMake to Makefile.

https://github.com/spack/spack/pull/36606 has been merged in Spack.
I have verified that the problem is fixed on develop.

Thanks for checking @bcumming


docs: remove meaningless symbol in contribute.md

Type of change:

[x] Documentation

What this PR does / why we need it:
this PR remove some meaningless symbol in contribute.md for beautify

Pre-submission checklist:

[x] Did you explain what problem does this PR solve? Or what new features have been added?
[x] Have you added corresponding test cases?
[x] Have you modified the corresponding document?
[x] Is this PR backward compatible? If it is not backward compatible, please discuss on the mailing list first

:::tip
xxxx
:::

The syntax is a proprietary syntax used by the documentation platform we use, and it can achieve the following effects.
https://apisix.apache.org/docs/ingress-controller/next/contribute/

So, this PR cannot be merged. Thank you for your contribution.


add misha bio

[x] clone the home repo
[x]  create a new branch "mishabio"
[x] run nmp install
[x] create a new file ''MishaShevchenko.md''
[x] add my image to ''img''
[x] add info about me to ''MishaShevchenko.md''
[x] run npm run format
[x] run npm run format: check
[x] run npm run spell-check
[x] run npm run lint:ls
[x] run npm run lint:md
[x] add my changes to the staging area
[x] commit my changes
[x] push my code to gitHub
[x] make ''PR"
[x] add reviewer

@MishaShevchenko You should have the opportunity to share your knowledge with the other students, you could introduce Git Bash, Linux, and explain the basic Linux commands.


spanish translations

spanish translation

@vjvelascorios
Hi! Thank you for your contribution!
I hope you enjoy using this tool (─‿‿─) ♡


[PluggableDevice] Make the dimensions constant in the C API's Allocate functions

The allocate functions don't modify the dimensions, so there's no reason they can't be passed as constants. This makes it easier to call the API deep in a codebase when using arrays that are already constant and that we're not allowed to modify.

@saxenasaurabh  Can you please review this PR ? Thanks!

@saxenasaurabh Can you please review this PR ? Thanks!

@PatriceVignola  Can you please resolve conflicts? Thanks!

@gbaned Done!


Thread fade end also fades interference

The interference should stay the same even if the tail fades.

Here we have the top end chamfered and the bottom faded so the bottom interference fails:

Would you provide the code used here? I don't understand the issue.

This is the default trapezoidal thread.
The purpose of the interference is to overlap with the fused solid outside of which the threads sit. Therefore if the solid is a cylinder like below:

The following area needs to be filled in:


Remove auro-icon Dependency?

General Support Request
Not urgent, can wait/discuss especially for more solid example.
The flight search team has gotten a few reports that the arrows on the date picker are not rendering for some guests. Unfortunately we do not have QM replays or screenshots, but this makes searching for a flight sometimes impossible if they need to switch dates.
Support request
My request is to not rely on auro-icon because there is a network call that is downloading these icons and this may be causing some issues
Possible Solution
Seems like there is a precedent for not using auro-icon component here:
https://github.com/AlaskaAirlines/auro-carousel/pull/8
Context
I know there has been a lot of updates to datepicker and the contract changed a bit recently as well with centralDate that we had to mess with, so this is just a suggestion and something we wanted auro to be aware of that we were getting reports.
Your Environment

Version used: N/A
Browser Name and version: N/A
Operating System and version (desktop or mobile): N/A
Link to your project: https://github.com/Alaska-ECommerce/flightsearch-lem-svelte/blob/b7419f96446317d6616d5540483854c32933361c/src/lib/planbook/DateTimePicker.svelte#L91

I agree, the following code should be updated to have icons as an internal dependency for the project and the icon be shipped as part of the element's bundle.
https://github.com/AlaskaAirlines/auro-datepicker/blob/88392438c76c7c069c300d7660eb17b54abf695e/src/auro-calendar.js#L312-L314


docs(aws): update for latest k8s version available

Some things have changed about kube-up.sh; this keeps the quick start for AWS current.

followed/tested these updated docs and looks great!


PWX-34921: Supports the VolumeDriverDown test for Pure volumes

What this PR does / why we need it:
Ensures the VolumeDriverDown test supports Pure Direct Access volumes as well as normal pxd volumes. This test normally runs some very px-specific commands, most of which does not apply to DA volumes and we instead have different invariants we want to test.
For Pure volumes, this test now validates that IOs continue while PX is down. It does this by repeatedly ensuring the FS is usable by touching files in the data directory of all pods, until the test is complete. If any of these touches fail, it will be reported at the end of the test.
Which issue(s) this PR fixes (optional)
PWX-34921
Testing notes:
Tested this using the elasticsearch and nginx-without-enc apps (FADA and FBDA respectively). Also ensured the same still works for pxd volumes (the original test).

Ah, I had run it on my own cluster without using a Jenkins run. Yes, I'll try to do that (will likely combine this and my next PR then)


[staging & production] Better error message for out of space on Dropbox

Steps

Go to staging or production
Go to a project where you have admin access
Enable Dropbox
Link and configure a Dropbox account that is out of space
Go to the files tab
Try to upload a file

Expected
I expect that the file would not upload since the Dropbox account is out of space, but I expect an error message to identify this.
Actual
Dropbox sends back a 507 Internal Server Error and a very non-specific error is given to the user.

I had no idea why I couldn't upload any files to Dropbox until @chrisseto looked at the trace and told me why uploads weren't working.

It would be helpful to identify why the user cannot upload a file. Dropbox gives the following message:

I have created an osf.io pull request #4635 that should address this issue.

@caileyfitz  The logic was updated in a different PR and I believe this issue can be closed.
@felliott Adding you because I'm not sure @caileyfitz is still active. I don't see any recent commits from her.

Thanks @TomBaxter. I'll close this issue.


Add warning to std.json that it doesn't play well with the GC.

Production experience as well as synthetic tests have shown that std.json's use of associative arrays combined with GC issues causes heavy heap fragmentation. Furthermore, its heavy GC usage makes it unperformant in a threaded environment. Despite this, people keep using std.json for production workloads, then being disappointed when it doesn't measure up. So let's warn them upfront.

("synthetic tests" is a reference to<EMAIL_ADDRESS>)

I don't think we should do this.
"Easy-to-use idiomatic implementation of thing is inefficient, news at 11". The same applies to almost everything, I think.
BTW, the D GC heap uses buckets, so it does not fragment in the same way as a classic allocator. The problem in the first post is mainly due to the global GC lock, isn't it?

Note that switching to a streaming parser solved the user's problem in that thread. GC pressure that's problematic with a heavily GC-based parser workflow can totally disappear when switching to a parsing implementation that's lighter on the allocations.
But also: as I keep saying and keep saying, a large part of the issue with D for newcomers is that it's halfway nicely polished stable code and halfway experimental messes with known issues. (And of course, polished stable code with known issues.) People keep coming in, seeing std.json and thinking "oh okay, I'll use std.json to parse my JSON". And then they're angry and disappointed when std.json predictably falls over.
The problems are known! I don't know what to tell you with regards to fragmentation, we have programs (real programs! deployed on customer systems) standing, in representative tests, at 50MB used and a GB residential. We have services that we're killing regularly because the GC fails to clean things up on time and serve allocations. We have services where tweaking GC parameters to totally unreasonable values moves residential from 4GB to 800MB. The D GC is messy,  unpredictable and plain bad; anything that relies on it will run into problems, and std.json relies on it very heavily.
Not mentioning these things doesn't mean users don't discover them, it just means they'll be angry at us when they do.

I think the main issue with the GC isn't that it's bad (which I don't think it is; it's reasonably OK in its class), but that it's opaque. It's very difficult to understand what's going on.
You are not going to see fragmentation in the classical sense for allocations under the page size (4K). If you have big allocations over that size, you may indeed start seeing unbounded fragmentation; however, I recommend deterministic memory management techniques if you need to deal with large amounts of data in long-running programs anyway.
Note that parsing a typical JSON file is unlikely to require allocations over the page size.

we have programs (real programs! deployed on customer systems) standing, in representative tests, at 50MB used and a GB residential. We have services that we're killing regularly because the GC fails to clean things up on time and serve allocations. We have had services where the GC runs got so long we got network timeouts. We have services where tweaking GC parameters to totally unreasonable values moves residential from 4GB to 800MB.

It would be good to look at these on a case-by-case basis, however, the problem is that we are lacking the tools to meaningfully do so.
Incidentally I've started sketching a revival of my memory debugger. Check back in a few months? If you could package some of these as reproducible programs, that would be great too!

I think the simple test program at<EMAIL_ADDRESS>is the best shot I have right now. I suspect strongly that most of the issues in production are reproduced by that one; at any rate, I'd like to see it working properly before digging much deeper.
A way to see what's keeping allocations alive would definitely be good.
I don't know what to tell you re fragmentation. It walks like fragmentation and it quacks like fragmentation.

I don't know what to tell you re fragmentation. It walks like fragmentation and it quacks like fragmentation.

Well, another reason why the GC allocates more memory than what the program needs is that GC cycles are expensive, so in many situations it decides to just request more memory from the OS instead of kicking off a GC cycle. I would not call this fragmentation, though.

What we're seeing is this: a program says it has 1GB free in GC.stats. We allocate 500MB; now it says it has 900MB free in GC.stats. Even given the default heap size factor of 2, that should not happen unless it fails to reuse some of that memory.

What we're seeing is this: a program says it has 1GB free in GC.stats. We allocate 500MB; now it says it has 900MB free in GC.stats.

Do you mean allocate and discard? Otherwise I don't understand what you mean, sorry.

No, straight allocate. As I understand heapSizeFactor, it should target an OS-allocated size of 2x GC-allocated. Let me dig out the actual numbers.
Okay.

Load data, unload data.
404MB used, 2085MB free
load data
1077MB used, 1950MB free

So it was below the target heap ratio and it still apparently ended up with a lot of new memory. Tbf, I don't have trace from the actual load op, it's possible that std.json pushed it up a lot in temporary used memory. - But that really only emphasizes my general point with std.json.

At any rate, std.json is implicated every time.

BTW, memory structures with many pointers are very sensitive to leaks due to GC stray pointers. If you have a stray pointer to a cell of a linked list, you pin the entire half of the list; the entire list if it's double-linked. A stray pointer to a tree node, you pin the entire subtree. Note how parsed JSON objects form a tree...

IMHO the way forward should look like this:

Track 1: Write a memory debugger so that we can understand what the heck is going on
Track 2:

Try a different JSON parser which has an API similar to std.json (parses into a GC-allocated DOM)
If it performs better than std.json, figure out why
If the problem is unfixable in std.json (e.g. because it would be a big breaking API change), then we can talk about adding the warning.

I mean, also note that the test program specifically doesn't have the JSON "tree of telegrams" issue; each allocated hashmap stands on its own. If we add that GC linked-tree problem on top, I could see it get much worse.
My guess is that anything that parses JSON objects into a D hashmap will have this issue. I don't think it's a bug in std.json, I think it's that std.json is a DOM parser. That's why this PR says to use a stream parser instead.

So why not split std.json into a stream parser and a DOM sink?

Great, when someone does that they can remove the warning.

OK. I defer to @atilaneves

So why not split std.json into a stream parser and a DOM sink?

I think the consensus has been for some time now that we need a from-scratch rewrite of std.json.

Sir, we need a from-scratch rewrite of the entire darn language.

So why not split std.json into a stream parser and a DOM sink?

I think the consensus has been for some time now that we need a from-scratch rewrite of std.json.

Is the suggested design "streaming parser + DOM sink" ?  Maybe designing the DOM sink so that it could be useful for an XML rewrite too?  This might be a good project for one of my students


Full data generation + API + 1.19.4 port

Looking a bit into it, it does seem like the last merge commit erroneously reverted to the equivalent of the 1.18 branch, which seems odd; you could undo the incorrect changes done by the merge and squash it into the merge commit at least.

Looks like github auto merge died

And I did rebase but I had to also merge or some reason


Including group parameter for jenkins slave

I think its a good idea to add a parameter to specify which group the slave is in, this allows the user to change privilege of the slave when using it to run jenkins jobs that may require higher user privilege. I can update the code and send a pull request if this is being approved.

Presumably, this was resolved by #629.


Support building comparator for dictionaries of primitive integer values

Which issue does this PR close?

Closes #2672.
Rationale for this change

What changes are included in this PR?

Are there any user-facing changes?

cc @sunchao

This is needed to extend dictionary support coverage of sorting kernel.

 It should be unrelated.

Thanks.


I would like to ask if the image for the header was created using a template or generated online?

I saw your theme at astro and liked it enough to deploy it right away.
However, the article title image specifies a fixed format, and I see that you have generated similar 2023, 2024 , and would like to ask by what means?
Deployment URL: blog.ldd.cc

Hello @xJoyLu!
The article title image specifies a fixed format because typically, meta images are 1200x630! This is Facebook's standard. The names I specified are arbitrary and can be named whatever, I just named them 2023 and 2024 since they made sense. If you're curious, I made them using Figma (not via generation).

Just figure out the reason. Figma is really great.


remove return model

remove get model, because controllers and another classes should not call this model directly.

Coverage increased (+0.6%) to 83.969% when pulling a6e9a1f13fe5f0815adbd72c84b5540c4f72dc86 on fix-user-repository into 81472b3b0530a511614cba4ed08e352d22ed4fad on master.


USSD API Problem

1. SDK version（SDK 版本）
{
2.108
}

2. In what kind of operation problems appear, and how to reproduce the problem ?（什么样的操作步骤问题会出现，是否是稳定复现，如何复现问题？）
{
In demo_ussd.c I only changed USSD_STRING from *#21# into *250*11# which is to check SIM balance. But while sending USSD , problem occurs at the event API_EVENT_ID_USSD_SEND_SUCCESS while running following line int len = GSM_8BitTo7Bit(result->usdString,buffer,result->usdStringSize);
Problem is that chip goes into debug loop
Detected XCPU in the GDB loop (0x9db00000), connect GDB debugger for more info.
Detected BCPU in the GDB loop (0x9db10000), connect GDB debugger for more info.
Also I can't connect to chip via GDB debugger, it shows error Failed to detect chip
I commented out the line and program went through so I expected to see event API_EVENT_ID_USSD_IND happens ( In response to my *250*11# code ) but that event has never been called !
This seems some kind of bug to me.
}

Ok, it seems that my operator is sending USSD response in UCS-2 format. So passing that character code into GSM_8BitTo7Bit will cause the gdb loop.
Please review GSM_8BitTo7Bit and GSM_7BitTo8Bit functions for sanitation.

https://github.com/Ai-Thinker-Open/GPRS_C_SDK/blob/master/include/api_charset.h#L9
here's the UCS2 to local

Thanks.


📃: Wynk Music Clone: Building a Music Streaming Web Application with HTML, Tailwind CSS, and JavaScript

🔴 Tech Stack:
HTML: Structure web pages, including the homepage, playlists, and genres.
Tailwind CSS: Style the layout, ensure responsiveness, and enhance visual appeal.
JavaScript: Add interactivity, including search functionality, dynamic filtering, and user interactions.
🔴 Objective:
The objective of this project is to create a simplified clone of the Wynk Music streaming platform using HTML, Tailwind CSS, and JavaScript. This project will replicate essential features such as music playlists, search functionality, and genre-based navigation, providing users with an engaging and interactive UI similar to a real-world music streaming platform.
🔴 Summary:
This project involves building a basic clone of Wynk Music's web interface. The homepage will feature popular songs, various genres (e.g., Pop, Rock, Jazz, Classical), and a search bar. Users can search for songs, filter by genres, and view playlist details dynamically.
The project includes:
HTML Structure: Sections for the navbar, music genres, song cards, and footer. Each song card displays essential details, including song title, artist, and genre.
CSS Styling: Using Tailwind CSS, the web app will be responsive and visually appealing. CSS Grid/Flexbox will help arrange song cards and genre sections, providing a clean, user-friendly layout.
JavaScript Functionality: JavaScript will handle the search and filtering system. Users can type in the search bar to find songs by title or click on genres to dynamically display relevant playlists and songs.
This project offers a hands-on approach to building user interfaces and interactive features with HTML, Tailwind CSS, and JavaScript, simulating key functionalities of a real music streaming app.

@iamrahulmahato   please assign me this issue

we are not adding any clone website right now due to deployment issue, so do not deployment raise a new issue


Question about map background layer

Could be offtopic, but I hope somebody will help me. If I go to facebook.com/messages, map opens automatically in down-left corner on a position somewhere in Atlantic ocean with default zoom. But I live on the other side of the world and all my friends are less than 50 km far from me. How could I set default position and zoom in Mapbox map? (I tried some possibilities and googled a lot, but without any result)
BTW thank you, the author of this extension, for this awesome work. I know it looks like it will die in a few days, but I totally love this 2nd dimension of the text location notification in fb chat (which nobody reads at all I think)...

Unrelated but is it working for you ? I’m getting nulls co-ord values for all requests :/

I don't know, first I've solved issues in css in my own fork, second I'm trying to fix this issue. On this side of the world is now deep night, so nobody is online to see, where he is or where he was...

It doesn’t matter if people are online or not. The way the app works — if you scroll up to an old message that was sent using messenger with location turned on, it should turn up on the map. But currently it’s not, even with location turned on. I just confirmed it by having a friend send me a message with location turned on. So either Facebook’s changed the location retrieval mechanism, or they’ve put a system-wide blanket on location services.
Marauder’s Map is now broken.

Ah-ha, okay, sorry for my confusedness. So it probably died, so early... But if it'd start working in a future (or the author would find any solution), how could I set map prefferences I'd asked before.

I just got the map to work, and now has an issue with "0 Users and 0 Points". Did facebook already break this extension?

The map will come, locations will not turn up.

So yes, it is broken?

Yes. What have I written above? -_-

I quote — “Marauder’s Map is now broken"

@dvorapa line 181 of the js file

@xrisk Thank you! I've searched on Mapbox, but I didn't know, it is set in code.


add edx github export plugin

Pre-Flight checklist

[x] Screenshots and design review for any changes that affect layout or styling

[x] Desktop screenshots

[x] Testing

[x] Code is tested
[x] Changes have been manually tested

What are the relevant tickets?
fixes https://github.com/mitodl/edx-git-auto-export/issues/5
What's this PR do?
add edx github export plugin
How should this be manually tested?

Create the package through pantsbuild ans install it
Follow that https://github.com/mitodl/edx-git-auto-export/blob/master/README.md

Where should the reviewer start?
Take a fork / clone of that repository for the sake of testing
https://github.com/amir-qayyum-khan/test_edx_course
You could see the git export commits here as shown in the attached screenshots
https://github.com/umarmughal824/test_edx_course/commits/master
Any background context you want to provide?
Seems like there is celery missing so you will have to test it manually by running the task as shown in the attached screenshots
You could use these commands in the shell
python manage.py cms shell
from git_auto_export.signals import listen_for_course_publish
from opaque_keys.edx.locator import CourseLocator
listen_for_course_publish(sender=None, course_key=CourseLocator('edX', 'E2E-101', 'course', None, None))

from git_auto_export.tasks import async_export_to_git
course_key=CourseLocator('edX', 'E2E-101', 'course', None, None)
async_export_to_git.delay(str(course_key))

Screenshots (if appropriate)

In addition to the above comments, I was able to generate the plugin using pants but I wasn't able to successfully test the functionality.
I tried to debug as well but I'm not getting any hits in the receiver upon publishing the course and that could be probably because we need to structure our app.py/AppConfig as per https://github.com/openedx/edx-django-utils/tree/master/edx_django_utils/plugins asd register our signals.
I was able to set the GIT URL though with both mentioned configuration variables set to True. That's why I also want to mention that I might have missed something else that didn't enable me to test it but let me know anyway.

I had also managed to run it very hardly and after multiple tries/attempts. We need to discuss the whole steps on a quick call to confirm if you have performed all the required steps.

That's working now here you could see the latest commits
https://github.com/umarmughal824/test_edx_course/commits/master

@blarghmatey do you have any concerns?

It all looks sane to me


mod: update github.com/ajeddeloh/go-json to github.com/coreos/go-json

Update github.com/ajeddeloh/go-json to github.com/coreos/go-json
The Github repository for github.com/ajeddeloh/go-json has moved to github.com/coreos/go-json. In addition, the pulled in version was quite old, so this commit updates the location and pulls in a newer version.
How to use
Nothing special to be done as this is only a dependency update.
Testing done
[Describe the testing you have done before submitting this PR. Please include both the commands you issued as well as the output you got.]

[ ] Changelog entries added in the respective changelog/ directory (user-facing change, bug fix, security fix, update)
[ ] Inspected CI output for image differences: /boot and /usr size, packages, list files for any missing binaries, kernel modules, config files, kernel modules, etc.

Hi, thank you for preparing this. Yet this repo is just kept for the Flatcar LTS 3033 release series and we don't really plan to do an Ignition update there (unless we have to due to, e.g., build problems). The development is done on https://github.com/coreos/ignition

@pothos understood, thanks for the clarification. As a follow up question, does https://github.com/flatcar/container-linux-config-transpiler have the same maintenance status (if you know / can share)? I've only ended up in this repo because I was tracing the go-json dependency from github.com/flatcar/container-linux-config-transpiler here.

The ct config transpiler is still maintained but on low priority because we started to convert the docs to use butane as replacement. Butane generates Ignition v3 and has some other cleanups and new features.

Thanks, appreciate the additional information! I'll take a look at whether butane can be a replacement for us. I'll go ahead and close this PR.


Correcting filename example.env to example.env.yml

Unless I'm mistaken and it needs to be called .env.yml ? or env.yml
At any case it needs to be corrected..

@kidsil thanks, you are correct 👍.
The renamed should be called env.yml.
I did this environmental variable change yesterday and this is the result what you get when you make a PR at the middle of the night and review it yourself 😁 ...


ci: minimize babel presence

Minimize babel presence,
as it looks like we already stopped using .babelrc file for the build.
Type

[ ] Bug Fix
[ ] Feature
[X] CI

Are all requirements met?

[X] Code completed
[X] Smoke tested
[ ] Unit tests added
[ ] Code documentation added
[ ] Any pending items have an associated Issue

LGTM


Create Points Shop

Develop a Points Shop feature for the Tetris game. The shop will allow players to spend points earned during gameplay on various items, such as:
Different Tetrimino art styles (e.g., colors, patterns).
Special effects (e.g., visual effects triggered when clearing lines).
Unlockable content such as custom backgrounds or soundtracks.

Approved

Approved


Hidden navigation bar

Hello, and thanks for your plugin!
I would like to know if is it possible to hide the navigation bar, while show the status bar?
I tried a few things and it doesn't work :/

Hi!
If I remember correctly, on Android before 4.4 (KitKat) the "lights out" mode can be activated, while showing the reduced status bar. It happens so if you keep Screen.fullScreen to true.
It's not so easy on KitKat, I think. Probably not working - will double check when I'm back from vacation.

OK, thanks for the answer, i will wait ;)

Any news about my issue?

I think it is not possible to hide the navigation bar and show the status bar (at least, in a non-hacky way).
"Lights out" mode is just dimming the buttons in the navigation bar to dots. Nothing is really hidden, all the buttons are operational: https://developer.android.com/design/patterns/fullscreen.html


F/update indexer release

Removed hardcoded protobuf version in pipfile
Regen protos with branches

release/v1.10.x for indexer
master for core

Updated examples for deprecated orderbook methods

Let's leave this open to update proto for core when the branch is wrapped up

Superseded by https://github.com/InjectiveLabs/sdk-python/pull/200


📦 Webpack 5 Compatibility :: "Package path ./dist/fragment-generation-utils.js is not exported from package"

Context
I'm attempting to utilize this package and it's utilities to do operations with text fragments. I'm starting with a simple use case:
import { generateFragment } from 'text-fragments-polyfill/dist/fragment-generation-utils.js';

// ...
// in some click handler
const fragment = generateFragment(window.getSelection())

Issue
In the simple use case above I get an error when building my project with Webpack 5:
ModuleNotFoundError: Module not found: Error: Package path ./dist/fragment-generation-utils.js is not
exported from package /.../node_modules/text-fragments-polyfill (see exports field in
/.../node_modules/text-fragments-polyfill/package.json)

Proposed Solution
Respecting the exports field in package.json was a requested feature that got implemented with Webpack 5. The documentation for this field can be seen here.
I have a PR incoming with the following adjustment:

Additional Issue + Context
When testing this change, I was able to get rid of the "export" related error, but when building my project I was given a new error:
Can't resolve 'regenerator-runtime/runtime.js' in 'node_modules/text-fragments-polyfill/dist/text-fragments.js'

Looking into this, it appears to be an issue with polyfilling async/await. Now this might be a bridge too far, but I attempted a solution for this as well.
Proposed Solution
Here is a related StackOverflow post I used, which resulted in me creating a rollup.config.js and updating the prepare script to point to that config instead of inlining the rollup options.
After that change, I received the #warning-treating-module-as-external-dependency warning in reference to core-js so I also added that as a dev dependency so it can get bundled in as well.
The implications of this second solution:

generating the dist of text-fragments.js jumps from 300ms to 3s on my machine
the resulting size of dist/text-fragments.js jumps from 9kb to 47kb

I'm going to put up my PR with both of these fixes. But I understand this second part may be overkill from your perspective as the maintainers, so if you'd prefer another approach just let me know and I'll update the PR 👍

Closed via #6.

Just released v5.1.0 that includes this fix. Thank you!


std & export default considered harmful

We may want to reconsider using a default export for stdlib: https://basarat.gitbooks.io/typescript/docs/tips/defaultIsBad.html

Now done!


Merge Irc & FRO to an IOSC (internal oscillator)

For our purposes, they're the same.
https://github.com/lpc-rs/lpc8xx-hal/pull/171#discussion_r338108537

I understand your point, but it's still a hardware resource (albeit with a different name), so it should still be named like one (in my opinion).
Since the "true" name is documented mostly everywhere, I think it's not that confusing (since everyone reads the docs /s).


Remove implicit execution context from StreamApp

#1417 for 0.18, but it turned into a journey:

We didn't have an equivalent to Strategy.sequential, so brings in blaze's direct executor.
It didn't catch exceptions, which seems bad.
Bring blaze's trampoline along for the ride.
Make them both ExecutionContextExecutor for easy interop with Java.

Codecov Report

Merging #1421 into master will decrease coverage by 0.12%.
The diff coverage is 90.47%.

@@            Coverage Diff            @@
##           master   #1421      +/-   ##
=========================================
- Coverage   71.22%   71.1%   -0.13%
=========================================
  Files         259     259
  Lines        6041    6063      +22
  Branches      364     372       +8
=========================================
+ Hits         4303    4311       +8
- Misses       1738    1752      +14

Impacted Files
Coverage Δ

.../src/main/scala/org/http4s/servlet/ServletIo.scala
3.26% <0%> (ø)
:arrow_up:

...ore/src/main/scala/org/http4s/util/StreamApp.scala
80.76% <100%> (+0.76%)
:arrow_up:

core/src/main/scala/org/http4s/util/package.scala
79.16% <100%> (+0.9%)
:arrow_up:

...ore/src/main/scala/org/http4s/util/execution.scala
97.29% <97.29%> (ø)

.../scala/org/http4s/testing/ArbitraryInstances.scala
92.21% <0%> (-7.79%)
:arrow_down:

core/src/main/scala/org/http4s/HttpVersion.scala
93.33% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


libstrophe: 0.9.1 -> 0.9.2

Semi-automatic update. These checks were done:

built on NixOS
Warning: no binary found that responded to help or version flags. (This warning appears even if the package isn't expected to have binaries.)
found 0.9.2 with grep in /nix/store/gc20iqfsfjj6c9ikgz06k3rk3597h22q-libstrophe-0.9.2
found 0.9.2 in filename of file in /nix/store/gc20iqfsfjj6c9ikgz06k3rk3597h22q-libstrophe-0.9.2

cc @devhell @flosse

Failure on x86_64-darwin (full log)
Partial log (click to expand)
Package ‘libstrophe-0.9.2’ in /private/var/lib/ofborg/checkout/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/lnl7-mac/pkgs/development/libraries/libstrophe/default.nix:24 is not supported on ‘x86_64-darwin’, refusing to evaluate.

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowBroken = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-linux (full log)
Partial log (click to expand)
 /nix/store/cb3slv3szhp46xkrczqw7mscy5mnk64l-coreutils-8.29/bin/install -c -m 644 libstrophe.pc '/nix/store/gc20iqfsfjj6c9ikgz06k3rk3597h22q-libstrophe-0.9.2/lib/pkgconfig'
make[1]: Leaving directory '/tmp/nix-build-libstrophe-0.9.2.drv-0/source'
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/gc20iqfsfjj6c9ikgz06k3rk3597h22q-libstrophe-0.9.2
shrinking /nix/store/gc20iqfsfjj6c9ikgz06k3rk3597h22q-libstrophe-0.9.2/lib/libstrophe.so.0.0.0
strip is /nix/store/b0zlxla7dmy1iwc3g459rjznx59797xy-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/gc20iqfsfjj6c9ikgz06k3rk3597h22q-libstrophe-0.9.2/lib
patching script interpreter paths in /nix/store/gc20iqfsfjj6c9ikgz06k3rk3597h22q-libstrophe-0.9.2
checking for references to /tmp/nix-build-libstrophe-0.9.2.drv-0 in /nix/store/gc20iqfsfjj6c9ikgz06k3rk3597h22q-libstrophe-0.9.2...
/nix/store/gc20iqfsfjj6c9ikgz06k3rk3597h22q-libstrophe-0.9.2

Success on aarch64-linux (full log)
Partial log (click to expand)
 /nix/store/zwa643yj8xw3jfsv1x349qy7d2fbzdz3-coreutils-8.29/bin/install -c -m 644 libstrophe.pc '/nix/store/j8b88dmpjjrrf2w1lxjhb6hs2i0wqc2i-libstrophe-0.9.2/lib/pkgconfig'
make[1]: Leaving directory '/build/source'
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/j8b88dmpjjrrf2w1lxjhb6hs2i0wqc2i-libstrophe-0.9.2
shrinking /nix/store/j8b88dmpjjrrf2w1lxjhb6hs2i0wqc2i-libstrophe-0.9.2/lib/libstrophe.so.0.0.0
strip is /nix/store/lvx1acn1ig1j2km8jds5x3ggh3f2wa8v-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/j8b88dmpjjrrf2w1lxjhb6hs2i0wqc2i-libstrophe-0.9.2/lib
patching script interpreter paths in /nix/store/j8b88dmpjjrrf2w1lxjhb6hs2i0wqc2i-libstrophe-0.9.2
checking for references to /build in /nix/store/j8b88dmpjjrrf2w1lxjhb6hs2i0wqc2i-libstrophe-0.9.2...
/nix/store/j8b88dmpjjrrf2w1lxjhb6hs2i0wqc2i-libstrophe-0.9.2


The overlay is not a proper overlay

One of the usescases for overlays is using nixpkgs' splicing for cross-compilation. However, as the overlay exports a static package that doesn't use final.callPackage from overlays, the splicing is lost.
nix-repl> pkgs = import <nixpkgs> { overlays = [(builtins.getFlake "github:mitchellh/zig-overlay").overlays.default]; }

nix-repl> :b pkgs.pkgsCross.aarch64-multiplatform.zigpkgs.master
error: a 'aarch64-linux' with features {} is required to build '/nix/store/p9shafw43vf4a1508z5sn0a3fsm3dj9k-zig-linux-aarch64-0.12.0-dev.3533+e5d900268.tar.xz.drv', but I am a 'x86_64-linux' with features {benchmark, big-parallel, kvm, nixos-test}

nix-repl> :b pkgs.pkgsCross.aarch64-multiplatform.stdenv.cc

This derivation produced the following outputs:
  info -> /nix/store/0wb6b7lz1xndy419ffi5vdfwl7lhj5hw-aarch64-unknown-linux-gnu-gcc-wrapper-13.2.0-info
  man -> /nix/store/f01dvcx0dd5ikwj7ycm83fm3rcgcxamg-aarch64-unknown-linux-gnu-gcc-wrapper-13.2.0-man
  out -> /nix/store/pic9zq502bybas3l0z0ymqdzkacx2h6l-aarch64-unknown-linux-gnu-gcc-wrapper-13.2.0

Note that I don't plan to use this (in fact I haven't even started my Zig journey), but just wanted to inform about this nix thing

Just a question as I am relatively new to nix. I tried this overlay on my linux machine and things worked properly. I tried it on my mac and all of a sudden zig was missing a ton of dependencies. Is what you're saying related? Just want to understand.


Merge bloom core into doorway

This pulls over the most recent commits from bloom core into Doorway

da3b20bb1 - fix: update ui-c to latest version (#3420)
d50f469ab - fix: now removes criteria file if a url is input (#3421)
7cf1a891c - fix: downgrade version of nest axios (#3419)
7efc15d2c - fix: add translation for 64 characters error (#3423)
3b816da5b - updates proxy to support access control allow list (#3407)
cb85ee8a6 - fix: Searching on the applications table causes the page to crash (#3408)
2ba7cc16c - fix: frontend validation for char max (#3413) (11 days ago)

Notes:

This PR shows it has 31 commits, but it is really 7 commits and a couple of merge commits. Theoretically if we do a merge instead of a squash and merge on this PR we won't have this discrepancy next time we sync with bloom core.
I had to change the version of @types/react in the new doorway-ui-components to satisfy the compiler. This is now set to the version of @types/react that is getting pulled into public and partners, however we might run into a similar issue again if those are updated.

this overall lgtm i will pull down the branch and do some testing before stamping on monday ty!!

features seem good -- couldnt' test the external listing stuff so I'll leave it to @chriscasto to take a look at that part!

Lgtm, but the 28k line yarn.lock file has quite a few conflicts that need to be resolved. @lisunshiny @ludtkemorgan Do either of you want to take a stab at it or should I just give it a go? It looks like it mostly involves stuff I don't touch so I don't want to accidentally break anything.

@chriscasto I can take a stab at that

@chriscasto @lisunshiny I've merged the most recent changes from Doorway into this branch and resolved the conflicts. I started it up and it appears to all work. The only thing I can't test is the map since I don't have an api key. But other than that it looks good from my side. I think this is ready to merge whenever you are. Just make sure you merge with "create a merge commit" option. 🤞 that it will make it so the next merge will only have the newest commits from core


Following getting started fails to complete

Issue Type

Bug report

Molecule and Ansible details
ansible --version && molecule --version

ansible [core 2.13.4]
  config file = <redacted>/repos/mine/molecule-test/ansible.cfg
  configured module search path = ['<redacted>/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = <redacted>/.virtualenvs/mol-test/lib/python3.10/site-packages/ansible
  ansible collection location = <redacted>/.ansible/collections:/usr/share/ansible/collections
  executable location = <redacted>/.virtualenvs/mol-test/bin/ansible
  python version = 3.10.6 (main, Aug 30 2022, 05:12:36) [Clang 13.1.6 (clang-13<IP_ADDRESS>.5)]
  jinja version = 3.1.2
  libyaml = True
molecule 4.0.1 using python 3.10
    ansible:2.13.4
    delegated:4.0.1 from molecule
    docker:2.1.0 from molecule_docker requiring collections: community.docker>=3.0.2 ansible.posix>=1.4.0

Molecule installation method:  pip
Ansible installation method: pip
Desired Behavior
I am following the documentation provided for getting started with molecule.
First step is:
molecule init role acme.my_new_role --driver-name docker

My expectation is that this behavior is (more or less) identical to molecule 3.4, which had a fantastic DX.  It should produce a skeleton role that I can then update.
Actual Behaviour
Immediately, there's an attempt to ssh.  Of course the folder is created, but the failure condition provided below doesn't really elucidate what's happening.
molecule init role acme.my_new_role --driver-name docker

localhost | UNREACHABLE!: Failed to connect to the host via ssh: ssh: connect to host localhost port 22: Connection refused
WARNING  Retrying execution failure 4 of: ansible localhost -o -m lineinfile -a path=my_new_role/meta/main.yml line="  namespace: acme" insertafter="  author: your name"
Traceback (most recent call last):
  File "<redacted>/.virtualenvs/mol-test/bin/molecule", line 8, in <module>
    sys.exit(main())
  File "<redacted>/.virtualenvs/mol-test/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "<redacted>/.virtualenvs/mol-test/lib/python3.10/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "<redacted>/.virtualenvs/mol-test/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "<redacted>/.virtualenvs/mol-test/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "<redacted>/.virtualenvs/mol-test/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "<redacted>/.virtualenvs/mol-test/lib/python3.10/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "<redacted>/.virtualenvs/mol-test/lib/python3.10/site-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "<redacted>/.virtualenvs/mol-test/lib/python3.10/site-packages/molecule/command/init/role.py", line 180, in role
    r.execute()
  File "<redacted>/.virtualenvs/mol-test/lib/python3.10/site-packages/molecule/command/init/role.py", line 104, in execute
    util.run_command(cmd, check=True)
  File "<redacted>/.virtualenvs/mol-test/lib/python3.10/site-packages/molecule/util.py", line 157, in run_command
    raise CalledProcessError(
subprocess.CalledProcessError: Command '['ansible', 'localhost', '-o', '-m', 'lineinfile', '-a', 'path=my_new_role/meta/main.yml line="  namespace: acme" insertafter="  author: your name"']' returned non-zero exit status 4.

As an aside, I really wish ansible-galaxy was opt-in.

hi @brianbruggeman
I cannot reproduce this issue. What else did you do?
(v-3-10-4) x@build-ubuntu-01:~/src/tmp$ molecule init role acme.my_new_role --driver-name docker
INFO     Initializing new role my_new_role...
No config file found; using defaults
- Role my_new_role was created successfully
[WARNING]: No inventory was parsed, only implicit localhost is available
localhost | CHANGED => {"backup": "","changed": true,"msg": "line added"}
INFO     Initialized role in /mnt/src/tmp/my_new_role successfully.
(v-3-10-4) x@build-ubuntu-01:~/src/tmp$ ansible --version && molecule --version
ansible [core 2.13.4]
  config file = None
  configured module search path = ['/home/x/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/x/.pyenv/versions/3.10.4/envs/v-3-10-4/lib/python3.10/site-packages/ansible
  ansible collection location = /home/x/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/x/.pyenv/versions/v-3-10-4/bin/ansible
  python version = 3.10.4 (main, Oct  8 2022, 11:04:49) [GCC 9.3.0]
  jinja version = 3.1.2
  libyaml = True
molecule 4.0.1 using python 3.10
    ansible:2.13.4
    delegated:4.0.1 from molecule
    docker:2.1.0 from molecule_docker requiring collections: community.docker>=3.0.2 ansible.posix>=1.4.0

Thanks for the check.
It's very likely this is environmental; but my environment has been around (and working with molecule v3.4) for a few years.  But that also tells me that the documentation probably isn't expressing all of the expected requirements.  I'm on an apple silicon mac; does this matter?  I'd really like to use Rancher Desktop; does that matter?
I am not sure why molecule is ssh-ing during init; I thought that this command would just build a directory structure.  I can probably dig through the code, but is there any guidance someone can provide to figure out what init is sshing to?  At the moment, this is a blocker for using molecule.

@brianbruggeman please execute the following command at the same place like your molecule command
$ ansible localhost -m command -a id -vvv | grep -i establish
this is a example for a local connection
<<IP_ADDRESS>> ESTABLISH LOCAL CONNECTION FOR USER:
and this for a ssh connection
 ESTABLISH SSH CONNECTION FOR USER:
do you have the second, please check which inventory is in action.
Hope this helps.

Thank you.
ansible localhost -m command -a id -vvv | grep -i establish
<localhost> ESTABLISH SSH CONNECTION FOR USER: None

Looks like I'm using local.  I'll dig further one I have some time, but at this point, I'm going to punt.
For the moment, I'm copy/pasta a working example and not using molecule's initialization.  This appears to get me moving forward.

@brianbruggeman did you end up getting this fixed? I'm having the same issue on two separate environments (Arch and Ubuntu, both being a fresh install). I've been testing this with this example to no avail.

No.  I don't have a resolution.

To define localhost and use local connection instead of ssh, define hosts as follows:
[local] localhost ansible_connection=local
This way we define local group with localhost host with local connection.
https://stackoverflow.com/a/45197210/12453442
This works for me.


InputDecorator input and hint widgets should have the same width

InputDecorator now gives the hint and input fields the same width so that they will react the same way to the textAlign parameter.
Fixes https://github.com/flutter/flutter/issues/16784
Fixes https://github.com/flutter/flutter/issues/16769
Fixes https://github.com/flutter/flutter/issues/16366
Fixes https://github.com/flutter/flutter/issues/15079

is this on the dev channel yet?

Not yet.
For future reference, if you click on the commit that was merged into master (in this case d3d4976), it'll show you the tags that contain that commit.  As of this writing, d3d4976 is not yet associated with any tags, which means it's not on the dev channel yet.


Docs formatting

Codecov Report

Merging #133 (9e2dd34) into main (bb0884e) will decrease coverage by 0.08%.
The diff coverage is 83.33%.

@@            Coverage Diff             @@
##             main     #133      +/-   ##
==========================================
- Coverage   80.22%   80.13%   -0.09%
==========================================
  Files          65       65
  Lines        2149     2150       +1
==========================================
- Hits         1724     1723       -1
- Misses        425      427       +2

Impacted Files
Coverage Δ

ezflow/decoder/noniterative/soft_regression.py
49.41% <0.00%> (ø)

ezflow/models/DICL/dicl.py
97.97% <ø> (ø)

ezflow/models/FlowNet/flownet_s.py
97.29% <ø> (ø)

ezflow/models/RAFT/raft.py
87.17% <ø> (ø)

ezflow/models/PWCNet/pwcnet.py
100.00% <100.00%> (ø)

ezflow/modules/units.py
84.84% <100.00%> (+2.08%)
:arrow_up:

ezflow/functional/data_augmentation/operations.py
65.45% <0.00%> (-3.64%)
:arrow_down:


Fix StudyDateAndContinuousTimepointTest

Update the expected visit instead of the initial date value
Changing the initial value breaks other expectations

Validating on TeamCity: https://teamcity.labkey.org/viewQueued.html?itemId=958697


apps: add support for baremetal provider

What this PR does / why we need it:
Bare metal support is under development. This means that the apps repo must support it. This PR adds "baremetal" as a cloud provider setting in init so that when you run ck8s init for bare metal you  get settings based on that.
Which issue this PR fixes (use the format fixes #<issue number>(, fixes #<issue_number>, ...) to automatically close the issue when PR gets merged):
Public facing documentation PR (if applicable)

Special notes for reviewer:
Checklist:

[x] Added relevant notes to WIP-CHANGELOG.md
[ ] Proper commit message prefix on all commits
[ ] Updated the public facing documentation
Is this changeset backwards compatible for existing clusters? Applying:

[x] is completely transparent, will not impact the workload in any way.
[ ] requires running a migration script.
[ ] will create noticeable cluster degradation.
E.g. logs or metrics are not being collected or Kubernetes API server
will not be responding while upgrading.
[ ] requires draining and/or replacing nodes.
[ ] will change any APIs.
E.g. removes or changes any CK8S config options or Kubernetes APIs.
[ ] will break the cluster.
I.e. full cluster migration is required.

I'll have to test it, but from the looks of it I think it looks good

What?! Don't you trust me? ;)


New package: TransferFunctions v0.3.2

Registering package: TransferFunctions
Repository: https://github.com/kunzaatko/TransferFunctions.jl
Created by: @kunzaatko
Version: v0.3.2
Commit: c229ae4d0461565ee793c953444ec7861f72454a
Reviewed by: @kunzaatko
Reference: https://github.com/kunzaatko/TransferFunctions.jl/commit/c229ae4d0461565ee793c953444ec7861f72454a#commitcomment-131175943

[no block]
Maybe the name "TransferFunctions.jl" is a little generic. It seems this is about optical systems. What about something more specific, like "OpticalTransferFunctions.jl"?
To help users, consider adding some info in your ReadMe (E.g., What does this package do? Who is it for? How does one use it in a simple example? See also the registry FAQ)

Unfortunately OpticalTransferFunctions.jl is not a good name, because an
an optical transfer function is a specific term. It is the Fourier
transform of a point spread function. So that is no good :(. A possibility
I thought about is LinearOpticalSystems.jl, but I consider it worse than
TransferFunctions.jl, because that name is very descriptive. It concerns
with all the types of transfer functions from optics. Maybe
OpticsTransferFuctions.jl, but that sounds a little weird to me. I am not
native though... Does it sound weird to you? What do you think about this?
Would it be potentially possible to leave the name as is?
I will fill in the README along with the docs, but I wanted the code to
stabilise a little before I do that.

[no block] "Optics transfer functions" sounds ok to me but I'm not native either so don't take my word for it. I also don't know these fields so I'm not in a position to tell you what is best. My point was merely to suggest you carefully consider a more specific alternative in case "transfer functions" exist in other fields, otherwise some users might try to use your package and get confused that it's not for their field. If you're confident that it's a good name and nobody else objects then that's all that is needed for you to keep that name.

[noblock]
I will be sticking with the name TransferFunctions.jl then.
For completeness, here is my though process. The term transfer function is used outside of optics.. The term is actually used in most fields where a linear system is concerned and where the system is the source of measurement or a signal. This might not be a bad thing though. The mechanisms, algorithms and the terms are similar in all of those. That said, in the future if there is an intention of implementing transfer function for say acoustics, it could be added to this package and they could be further disambiguated into modules or into a base and specialization packages (with a backward incompatible change). This should not be such a problem if anything arises till the stable v"1.0" version as the type system can be abstracted to include transfer functions in these fields as well and the usefulness could be in the defaults that are defined on the abstract transfer function types. I will put this note into developer section of the documentation and when anyone has this problem or wants to extend this to his field he can create an issue.


[Feature] Add no_use_bulkwalkall as an option for discovered devices

We have a subset of devices on a specific subnet that do not play nicely with BULKWALK. We would like to add no_use_bulkwalkall: true to all discovered devices, manually defining this parameter per device will not scale within our environment. Ideally we would be able to define this in the discovery or global section, I'm not sure which section makes the most sense, but the following are some examples of how I think it should work.
Possible Discovery Example
discovery:
    cidrs:
        - <IP_ADDRESS>/28
    ignore_list: []
    debug: false
    ports:
        - 161
    default_communities: []
    use_snmp_v1: false
    default_v3: aws.sm.my-secret-snmp-creds
    add_devices: true
    add_mibs: true
    threads: 4
    replace_devices: true
    check_all_ips: true
    kentik: null
    no_use_bulkwalkall: true

Possible Global Example
  global:
    poll_time_sec: 60
    drop_if_outside_poll: false
    mib_profile_dir: /etc/ktranslate/profiles
    mibs_db: /etc/ktranslate/mibs.db
    mibs_enabled: []
    timeout_ms: 20000
    retries: 0
    global_v3: null
    response_time: true
    ping_interval_sec: 60
    no_device_hardcoded_oids: false
    user_tags:
    jitter_time_sec: 0
    fast_poll: false
    watch_profile_changes: false
    save_mds_cache: false
    no_use_bulkwalkall: true

Easiest is to define in the discovery section for me. Then this value would get added to discovered devices as the are found. Would you want to further limit its application by subnet? EG, something like:
discovery:
    cidrs:
        - <IP_ADDRESS>/28
    ignore_list: []
    debug: false
    ports:
        - 161
    default_communities: []
    use_snmp_v1: false
    default_v3: aws.sm.my-secret-snmp-creds
    add_devices: true
    add_mibs: true
    threads: 4
    replace_devices: true
    check_all_ips: true
    kentik: null
    no_use_bulkwalkall:
      - <IP_ADDRESS>/30

Or just keep as a boolean for now?

I think a boolean would be best for now.

This does the trick for me in my lab: https://github.com/kentik/ktranslate/pull/766

Merged in. Only trick I've found is that for devices where no_use_bulkwalkall is true when discovered and then if you subsequently set the disco config to false the device itself keeps no_use_bulkwalkall as true. Assuming this behavior is ok for you but let me know if its trouble.


[NFC] stdlib: fix use of __owned in deprecation messages

consuming is the actual parameter ownership modifier used in the non-deprecated declaration, while __owned is an underscored (and outdated?) internal ownership modifier.

@swift-ci smoke test


Migrate from Terraform v0.11 to Terraform v0.12

Terraform v0.12 is a major Terraform release with breaking changes to the HCL language. Language workarounds (e.g. list type hints) have new meanings so it is not possible to provide both v0.11 and v0.12 compatibility at the same time.

Migrate DigitalOcean module from Terraform v0.11 to v0.12
Migrate AWS module from Terraform v0.11 to v0.12
Migrate Google Cloud module from Terraform v0.11 to v0.12
Migrate Azure module from Terraform v0.11 to v0.12
Migrate bare-metal module from Terraform v0.11 to v0.12
Define clc_snippets type constraint map(list(string)) (bare-metal only)
Use expression syntax instead of interpolated strings, where suggested
Replace v0.11 bracket type hints with Terraform v0.12 list expressions
Update tutorials and worker pools documentation
Define Terraform and plugin version requirements in versions.tf

Require digitalocean ~> v1.3 to support Terraform v0.12
Require aws ~> 2.7 to support Terraform v0.12
Require google ~> 2.5 to support Terraform v0.12
Require azurerm ~> 1.27 to support Terraform v0.12
Require matchbox ~> 0.3.0 to support Terraform v0.12 (3rd party)
Require ct ~> 0.3.2 to support Terraform v0.12 (3rd party)
Require terraform-provider-template ~> 2.1
Require terraform-provider-null ~> 2.1
Require terraform-provider-tls ~> 2.1 (implicit from terraform-render-bootkube)
Render terraform-provider-local ~> 1.2 (implicit from terraform-render-bootkube)

Provide migration instructions from Terraform v0.11 to v0.12

Guide on upgrading Terraform for existing resource either in-place or by moving resources to a new Terraform v0.12 config directory one by one

Bug Fixes:

Avoid unneeded rotations of Regular priority virtual machine scale sets (Azure)

Azure only allows eviction_policy to be set for Low priority VMs. Supporting Low priority VMs meant when Regular VMs were used, each terraform apply rolled workers, to set eviction_policy to null.
Terraform v0.12 nullable variables fix the issue and plan does not produce a diff

Closes #483
Related: https://github.com/poseidon/terraform-render-bootkube/pull/136

Tentative plan is to land this immediately after Kubernetes v1.14.3. After that point, Terraform v0.12 will be used.

Future Typhoon releases (beyond v1.14.3) will require Terraform v0.12.
Terraform v0.12 is a major change, so you must migrate from Terraform v0.11 to v0.12 to be able to use future releases. It is possible to upgrade Terraform in-place with v1.14.2/v1.14.3 clusters. To migrate now, change the source ref to 3276bf587850218b8f967978a4bf2b05d5f440a2 (or some SHA after that). Alternately, wait for the next Typhoon release.
A Terraform upgrade guide is provided to aid you (best-effort): https://github.com/poseidon/typhoon/blob/master/docs/topics/maintenance.md#terraform-v012x


facing less error in angular 12

./src/styles.less - Error: Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
ModuleBuildError: Module build failed (from ./node_modules/less-loader/dist/cjs.js):
Chunk.split is not a function
at processResult (C:\Users\bdadwhal-etc\angular-migration8.1\node_modules\webpack\lib\NormalModule.js:713:19)
at C:\Users\bdadwhal-etc\angular-migration8.1\node_modules\webpack\lib\NormalModule.js:819:5
at C:\Users\bdadwhal-etc\angular-migration8.1\node_modules\loader-runner\lib\LoaderRunner.js:399:11
at C:\Users\bdadwhal-etc\angular-migration8.1\node_modules\loader-runner\lib\LoaderRunner.js:251:18
at context.callback (C:\Users\bdadwhal-etc\angular-migration8.1\node_modules\loader-runner\lib\LoaderRunner.js:124:13)
at Object.lessLoader (C:\Users\bdadwhal-etc\angular-migration8.1\node_modules\less-loader\dist\index.js:54:5)

package.json
{
"name": "gd",
"version": "2.0.0",
"engines": {
"node": "14.17.3",
"npm": "8.3.0"
},
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build --prod",
"test": "ng test",
"lint": "ng lint --type-check",
"e2e": "ng e2e",
"serve": "ng serve --proxy-config proxy.conf.json",
"coverage": "ng test --code-coverage --reporters=coverage"
},
"private": true,
"dependencies": {
"@angular/animations": "~12.2.0",
"@angular/common": "~12.2.0",
"@angular/compiler": "~12.2.0",
"@angular/core": "~12.2.0",
"@angular/forms": "~12.2.0",
"@angular/http": "7.2.16",
"@angular/material": "^12.2.0",
"@angular/platform-browser": "~12.2.0",
"@angular/platform-browser-dynamic": "~12.2.0",
"@angular/router": "~12.2.0",
"@babel/compat-data": "^7.8.0",
"@ngrx/store": "^9.2.0",
"@types/jasminewd2": "^2.0.3",
"core-js": "2.5.1",
"dexie": "2.0.1",
"immutable": "3.8.2",
"karma-typescript": "^3.0.5",
"lodash": "4.17.4",
"ngx-bootstrap": "^7.0.0",
"pouchdb-browser": "6.3.4",
"rxjs": "6.6.0",
"rxjs-compat": "^6.6.7",
"tslib": "^2.3.0",
"zone.js": "~0.11.4"
},
"devDependencies": {
"@angular-devkit/build-angular": "~12.2.8",
"@angular/cli": "~12.2.8",
"@angular/compiler-cli": "~12.2.0",
"@types/jasmine": "~3.8.0",
"@types/node": "^12.11.1",
"angular": "1.6.6",
"angular-in-memory-web-api": "0.4.6",
"angular-mocks": "1.6.6",
"angular-route": "1.6.6",
"angular-sanitize": "1.6.6",
"bootstrap": "3.3.7",
"codelyzer": "^6.0.0",
"concurrently": "3.5.0",
"font-awesome": "4.7.0",
"grunt": "1.0.1",
"grunt-bower-task": "0.5.0",
"grunt-cli": "1.2.0",
"grunt-concurrent": "2.3.1",
"grunt-contrib-clean": "1.1.0",
"grunt-contrib-concat": "1.0.1",
"grunt-contrib-copy": "1.0.0",
"grunt-contrib-jshint": "1.1.0",
"grunt-contrib-less": "1.4.1",
"grunt-contrib-uglify": "3.1.0",
"grunt-contrib-watch": "1.0.0",
"grunt-exec": "3.0.0",
"grunt-open": "0.2.3",
"grunt-text-replace": "0.4.0",
"jasmine-core": "^3.8.0",
"jasmine-spec-reporter": "^5.0.0",
"jquery": "2.2.4",
"karma": "^6.3.0",
"karma-chrome-launcher": "^3.1.0",
"karma-cli": "1.0.1",
"karma-coverage": "^2.0.3",
"karma-htmlfile-reporter": "0.3.5",
"karma-jasmine": "^4.0.0",
"karma-jasmine-html-reporter": "^1.7.0",
"karma-phantomjs-launcher": "1.0.4",
"karma-requirejs": "1.1.0",
"karma-sonarqube-unit-reporter": "0.0.13",
"load-grunt-tasks": "3.5.2",
"protractor": "^7.0.0",
"requirejs": "2.3.5",
"time-grunt": "1.4.0",
"ts-node": "^8.3.0",
"tslint": "^6.1.0",
"typescript": "^4.3.5"
}
}

i am able to compile the code successfully only facing less-loader error during unit test from npm run test

This seems like a bug but we'll need to look at a reproduction to find and fix the problem. Can you setup a minimal repro please?
You can read here why this is needed. A good way to make a minimal repro is to create a new app via ng new repro-app and adding the minimum possible code to show the problem. Then you can push this repository to github and link it here.
This might be related to your directory structure so its really important to get an accurate repro to diagnose this.

@alan-agius4 https://github.com/bxdadwhal/angular12/

@bxdadwhal, the above link results in a 404, is the above a private repro?

please try now @alan-agius4

@alan-agius4 are you able to reproduce and troubleshoot the above error ?

@JoostK @alan-agius4 please suggest any fix on this bug for angular version 12

@bxdadwhal, kindly re-share the reproduction, without the reproduction we will be unable to look at this issue.

@alan-agius4 i am working on setting minimal repo , do not want to share the whole code

Closing as no reproduction was provided.
If the problem persists please open a new issue with a minimal reproduction. Thanks.


Spaceship improvements

Please don't squash

Add caching of the itc_service_key which was requested on each login until now
Remove old api_key method, which is not used any more since switching to the new two factor auth

LGTM 👍

And there we go, I squashed... ugh


Add length to FileAppender to avoid a call to S3 when writing.

@rdsr, I rebased and fixed the issue you caught. Thanks!


Problem with instalation

Hello everyone, I can't run the training, writes about the absence of some files. I checked all the libraries, they are on my computer + I arranged the training data as follows. What could be the matter ? Why is my training not starting ?

Probably due to using incompatible versions of pytorch and cuda.
Just use the exact same version of pytorch and cuda mentioned in README, and you will good to go.
If you want not to change the environment on your machine, just try docker.


Disable ParallelStreamsLoadTest slow OSRG modes on Windows

The OSRG modes run slow only on Windows, and contribute to Windows
special.system tests timing out. The Mode Mode107-OSRG (24) can timeout
the 60min limit and fail.
 The elements inside the disable element are in AND relationship. If you want to disable more than one variations, please add more disable blocks. Or remove variation element from the block to disable all variations.

Created https://github.com/AdoptOpenJDK/openjdk-tests/pull/2325 to fix the previous comment.


Add a clear_message function to the response and call it whenever a render_ function is about to append to the message.

This was done by adding a set_message in response to complement the append_message function


Update Composer dependencies (2020-11-30-00-10)

Visual regression test passed!
View the visual regression test report


fails to compile cargo test on Mac OS (utmp format)

Problem
cargo test fails to compile on Mac OS.  Here is a run on Mac OS 12.
$ cargo test
...
   Compiling super_speedy_syslog_searcher v0.6.68 (/Users/runner/work/super-speedy-syslog-searcher/super-speedy-syslog-searcher)
error[E0308]: mismatched types
    --> src/tests/common.rs:2338:43
     |
2338 |   pub const UTMPX_BUFFER1: [u8; UTMPX_SZ] = [
     |  _______________________________--------____^
     | |                               |
     | |                               help: consider specifying the actual array length: `384`
2339 | |     0x05, 0x00, 0x02, 0x00, 0xb4, 0xa3, 0x00, 0x00, b'p', b't',
2340 | |     b's', b'/', b'1', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2341 | |     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
...    |
2377 | |     0x00, 0x00, 0x00, 0x00,
2378 | | ];
     | |_^ expected an array with a fixed size of 640 elements, found one with 384 elements

error[E0308]: mismatched types
    --> src/tests/common.rs:2393:43
     |
2393 |   pub const UTMPX_BUFFER2: [u8; UTMPX_SZ] = [
     |  _______________________________--------____^
     | |                               |
     | |                               help: consider specifying the actual array length: `384`
2394 | |     0x07, 0x00, 0x00, 0x00, 0xb4, 0x33, 0x00, 0x00, 0x70, 0x74,
2395 | |     0x73, 0x2f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2396 | |     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
...    |
2432 | |     0x00, 0x00, 0x00, 0x00,
2433 | | ];
     | |_^ expected an array with a fixed size of 640 elements, found one with 384 elements

error[E0308]: mismatched types
    --> src/tests/common.rs:2448:43
     |
2448 |   pub const UTMPX_BUFFER3: [u8; UTMPX_SZ] = [
     |  _______________________________--------____^
     | |                               |
     | |                               help: consider specifying the actual array length: `384`
2449 | |     0x07, 0x00, 0x00, 0x00, 0xb4, 0x33, 0x00, 0x00, 0x70, 0x74,
2450 | |     0x73, 0x2f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2451 | |     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
...    |
2487 | |     0x00, 0x00, 0x00, 0x00,
2488 | | ];
     | |_^ expected an array with a fixed size of 640 elements, found one with 384 elements

For more information about this error, try `rustc --explain E0308`.
error: could not compile `super_speedy_syslog_searcher` (lib test) due to 3 previous errors
warning: build failed, waiting for other jobs to finish...
error: command `/Users/runner/.rustup/toolchains/stable-x86_64-apple-darwin/bin/cargo test --no-run --message-format json-render-diagnostics --lib --bin s4` exited with code 101
Error: Process completed with exit code 101.

Mac OS discontinued use of utmp format files sometime before Mac OS 11. The libraries are still available after the discontinuation to allow parsing those files from an older system (presumably).
On Mac OS, a utmpx file consists of:

The Mac OS X 10.5 utmpx file header is 628 bytes in size and consists of:
...
The Mac OS X 10.5 utmpx record is 628 bytes in size and consists of:
...

whereas, on Linux:

The Linux libc6 utmp recordd is 384 bytes in size and consists of:

Environment:

OS: Mac OS 11, Mac OS 12.6
s4 version: after 0.6.68 (db732307106adf4f499411bae742bbbc0d105d25)

Related
This is another fallout of using uapi crate, see meta Issue refactor utmp/utmpx parsing #171.

Some workaround code was added in 2c8bf0f job_test_macos. The correct fix is #171

Built on Mac OS 12 using Github actions https://github.com/jtmoon79/super-speedy-syslog-searcher/actions/runs/8386892984


NumericInput pattern improvements

What
Change pattern for numeric input  & change step to any if not passed.
Why
Html pattern is not consistent. Step seems like it is better at marking the field as invalid.
Even with type="numeric", if step==1, the field is marked as invalid if there is a non-1 step size in the input (ex: 1.1).

Closing to prioritize other work.


Channel-Independence

Hello,
Is there a way to allow for channel-mixing under the current implementation?
Thank you.

@Yangyx891121 one way to mix the channel would be to add a new fully connected layer to on top of the transformer encoder.
This additional layer would mix the different patch of the different univariate time series.
What do you think about this late fusion implementation idea?

Thank you this one should work. I think in general if you want to estimate 1 ts using many ts this design is a must.

Thanks @Yangyx891121 for the question! Also we appreciate @ikvision for your kind and accurate answer!


[Doc] Current typography options

I think it would be helpful to include a page on this including a demonstration of the different font weights, colors and how different tags render by default. Might be a good exercise to learn how we might want to expand typography in the future as mentioned in (#1915, #1789, #2422).
What do you think?
@oliviertassinari @alitaheri @mbrookes
Notes:
Current components that import from Typography.

[ ] AppBar
[ ] Badge
[ ] CardHeader
[ ] CardMedia
[ ] FlatButton
[ ] RaisedButton
[ ] Subheader

I think it's best to move typography inside theme. It's more robust and easier to customize.

I think it's best to move typography inside theme. It's more robust and easier to customize.

I agree :100:

Hi @oliviertassinari @alitaheri @newoga.  i'm planning to move typography inside theme as I have done in my previous PR so right now I have found card component that needs it.  So it would be great if you guys can provide me a list that needs this change.

@heetvachhani I just added the list to the description of the issue at the top. Good luck! :smile:

great thanks @newoga :+1:

Thanks a lot @heetvachhani :+1:

Can we close this one? @newoga

I think so, I think you did them all @heetvachhani! Thanks!


WebSocket and target routing

The existing WebSocket examples seem simple in the way that most of the time they just echo the received message back. Different is the example/websocket/chat-multi example but that also works on a single "target".
I'd like to know how I can build an application where I can accept websocket connections on different, specific endpoints/targets.
On the HTTP side this is easy by inspecting the corresponding boost::beast::http::request object as this carries the resource/target string.
Basically I'd like to extend Malloy so the user can not only register HTTP handlers but also websocket handlers on specific targets.
Currently, the API can be used like this:
int main()
{
    const std::filesystem::path doc_root = "../../../../examples/static_content";

    // Create malloy controller config
    malloy::server::controller::config cfg;
    cfg.interface   = "<IP_ADDRESS>";
    cfg.port        = 8080;
    cfg.doc_root    = doc_root;
    cfg.num_threads = 5;

    // Create malloy controller
    malloy::server::controller c;
    if (!c.init(cfg)) {
        std::cerr << "could not start controller." << std::endl;
        return EXIT_FAILURE;
    }

    // Create the router
    auto router = c.router();
    if (router) {
        using namespace malloy::http;

        // A simple GET route handler
        router->add(method::get, "/", [](const auto& req) {
            response res{status::ok};
            res.body() = "
Hello World!

some content...
";
            return res;
        });

        // Add a route to an existing file
        router->add(method::get, "/file", [doc_root](const auto& req) {
            return generator::file(doc_root, "index.html");
        });

        // Add some file serving
        router->add_file_serving("/files", doc_root);
    }

    // Start
    c.start();

    return EXIT_SUCCESS;
}

What I would like is adding something like:
router->add_websocket("/some/target/echo", [](const auto& payload) {
   return payload;
});

router->add_websocket("/some/other/target/notifications", [](const auto& payload) {
  // Do something with the payload
  // ...

  return "Some response for the handled payload";
});

How can I do this using boost.beast?

Hi there, it's reasonably straightforward given the following two facts:

There is a specialisation of websocket::stream<> where the template argument is a reference to a stream.
There is an overload of websocket::async_handshake which takes the http::request by reference.

Together, these give you your conditional upgrade which would be performed by the router.

Thank you for your reply!
I'd like to check whether I understand you correctly, so here's my recap: The current websocket implementation can be left as-is. I just create an extra beast::websocket::stream on top of the existing one but this time passing the reference to the existing stream. Then, I modify my call to beast::websocket::async_handshake() to use an overload which accepts http::request.
Looking at the documentation of beast::websocket::stream::async_handshake() I am unable to spot an overload that accepts an http::request. I do see one that accepts a reference to response_type though. What am I missing or understanding correctly?
From there, I take it that the http::request will be passed to the on_handsake() handler?

If you're writing a server you need to use async_accept.

Gotcha, thanks!
How can I retrieve the request that was passed to websocket::stream:;async_accept()?

How can I retrieve the request that was passed to websocket::stream::async_accept()?

See:
https://www.boost.org/doc/libs/1_76_0/libs/beast/doc/html/beast/using_websocket/handshaking.html#beast.using_websocket.handshaking.inspecting_http_requests

Thank you guys, I got it working :)
Your help is much appreciated!


Automatically test Preflight policy execution on pull request

Is your feature request related to a problem? Please describe.
Yes, currently there is no automated testing against new PRs that tests Preflight's functionality with the bugfix against a known good asset and a known supported OCP cluster version.
Describe the solution you'd like.
Integrate with https://prow.ci.openshift.org's , consuming the ci-operator to claim a cluster of a version we support, and run against existing test assets.
Describe alternatives you've considered.

Standing up our own clusters (would require much more admimnistrator than consuming the mentioned platform)
Standing up a single cluster per version and using task runners to target them in GH actions (less clean, higher likelihood of conflict)

Additional context.
The work summary looks something like this:

Enable openshift CI robots on our repositories so that the robots can perform automation on our behalf based on chat-ops commands (note: might conflict with our existing robots).
Optionally enable merge robots to auto merge (we might not want this)
Configure this repository in https://github.com/openshift/release to enable Prow plugins of interest (approve, lgtm, merge, etc)
Define our Presubmit jobs, which should build binaries including the commits from the PR in scope
Build and/or reuse any existing steps from the step registry to use the ci-operator and run our task. We could also embed our tests as scripts in this repository, and run those as our "steps" using this platform (instead of writing the entirety of the script in the test platform).
Evaluate results to make sure everything passed, and otherwise just ensure preflight doesn't panic or fail with the change in question (note: these results will be public, but there should be little concern of credential leak because our test assets exist in public registries and don't require configuration or credentials themselves).

Decisions/Requires Additional Input

Pending Decision

(Question) Should this testing occur on every PR? What PRs should not be subject to this workflow (e.g  Docs PRs?) Can that level of filtering be automated?

(Decision) TBD

Pending Decision

(Question) Should we have different automation for releases? Tags? How does this automation differ?

(Decision) TBD

Pending Decision

(Question) Do we want to enable automatic merge using Tide

(Decision) TBD

/assign

Hi @komish,
I am working on same scenario made some progress on build jenkins pipeline job and Preflight automation test.
Lets collaborate on this

@vikasmulaje has started working on programmatically interacting with all of the current CLI endpoints. I think it makes sense to continue our existing integration with the Red Hat DPTP infrastructure because it gives us access to the on-demand openshift clusters, but I suggested @vikasmulaje submit his programmatic CLI testing code for review. If/when merged, we can replace my recently submitted bash script AND the existing e2e code base.
It should be a drop-in replacement, where we just change the make test-e2e target to run the test code instead of my bash scripts.
Looking forward to the contributions @vikasmulaje!


Implement Exercise "State of Tic-Tac-Toe"

Resolves #231

suggest using cx_parameter_invalid instead of the custom exception class
having multiple objects as part of an exercise doesnt work, or I guess it does not, I've not tested it


RuntimeError: merge_sort: failed to synchronize: cudaErrorIllegalAddress: an illegal memory access was encountered

Try to train conv_emformer2 to fix #616 , but get cudaErrorIllegalAddress. Trianing conformer is normal.
Env:
cuda-11.2
A100
torch=1.10.2+cu111
torchaudio=0.10.2+cu111
Traceback (most recent call last):
  File "./conv_emformer_transducer_stateless2/train.py", line 1145, in <module>
    main()
  File "./conv_emformer_transducer_stateless2/train.py", line 1138, in main
    run(rank=0, world_size=1, args=args)
  File "./conv_emformer_transducer_stateless2/train.py", line 1024, in run
    scan_pessimistic_batches_for_oom(
  File "./conv_emformer_transducer_stateless2/train.py", line 1112, in scan_pessimistic_batches_for_oom
    loss.backward()
  File "/home/disk1/xjl/anaconda3/envs/k2/lib/python3.8/site-packages/torch/_tensor.py", line 307, in backward
    torch.autograd.backward(self, gradient, retain_graph, create_graph, inputs=inputs)
  File "/home/disk1/xjl/anaconda3/envs/k2/lib/python3.8/site-packages/torch/autograd/__init__.py", line 154, in backward
    Variable._execution_engine.run_backward(
RuntimeError: merge_sort: failed to synchronize: cudaErrorIllegalAddress: an illegal memory access was encountered

Could you switch to another CUDA version instead of CUDA 11.1? E.g., you can use cuda 10.2.

Cuda-10.2 support A100 ? I did not test before, trying to higher cuda version like 11.4 or 11.6

Cuda-10.2 support A100 ? I did not test before, trying to higher cuda version like 11.4 or 11.6

Yes, as long as it's not CUDA 11.1


Ignore this

Hi, the idea behind Optional* is declarative handling of values that do not exist (are not found). It's a common pattern in languages that do not differentiate between three possible outcomes: "does not exist", "exists, but is not defined", "exists and it's defined". For example, Javascript might have undefined and null. Haskell might have maybe which is either just value or nothing.
One can find() and then choose a default value with orElse or throw an exception if nothing is found with orElseThrow or check for presence and return the value with isPresent and get. In any case, the hope is that null values are better handled, and that you don't have to write repetitive code to do it.


Adds a "provider" flag to update a install commands

This flags allows installing binaries from providers that doesn't follow
our initial URL resolution scheme.

Thx for reviewing @sirlatrom . I believe it's ready for a second review and merge if approved. :pray:


[BUG]: enum types not being generated when they are imported from another file

What version of drizzle-orm are you using?
29.3
What version of drizzle-kit are you using?
20.12
Describe the Bug
When creating the migration files, enum types aren't being generated when they are imported from another module, even though they are being correctly referenced in tables that use them.
For example:
index.ts:
import { pgTable } from 'drizzle-orm/pg-core';
import { testEnum } from './import';

// was companyContactRoles
export const temp = pgTable('temp', {
    x: testEnum('x').notNull(),
  },
  () => {
    return {
   };
  }
);

import.ts:
import { pgEnum,  } from 'drizzle-orm/pg-core';

export const testEnum = pgEnum('testEnumType', ['a', 'b']);

Generates this output:
CREATE TABLE IF NOT EXISTS "temp" (
	"x" "testEnumType" NOT NULL
);

But if it is defined in the main module...
index.ts:
import { pgEnum, pgTable, } from 'drizzle-orm/pg-core';

export const testEnum = pgEnum('testEnumType', ['a', 'b']);

// was companyContactRoles
export const temp = pgTable('temp', {
    x: testEnum('x').notNull(),
  },
  () => {
    return {
   };
  }
);

produces this (expected) output:
DO $$ BEGIN
 CREATE TYPE "testEnumType" AS ENUM('a', 'b');
EXCEPTION
 WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "temp" (
	"x" "testEnumType" NOT NULL
);

Expected behavior
The first example should produce the same output as the second example
Environment & setup
No response

I think this is expected behavior. You can define you enum in another file, but you would need to re-export it from the file where you are defining the schema, so that drizzle kit can pick it up.

Ah... I guess that makes sense from a typescript perspective.  Thanks.