Resolve onCancel Error (package-lock update)

Updates package-lock to the newest dependency versions, specifically the bulk-data-client and its got version, which previously caused the onCancel error when connecting to the SMART server. (See this closed Github issue for context).
The bulk-data-client should now be version 1.1.0 (previously 1.0.3), and got should be version ^11.8.6 (previously ^11.8.2).
Testing Guidance
Test with the SMART server. Example CLI command: npm run cli -- -f https://bulk-data.smarthealthit.org/eyJlcnIiOiIiLCJwYWdlIjoxMDAwMCwiZHVyIjoxMCwidGx0IjoxNSwibSI6MSwic3R1IjozLCJkZWwiOjB9/fhir -g 048d4683-703a-4311-963d-48e515a6372b -d <your-download-path>

I'm now seeing a new error which appears to be got related:
Using the same command you provided (npm run cli -- -f https://bulk-data.smarthealthit.org/eyJlcnIiOiIiLCJwYWdlIjoxMDAwMCwiZHVyIjoxMCwidGx0IjoxNSwibSI6MSwic3R1IjozLCJkZWwiOjB9/fhir -g 048d4683-703a-4311-963d-48e515a6372b -d <your-download-path>) I get
npm run cli -- -f https://bulk-data.smarthealthit.org/eyJlcnIiOiIiLCJwYWdlIjoxMDAwMCwiZHVyIjoxMCwidGx0IjoxNSwibSI6MSwic3R1IjozLCJkZWwiOjB9/fhir -g 048d4683-703a-4311-963d-48e515a6372b -d /Users/radamson/Desktop/test

><EMAIL_ADDRESS>cli
> ts-node --files src/cli.ts -f https://bulk-data.smarthealthit.org/eyJlcnIiOiIiLCJwYWdlIjoxMDAwMCwiZHVyIjoxMCwidGx0IjoxNSwibSI6MSwic3R1IjozLCJkZWwiOjB9/fhir -g 048d4683-703a-4311-963d-48e515a6372b -d /Users/radamson/Desktop/test

Kick-off started
Kick-off completed
Bulk Data export started
Bulk Data export completed in 10 seconds

Downloading exported files: ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0%
          Downloaded Files: 0 of 12
            FHIR Resources: 26
               Attachments: 0
           Downloaded Size: 4.0 kB
         Uncompressed Size: 26.0 kB
         Compression ratio: 1/7

Error [ERR_STREAM_PREMATURE_CLOSE]: Premature close
    at new NodeError (node:internal/errors:393:5)
    at WriteStream.<anonymous> (node:internal/streams/pipeline:352:14)
    at WriteStream.emit (node:events:525:35)
    at WriteStream.emit (node:domain:489:12)
    at emitCloseNT (node:internal/streams/destroy:132:10)
    at processTicksAndRejections (node:internal/process/task_queues:81:21) {
  code: 'ERR_STREAM_PREMATURE_CLOSE'
}

There's an issue on the got repo which mentions the same error code, which looks like it might be related (note the "destroy" mentioned in the trace above)

There's an issue on the got repo which mentions the same error code, which looks like it might be related (note the "destroy" mentioned in the trace above)

Good catch - I didn’t get this error initially because I was on node v16, but after switching to node v18 I also ran into this error.
It looks like the got GH issue that you linked came from node v18 and got v12.0.4, but the SMART bulk client uses backported v11.8.6. I’m guessing this error got introduced between versions 11.8.5 and 11.8.6. In terms of next steps, do you think we should open a separate GH issue in the got repo since the error occurs on 11.8.6 (which came out just last month)?

Good catch - I didn’t get this error initially because I was on node v16, but after switching to node v18 I also ran into this error.
It looks like the got GH issue that you linked came from node v18 and got v12.0.4, but the SMART bulk client uses backported v11.8.6. I’m guessing this error got introduced between versions 11.8.5 and 11.8.6. In terms of next steps, do you think we should open a separate GH issue in the got repo since the error occurs on 11.8.6 (which came out just last month)?

IMO, A comment on the existing open issue indicating that the error occurs on 11.8.6 would be better because they are likely related and it keeps the conversation in one place. If the maintainers want a new issue to track this we can certainly open one.
We should open an issue on the SMART Bulk Data Client as well for their awareness. Let me know if you want me to open any of these!

IMO, A comment on the existing open issue indicating that the error occurs on 11.8.6 would be better because they are likely related and it keeps the conversation in one place. If the maintainers want a new issue to track this we can certainly open one.
We should open an issue on the SMART Bulk Data Client as well for their awareness. Let me know if you want me to open any of these!

Putting these here for awareness:
New issue in SMART Bulk Data Client
Comment on existing issue in got repository


ci: update wordlist for spellchecker action

Adds the word Gradle to the spellchecker action

@bsbodden my thing is to approve, but not squash/merge, as in some clients we have merge parties, and others we have merge on demand.
Didn't want you to think I didn't care :p


Unit not shown in Datapoint Graph

Describe the bug
I have the Datapoint Graph plugin deployed to my Cockpit and configured data points. I have assigned the Datapoint Templates when setting up the widget. The measurements are having "ms" as unit and also the assigned Datapoint template has a Unit configured. However, I can't see unit displayed.
Is this a bug or did I miss a configuration?
To Reproduce
Steps to reproduce the behavior:

Create Datapoint template including unit
Push Measurements including unit
Setup Datapoint Graph and assign datapoint template
Check if units are shown in Graph

Expected behavior
Units are shown when hovering over graph
Screenshots

Desktop (please complete the following information):

OS: ios
Browser Firefox

Can confirm, the unit is missing on the tooltip and needs to be added.


[Bug] Admin unable to update client profile

Describe the bug
Using the Admin API, I am sending a POST request to /api/admin/client/update with the following payload:
{
  id: '7',
  email<EMAIL_ADDRESS>  phone: '',
  first_name: 'Avaneesh',
  last_name: '',
  address_1: '',
  address_2: '',
  city: '',
  state: '',
  country: '',
  postcode: ''
}

The request is being returned with a code 9998 error:
{"result":null,"error":{"message":"trim(): Argument #1 ($string) must be of type string, null given","code":9998}}

However, I have not used the trim() function. So, I am not sure what's causing the error.
I followed this: https://docs.boxbilling.com/en/latest/reference/api-admin.html#admin-client-update for designing the body.
How to reproduce

Create POST request with admin credentials to /api/admin/client/update
Use the above JSON as the body of the POST request
Try logging the response from the PSOT request to view the error.

Expected behavior
I was hoping for the database to update the details of the id provided as a string and overwrite the existing details with new details provided.
Screenshots
No response
FOSSBilling version
0.5.0
Module version
No response
Device
Desktop
Information

OS: MacOS Monterey
Device: Macbook M1 Pro
Browser: Chrome
Version: 114.0.5735.106

Additional context
No response

That's quite odd.
The API endpoint doesn't use the trim function:
https://github.com/FOSSBilling/FOSSBilling/blob/main/src/modules/Client/Api/Admin.php#L243
Can you clear your log file, try the action again, and then let us know what was logged? (I'm hoping a file path for the error)

I added birthday to the JSON body. It started working now. However, I am not exactly sure why it was broken earlier.


Add Mahendra's Hackbar & C++ Infix to Postfix

we add c++ file infix to postfix program

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 1

See the complete overview on Codacy

Thanks @mahendrarathore1742 for your contribution :)


Github rate limiting

[DEBUG] Failed to get the repository information
Caused by: GET https://api.github.com/repos/Bedrock-OSS/regolith-filters: 403 API rate limit exceeded for <IP_ADDRESS>. (But here's the good
news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) [rate reset in 46m01s]
[DEBUG] Failed to download filter bump_manifest without git
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x0 pc=0xfea256]

I think this is not relevant anymore since we're not using our custom downloader anymore.


BUG: resample filter no longer triggers unnecessary exception

If interpolator's GetRadius required an image, and it was not set
outside of resample filter, an exception Input image required! was raised.
This is a clone of #958 which goes into release branch, slated for 5.0.1.

@dzenanz How is this different from #958 ?

#958 -> master, #959 (this) -> release

master will eventually become 5.1.0, whereas release will become 5.0.1 patch release.


Clean up config regarding datasets

Due to rules in Rucio, Declad is configured to always add files into a dataset, and to create datasets.
However, there are currently separate rucio and metacat dataset config entries, and this is confusing because
the datasets should be defined the same in both systems.    So I'm proposing we have a single config entry
for this:
dataset_template: "name_${field.first}_${field.second}..."
and include a call out to an object that lets the experiment "custom" module:
a)  add to the available fields for formatting
b) keep track of how many files it has added to a given dataset to limit dataset size.
This I think will implement everything that Dune needs, without an overly complicated config for smaller use.

Upon reflection, since there is already a rucio.dataset_did_template in the config, we should keep that for backwards compatability, and the metacat_dataset item is only defined in the per-experiment custom code, in the metacat_datset()
callout, which we are no longer calling, in favor of using the rucio dataset name also for metacat, we have effectively
already dropped support for the metacat_dataset() callout and config item.

So that leaves including the template_tags callout also on the rucio.dataset_did_template expansion, and we should be in business.

Calling this resolved with #27


v1.5.0rc

Support for dbt-core 1.5

Add support for model contracts by adapting create_table_as and create_view_as macros
Define supported constraints in CONSTRAINT_SUPPORT Adapter class.
Persist docs via extended properties is not supported in Synapse
Add adapter tests zones

caching
column_types
constraints
hooks
simple_copy

base branch from #191

@nszoni please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.
@microsoft-github-policy-service agree [company="{your company}"]

Options:

(default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.

@microsoft-github-policy-service agree

(when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.

@microsoft-github-policy-service agree company="Microsoft"

Contributor License Agreement

@microsoft-github-policy-service agree company="dataroots"


Feedback on workflow

Hello again 👋
I have been using you workflow the entire day, at least 15 times, and I love it. There is really something good about building your prompt without any magic, is a straight forward input output.
So I'm sold on this idea, I will keep using it for the rest of the week.
Your approach of using XML for a mechanical (not llm) parsing and replacing of code is genius, honestly brilliant.
The problem is that Claude is not getting it, 1 out of 3 times it get's it wrong. It either doesn't respect the XML or doesn't give the entire file:

not the proper XML

<files>
<file name="src/lib/server/schema.ts">
import {
	pgTable,
	text,
	...

not the full file

// [Previous table definitions remain the same...]

So every 3 messages I have to remind it to respect those 2 rules.
Two things come out of this:

we need to fix the prompt or something to make it stronger.
maybe calling a llm to apply the changes could be cool idea

Fixing the prompt
We could build a stronger prompt, that explains more deeply what is going on, so the llm doesn't just take it at face value but understand what we are doing (e.g. "you are part of a automated workflow").
But also the XML format can be changed. Why did you pick the CDATA thing? maybe that is not obvious to the llm, we should explain it better.
<![CDATA[
import {
	pgTable,
	text,

Calling a LLM to apply the changes
So it looks like Claude insists on giving us just a portion of the code and not the entire code. And that is not a bad thing, it keeps the context smaller.
Maybe Files2Prompt could call a 4o-mini to apply this changes, something like:
<file name="src/lib/server/schema.ts" applyWithLLM="true">

If applyWithLLM is present on a xml, call chatgpt-4o-mini that costs peanuts, with the actual files and the changes. Let users bring their own API keys.
 Bc I code like a monkey and my files a massive, so I get why Claude doesn't want to print the entire code.
Anyways. Amazing work you have done Thomas, congrats! 🎉

Thank you for the kind words.
I think finding a better system prompt would be a great and relatively easy fix. I find that more advanced models tend to do better at following instructions than older ones. I typically get best results with GPT o1 and o1-mini. I'm sure this is a better system prompt that could be used for more consistent results, and would be very interested in any success you have in this area.
As for the CDATA sections, my understanding is that in XML, you can use CDATA sections to indicate that a section should be treated as pure data rather than XML. For example, if the file an LLM outputs contains < and >, that would break that XML interpreter. So this method allows the XML parser to treat the file content as pure data and not get it mixed up with XML.
As a side note, I am not attached to XML. I wish there were a better way. JSON would be awkward given that the files would have to be converted to use \n. Markdown would be difficult to parse for the replacement of file contents. I periodically have problems with XML CDATA delimiters not being correct and causing my extension to break during parsing. Perhaps YAML would be better, but I haven't tried it yet.
I had original played around with the idea of the LLM only outputting the changed lines of code, but I had trouble implementing this, so I turned back to just having the LLM output the whole file for the sake of simplicity. It is slower and wastes output tokens. I am open to new and more efficient implementations if you would like to try to improve the code.
It sounds like you are suggesting a button where user's can provide their own API key and it would automate the entire process of sending XML to LLM, getting the response, and replacing file contents. I'm also open to this idea, as long as user's still have the option of manual copy paste. These reason for this is that it allows people (like myself) to utilize an LLM subscription rather than have to pay for direct API usage. I use a lot of the GPT o1 model with massive prompts and I'm convinced with my volume of requests I am saving money through my subscription.

I would love to use o1 but I'm rate limited, I use it too much. But gpt-4o was far better at respecting the XML format than Claude Sonnet 3.5, so I'm sticking with that for now. Is it better to use o1-mini over 4o?

As a side note, I am not attached to XML.

Like I said, chpt-4o seems to understand it pretty well, so not a problem anymore.

as long as user's still have the option of manual copy paste.

Of course, is why I'm here, is why I don't like the others.
Another full day using it, and I'm even more convinced that you are closer to how developers should code with AI. Closer than all of the other startups that are trying.
This aproach has a fine balance between automation and manual control.
I reached out to a content creator (https://www.reddit.com/r/sveltejs/comments/1h6tw3q/comment/m2k6fcn/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button) I'm pretty sure he will like it too.
I will soon drop more feature request as I use this plugin. But take them as notes to consider, and not feature request, I'm thinking out loud here.

Sounds good - thanks very much for helping to spread the word about this project.


2024-06-10: Project Lead Sync

Previous Sync
Attendees

Project Lead: @aecurrie
Project Lead: @pinireznik
Project Manager: @russelltrow

Agenda

[ ] Review outstanding actions

[x] @pinireznik @aecurrie review the project README
[x] @pinireznik @aecurrie review the project SCOPE
[ ] @pinireznik @aecurrie to review the current v1 items and determine what needs to be added, edited and removed:

[ ] https://github.com/Green-Software-Foundation/green-software-maturity-matrix/issues/5

[ ] Review agenda

[x] https://github.com/Green-Software-Foundation/green-software-maturity-matrix/issues/17

[ ] Responding to Namrata's comments
[ ] Responding to Asim's comments

[x] The path forward

[x] Getting to v1.0 / Community Working Group approval

Meetings Notes

Leads discussed the project's status and scope

Leads decided that the current scope needed scaling back as it was currently too broad, especially the deliverables and objectives.
Leads discussed the project's status and decided that the project was already at v1.0 and would like to move to the next stage in the project lifecycle

Leads discussed the webinar

Decided they would like to run Internal & External webinars
Internal focused on building awareness and to gain support to develop/refine the matrix
External focused on introducing the matrix and how to get started

Actions
Kick-off

[ ] @pinireznik @aecurrie review and approve kick-off agenda
[ ] @russelltrow share GSF presentation deck template for kick-off

Status & Scope

[ ] @pinireznik @aecurrie refine the scope

Webinars

[ ] @pinireznik @aecurrie respond to Namrata & Asim's comments
[ ] @pinireznik @aecurrie agree webinar dates with @NAMRATA-WOKE
[ ] @russelltrow share GSF presentation deck template for webinars

Version 1.0

[ ] Raise issue to prepare the project for Community WG 'Review & Approval'


DE: update bwegt-trias.json with supported LocationInformationRequest

Although I couldn't find any official documentation stating, that this Request is supported, tests showed that it is available.

Thanks!


art:build info upload fails to upload build info where a (python) dependency is located on a different remote

We are using a python dependency (base class) in our conanfiles, which is located on a generic publicly available conan repo (conan-remote-a).
The package to be created will be uploaded to a different remote (conan-remote-b).
When trying to upload the build info, I will get an error '400' complaining that the properties for conan_base cannot be set currectly. Which is understandable as it searches (according to the error message) in the wrong remote (conan-remote-b).
Interestingly art:build_info create will always add the dependency of the python base class into the build info json file - even if I don't specify --with-dependencies. Maybe a bug there as well?

Please note that I tried with and without --with-dependencies. Reading the source code it seems that --with-dependencies is supposed to disable dependency processing?

Did some further digging in the source code.
in the input json (from conan create) I found the following:
{
    "graph": {
        "nodes": {
            "0": {
                "ref": "conanfile",
...
            },
            "1": {
                "ref": "foo/1.2.3",
...
                "python_requires": {
                    "conan_base/0.1.3": {
                        "remote": null,
                        "recipe": "Cache",
                        "path": "/workspaces/foo/.conan2/p/conan3f0fc0e0fabee/e"
                    }
                },
...
                "info": {
                    "python_requires": [
                        "conan_base/0.1.Z"
                    ]
                },
...
}

However I was not able to find any specific handling for a python_requires in the source code. However if I simply rename it to something like _python_requires it will no longer get included in the build_info.json

Some update:
Stangely enough, I did not face this issue in another project. Usign the same base class there, but no such issues.
Will try to get some more insights.


fix: inconsistent usage of node vs nodename

Pull Request
Required Fields
:mag_right: What kind of change is it?

fix

:dart: What has been changed and why do we need it?

updated node to nodename as this is the documented field to store the name of the node

before:

after:

Hi @davhdavh,
This PR will break the dashboard on my side and for most users.
You should try: broken panels on k8s-views-nodes due to the nodename label
Closing, but you can open an issue if the problem persists.

Err the current chart doesn't even use nodename. Thus the fix


PERF: Replace PlatformMultiThreader with MultiThreaderBase

MultiThreaderBase typically uses a thread pool, by default. As set by itk::MultiThreaderBase::GetGlobalDefaultThreaderPrivate(): https://github.com/InsightSoftwareConsortium/ITK/blob/v5.4.0/Modules/Core/Common/src/itkMultiThreaderBase.cxx#L164
See also: "Platform multi-threader should be avoided, as it introduces the biggest overhead". https://github.com/InsightSoftwareConsortium/ITK/blob/v5.4.0/Modules/Core/Common/include/itkMultiThreaderBase.h#L199-L200

Might improve the performance of:

AdvancedImageMomentsCalculator
ComputeDisplacementDistribution
PCAMetric ("PCAMetric_F_multithreaded")
StochasticVarianceReducedGradientDescentOptimizer
StochasticGradientDescentOptimizer

(as noted below, in comments "in-line" with the code changes.)

@mstaring @stefanklein FYI, I already noticed before that elastix was already using the ITK thread pool, even before I started adding more multi-threading. With this commit, I exhaustively replaced every remaining "PlatformMultiThreader" with "MultiThreaderBase". MultiThreaderBase is typically using the ITK thread pool. (When looking in the code, note that the old ThreaderType was defined as PlatformMultiThreader.)

I think this pull request is OK, just wondering if any performance effect will be noticed in practice. As I said before, this PR affects:

AdvancedImageMomentsCalculator
ComputeDisplacementDistribution
PCAMetric
StochasticVarianceReducedGradientDescentOptimizer
StochasticGradientDescentOptimizer


Separators and format of field "wmo:topicHierarchy" in index discovery-metadata

In the index discovery-metadata in the "wmo:topicHierarchy" field, a topic is now written with a slash delimiter (see example "wmo:topicHierarchy": "mwi/mwi_met_centre/data/core/weather/surface-based-observations/synop").
This is right?
But it is not MQTT topic (channel)!
Moreover, in the original example of metadata in the MCF format, a similar topic_hierarchy field is presented with a dot separator (see example topic_hierarchy: mwi.mwi_met_centre.data.core.weather.surface-based-observations.synop).
It seems to me that the "wmo:topicHierarchy" field in index discovery-metadata should have a full copy of the topic_hierarchy field from the metadata with a dot delimiter.
No?

@tomkralidis I thought this was fixed, can we close this ?

Note that wmo:topicHierarchy is no longer a part of WCMP2 discovery metadata, but is used internally in wis2box.  Closing.


Pattern for Nginx Monitoring

We need parity https://github.com/aws-observability/terraform-aws-observability-accelerator/tree/main/examples/existing-cluster-nginx

Jooyoung is working on this ticket.

This is implemented.


composer install

[InvalidArgumentException]
Could not find a version of package xaviertony/xavier-swoole matching your minimum-stability (stable). Require it with an explicit version constr
aint allowing its desired stability.
composer.json
把minimum-stability 设置一下， 或者加上version字段

已经添加


Memory blow up issue

Hi,
Thanks for the open impl of AAConv/AAWRN :smile:
I have access to a 16 gb GPU to do a few experiments on AA Wide Res Net, but the memory grows out of bounds at the start of training. For a AAWRN28-10 it requires approx 2gb of memory, for 206229580 parameters. At that point, running the model with a batch of 128 images from CIFAR 100 causes RuntimeError: CUDA out of memory. Tried to allocate 2.00 GiB (GPU 0; 15.90 GiB total capacity; 11.70 GiB already allocated; 1.26 GiB free; 2.24 GiB cached).
The error outputs points at the line 113 of the AA Conv class : rel_logits = rel_logits.repeat((1, 1, 1, H, 1, 1)).
On the other hand, it happens in the first convolution of the first layer. Tried to switch every AA Conv to relative=False which performs a bit better, to the 2nd conv of the first layer.
Had to downscale the model to either batch size = 16 or a terribly low widen factor. If you any idea/plan on how to improve the memory efficiency it would be neat ! :laughing:

I noticed the same. Going into this I thought the positional encodings were a pretty simple affair but looking closer at the einsum I think it's really a spatially separable 2Hx2W convolution kernel on Q padded by HxW. So I although a faster implementation probably can be made by diving into cuda, I think a pretty high computational and memory cost is pretty unavoidable.
In fact, I would not be surprised if one would get pretty good results on this model by removing the K key altogether and only using these positional encodings.

Why does this model consume too much memory?


Players cannot reenter their own brains when they get gibbed

Description
When players get gibbed, if somebody grabs their brain to make them a cyborg, they cannot enter the cyborg in any way.

dupe of #20425

wow there are multiple close states


Run stress master bench CreateDir operation report exception

Alluxio Version:
master last version
Describe the bug
Run stress master bench get failure, reports as follow:
Failed after 1 attempts: alluxio.exception.status.CancelledException: Thread interrupted", "Failed after 1 attempts: alluxio.exception.status.CancelledException: Thread interrupted"

master log as follow:
2022-03-25 16:55:21,557 INFO  SegmentedRaftLogWorker - alluxio-lucas-master-1_19200@group-ABB3109A44C1-SegmentedRaftLogWorker: created new log segment /var/alluxio-share-dir/journal/raft/02511d47-d67c-49a3-9011-abb3109a44c1/current/log_inprogress_442711
2022-03-25 16:55:21,984 WARN  ForkJoinPoolHelper - Failed to compensate rpc pool. Consider increasing thread pool size.
java.util.concurrent.RejectedExecutionException: Thread limit exceeded replacing blocked worker
        at alluxio.concurrent.jsr.ForkJoinPool.tryCompensate(ForkJoinPool.java:1320)
        at alluxio.concurrent.jsr.ForkJoinPool.managedBlock(ForkJoinPool.java:1002)
        at alluxio.concurrent.ForkJoinPoolHelper.safeManagedBlock(ForkJoinPoolHelper.java:41)
        at alluxio.master.journal.AsyncJournalWriter$FlushTicket.waitCompleted(AsyncJournalWriter.java:96)
        at alluxio.master.journal.AsyncJournalWriter.flush(AsyncJournalWriter.java:381)
        at alluxio.master.journal.MasterJournalContext.waitForJournalFlush(MasterJournalContext.java:78)
        at alluxio.master.journal.MasterJournalContext.close(MasterJournalContext.java:107)
        at alluxio.master.journal.StateChangeJournalContext.close(StateChangeJournalContext.java:53)
        at alluxio.master.file.RpcContext.closeQuietly(RpcContext.java:146)
        at alluxio.master.file.RpcContext.close(RpcContext.java:134)
        at alluxio.master.file.DefaultFileSystemMaster.createDirectory(DefaultFileSystemMaster.java:2242)
        at alluxio.master.file.FileSystemMasterClientServiceHandler.lambda$createDirectory$3(FileSystemMasterClientServiceHandler.java:171)
        at alluxio.RpcUtils.callAndReturn(RpcUtils.java:121)
        at alluxio.RpcUtils.call(RpcUtils.java:83)
        at alluxio.RpcUtils.call(RpcUtils.java:58)
        at alluxio.master.file.FileSystemMasterClientServiceHandler.createDirectory(FileSystemMasterClientServiceHandler.java:169)
        at alluxio.grpc.FileSystemMasterClientServiceGrpc$MethodHandlers.invoke(FileSystemMasterClientServiceGrpc.java:2368)
        at io.grpc.stub.ServerCalls$UnaryServerCallHandler$UnaryServerCallListener.onHalfClose(ServerCalls.java:182)
        at io.grpc.PartialForwardingServerCallListener.onHalfClose(PartialForwardingServerCallListener.java:35)
        at io.grpc.ForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:23)
        at io.grpc.ForwardingServerCallListener$SimpleForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:40)
        at alluxio.security.authentication.ClientIpAddressInjector$1.onHalfClose(ClientIpAddressInjector.java:57)
        at io.grpc.PartialForwardingServerCallListener.onHalfClose(PartialForwardingServerCallListener.java:35)
        at io.grpc.ForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:23)
        at io.grpc.ForwardingServerCallListener$SimpleForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:40)
        at alluxio.security.authentication.AuthenticatedUserInjector$1.onHalfClose(AuthenticatedUserInjector.java:67)
        at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:331)
        at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed.runInContext(ServerImpl.java:797)
        at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
        at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
        at alluxio.concurrent.jsr.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1378)
        at alluxio.concurrent.jsr.ForkJoinTask.doExec(ForkJoinTask.java:609)
        at alluxio.concurrent.jsr.ForkJoinPool.runWorker(ForkJoinPool.java:1356)
        at alluxio.concurrent.jsr.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:131)
2022-03-25 16:55:22,951 INFO  SegmentedRaftLogWorker - alluxio-lucas-master-1_19200@group-ABB3109A44C1-SegmentedRaftLogWorker: Rolling segment log-442711_442838 to index:442838
2022-03-25 16:55:22,951 INFO  SegmentedRaftLogWorker - alluxio-lucas-master-1_19200@group-ABB3109A44C1-SegmentedRaftLogWorker: Rolled log segment from /var/alluxio-share-dir/journal/raft/02511d47-d67c-49a3-9011-abb3109a44c1/current/log_inprogress_442711 to /var/alluxio-share-dir/journal/raft/02511d47-d67c-49a3-9011-abb3109a44c1/current/log_442711-442838

job_worker.log as follow:
2022-03-25 15:05:20,849 WARN  meta.MetaMasterConfigClient (AbstractClient.java:retryRPC) - GetConfigHash() returned clusterConfigHash: "c723a97eaf6f3620a720daa99c3dfed8"
pathConfigHash: "d41d8cd98f00b204e9800998ecf8427e"
 in 12212 ms (>=10000 ms)
2022-03-25 15:16:19,908 INFO  task.TaskExecutorManager (TaskExecutorManager.java:notifyTaskCompletion) - Task 26 for job<PHONE_NUMBER>925 completed.
2022-03-25 16:35:38,100 INFO  command.CommandHandlingExecutor (CommandHandlingExecutor.java:run) - Received run task 71 for job<PHONE_NUMBER>926 on worker<PHONE_NUMBER>994
2022-03-25 16:35:38,100 INFO  task.TaskExecutorManager (TaskExecutorManager.java:executeTask) - Task 71 for job<PHONE_NUMBER>926 received
2022-03-25 16:35:38,101 INFO  task.TaskExecutorManager (TaskExecutorManager.java:notifyTaskRunning) - Task 71 for job<PHONE_NUMBER>926 started
2022-03-25 16:55:48,506 INFO  task.TaskExecutorManager (TaskExecutorManager.java:notifyTaskCompletion) - Task 71 for job<PHONE_NUMBER>926 completed.

To Reproduce
Steps to reproduce the behavior (as minimally and precisely as possible)
Expected behavior
A clear and concise description of what you expected to happen.
Urgency
Describe the impact and urgency of the bug.
Are you planning to fix it
Please indicate if you are already working on a PR.
Additional context
Add any other context about the problem here.

@HelloHorizon please help me with this problem

@lucaspeng12138 will take a look

I found it may be caused by --stop-count, maybe stop count is too huge:
../bin/alluxio runClass alluxio.stress.cli.StressMasterBench \ --cluster \ --operation CreateDir \ --base alluxio://${alluxio_host}:19998/${master_test_path}/ \ --target-throughput 1000000 \ --warmup 1m \ --duration 3m \ --fixed-count 1000000 \ --stop-count 1000000
It can run successfully after I delete stop count.

@dbw9580 @jiacheliu3 can you give any guildline how can we use --stop-count in stress master bench?

@lucaspeng12138 Since you see threads are interrupted, it's probably because of the --bench-timeout which defaults to 20min then kills test threads. Try set this to a larger value https://github.com/Alluxio/alluxio/blob/21560be53f4306ddc077a7be9af8e5c18f255a1c/stress/shell/src/main/java/alluxio/stress/cli/StressMasterBench.java#L292

@jiacheliu3 I tried, but master starting loop restart...

If it's not the benchmark timeout, then you may be putting too much pressure on the master node. How many job workers do you use for stress testing? How much memory do you allocate for the master JVM?

@dbw9580 I have 3 masters, 3 job_masters, 100 workers, 100 job_workers. Mem and Cpu for master is on last pic, and worker info is following:

100 job workers are too much pressure for this test. The stress master benchmark defaults to 256 parallel threads on each job worker, so the total number of simulated clients you are using is 100 * 256 = 25600.
Try use only a fraction of your job workers with --cluster-limit, or lower the number of threads each job worker uses with --threads. Please refer to the documentation here: https://docs.alluxio.io/os/user/stable/en/operation/StressBench.html#parameters-3
For your setup, I'd recommend using no more than 1k total clients.

I found the problem. First of all, this test case runs for long, should add --bench-timeout as more than 200m. Then jvm option should set young generation for a large mem, otherwise gc will kill kill the container.
jvmOptions:
- "-server"
- "-Xmx96g"
- "-Xms96g"
- "-Xmn10g"
- "-XX:SurvivorRatio=6"
- "-XX:ParallelGCThreads=40"
- "-XX:MaxDirectMemorySize=4g"
- "-XX:+UseG1GC"
- "-XX:G1HeapRegionSize=32m"
- "-XX:MaxGCPauseMillis=200"
- "-XX:MetaspaceSize=2g"
- "-XX:MaxMetaspaceSize=2g"
- "-XX:+DisableExplicitGC"
- "-XX:MaxTenuringThreshold=15"
- "-Xloggc:/var/alluxio-share-dir/gc_%p.log.log"
- "-verbose:gc"
- "-XX:CMSInitiatingOccupancyFraction=70"
- "-XX:+PrintGCDetails"
- "-XX:ErrorFile=/var/alluxio-share-dir/java_error_%p.log"
- "-XX:HeapDumpPath=/var/alluxio-share-dir/core_%p.log"
- "-XX:+PrintClassHistogram"
- "-XX:+PrintGCDetails"


Add ability to whitelist a glob pattern in .floydignore

I saw this forum post and thought this would be a good opportunity to start adding some tests around this part of the cli.
This functionality allows the .floydignore file to whitelist a glob pattern by preceding it with an !. That required a some small changes to the FloydIgnoreManger.
I wanted to make sure to get some tests around this functionality, so I broke out different pieces of floyd/client/files.py to make it more testable. At the core, we are still relying on PurePath and its glob matching functionality. Accordingly, I removed the comment in DEFAULT_FLOYD_IGNORE_LIST to reflect that trailing slashes are okay, and added a test for it just to be sure.
Let me know if you see other test cases to add.

Alright @narenst I made the changes. I think we're good to go.


Update to Archipelago 0.1.9 Network

To prepare for https://github.com/ArchipelagoMW/Archipelago/pull/86

This work was re-done with the latest MultiClient .NET library. And published as 1.0.5

Welcome back!


DHE-581 queue based save to Korben

Can one of the admins verify this patch?

Current coverage is 92.77% (diff: 56.52%)

Merging #35 into master will decrease coverage by 1.96%

@@             master        #35   diff @@
==========================================
  Files            27         28     +1
  Lines           970        969     -1
  Methods           0          0
  Messages          0          0
  Branches         47         42     -5
==========================================
- Hits            919        899    -20
- Misses           43         62    +19
  Partials          8          8

Powered by Codecov. Last update f2e80e5...8cb35fc


[1.9.x] Correct clang warnings due to overwritten methods [7263]

Backport of #954 to 1.9.x

Build status:

Linux
Mac
Windows

Failure on Windows toolset v141 due to jenkins expection. The tests have passed.


Write a pipeline philosophy statement

We need to have a section in the documentation that describes the philosophy behind the design choices for the pipeline.

The idea losslessness
The concept of manual labels vs automated
The concept of a rejection policy
The concept of flagging
The separation between flagging (at processing time) and rejection (at loading time)

Sounds good to me. It would be nice to have a dev meeting  (CC @Andesha and @jadesjardins ) regarding this and #115 to discuss and confirm consensus.


Multiple Stream names - on the fly

I have one application that is creating streams on-the-fly, is there a way to use this plugin in such case?

If auto_create_stream true is set, log streams will be automatically created.

What about consuming all streams under one log group? Log streams have a pattern but they have dynamic names. The answer above is for writing logs out to Cloudwatch. How about for reading from Cloudwatch?


Fix NIF validation for Portugal.

Some valid NIF PT numbers are being marked as invalid by the library. A client reported this bug, so I added a few tests for this specific issue.
You can find more info at https://www.nif.pt/.

By link to the reference I mean in a code comment :)

@strotgen thanks for finding and fixing the issue.


redirecting to 'https://caribeiro84.gallerycdn.vsassets.io/'

Installed the extension today, love the view and the filtering options and the speed of loading is pretty good too. But every PR is redirecting to https://caribeiro84.gallerycdn.vsassets.io/ as base URL
and 'Resource not found' error displays ?

@vinodkurienalex thanks for sending the details. I was not able to simulate this issue.
Are you using from which browser? Is there any error in the console tab of developer tools of your browser?
Thanks a lot

thanks . I can now confirm this is a browser specific issue.
I am using Brave browser Version 0.70.121 Chromium: 78.0.3904.70
The issue is not coming when i try in Google Chrome or Edge.
Would you be fixing this for Brave

@vinodkurienalex I'm not aware of this browser and I may not be able to make tests on it soon. I would recommend you for now to use Chrome, Firefox or Edge.
Thank you very much


Unable to transform content on receiving data

I need to use a proxy to transform the output of the content. Why is there no callback to take in data so that I can write to it?
I've tried using transformer-proxy but I'm unable to get it to work.
For example, this doesn't work:
var express = require("express"),
  proxy = require("http-proxy-middleware"),
  transformerProxy = require("transformer-proxy"),
  app = express();

app.use("/", proxy({
  target: "https://someurl",
  changeOrigin: true
}));

app.use(transformerProxy((data, req, res) => { newData = data + "\n"; return newData; });
app.listen(3000, () => {
  console.log("Listening on port 3000");
});

From their documentation it looks like you have to configure transformer-proxy before http-proxy-middleware
https://github.com/philippotto/transformer-proxy/blob/master/examples/simple.js

I've tried it that way too.

transformer-proxy looks somewhat outdated.
Did you try their simple example with the latest version of http-proxy?
If that works, it might also work with http-proxy-middleware since HPM is based on http-proxy

Issue has gone stale; Closing issue.
Feel free to re-open.


Bump Dependencies #10079116993

Bumps dependencies for product-is. Link : https://github.com/wso2/product-is/actions/runs/10079116993

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Resolve @svelteuidev/core to prebundled version

Describe the bug
Bug report from Discord: https://discord.com/channels/804011606160703521/1012085571985866914/1012390467331166238
@bluwy stated:
hmm yeah there seems to be an issue with Vite's resolver. It should resolve importing @svelteuidev/core to the one in .vite/deps
Reproduction
npm create vite@latest myapp -- --template svelte-ts
... run npm run dev and it's 21 reqs.
npm i -D @svelteuidev/core
... edit Counter.svelte:
<script lang="ts">
    import {Button} from '@svelteuidev/core';

    let count: number = 0
    const increment = () => {
        count += 1
    }
</script>

<Button on:click={increment}>
    count is {count}
</Button>

... add prebundleSvelteLibraries: true, run npm run dev and it's now 369 reqs and a 4s load time.
@smui or @svelteuidev libraries do show up in node_modules/vite/.deps - but no change in actual behaviour of the requests or bundling that I can see. There is also a message that appears with SMUI stating that it cannot find source for a bunch of @Material deps from SMUI, so that is why I was testing with @svelteuidev as well as it does not have those material deps, but - same issue there
Logs
No response
System Info
tbd

Severity
annoyance

If I turn on the vite-plugin-svelte debug logging I see it rsolves @svelteuidev/core/index.js via package.json svelte field of @svelteuidev/core. I.e. it seems to be returning the one in node_modules via this line:
https://github.com/sveltejs/vite-plugin-svelte/blob/da6a124ab81a3c4abf432519b79fcd70753c3e51/packages/vite-plugin-svelte/src/index.ts#L158
I'm not sure what the desired code path is supposed to be though or where it might be going wrong. If I simply remove that line it seems to resolve to the correct location

Note that using a deep import import Button from<EMAIL_ADDRESS> together with preBundleSvelteLibraries it does create a small bundle and only sends 27 requests on initial devserver load.

@benmccann @dominikg Worth noting that the actual library we were running into with this was SMUI, and it also has a warning message about not being able to resolve sourcemaps for any of the underlying @material deps. I had been trying @svelteuidev in an effort to narrow things down and see if the issue was specific to the missing sourcemaps, but it was not.

This issue also impacts Flowbite Svelte. The example on their getting started page results in 236 requests being made.
Enabling the prebundleSvelteLibraries there results in breakage when rendering:
Uncaught SyntaxError: ambiguous indirect export: default [AccordionItem.svelte:35:7](http://<IP_ADDRESS>:5173/node_modules/.pnpm/flowbite-svelte@0.27.4/node_modules/flowbite-svelte/accordions/AccordionItem.svelte?v=90fca3b2)

And the specific line that it references:
import classNames from '/node_modules/.pnpm/classnames@2.3.2/node_modules/classnames/index.js?v=363d9cb2';

If I remove the experimental pre-bundle config the app renders fine.
Using a deep import drops the number of requests down to a more reasonable 25.

If we made the "svelte" field a boolean it would fix this issue as well as https://github.com/sveltejs/kit/issues/2242
Rich mentioned this idea along with some of the history behind the field on Discord and I preserved it in a GitHub comment here: https://github.com/sveltejs/kit/issues/1959#issuecomment-883738514

@blitzd your issue appears to be a different one. I've created a new issue to track that: https://github.com/sveltejs/vite-plugin-svelte/issues/463

fixed in vite-plugin-svelte 1.2.0 with prebundleSvelteLibraries: true the dev page now has 27 requests and is correctly loading the prebundled version of svelteuidev/core.


Allow to use EPOCH timestamp in the image annotation

For the images that were build without commit time or hash data we allow to annotate them for the Commit Time exporter to work properly. This change allows to annotate with EPOCH time format.
Signed-off-by: Michal Pryc<EMAIL_ADDRESS>@redhat-cop/mdt

I'm still confused by the epoch function, but I might be misremembering what we wanted.
I think we said:

assume it's an epoch
assume a long epoch string means it's in milliseconds

If we're allowing 13-digit epochs, that means it's in milliseconds, or it refers to the year 33658 at the earliest. Which will cause an exception from fromtimestamp.
I also really don't get why customizing the number of digits is necessary. Where to do use any other values than the defaults?
Finally, there's one gotcha: it needs to be fromtimestamp(timestamp, timezone.utc), otherwise we get a naive datetime again. Those are really annoying. We should have a unit test to catch that.

/hold timezone issue and milliseconds discussion

/unhold

/LGTM

/LGTM

/lgtm

/retest

/test 4.11-e2e-openshift


[Container app] az containerapp ingress update: Fix an issue about updating transport from http to tcp with --transport tcp

Related command

Description

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Container app


Flattened guard emission in the Verilog backend

Our discussion about Verilog generation times on Monday kinda hooked me a bit. We talked a little about how Calyx is mostly a "wide" language as opposed to a "deep" language, in the sense that its syntax is not very nested, with one big exception: guards. Guards are very much a "deep" part of the language; they are unbounded expression trees. "Deep" structures like this are bad for performance, and in particular they are connected to some of the bad performance in Verilog generation that we've been seeing in #1360.
We talked a bit about a long-term project to make the language more "wide" than "deep," which is essentially described in #1051 and which @EclecticGriffin is already beginning to address in #1183.
But after the conversation, it occurred to me that, in the very short term, we could try out a limited-scope experiment with this kind of data structure without boiling the ocean. In particular, what if we built a "flattened" representation for guards only, because they are are the biggest problem? If such a representation could work, we could try it out non-disruptively by translating the old (pointer-based) representation into the new one only where we want to use it, leaving the old representation as the one most of the codebase sees.
Namely, we could try using the flat representation in Verilog generation only and see how that works out. We would pay the cost for conversion from the pointer-based to the flattened representation, but perhaps the resulting backend performance would be worth it. As a spoiler, it turns out to be worth it!!
Intent
This is mostly just a proof of concept; I wanted to see what would happen. We may totally decide to abandon this PR and never merge it! But I thought code would be the easiest way to get the idea across. However, since it did sort of work out in a positive way, maybe we want to discuss how to build on this approach to make it more practical.
This PR writeup is rather long because it contains a mix of concrete proposals/outcomes and detailed background. Some readers might find parts of the detailed background obvious (especially the immediately next section, "Flat Data Structure"); the most actionable sections are "ANF Verilog Generation" and "Performance" if you're skimming. And some parts might be short on explanation; please ask questions if anything is not fully explained. The main point of this PR is as a discussion starting point, more so than as an actual feature.
Flat Data Structure
I added a new FlatGuard type to the IR but did not remove the existing pointer-based Guard. The new representation is a bog-standard arena-style expression tree: FlatGuard looks exactly like Guard except that its children are not Box<Guard> but indices into a vector.
Here's a line from Guard:
https://github.com/cucapra/calyx/blob/939151ae283eb44db53634983dae60cacfa489db/calyx/src/ir/guard.rs#L29
And the corresponding line from FlatGuard:
https://github.com/cucapra/calyx/blob/939151ae283eb44db53634983dae60cacfa489db/calyx/src/ir/flat_guard.rs#L24
That GuardRef is just a newtype for a u32. It's an index into a GuardPool, which is just a newtype for a Vec<FlatGuard>. So, to be clear, a FlatGuard is not very useful by itself (unless it is a "leaf"); you need a GuardPool to be able to look up its children.
I added a GuardPool::flatten method that translates from an old Guard to an equivalent FlatGuard by recursively adding the entire expression tree to the pool.
ANF Verilog Generation
The reason I thought this would be a good fit for making the Verilog backend faster is that this representation makes it really easy to emit guards in A-normal form (ANF), i.e., as "flat" instead of "deep" Verilog. Using a real example, instead of emitting this Verilog code:
assign st_fsm_in =
 st_fsm_out == 3'd4 ? 3'd0 :
 st_fsm_out < 3'd4 & tdst_go_out ? fsm_incr_out : 3'd0;

We can instead emit this:
wire _guard21 = st_fsm_out == 3'd4;
wire _guard22 = st_fsm_out < 3'd4;
wire _guard23 = tdst_go_out;
wire _guard24 = _guard22 & _guard23;
assign st_fsm_in =
  _guard21 ? 3'd0 :
  _guard24 ? fsm_incr_out :
  3'd0;

That is, every node in the syntax tree becomes its own wire declaration. It's not fun to read, but it is semantically equivalent!
But why on earth would generating the ANF version of the code be faster? It's more verbose! You have all these extra names and stuff!
The reason is all about saving memory futzing: we can generate this code in a "streaming" way that doesn't involve a lot of memory allocation and deallocation. By generating one little statement at a time and getting it off our plate, we don't have to do deep recursion into nested data structures while building stuff up in memory.
Another way to put it is: Our current Verilog generation code relies on a Verilog AST library. Why? There are some convenience things about not needing to remember if "not" is spelled ~ or !, but a big reason is that it works out all the parentheses and stuff for deeply nested expressions. By building up an AST data structure in one phase and then serializing it to a string in another phase, the AST library can make sure the expression looks right to a Verilog parser. But in ANF, there is no need for any of that extra assurance. There are never any parentheses needed, and the expressions we generate are absurdly simple. The AST library doesn't buy us very much; it's basically just as easy to writeln!() the strings directly ourselves.
The FlatGuard data structure makes this ridiculously easy to do without any recursion at all. We can just iterate through the Vec<FlatGuard> in order, generating an ANF statement for every FlatGuard independently. We generate a name _guard* where * is just the index in the vector. When a later statement needs to refer to its child expressions, it has their indices in the form of GuardRefs (remember, those are just u32s): it can print out the appropriate _guard* names to refer those previous declarations (without even looking at the underlying FlatGuards for the children).
Nested Verilog Generation
I wanted to make it possible (the default, actually) to keep the old nested style of Verilog generation. This will minimize disruption (all tests still pass), and it's a nice option to have anyway because it's so much easier for humans to read nested expressions than ANF lists.
Fortunately, the flat guard representation makes this very easy to do! There are two ways to look at the contents of a GuardPool: one is the "in-order" way we just used for ANF generation, but you can still look at it in a recursive, tree-style way—just like the old pointer-based Guard. All you have to do is recursively traverse the GuardRefs to child FlatGuards by looking them up in the pool. Here's that code for a recursive traversal of a FlatGuard, which is not very different from the old recursive traversal code for Guard:
https://github.com/cucapra/calyx/blob/939151ae283eb44db53634983dae60cacfa489db/src/backend/verilog.rs#L695-L708
Namely, it's just a matter replacing *foo dereferncing with pool.get(foo), which is our new, flat flavor of dereferencing. (Now, someday, maybe Rust will gain first-class support for allocation arenas, like Cyclone used to have, that would make this even nicer and more indistinguishable from using Box!)
There is a new compiler CLI argument, --flat, that enables ANF-style Verilog generation. The default is to use the normal, nested Verilog style. The important thing to realize, however, is that both of them work on the same flat representation. That is, the Verilog backend first flattens all the guards, regardless of the --flat flag. Then it checks which style you want and traverses the same flat data structure accordingly:
https://github.com/cucapra/calyx/blob/939151ae283eb44db53634983dae60cacfa489db/src/backend/verilog.rs#L337
I think the most instructive part of the code to look at would be to contrast the nested-style emit_assignment, which I only changed a little bit in this PR, with the ANF-style emit_assignment_flat, which is new. Namely, the latter write!s strings directly and does not use VAST at all.
The point of this section has been to convince you that a "flat" representation can also be viewed as a tree, just like a pointer-based representation. It leads a double life. So code that wants to work with trees can remain happy.
Correctness
CI is green. That means the default (not --flat) mode matches the output from the old version exactly.
I have also tested the new --flat mode in two correctness test suites. See these Runt suite configs. It would hypothetically be possible to test --flat for every test we have in the entire suite, but I have not done that yet.
Performance
I measured the time taken on Havarti to generate Verilog for DRB1.futil, from #1360. I am reporting the time from Calyx's own per-stage logging, i.e., it is just for the Verilog backend (which is the vast majority of the end-to-end time). Here's the command I benchmarked:
cargo run --release -- --log INFO -b verilog -d cell-share DRB1.futil > /dev/null

I compared our baseline (i.e., the master  branch) with both old-style (nested) and new-style (ANF) code generation on this flat-guard branch. (Both include @EclecticGriffin's buffering fix from #1385, which, as an aside, was very helpful for the new version because it involves even more small writes.)
Mean & standard deviation Verilog generation times over 3 runs on Havarti, in seconds:

master: 65 ± 1
flat-guard, nested mode: 68.87 ± 0.04
flat-guard, flat mode: 19.57 ± 0.06

So this PR makes the normal mode 6% slower, but its new nested mode is 3.3× faster.
I am honestly surprised about both results. I would have thought nested mode would have been much slower than master: that case has added a kinda-useless data structure conversion and not reduced AST library use. The fact that it's only 6% slower is pretty neat! And I was not expecting a 3.3× win for flat codegen, given that it's emitting more total bytes. Rad!
Next Steps
With some massaging, we could consider merging this as-is just as a way to make Verilog generation faster. (As always, I am not a very good Rust programmer, so any critique would be very helpful!!!) Maybe we want to consider making it the default mode. I dunno. If we do, these are some things I would want to address next:

More testing. Flip the switch for all test suites in CI.
Maybe use an existing library like cranelift-entity instead of my own homegrown Vec thing.
Hash consing. Seems like we could save a lot of space by deduplicating guards. (I already have special-case deduplication for true guards.)

Longer term, we could try to replace Guard with FlatGuard everywhere, eventually removing Guard entirely. We could do this incrementally by exposing translating back to a Guard when clients need it, but keeping the internal representation flat. The hard part with this would be dealing with guard mutation. But maybe those can be functionalized easily enough; who knows.
Or perhaps we never merge this PR, and we just learn some lessons from it. Namely, the lessons are that flat representations are cool and fast and they need not be all that disruptive. That would be cool too. I'm just glad to have done a little exploration to understand how easy it is to generate ANF code quickly while retaining the ability to generate nested code from the same data structure!

wowowow, this is great! Couple of thoughts:

We should definitely make this the default and make the non-flat version a "pretty mode" option for reading code. I only somewhat agree that reading big guard expressions is easier.
It would be cool to eventually move this transformation into a Calyx pass itself. At a high-level the pass would compute the GuardRef objects and regenerate the guarded assignments using std_wire. This would be pretty straightforward to do if we limit it to purely structural Calyx programs.
If I'm reading this correctly, this implementation also deduplicates some amount of guard expressions? If not, it seems super easy to make a version where we build guards expressions using a pool and keep a map from guard expressions to a hash-consed version (common subexpression elimination a la #1364)

I think we should only care about (1) for now and treat (2) & (3) as future work. (1) is also important so we can make sure the bigger programs generated by polybench and other frontends work.

Thank you for the super clear writeup!!
I agree with Rachit that the non-flat Verilog should really only be a pretty-printing option since that's its main benefit. I also agree with the longer term goals (namely, making this a pass after control-compilation and leveraging GuardPools to shrink down our guard expressions.
I was wondering if you could clarify the benefit of using cranelift-entity over indexing into a GuardPool? I guess I like the homegrown approach since it's in-house. Thank you!!
This is super cool!!!!

Also depending on the depth of guard expressions it may be worthwhile to flatten them in a while loop rather than recursively which may clear up some of the cost for the places that want to use the nested version of the struct. I made a whole weird trait thing to do this type of flattening in the interpreter but doing a pre-order instead of a post-order since I could implement that with a queue.
Note that this code is untested currently so if you notice mistakes please point them out to me!
interp guard translation
generic pre-order translation

We should definitely make this the default and make the non-flat version a "pretty mode" option for reading code. I only somewhat agree that reading big guard expressions is easier.

OK, cool! It sounds like this is the consensus, so I'll try to get the default flipped around so we can merge this.

It would be cool to eventually move this transformation into a Calyx pass itself. At a high-level the pass would compute the GuardRef objects and regenerate the guarded assignments using std_wire. This would be pretty straightforward to do if we limit it to purely structural Calyx programs.

Right; I can see three productive ways forward:

Guards stay logically nested, but the backing storage is flattened. That is, we just replace Guard with FlatGuard, but that is purely a representational change and would not affect the abstract language (or pretty-printing).
We use std_wire and stuff to make the flattened version show up in the current IR. For this to make sense, we would want to more holistically add lots more flattening to the in-memory representation; otherwise, we'd just be doing nesting in a different way.
We change the language to make guards use a special new construct, not std_wire, for ANF guard expressions.

I think the first is the low-hanging fruit; then we can explore the others? Not sure.

If I'm reading this correctly, this implementation also deduplicates some amount of guard expressions?

It actually only deduplicates one guard: True. This doesn't seem to have had a huge performance impact, but I was just sad seeing a million different _guard* variables all assigned to 1.
Further deduplication would be the hash-consing bullet I mentioned at the very end.

I was wondering if you could clarify the benefit of using cranelift-entity over indexing into a GuardPool? I guess I like the homegrown approach since it's in-house.

Basically I was just suggesting that using a nice, polished, featureful library could be nice if we do anything more complicated than this! Maybe it's not necessary for this simple use case, but that library has some cool stuff like "secondary maps" for associated data.

Also depending on the depth of guard expressions it may be worthwhile to flatten them in a while loop rather than recursively which may clear up some of the cost for the places that want to use the nested version of the struct.

I also thought that iteration might help here, but actually profiling suggested to me that the flattening part is not a large fraction of the current running time. But the queue thing seems neat for cases where this is a real bottleneck!

OK, I updated the expected output for any tests that generate Verilog, and everything seems to be green!! Merging this now to get under the #1377 wire. 🤪

Oops, forgot to say that the CLI option is now --nested, and the ANF-emitting behavior is now the default.

Yayay! Super cool!


[Vite 3] Pre-bundling not discovering all dependencies

Describe the bug
Vite 3's pre-bundling phase doesn't seem to discover all dependencies leading to a full page reload.
Reproduction
https://github.com/brillout/vite3-prebundler-bug
System Info
System:
    OS: Linux 5.10 Debian GNU/Linux 10 (buster) 10 (buster)
    CPU: (2) x64 Intel(R) Celeron(R) N4020 CPU @ 1.10GHz
    Memory: 333.75 MB / 2.71 GB
    Container: Yes
    Shell: 5.0.3 - /bin/bash
  Binaries:
    Node: 18.0.0 - ~/.config/nvm/versions/node/v18.0.0/bin/node
    Yarn: 1.22.17 - /usr/local/bin/yarn
    npm: 8.6.0 - ~/.config/nvm/versions/node/v18.0.0/bin/npm
  Browsers:
    Firefox: 97.0.1
  npmPackages:
    @vitejs/plugin-react: ^1.3.2 => 1.3.2
    vite: 3.0.0-beta.10 => 3.0.0-beta.10

Used Package Manager
pnpm
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

@brillout I can't reproduce in MacOS, weird because linux should work in the same way regarding paths. You also need to use @vitejs/plugin-react 2.0.0-beta.1, could you try that?

Indeed 2.0.0-beta.1 seems to fix it.
I still get 6:00:21 PM [vite] ✨ new dependencies optimized: react, react-dom/client, but without 11:22:24 AM [vite] ✨ optimized dependencies changed. reloading and the page indeed doesn't reload.
A little bit confusing is that the log  ✨ new dependencies optimized: react, react-dom/client shows up randomly. Sometimes it is logged, sometimes not (even if I consistently run rm -rf node_modules/.vite before running the dev server).
I'll try to reproduce the ✨ optimized dependencies changed. reloading logs we were observing on vite-plugin-ssr's CI.
In the meantime I guess we can close this.

I tried to reproduce it, without luck. Let's hope it was a glitch, somehow.

With DEBUG=vite:deps I get
Server running at http://localhost:3000
  vite:deps scanning for dependencies... +0ms
  vite:deps no dependencies found by scanner +5ms
  vite:deps deps bundled in 12.66ms +14ms
  vite:deps ✨ static imports crawl ended +8s
  vite:deps ✨ new dependencies were found while crawling that weren't detected by the scanner +1ms
  vite:deps ✨ re-running optimizer +0ms
  vite:deps new dependencies found: react/jsx-runtime, react/jsx-dev-runtime, react, react-dom/client +1ms
  vite:deps deps bundled in 51.86ms +53ms
  vite:deps ✨ dependencies optimized +0ms

Looks like the scanner isn't finding anything because there are no entries or index.html to check. I think you should add the pages to the entries for vite-plugin-ssr, depending only on deps found with static crawling is going to cause some reloads (every time the deps are discovered in a dynamic route and has some chunks in common with the previous ones).
Also, all these deps react/jsx-runtime, react/jsx-dev-runtime, react, react-dom/client should be in optimizeDeps.include already for a react project. We should add them to plugin-react if they aren't yet there

So setting optimizeDeps.entries to all the user's page files is the recommended approach with the latest Vite 3 version?
In other words:
config: () => ({
  ssr: { external: ['vite-plugin-ssr'] },
  optimizeDeps: {
    entries: [`**/*.page.${javascriptFileExtensions}`, `**/*.page.client.${javascriptFileExtensions}`],
  },
}),

I just tried that and the scanner finds all dependencies 👌.
I'm wondering whether adding all the user's page files could considerably slow down dev start. Scan completed in 272.06ms for a fairly small app, so I'm thinking it may take too much time for a larger app. I'll ask my users that I know to have a large codebase.

This is a tradeoff with the scanner, and one of the reasons we wanted to remove it. It would probably depend on the user app. For small apps, it is a good default, for larger apps, the best would be to only scan the most common routes, and accept that there will be a reload when visiting some other routes for the first time.
We found that esbuild is quite slow when called with a lot of entries, so a possible optimization could be to aggregate all the entries and import them from a dynamically generated single file (for example for your .jsx routes, I think it will be possible) and feed that as the only entry to the scanner.

vite-plugin-ssr now has both techniques implemented (heuristic determining what pages files should be scanned + aggregate file). Thanks for the tip!


New simapp support

Notebook support to new SimulationApplication
Minor review comment fixes

/common was symbolic link. Kept it the same and made modification to the ../common (original file)
Removed all the commented code in the Dockerfile

Testing:
Tested it murasuni account, science-team account and burner account. It works.

Merging the two commits


Switch Table viz to AG Grid Enterprise

Pull Request Description
Switches Table viz to use AG Grid Enterprise
Important Notes

Not sure this is the proper way to enable full AG Grid Enterprise.

Checklist
Please ensure that the following checklist has been satisfied before submitting the PR:

[x] The documentation has been updated, if necessary.
[x] Screenshots/screencasts have been attached, if there are any visual changes. For interactive or animated visual changes, a screencast is preferred.
[x] All code follows the
Scala,
Java,
and
Rust
style guides. In case you are using a language not listed above, follow the Rust style guide.
All code has been tested:

[x] Unit tests have been written where possible.
[ ] If GUI codebase was changed, the GUI was tested when built using ./run ide build.

What about this section of the #8660 issue?

Initial testing of re-enabling these packages showed issues with the focus management. Once you select into a grid it was very hard to get the selection back onto the graph rather than the grid. This meant Copy and Paste shortcuts was working inside the grid not in the graph.

Was this tested and works now?

Enterprise features are working - there are some bugs in the table viz but we can pick them up as part of general QA.


MD trawl index has 0 value in 1996

data processing script is giving the MD trawl index a value of 0 for 1996.
@gavinfay check and remove.

Looks like this is a year with no data and the table is continuous with years. Added a filter to remove this year to Data_Formatting_Code.R


update version to 1.2.0-1

yea, I think it would make sense to add that to this PR. I will add it.


The back to home button at the bottom of the download page is obscured.

Fixed the issue that the back to home button at the bottom of the download page was blocked by the copy prompt and it was difficult to click normally.

Thank you! This is the solution for #68


Prerequisites

[X] I have searched for existing issues that already suggest this feature, without success.

Describe the Feature Request
Wireguard config as a feature within the UI.  This could be a "VPN" section, containing a UI form to add the pertinent Wireguard peer data
Describe the Use Case
Create IPv4 connections for all services without revealing the IP address of the Embassy's network
Describe Preferred Solution
No response
Describe Alternatives
No response
Anything else?
No response

Cool - consider using ZeroTierOne for configuring and managing Wireguard.

Wireguard client added to Embassy system services would be great.

This request seems to pertain to making outbound wireguard connections to expose a new public IPv4 address (using a VPN provider that offers a static IP?) for incoming connections. In this case, the data is encrypted to the VPN provider, but clients accessing services remotely use many https connections instead of wireguard to encrypt data.
It would also be very beneficial to expose a wireguard service to allow for remote client connections to make a single wireguard encrypted connection back to the start9 computer, then allow for all services to use just http (like with tor) as if they were using the kiosk mode on localhost.  Also, wireguard authenticates too, so you could probably do away with the need to even log in within the web browser.

This functionality has been scoped out as part of a much larger (less naive) feature-set.  Details will come later this year

This functionality has been scoped out as part of a much larger (less naive) feature-set. Details will come later this year

Nice!
Also, I made this post yesterday: https://stacker.news/items/155121 . Considering whether there is any demand for a lightning enabled wireguard tunnel that provides you a dedicated public static IPv4 address. Not sure if there is any overlapping interest?
Also, looking into some more options besides wireguard, would Yggdrasil (https://yggdrasil-network.github.io/) be something you might consider or have already investigated? It requires the service to be installed by all users, but you gain a lot from that nuisance.

Very cool, I'll share your post out with parties that I know are looking for solutions like this.
We definitely have an eye on Yggdrasil, Reticulum, CJDNS, etc.  These types of protocols will likely be a part of the next networking paradigm after we have established our protocols for 'clearnet.'  We will also have a simple system for fallback/privacy networks  (in addition to Tor) available as per-service options, such as i2p.

Here for any Reticulum talk.
"Very basic cashu wallet in Python and Kivy. Just sending and receiving ecash tokens for now. You can receive from different mint, but there's no way to select.
But the point is not to create another cashu wallet, there are many good ones, but to be able to communicate with the mint through Reticulum based mesh network (that's why I needed pure Python, because that's how you send LXMF messages now).
If interested, give it a star and watch how I develop it:
https://github.com/jooray/nutband
Pull requests welcome.
https://nostrcheck.me/media/jooray/10a7e73eb9b635d704754436112bec877db4802e64310991c75ff7c0cd1f299e.mp4"
https://njump.me/nevent1qqsx6j6s888a2lsrjmjdzv75thvanlma0h64eg20jdxtmpn732kxefgpp4mhxue69uhkummn9ekx7mqzyrdtd3sxt3pehxa0kzc0rl66p35zww7wtsv4nfq43tt2wzz375rmvqcyqqqqqqgwqa6r8

Here for any Reticulum talk. Ecash related Reticulum nostr note.
"Very basic cashu wallet in Python and Kivy. Just sending and receiving ecash tokens for now. You can receive from different mint, but there's no way to select.
But the point is not to create another cashu wallet, there are many good ones, but to be able to communicate with the mint through Reticulum based mesh network (that's why I needed pure Python, because that's how you send LXMF messages now).
If interested, give it a star and watch how I develop it: https://github.com/jooray/nutband
Pull requests welcome.
https://nostrcheck.me/media/jooray/10a7e73eb9b635d704754436112bec877db4802e64310991c75ff7c0cd1f299e.mp4"
https://njump.me/nevent1qqsx6j6s888a2lsrjmjdzv75thvanlma0h64eg20jdxtmpn732kxefgpp4mhxue69uhkummn9ekx7mqzyrdtd3sxt3pehxa0kzc0rl66p35zww7wtsv4nfq43tt2wzz375rmvqcyqqqqqqgwqa6r8

You may like to post this in the dev section of our Community Hub for more exposure.


No input.

The setup seems correct, the actions are set up, the bindings are as well. But the application never receives any input.
Always null:
Debug.Log(SteamVR_Input.Default.PrimaryFire.GetState(SteamVR_Input_Sources.Any));
Debug.Log(SteamVR_Input.Default.SecondaryFire.GetState(SteamVR_Input_Sources.Any));

I've never use InpuLiveView and I don't know what it supposed to look like but here it is currently:

{
   "alias_info" : {},
   "app_key" : "application.generated.unity.vrshooter.exe",
   "bindings" : {
      "/actions/default" : {
         "haptics" : [
            {
               "output" : "/actions/default/out/haptic",
               "path" : "/user/hand/left/output/haptic"
            },
            {
               "output" : "/actions/default/out/haptic",
               "path" : "/user/hand/right/output/haptic"
            }
         ],
         "sources" : [
            {
               "inputs" : {
                  "click" : {
                     "output" : "/actions/default/in/primaryfire"
                  }
               },
               "mode" : "button",
               "path" : "/user/hand/left/input/trigger"
            },
            {
               "inputs" : {
                  "click" : {
                     "output" : "/actions/default/in/primaryfire"
                  }
               },
               "mode" : "button",
               "path" : "/user/hand/right/input/trigger"
            },
            {
               "inputs" : {
                  "click" : {
                     "output" : "/actions/default/in/secondaryfire"
                  }
               },
               "mode" : "button",
               "path" : "/user/hand/left/input/trackpad"
            },
            {
               "inputs" : {
                  "click" : {
                     "output" : "/actions/default/in/secondaryfire"
                  }
               },
               "mode" : "button",
               "path" : "/user/hand/right/input/trackpad"
            }
         ]
      }
   },
   "controller_type" : "holographic_controller",
   "description" : "",
   "name" : "My VR Shooter [Testing] configuration for Windows Mixed Reality Controller",
   "options" : {},
   "simulated_actions" : []
}

{
   "alias_info" : {},
   "app_key" : "application.generated.unity.vrshooter.exe",
   "bindings" : {
      "/actions/default" : {
         "haptics" : [
            {
               "output" : "/actions/default/out/haptic",
               "path" : "/user/hand/left/output/haptic"
            },
            {
               "output" : "/actions/default/out/haptic",
               "path" : "/user/hand/right/output/haptic"
            }
         ],
         "sources" : [
            {
               "inputs" : {
                  "click" : {
                     "output" : "/actions/default/in/primaryfire"
                  }
               },
               "mode" : "button",
               "path" : "/user/hand/left/input/trigger"
            },
            {
               "inputs" : {
                  "click" : {
                     "output" : "/actions/default/in/primaryfire"
                  }
               },
               "mode" : "button",
               "path" : "/user/hand/right/input/trigger"
            },
            {
               "inputs" : {
                  "click" : {
                     "output" : "/actions/default/in/secondaryfire"
                  }
               },
               "mode" : "button",
               "path" : "/user/hand/left/input/trackpad"
            },
            {
               "inputs" : {
                  "click" : {
                     "output" : "/actions/default/in/secondaryfire"
                  }
               },
               "mode" : "button",
               "path" : "/user/hand/right/input/trackpad"
            }
         ]
      }
   },
   "controller_type" : "holographic_controller",
   "description" : "",
   "name" : "My VR Shooter [Testing] configuration for Windows Mixed Reality Controller",
   "options" : {},
   "simulated_actions" : []
}

I'm on WMR, Unity 2018.3.0f2 and the latest release of SteamVR plugin 2.0.1 or sth.

Nevermind, sorry, I didn't have player rig in the scene. It's a bit counterintuitive that without SteamVR_Behaviour_Pose the input won't work. But I should have considered it.


Config produced is not compliant with ocvalidate utilities from OC

Hi,
I am enjoying your work very much. This is relatively a very small nuances. It would be great if the app could make Config.plist which is fully compliant with ocvalidate utilities.
 ocvalidate ./ocvalidate /Volumes/ESP/EFI/OC/Config.plist
OCS: Missing key Delete, context <ACPI>!
OCS: Missing key MmioWhitelist, context <Booter>!
OCS: Missing key Devices, context <Memory>!
Done checking /Volumes/ESP/EFI/OC/Config.plist in 2 ms

Regards
Junaed Ahmed

The reason is because you have not set this part of the data. You can refer to SampleCustom.plist to put the relevant data without enabling it. When ocvalidate is checked, these prompts will not appear. However, this is just a reminder and does not affect the correctness of Config.plist.
Thank you for your attention and feedback, and welcome more suggestions. good luck!

Thank you for your quick response. I knew that it produced correct Config.plist. I was mentioning it because I thought it should add all mendatory fields either it is enabled/used so that ocvalidate doesn't complain about anything.

Okay, I understand what you think, this feature will be implemented in the next version.

Thank you for your quick response. I knew that it produced correct Config.plist. I was mentioning it because I thought it should add all mendatory fields either it is enabled/used so that ocvalidate doesn't complain about anything.

This feature has been implemented, please download the latest version.
At the same time, please pay attention to update OC to the latest version: https://github.com/williambj1/OpenCore-Factory/releases
More suggestions are welcome, thanks!

Sorry to bother you with this again. Now it is compalining about below fields:
➜  ocvalidate ./ocvalidate /Volumes/ESP/EFI/OC/Config.plist
OCS: No schema for TextMode at 6 index, context <Entries>!
OCS: No schema for BlacklistAppleUpdate at 4 index, context <Security>!
OCS: No schema for RealPath at 6 index, context <Tools>!
OCS: No schema for TextMode at 7 index, context <Tools>!
OCS: No schema for RealPath at 6 index, context <Tools>!
OCS: No schema for TextMode at 7 index, context <Tools>!
OCS: No schema for RealPath at 6 index, context <Tools>!
OCS: No schema for TextMode at 7 index, context <Tools>!
Done checking /Volumes/ESP/EFI/OC/Config.plist in 4 ms

Although I don't need them they are structural elements of the Config so should also be by default present. I think ocvalidate validation should be integrated to QtOCC so that after each upgrade there is no structural filed left behind.
Regards
Junaed

Oh, ocvalidate has a version distinction, you need to use the ocvalidate in the currently used OC version to check.

I am using ocvalidate from 0.6.3 release version. And I am trying to make my config 0.6.3 compatible. However, the new change introduced in 0.6.3 is not required in my system, so they are disabled but should be present. I think some kind of migration system or taging config with version in comment would be a way to go for it. OC from 0.6.3 started to support comment in Config.plist

At the same time, please upgrade OC to the latest version, because the latest version of OC has added new content. If ocvalidate is a file in the previous OC version, when checking the new version of the OC configuration file, some key values will not be recognized.

At the same time, please upgrade OC to the latest version, because the latest version of OC has added new content. If ocvalidate is a file in the previous OC version, when checking the new version of the OC configuration file, some key values will not be recognized.

ohh, I get it. The QtOCC made Config for 0.6.4 and I am trying to make 0.6.3 compatible config. So it complaining of not having those scheme. Thanks for the clarification.


kube-keepalived-vip:0.1 not available at gcr.io

The docker image referenced from project keepalived-vip is not available at gcr.io.

# docker pull gcr.io/google_containers/kube-keepalived-vip:0.1
Pulling repository gcr.io/google_containers/kube-keepalived-vip
Tag 0.1 not found in repository gcr.io/google_containers/kube-keepalived-vip`

ping @bprashanth

Sorry, I just pushed out gcr.io/google_containers/kube-keepalived-vip:0.2 which uses alpine (https://github.com/kubernetes/contrib/pull/435). You'll need to modify the rc config thus: https://github.com/kubernetes/contrib/pull/437

Thx


Crash - NSLayoutConstraint constant is not finite!

I logged a crash in my firebase console, it happned for one user 3 times and I cant reproduce it
Here
Environment

Device: iPhone 13 Pro
iOS version: 16
Instructions version: main
Dependency Manager: CocoaPods

Trace of crash:
Fatal Exception: NSInternalInconsistencyException
NSLayoutConstraint constant is not finite! That's illegal. constant:inf firstAnchor:<NSLayoutYAxisAnchor:0x283d7fd80 "Instructions.CoachMarkView:0x11ffb0050.bottom"> secondAnchor:<NSLayoutYAxisAnchor:0x283db3840
"Instructions.InstructionsRootView:0x11ffa7ab0.bottom">
Fatal Exception: NSInternalInconsistencyException
0  CoreFoundation                 0xa248 __exceptionPreprocess
1  libobjc.A.dylib                0x17a68 objc_exception_throw
2  Foundation                     0x54681c _userInfoForFileAndLine
3  CoreAutoLayout                 0xb8e4 -[NSLayoutConstraint _setSymbolicConstant:constant:symbolicConstantMultiplier:]
4  CoreAutoLayout                 0x1574 -[NSLayoutConstraint setConstant:]
5  CoreAutoLayout                 0x1324 +[NSLayoutConstraint constraintWithAnchor:relatedBy:toAnchor:multiplier:constant:]
6  Instructions                   0xfa80 (Manquant UUID e5aa90ad73623213b26ec3ed2d547935)
7  Instructions                   0xe868 (Manquant UUID e5aa90ad73623213b26ec3ed2d547935)
8  Instructions                   0x16b84 (Manquant UUID e5aa90ad73623213b26ec3ed2d547935)
9  Instructions                   0x19f44 (Manquant UUID e5aa90ad73623213b26ec3ed2d547935)
10 Instructions                   0x192a0 (Manquant UUID e5aa90ad73623213b26ec3ed2d547935)
11 Instructions                   0x166e8 (Manquant UUID e5aa90ad73623213b26ec3ed2d547935)
12 Instructions                   0x20bc8 (Manquant UUID e5aa90ad73623213b26ec3ed2d547935)
13 Instructions                   0x204e0 (Manquant UUID e5aa90ad73623213b26ec3ed2d547935)
14 UIKitCore                      0x10251b0 UIVIEW_IS_EXECUTING_ANIMATION_COMPLETION_BLOCK
15 UIKitCore                      0xd2114 -[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:]
16 UIKitCore                      0xd1070 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:]
17 UIKitCore                      0xd0790 -[UIViewAnimationState animationDidStop:finished:]
18 QuartzCore                     0x13ae8 CA::Layer::run_animation_callbacks(void*)
19 libdispatch.dylib              0x3fdc dispatch_client_callout
20 libdispatch.dylib              0x127f4 dispatch_main_queue_drain
21 libdispatch.dylib              0x12444 dispatch_main_queue_callback_4CF
22 CoreFoundation                 0x9aa08 CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE
23 CoreFoundation                 0x7c368 __CFRunLoopRun
24 CoreFoundation                 0x811e4 CFRunLoopRunSpecific
25 GraphicsServices               0x1368 GSEventRunModal
26 UIKitCore                      0x3a2d88 -[UIApplication run]
27 UIKitCore                      0x3a29ec UIApplicationMain
28 libswiftUIKit.dylib            0x352a0 UIApplicationMain(::::)
22 MYAPP                  0xdfcc main +<PHONE_NUMBER> (MF.swift:4371423180)
23 ???                            0x1be3bd948 (Manquant)

Happens to my users as well, any ETA on a fix?

Added Symbolic Breakpoint "CGPostError" and captured the stacktrace. Also attaching the crash log downloaded from TestFlight.
crashlog.txt
crashlog.txt

thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1

frame #0: 0x00000001d1d1c97c CoreGraphicsCGPostError frame #1: 0x00000001d1c81e20 CoreGraphicsCGFloatValidateWithLog + 148
frame #2: 0x00000001d1c4bb64 CoreGraphicsCGPathAddLineToPoint + 92 frame #3: 0x00000001d243284c UIKitCore+[UIBezierPath _continuousRoundedRectBezierPath:withRoundedCorners:cornerRadii:segments:smoothPillShapes:] + 1192
frame #4: 0x00000001d2432344 UIKitCore+[UIBezierPath _continuousRoundedRectBezierPath:withRoundedCorners:cornerRadius:segments:] + 184 frame #5: 0x00000001d2431f14 UIKitCore+[UIBezierPath _roundedRectBezierPath:withRoundedCorners:cornerRadius:segments:legacyCorners:] + 344
frame #6: 0x000000010347f6fc CLSS QA@nonobjc UIBezierPath.__allocating_init(roundedRect:byRoundingCorners:cornerRadii:) at <compiler-generated>:0 frame #7: 0x000000010347e604 CLSS QACoachMarkHelper.update(coachMark=Instructions.CoachMark @ 0x000000016d348e90, frame=(origin = (x = 0, y = 0), size = (width = 597, height = 54)), pointOfInterest=nil, superview=0x000000010a68f290, cutoutPathMaker=nil, self=0x0000000281721ad0) at CoachMarkHelper.swift:285:30
frame #8: 0x000000010347e1c4 CLSS QACoachMarkHelper.makeCoachMark(view=0x000000010a68f630, pointOfInterest=nil, cutoutPathMaker=nil, self=0x0000000281721ad0) at CoachMarkHelper.swift:108:9 frame #9: 0x000000010339a3e8 CLSS QAFMCoachMarksManager.coachMarksController(coachMarksController=0x00000002832f1ea0, index=0, self=0x0000000281ee2080) at FMCoachMarksManager.swift:64:53
frame #10: 0x000000010339c050 CLSS QAprotocol witness for CoachMarksControllerDataSource.coachMarksController(_:coachMarkAt:) in conformance FMCoachMarksManager at <compiler-generated>:0 frame #11: 0x00000001034643c4 CLSS QACoachMarksController.coachMark(index=0, self=0x00000002832f1ea0) at CoachMarksController+Proxy.swift:12:28
frame #12: 0x0000000103464668 CLSS QAprotocol witness for CoachMarksControllerProxyDataSource.coachMark(at:) in conformance CoachMarksController at <compiler-generated>:0 frame #13: 0x0000000103491164 CLSS QAFlowManager.createAndShowCoachMark(afterResuming=false, change=nothing, self=0x0000000282eb48f0) at FlowManager.swift:204:49
frame #14: 0x00000001034903ac CLSS QAFlowManager.showNextCoachMark(hidePrevious=true, self=0x0000000282eb48f0) at FlowManager.swift:125:13 frame #15: 0x000000010348f644 CLSS QAclosure #1 in FlowManager.startFlow(self=0x0000000282eb48f0) at FlowManager.swift:66:18
frame #16: 0x000000010345baf8 CLSS QAclosure #1 in CoachMarksViewController.prepareToShowCoachMarks(_0=true, self=0x00000001148a6400, completion=0x000000010348f654 CLSS QApartial apply forwarder for closure #1 () -> () in Instructions.FlowManager.startFlow(withNumberOfCoachMarks: Swift.Int) -> () at ) at CoachMarksViewController.swift:258:13
frame #17: 0x000000010348a8c8 CLSS QAclosure #2 in TranslucentOverlayStyleManager.showOverlay(success=true, show=true, self=0x0000000280cb5580, overlay=0x000000010a689330, completion=0x000000010345dddc CLSS QApartial apply forwarder for closure #1 (Swift.Bool) -> () in Instructions.CoachMarksViewController.prepareToShowCoachMarks(() -> ()) -> () at ) at TranslucentOverlayStyleManager.swift:77:23
frame #18: 0x000000010348298c CLSS QAthunk for @escaping @callee_guaranteed (@unowned Bool) -> () at <compiler-generated>:0 frame #19: 0x00000001d3292464 UIKitCoreUIVIEW_IS_EXECUTING_ANIMATION_COMPLETION_BLOCK + 36
frame #20: 0x00000001d23264ac UIKitCore-[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:] + 636 frame #21: 0x00000001d2325408 UIKitCore-[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 436
frame #22: 0x00000001d2324b28 UIKitCore-[UIViewAnimationState animationDidStop:finished:] + 196 frame #23: 0x00000001d173610c QuartzCoreCA::Layer::run_animation_callbacks(void*) + 232
frame #24: 0x00000001061ea05c libdispatch.dylib_dispatch_client_callout + 20 frame #25: 0x00000001061fa810 libdispatch.dylib_dispatch_main_queue_drain + 1196
frame #26: 0x00000001061fa354 libdispatch.dylib_dispatch_main_queue_callback_4CF + 44 frame #27: 0x00000001d011a6d8 CoreFoundationCFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 16
frame #28: 0x00000001d00fc03c CoreFoundation__CFRunLoopRun + 2036 frame #29: 0x00000001d0100ec0 CoreFoundationCFRunLoopRunSpecific + 612
frame #30: 0x00000002098ab368 GraphicsServicesGSEventRunModal + 164 frame #31: 0x00000001d25f686c UIKitCore-[UIApplication _run] + 888
frame #32: 0x00000001d25f64d0 UIKitCoreUIApplicationMain + 340 frame #33: 0x0000000102b403fc CLSS QAmain(argc=1, argv=0x000000016d34b6c8) at main.m:16:16
frame #34: 0x00000001ee912960 dyld`start + 2528

seeing this on an iPhone 11 running 16.2
Fatal Exception: NSInternalInconsistencyException
0  CoreFoundation                 0x9e48 __exceptionPreprocess
1  libobjc.A.dylib                0x178d8 objc_exception_throw
2  Foundation                     0x54594c _userInfoForFileAndLine
3  CoreAutoLayout                 0xb8e4 -[NSLayoutConstraint _setSymbolicConstant:constant:symbolicConstantMultiplier:]
4  CoreAutoLayout                 0x1574 -[NSLayoutConstraint setConstant:]
5  CoreAutoLayout                 0x1324 +[NSLayoutConstraint constraintWithAnchor:relatedBy:toAnchor:multiplier:constant:]
6  Instructions                   0xdd48 specialized CoachMarkDisplayManager.generateAndEnableVerticalConstraints(of:forDisplayIn:usingCoachMark:cutoutPath:andOverlayView:) + 256 (CoachMarkDisplayManager.swift:256)
7  Instructions                   0xcb84 CoachMarkDisplayManager.showNew(coachMarkView:from:at:animated:completion:) (<compiler-generated>)
8  Instructions                   0xae44 CoachMarksViewController.show(coachMark:at:animated:completion:) + 291 (CoachMarksViewController.swift:291)
9  Instructions                   0x1baf4 FlowManager.createAndShowCoachMark(afterResuming:changing:) + 221 (FlowManager.swift:221)
10 Instructions                   0x1ae48 FlowManager.showNextCoachMark(hidePrevious:) + 178 (FlowManager.swift:178)
11 Instructions                   0xa9bc closure #1 in CoachMarksViewController.prepareToShowCoachMarks(_:) + 259 (CoachMarksViewController.swift:259)
12 Instructions                   0x12094 closure #2 in TranslucentOverlayStyleManager.showOverlay(_:withDuration:completion:) + 78 (TranslucentOverlayStyleManager.swift:78)
13 Instructions                   0x1d130 thunk for @escaping @callee_guaranteed (@unowned Bool) -> () (<compiler-generated>)
14 UIKitCore                      0x103d464 __UIVIEW_IS_EXECUTING_ANIMATION_COMPLETION_BLOCK__
15 UIKitCore                      0xd14ac -[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:]
16 UIKitCore                      0xd0408 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:]
17 UIKitCore                      0xcfb28 -[UIViewAnimationState animationDidStop:finished:]
18 QuartzCore                     0x1310c CA::Layer::run_animation_callbacks(void*)
19 libdispatch.dylib              0x3fdc _dispatch_client_callout
20 libdispatch.dylib              0x127f4 _dispatch_main_queue_drain
21 libdispatch.dylib              0x12444 _dispatch_main_queue_callback_4CF
22 CoreFoundation                 0x9a6d8 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
23 CoreFoundation                 0x7c03c __CFRunLoopRun
24 CoreFoundation                 0x80ec0 CFRunLoopRunSpecific
25 GraphicsServices               0x1368 GSEventRunModal
26 UIKitCore                      0x3a186c -[UIApplication _run]
27 UIKitCore                      0x3a14d0 UIApplicationMain
28 App                        0x9340 main + 35 (*.swift:35)
29 ???                            0x1a9aba960 (Missing)

Thanks for all the crash reports! It's a peculiar bug. Here's the code in question:
    private func generateAndEnableVerticalConstraints(of coachMarkView: CoachMarkView,
                                                      forDisplayIn parentView: UIView,
                                                      usingCoachMark coachMark: CoachMark,
                                                      cutoutPath: UIBezierPath,
                                                      andOverlayView overlayView: OverlayView) {
        let offset = coachMark.gapBetweenCoachMarkAndCutoutPath

        // Depending where the cutoutPath sits, the coach mark will either
        // stand above or below it. Alternatively, it can also be displayed
        // over the cutoutPath.
        if coachMark.isDisplayedOverCutoutPath {
            …
        } else if coachMark.arrowOrientation! == .bottom {
            let constant = -(parentView.frame.size.height - cutoutPath.bounds.origin.y + offset)

            // This is the call that triggers the crash.
            coachMarkView.bottomAnchor.constraint(equalTo: parentView.bottomAnchor,
                                                  constant: constant).isActive = true
        } else {
            …
        }
    }

For constant to be infinite, any of parentView.frame.size.height, cutoutPath.bounds.origin.y, or offset must be infinite. I can't think of a scenario where this would be the case, I don't think UIView frames can ever be infinite, so I guess the culprit is cutoutPath.
It would help to know how cutoutPath is generated on your end!

I managed to reproduce this issue, and get around it; maybe the same approach works for others too.
I was able to reproduce this issue by presenting a coachmark while mirroring screen from my iPhone to my Mac. At that point, there are two scenes, two windows & two screens. It's a bit tricky to debug at that point, since screen mirroring doesn't allow switching to Xcode; you have to cancel screen mirroring at the moment when you have your breakpoints ready.
I was presenting a coachmark using PresentationContext.newWindow(over:at:), because of which a new window was created to handle this presentation.
The original cause of this crash is within buildNewWindow() method, because it created a window on a scene that's connected to my Mac's monitor, instead on the iPhone's screen's scene. However, the issue with infinite constant is caused specifically by convert(rect:from) method of CoachMarkCoordinateConverter.
When calling:
let rectInInstructionsWindow = instructionsWindow.convert(rectInWindow,
                                                                  from: superviewWindow)

rectInInstructionsWindow ends up being CGRect.zero, and there's a log in the console about this issue.
I fixed the issue for myself by presenting a coachmark using PresentationContext.viewController(_:).


Base64: Speedup decoding fix 3

NSData.base64DecodeBytes(): Change the input buffer from a
Collection to an UnsafeMutableRawBufferPointer as it
is faster to access.

@swift-ci please test

@swift-ci please test and merge

@swift-ci please test and merge

@swift-ci please test and merge


Added  Brian_kernighan_algorithm.cpp  file

Applied Brian kernighan algorithm in c++

Please review the code

issue #246

The issue is a duplicate one!


Deserialize on CPU-only machine a model trained in colab (using gpu)

Description
Hi, I trained a model using pytorch and gluonts on colab GPU -T4. I saved the model using:
predictor.serialize(model_path)

When I tried to load the model on a CPU machine in order to perform inference, I got this messagem:
Predictor.deserialize(path)

Error message or code output
 File "/usr/local/lib/python3.9/site-packages/torch/serialization.py", line 258, in validate_cuda_device
l_1    |     raise RuntimeError('Attempting to deserialize object on a CUDA '
l_1    | RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_location=torch.device('cpu') to map your storages to the CPU

Environment

Operating system: ubuntu
Python version: 3.9
GluonTS version: 0.14

How to insert this into gluonts deserialize function?
my_model = net.load_state_dict(torch.load('classifier.pt',map_location=torch.device('cpu')))

For those having the same problem:
    m = Predictor.deserialize(Path("./app/train/"), device=torch.device('cpu'))