Unkown inline node type: Image | Upon saving image in Document Field

I enabled images with images: true in a document field called article. The Keystatic page loaded normally, it allowed me to create an article and add an image. Upon saving, the page reloaded with this error.

What does the generated Markdoc look like for that article — the image tag specifically?

Should have linked the repo: https://github.com/inquisitblog/inquisit

Hey @NeeshSamsi I've cloned your repo to take a look, I can't see a commit with your recent images change though (I found the add-keystatic branch)
Could you commit your WIP so we can reproduce the error, and share steps to reproduce?
e.g

Clone {repo} (I've done this)
Checkout {branch} (I've done this)
Run {command}
Visit {url}

If you don't want to commit the files in a broken state to that branch, maybe create another branch with the error in it? Just need to make sure we can see what steps you took (in git) and also the error you're getting
Thanks!

That's odd, I have pushed my WiP to add-keystatic. This is what I just did in a fresh directory.

Clone the repo - gh repo clone inquisitblog/inquisit
Install packages - pnpm i
Run dev server - pnpm dev
Visit the site at http://<IP_ADDRESS>:3000/
I get the following error: Error: Invalid data for "understanding-algorithmic-bias" in collection "blogposts": Unexpected error: Error: Unknown inline node type: image

Alternatively, after 2. you can build the project with pnpm build and receive a similar error that spams the terminal
At this point, in the src\data\blogposts\understanding-algorithmic-bias.mdoc file, the last line (line 25) should be ![Something](image%20\(2).jpg)

Oh my folder structure is a little misleading maybe you checked the first data folder. That's the data folder that I kept as a source of truth from the main branch. The folder that Keystatic is working with is src/data.

I've cloned the repo and had a little play. I can reproduce the error.
To unblock you, what is causing the error is the \ backslash in the image path.
We'll work on fixing that, but for the time being you can manually rename the image in markdoc from image%20\(2).jpg to image%20(2).jpg — this will make the error go away.
Best option is to not upload images with parentheses, but we'll definitely have a look to prevent this from breaking.
Also, side note: you can use the directory and publicPath options in the document field's image to collocate the blog post images with the cover image, if you want:
article: fields.document({
  // ...
- images: true,
+ images: {
+   directory: "public/images/blogposts",
+   publicPath: "/images/blogposts/",
+ },
})

Oh no wonder, it was working fine then I must have started using this test image, literally some random image in my downloads which is why it has the parenthesis. Thanks for looking into this

Would it be better to open a new issue for this?

Hey!
Good news — this was due to a bug in Markdoc which Emma opened a PR on the Markdoc repo to fix, and... it's been merged ✨
https://github.com/markdoc/markdoc/pull/474


Use our repository for the CI

Instead of polling mocaccino repositories, just install our toolset from our repository.
It also includes a commit that switches building nerdctl and k9s from source instead.

Ok tests were green for the CI, I just had to resolve the conflict on the manifest.yaml file


Support more login providers in Portal / Developer App

Currently a GitHub account is required to login to tabrisjs.com and the Developer App. We should also support developers who don't use GitHub (e.g. those who prefer BitBucket).

Nice to have, but not on our current agenda and obvious enough that we don't need an issue to track it.


ci: speed up tests

Codecov Report

Merging #15 (e69f491) into develop (fa58dd8) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop      #15   +/-   ##
========================================
  Coverage    88.52%   88.52%
========================================
  Files           12       12
  Lines         2352     2352
========================================
  Hits          2082     2082
  Misses         270      270

Flag
Coverage Δ

unittests
88.52% <ø> (ø)

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

Continue to review full report at Codecov.

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


Package request: devpod

Project description
DevPod is a client-only tool to create reproducible developer environments based on a devcontainer.json on any backend.
Metadata

homepage URL: https://devpod.sh/
source URL: https://github.com/loft-sh/devpod
license: Mozilla Public License 2.0
platforms: unix, linux

I have opened PR #251858 and I would love some help with testing and reviewing :pray:


Error upon downloading premium (inaccessible) Bite

AttributeError: 'NoneType' object has no attribute 'text'

Which is good (no data leak), but the bite should not be listed with display = fix.

Thanks,
Bob

Maybe discard rows with lock icon in choose_bite?
    for row in rows[1:]:
        try:
            bite = row.find_all("td")[1].a
            bite_name = bite.text
            bite_link = bite["href"]
            bites[bite_name] = bite_link
        except IndexError:
            continue

I noted EXERCISES_URL = "https://pybitesplatform.com/bites/regular/" so this won't work for newbies and intros?
Also typo here: with Status("Retrievng bites...")

Got it. I only check if the user can't log in. I forgot about users who can log it, but don't have premium access. I'll work on that in a new branch.
v1 didn't work for newbies. I think it shouldn't be too difficult to add. Should be just navigating to the newbie and intro tables and adding them to the dictionary.
@olgamirth do either of these issues interest you?

Maybe discard rows with lock icon in choose_bite?

Ok, doing some more digging, we'll have to change more than I thought. Currently I am retrieving the table of bites without logging in because that made it faster. But if you look at the table of bites without being logged in there is no status column, so I can't tell which are premium.
We can login first to retrieve the bites. It'll just go slower each time you try to download.
Is there a way to cache the exercises list? I have two thoughts:

Originally, I had thought about building the bites dict directly into eatlocal, but then we would have to update eatlocal each time a new bite is published. That sounds terrible :).
What if during eatlocal init we fetch all the bites the user has access to and save it within the .eatlocal directory in a json file. Basically just a dictionary {<bite name>: <bite url>, ...}. Then create a new command, eatlocal updatebites. When that is run, it fetches all the available exercises again. This would keep or even increase the speed of retrieving the bites each time. If a user stops paying for premium, they can run eatlocal updatebites and it will remove all the premium bites as options to download. If a non premium user upgrades and they run eatlocal updatebites it'll pull in all the premium bites.

Logged newbies/intros here: https://github.com/PyBites-Open-Source/eatlocal/issues/43

Thanks for the username = email issue.

@rhelmstedter fastest for us would be for me to just provide a new exercises endpoint, similar how we have in v1? https://codechalleng.es/api/bites
Then you can just fetch that.
Problem is we show bites people might not have access to, but can we then just catch that when they attempt to download it? That's a similar experience for somebody going to the premium bite page as free user and finding a "start free trial" button (and code editor hidden).

If you're willing to create that api that lists all the bites (including newbies and intros), that is way easier. Then we would just catch the AttributeError for the bites where people don't have access.

Yes easy, will do on Monday, but that's all bites (just meta data, not authenticated), right?
And then we show all (maybe add newbie|intro|regular column), and only error out when we find out that when selecting a Bite they don't have access to (here the login has happened), ok?

Yep I will add that api asap ...

related: https://github.com/PyBites-Open-Source/eatlocal/issues/43

And you! haha
Happy to hear, it's also exposed in the UI now:

I don't have the bandwidth to actually code this tonight, but doing some thinking.
I'm looking at your new api (which is amazing), and thinking we should just use the slug for the directory name. Currently, I'm replacing the - -> _ because I'm used to naming python stuff with underscores. But that just seems like an extra step / point for things to go wrong. What do you think?

Seems a matter of taste? I'm happy to use the slug. Need help? Maybe I can give this a shot?

0aa53de addresses the original issue.
Tests are passing except for one because I need to mock out the request.get.json() but I'm not sure how yet.

Added bonus, I fixed this rendering issue. The rich Status was interfering with the iterfzf interface.

Thanks, lol talking rendering the images above don't render for me, but I can try.

hahaha sorry. I swear it worked when I posted it. But the images are not rendering for me either.


Spark 1.4 support

This PR enables Zeppelin work with upcoming Spark 1.4
to test, install spark 1.4 maven artifacts into your local .m2 repository by doing
sbt/sbt publish-local

in spark-1.4 source code, and then build Zeppelin
mvn clean package -Pspark-1.4 -Dspark.version=spark.1.4.0 -DskipTests

I have a simple screenshot

LGTM, thanks!

+1


missing comma in sample

Issue description
the sample is missing a comma ","
{
"name": "reference-name"
"certificateStoreName": "store-name"
}
Feedback Type (Optional)
spelling or grammar
Page Title on SAP Help Portal (prefilled)
Creating the References
Page URL on SAP Help Portal (prefilled)
https://help.sap.com/docs/sap-api-management/sap-api-management/creating-references?locale=en-US&version=Cloud&q=virtual host

@ottfro1
Thank you for your feedback. We will take a look and get back to you.

@ottfro1
We have addressed your feedback and have added the missing "," to the sample code. Please see, https://help.sap.com/docs/sap-api-management/sap-api-management/creating-references?version=Cloud
Thanks,
Kasturi


DID:Eth Method Specific Identifier

The existing DID:Ethr Method Specific Identifier specification is here
In order to support a multichain world I suggest the following for the DID:Eth identifier syntax:

did:eth followed by a CAIP-10  address. For EVM networks EIP155+ChainID would most likely be the dominant address type used. This follows the DID:PKH Identifer scheme as seen here
Some examples:

Ethereum: did:eth:eip155:1:0xb9c5714089478a327f09197987f16f9e5d936e8a
Polygon: did:eth:eip155:137:0x4e90e8a8191c1c23a24a598c3ab4fb47ce926ff5
Hedera: did:eth:eip155:296:0xa0ae58da58dfa46fa55c3b86545e7065f90ff011

We do not support a "default" scheme if a CAIP-10 address is not properly specified (DID:Ethr supported a default to Ethereum mainnet).

We do not support other address types not supported by CAIP10

Feedback appreciated.

I'm kind of conflicted on this one. It does seem like it would make development slightly easier when it's standardized like this, but from a UX perspective, I think it's nice to be able to omit certain fields and assume some defaults. Can you expand on the potential harm in assuming "eip155" if nothing in that field is present? Or assuming "eip155:1" if neither field is present?
@mirceanis would this also prevent us from using public key hex as identifier? CAIP-10 is only for addresses right?
@Reccetech would something like did:eth:hedera:mainnet:0.0.1234567890-zbhlt be supported? That's CAIP-10, right?

As you suggest you would have to also assume an EIP155 chaincode as default - which like ethr could be ethereum mainnet. I think it made perfect sense that ETHR to default to mainnet - because it was built for only Ethereum.
But ETH is targeting a multichain EVM world. So to enter controversial territory - I think if we look at the history of DIDs - very few of them were actually anchored on Ethereum mainnet as it was and still is expensive. So my suggestion would be that if/when DID:Eth gains traction we'll see a healthy proportion and maybe even the majority of the DIDs on L2s/EVM chains like polygon, avalanche, cardano, hedera. So in this world it makes no sense to assume a default of Eth mainnet - unless its to just give ETH a privileged position in DID method. I think its better to just instill best practices that the full Chain10 address should be used at all times - no shortcuts allowed.
To your second question - yes did:eth:hedera:mainnet:0.0.1234567890-zbhlt could be used as its CAIP-10 compliant.


Create .exe (for windows and mac) from migmose CLI tool

Ask Kevin about it.
You can basically copy the workflow from maus:
https://github.com/Hochfrequenz/mig_ahb_utility_stack/blob/eae2d84d600f42257cf364190da486aa011a5882/.github/workflows/release.yml#L66
The result should be, that each release has assets, like in maus

ask konstantin: we have another internal project (private repo for a customer) where we use a simplified pipeline (simpler to understand and more recently tested than maus imo).


Ability to get cdk.SSMParameterProvider values for use in stack names

We would like to use values from cdk.SSMParameterProvider in our stack names to help us follow our naming conventions across environments.
Something like the following is what we would like to do:
const app = new cdk.App();
const envCode = new cdk.SSMParameterProvider(
    app,
    { parameterName: 'envCode' }
  ).parameterValue();
new Stack(app, `cfs-${envCode}-stack`);
app.run();

but this gives us the error:
Cannot find a Stack parent for 'App'
which is true as App is not a valid stack.
Hopefully this is something that is workable as a change/improvement.
We have a current workaround of using the aws-sdk to query for these parameters and use those, but it would be convenient if this was possible purely with CDK.

This is an interesting use case, which we should definitely explore.
One of the reasons you need a stack scope when defining an SSMParameterProvider is that it needs to know which environment (account/region) it needs to query. If you had multiple stacks in your app, each targeting a different account/region, then the SSM parameter value would have been potentially different.

An escape hatch of sorts is we decouple the stack name from the ID (in progress in the "App" PR), and then make it mutable (that's not in). Then you could do this work.


Upload Tags to system from CSV

I have an existing CSV list with RFID tags and I want to upload it to the esp-rfid board.
Is this possible?
Maybe this can be done with an MQTT command?
FILE example rfid.csv (may be upto 1000 tags long)
/////////////////////////////////
7194107897,<PHONE_NUMBER>,<PHONE_NUMBER>,<PHONE_NUMBER>,<PHONE_NUMBER>,<PHONE_NUMBER>,<PHONE_NUMBER>,<PHONE_NUMBER>,<PHONE_NUMBER>,<PHONE_NUMBER>,<PHONE_NUMBER>,<PHONE_NUMBER>
/////////////////////////////////

I'm not a programmer, but I think the only way this could work is to merge all your tags into a user config file. This is what is generated when you press Backup and Restore and select Backup user data. The file is JSON so it is easy to generate. But I don't know how to convert tags in uid's. You will have to find out yourself. In mine there are hexadecimals....
Example esp-rifd-userconfig.json:
`{
"type": "esp-rfid-userbackup",
"version": "v0.6",
"list": [
{
"uid": "25c2451b",
"username": "C001",
"acctype": 1,
"validuntil":<PHONE_NUMBER>
},
{
"uid": "43c8291c",
"username": "C002",
"acctype": 1,
"validuntil":<PHONE_NUMBER>
}
]
}`


Support dynamic columns

This might already be supported that I just don't know how to do it right.
$scope.users = [
  {name: 'teemo', age: 15},
  {name: 'volibear', age: 16},
  {name: 'lee sin', age: 17},
  {name: 'lissandra', age: 18},
  {name: 'caitlyn', age: 19}
];

$scope.fields = [
  {key: 'name', title: 'Champion Name'},
  {key: 'age', title: 'Champion Age'}
];

    {{user[field.key]}}

The only thing I'm having problems with is it's not displaying the title :smirk:
Demo

currently implemented as  -> http://ng-table.com/#/formatting/demo-dynamic-js-values


[WIP] Enable OSX build

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please restart ci

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

Failed to even lint the recipe, probably because of a conda-smithy bug :cry:. This likely indicates a problem in your meta.yaml, though. To get a traceback to help figure out what's going on, install conda-smithy and run conda smithy recipe-lint . from the recipe directory.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

Failed to even lint the recipe, probably because of a conda-smithy bug :cry:. This likely indicates a problem in your meta.yaml, though. To get a traceback to help figure out what's going on, install conda-smithy and run conda smithy recipe-lint . from the recipe directory.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

This might be a larger issue with conda-forge/core https://github.com/conda-forge/conda-forge-ci-setup-feedstock/pull/149

@dhirschfeld @ZimmerA
This one should be ready for a look.
The PR aims to enable an OSX build and update .NET to 5.0.201.
We should also consider building 3.1.407 both to release .NET Core 3.1 for osx, since it still an important release, and to get the updated release for linux and windows.
Thanks! -AC

Good work @acesnik - thanks for taking this on! There were a couple of other changes I wanted to make before releasing a new version so I'll try and push those before merging.


Change in the User model

Situation
We want to be good citizens and provide a system which takes care of the Datenschutz in Germany while providing good functionality and good usability where possible.
The main problem
Our main problem are the students. We want them to be able to store personal information (e.g. first_name) but also we don't want to enforce them to enter that information. There might be users which only have an anonymous user name and a password and that is ok. We might run into a Karteileichen-Problem in the future but that is a nice to have problem.
Attributes of a User Model

username (string) validates_presence_of, [validates_uniqueness](uniqueness: true)
password (some sort of hash) validates_presence_of
pseudonym (boolean) default: false (this is true if a user is generated by a teacher and totally anonymous)
nickname (string)
first_name (string)
last_name (string)
gender (male, female, diverse)
year_of_birth (integer)
email (string) (auto lowercase)
homepage_url (string) (validates :url, url: { allow_blank: true } -> https://github.com/perfectline/validates_url)
avatar_url (string)
newsletter (boolean)
declaration of agreement (boolean)

For us it would be interesting to analyse which languages (Muttersprachen) a user can speak. For that we would have to either generate a Language model and do a has_many association or add a text field which can be filled with that information. The has_many variant seems to be better because it is easier to query.
How to generate a user

A user creates his/her account. That is the easiest way. For that we need to have an email address so that we can reset the password.
 In the last scenario a teacher has to enter the amount of needed accounts for a given learning group. The system creates them as students of the given school. The teacher receives an email with a list of accounts and the passwords for them.

How to delete a user

A user can delete his/her account somewhere in the profile section. We don't keep any backup of the data. Delete is delete!

It would be also nice to have a "sign up for newsletter" option during registration. That way we could reach our users (teachers, admin,) legally. Might be done through an signup email to our mailman system. That way canceling would not be relevant to the profile.

It would be also nice to have a "sign up for newsletter" option during registration.

I put an attribute in the model and created #115
But we have bigger fish to fry right now. This is a low priority.

declaration of agreement (boolean)

Terms and conditions might change over time. So maybe make this a date field, and reference agreed T&C by date.

There might be edge cases where a student belongs to more then one school. Or maybe a student had an account already and then the class starts using WortSchule. Would those students need multiple accounts?
Also, there are cases where a teacher works at multiple schools.
3819 “Springer” teachers in Bavaria alone. Source:
https://www.sueddeutsche.de/bayern/lehrerreserve-mehr-springer-an-schulen-1.5346913


Feat: Add hypixel support

Is your feature request related to a problem? Please describe.
The autogg addon doesn't support hypixel in sending gg at the end of rounds
Describe the solution you'd like
Adding the ability for autogg to trigger on hypixel
Describe alternatives you've considered
Using Sk1er's autogg mod or laby autotext (disabled on hypixel)
Additional context
If regex is supported you could probably just use the detection autogg uses

Hypixel support was added with version 1.0.3 (https://github.com/EinsLucaaa/AutoGG/releases/tag/1.0.3) and is now also available via LabyMod. Thank you for the suggestion and your patience.


Update azure-file-copy.md while making use of Azure file copy task

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

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

#sign-off

@juliakm: I'm sorry - only the author of this article, @RoopeshNair, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

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

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

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


Offline installation of helm plugin.

Hey,
Is there a way we can do offline installation of the helm-mapkubeapis plugin without hitting internet.
I did try to modify the install_plugin.sh script with my internal repo and pushed helm-mapkubeapis_0.3.0_linux_amd64.tar.gz to my local repo but the installation is not successful.

I don't know if I can help much without seeing the environment, but maybe taking a look at the helm plugin docs will help. Maybe the $HELM_PLUGINS isn't set?

@khayalghosh  If you have the sources in a local directory, you can install directly from your local build.
https://github.com/helm/helm-mapkubeapis#developer-from-source-install

@khayalghosh Does the response by @pgier in https://github.com/helm/helm-mapkubeapis/issues/76#issuecomment-1213289942 answer your question?

I agree we should extract tarball at HELM_PLUGIN location did worked!


E_FAIL (0x80004005) while starting m

**This is a...

[ x] Bug Report

Problem:
Not able to start the minikube 0.35 on virtualbox 6.0.4. Keeps giving following error. Tried to uninstall completely and reinstall (removed .minikube and .virtualbox directories) but still the same. This is on Windows 10 Home.
restart issue.txt
Any help to get it started would be appreciated.
restart issue - vboxhardenlog.txt
Proposed Solution:
Page to Update:
https://kubernetes.io/...

Attaching the logs
VBoxHardening.log

Hi @AGtechm. Thanks for finding this issue and creating a ticket 🎉
However, it may be better to create a ticket at kubernetes/minikube as you may get a faster reply and a possible solution for your problem over there.

I noticed you already did that, oops 🙈
ref: https://github.com/kubernetes/minikube/issues/3910

@AGtechm i'm going to close this issue as is not related to docs. should you think otherwise please open a new issue with a PR description and the url pointing to the docs which needs to be corrected, thank you

/close


Schemas missing $id

Schemas should have $id parameters.
Example: "$id": https://progenetix.org/services/schemas/BeaconServiceError/v2021-03-07

@redmitry @datsirul
I've been confused by the $id in the Json Schemas, the actual usefulness and its compatibility with OA...
Do you have insights or opinions on this topic?

I would be cautious in using "$id" unless we think well the schemas structure.
In JSON schema "$id" is a schema (subschema) context which is used to the "$ref" resolution.
There are MANY ways to use (and resolve) "$ref" in the schema;:

absolute URL - "https://myschema.com/schema_file.json"
anchor - "#my_anchor_name"
relative - "/my_other_schema_file.json"
self - "#/$def/my_element"
The problem here is "relative" as it must be resolved against the "$id". So imagine you download the schema locally. the $ref will go to the original site in this case.

We may use relative "$id" so it would be relative to the root, but not sure do we need it and what the gain,
D.

Closing it, as we have no clarity on it and we probably should discuss it in the context of the new GA4GH indentifiers for schemas


Add instructions on how to run gcr cleanup without kubeconfig file

Added instructions on how to use gcr cleanup in a dummy mode, i.e. without checking if images are currently used in a cluster.

thanks for the PR!


0.0.4

In this PR I've includes fixes, features for the following issues:

Issue 7
Issue 8
Issue 9
Issue 10

I've also updated the docs to reflect these changes and added caching to travis for the testing virtual environment and mock site node modules to speed up builds.

Codecov Report

Merging #15 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #15      +/-   ##
==========================================
+ Coverage    79.4%   79.42%   +0.01%
==========================================
  Files           5        5
  Lines         335      345      +10
==========================================
+ Hits          266      274       +8
- Misses         69       71       +2

Impacted Files
Coverage Δ

pyscc/controller.py
70.79% <100%> (+0.79%)
:arrow_up:

pyscc/element.py
83.08% <100%> (-0.43%)
:arrow_down:

Continue to review full report at Codecov.

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


Move FunctionIOManager into a separate module

Big PR but all it does is to

Move FunctionIOManager into a new module _container_io_manager.py
Rename it to ContainerIOManager

Really just a bunch of search & replace.
The direct reason I'm doing that is that we have a _container_app singleton that isn't really used, outside of interact() and modal.experimental.stop_fetching_inputs(). In both those cases it makes a lot more sense to operate on the ContainerIOManager which is already a singleton, rather than setting stuff on the fairly useless _container_app singleton.
But the indirect reason is that _container_entrypoint.py has been growing and growing for a while. At 1,165 lines it's time to split it up imo.

Separately, we should unify how we communicate the "container" concept to users. I think at this point we use both "container", "runner" and "task" in different places (also unrelated to this PR)


Grafana reports Fluentd memory leak

Deis v2.11.0
Kubernetes v1.5.2

Just a week in production with one Deis app. Memory usage grew exponentially from 100 MB to around 380 MB. Interestingly only one pod leaks.

Very low volume site, and certainly no runaway logs from my app. However, nsqd does log like a madman.
Created an issue so others may post similar findings.

Hi,
we encounter a similar issue.

Environment:

Deis v2.10.0
Kubernetes v1.5.1
remote syslog export outside of the cluster.

We decided to set a memory limit for fluentd but in fact, it just makes fluentd to be killed by OOM more frequently. Unfortunately, after that we encounter another issue. After each OOM kill of the Flutentd container there was a very high cpu/io spike (~50k iops) on the node.
We didn't spot any suspicious activity near Flutentd containers or log pipeline, but we suspect that usage is growing much faster when Flutentd is logging non-ascii chars.
Our only solution so far, is a graceful restart of flunetd docker containers each night.

Trying to google around and see if there are any open issues against fluentd or the plugins we have installed that might be causing this problem but I am not having any luck.

@jayjun is the fluentd pod that is having the issues the same node that is also hosting nsq?

@jchauncey Nope, nsqd is in my other node. Here's all the containers in the same node as the errant fluentd,
k8s_myapp-web.dc7b656d_myapp-web-3789995061-cm7lv
k8s_deis-builder.666551bb_deis-builder-805890417-50stb
k8s_deis-controller.8c80e6bd_deis-controller-3898609164-1z205
k8s_deis-logger-fluentd.85506d36_deis-logger-fluentd-cdblz
k8s_deis-logger-redis.fb946a63_deis-logger-redis-304849759-c8bkp
k8s_deis-logger.6b520480_deis-logger-176328999-hvzd2
k8s_deis-monitor-influxdb.43a7b400_deis-monitor-influxdb-2729657543-7vv4m
k8s_deis-monitor-telegraf.a4b3af_deis-monitor-telegraf-5hvvn
k8s_deis-registry-token-refresher.a5a2d75f_deis-registry-token-refresher-3889501108-dk1l3
k8s_deis-workflow-manager.b65ee28a_deis-workflow-manager-2528409207-x38fm
k8s_fluentd-cloud-logging.fe89ba10_fluentd-cloud-logging-gke-cluster-1-default-pool-0d4b1875-gf74
k8s_kube-proxy.9b4e199d_kube-proxy-gke-cluster-1-default-pool-0d4b1875-gf74
k8s_tiller.8f4765f0_tiller-deploy-3299276078-rvd9k
k8s_POD.d8dbe16c_myapp-web-3789995061-cm7lv
k8s_POD.d8dbe16c_deis-builder-805890417-50stb
k8s_POD.d8dbe16c_deis-controller-3898609164-1z205
k8s_POD.d8dbe16c_deis-logger-176328999-hvzd2
k8s_POD.d8dbe16c_deis-logger-fluentd-cdblz
k8s_POD.d8dbe16c_deis-logger-redis-304849759-c8bkp
k8s_POD.d8dbe16c_deis-monitor-influxdb-2729657543-7vv4m
k8s_POD.d8dbe16c_deis-monitor-telegraf-5hvvn
k8s_POD.d8dbe16c_deis-registry-token-refresher-3889501108-dk1l3
k8s_POD.d8dbe16c_deis-workflow-manager-2528409207-x38fm
k8s_POD.d8dbe16c_fluentd-cloud-logging-gke-cluster-1-default-pool-0d4b1875-gf74
k8s_POD.d8dbe16c_kube-proxy-gke-cluster-1-default-pool-0d4b1875-gf74
k8s_POD.d8dbe16c_tiller-deploy-3299276078-rvd9k

Some updates on findings. FYI, no one touched this cluster in the last 7 days.
Fluentd

Memory leaks grow linearly for all Fluentd pods, not just one. deis-logger-fluentd-cdblz leaked 1 GB in 7 days!
My app was deployed on Feb 13, that's when slopes change. So, it is somehow related to deployments.
Others
I can't spot any correlation with other pods, except for Workflow Manager.

Not sure if it's related. Memory usage also [oddly] flatlined since 2 days ago.

I've gracefully restarted deis-logger-fluentd-cdblz today to see what happens.

@mboersma There's a memory fix in Fluentd v0.14.13.

in_tail: Untracked files should be removed from watching list to avoid memory bloat
https://github.com/fluent/fluentd/pull/1467

There's a memory fix in Fluentd v0.14.13.

Excellent, certainly worth a try. I'll go revise #87.

Fyi, I have been running a pod with the fluentd upgrade for a bit. It has made a huge difference.

Thats awesome @mattk42

I think this can be closed now.


Failing when installing

I'm getting this error when running sudo pip3.6 install utopy. I'm using Ubuntu 17.04
Installed /tmp/pip-build-k61dr1tz/steem/.eggs/pytest_pylint-0.7.1-py3.6.egg
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-k61dr1tz/steem/setup.py", line 15, in <module>
        tests_require=package_meta.default_requirements+package_meta.dev_requirements)
      File "/usr/lib/python3.6/distutils/core.py", line 108, in setup
        _setup_distribution = dist = klass(attrs)
      File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 317, in __init__
        self.fetch_build_eggs(attrs['setup_requires'])
      File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 372, in fetch_build_eggs
        replace_conflicting=True,
      File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 849, in resolve
        raise DistributionNotFound(req, requirers)
    pkg_resources.DistributionNotFound: The 'pytest' distribution was not found and is required by the application
    Error in sys.excepthook:
    Traceback (most recent call last):
      File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
        from apport.fileutils import likely_packaged, get_recent_crashes
      File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
        from apport.report import Report
      File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
        import apport.fileutils
      File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
        from apport.packaging_impl import impl as packaging
      File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 24, in <module>
        import apt
      File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
        import apt_pkg
    ModuleNotFoundError: No module named 'apt_pkg'

    Original exception was:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-k61dr1tz/steem/setup.py", line 15, in <module>
        tests_require=package_meta.default_requirements+package_meta.dev_requirements)
      File "/usr/lib/python3.6/distutils/core.py", line 108, in setup
        _setup_distribution = dist = klass(attrs)
      File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 317, in __init__
        self.fetch_build_eggs(attrs['setup_requires'])
      File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 372, in fetch_build_eggs
        replace_conflicting=True,
      File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 849, in resolve
        raise DistributionNotFound(req, requirers)
    pkg_resources.DistributionNotFound: The 'pytest' distribution was not found and is required by the application

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-k61dr1tz/steem/

I've managed to install the missing dependencies but now I'm having an issue with the toml package required by Steem.

The 'toml==<IP_ADDRESS>' distribution was not found and is required by steem

When I try to install it from pip I get
Requested toml==<IP_ADDRESS> from https://pypi.python.org/packages/af/06/edd820aa8a04ba82354a841af00aa28dcde391a7759a1e34579bb33d63bf/toml-<IP_ADDRESS>.tar.gz#md5=e5d32776ced9417c4149902d56a7302f (from steem==0.18.103->utopy), but installing version 0.9.3

It seems that steem-python is requiring this specific version that doesn't exist

This is because of toml messing up with its version names. I manage to install it successfully via pip though.
There is a workaround here to fix toml version mismatch.


Missing LICENSE file

Hello, according to this forums post you intend this code to be available under the MIT license. However, since the project stopped dev the code itself was never marked as such. Could you add a proper license file or otherwise mark the current licensing of the code?
As it stands, making modifications to this puts any developer who does so at some risk since you could turn around and claim you didn't allow them to do so... I'm no lawyer so I can't speculate on how that would work out legally, but it could still cause some chaos for others and makes the project really unattractive to anyone who'd want to continue it.

Done.

Thank you, for both this change and the very fast turnaround time!


constexpr moves

Optional is awesome and I'd like to return an optional<int> from a constexpr function. The following function compiles with g++ 5.2.0, but not with clang 3.7.0.
$ clang++ -std=c++1z -x c++ -c - <<< '
#include "optional.hpp"
constexpr std::experimental::optional<int> f1() { return 5; }
'

<stdin>:3:44: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
constexpr std::experimental::optional<int> f1() { return 5; }
                                           ^
<stdin>:3:51: note: non-constexpr constructor 'optional' cannot be used in a constant expression
constexpr std::experimental::optional<int> f1() { return 5; }
                                                  ^
./optional.hpp:424:3: note: declared here
  optional(optional&& rhs) noexcept(is_nothrow_move_constructible<T>::value)
  ^

I found a mention of this in the rationale:

[..] we know an efficient implementation of such optional with compile-time interface — except for copy constructor and move constructor — is possible.

If optionals can't be returned, their usefulness in constexpr functions seems unfortunately very limited to me.
As a temporary workaround, I tried adding constexpr to the move constructor, and both g++ and clang accepted it. Has the definition of constexpr functions been relaxed so that this is possible, or am I relying on overly permissible compilers?

2015-11-03 17:15 GMT+01:00 Johannes Laire<EMAIL_ADDRESS>
Optional is awesome and I'd like to return an optional from a
constexpr function. The following function compiles with g++ 5.2.0, but not
with clang 3.7.0.
$ clang++ -std=c++1z -x c++ -c - <<< '
#include "optional.hpp"
constexpr std::experimental::optional f1() { return 5; }
'
:3:44: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
constexpr std::experimental::optional f1() { return 5; }
^
:3:51: note: non-constexpr constructor 'optional' cannot be used in a constant expression
constexpr std::experimental::optional f1() { return 5; }
^
./optional.hpp:424:3: note: declared here
optional(optional&& rhs) noexcept(is_nothrow_move_constructible::value)
^
I found a mention of this in the rationale
http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3527.html#rationale.constexpr
:
[..] we know an efficient implementation of such optional with
compile-time interface — except for copy constructor and move constructor —
is possible.
If optionals can't be returned, their usefulness in constexpr functions
seems unfortunately very limited to me.
As a temporary workaround, I tried adding constexpr to the move
constructor, and both g++ and clang accepted it. Has the definition of
constexpr functions been relaxed so that this is possible, or am I relying
on overly permissible compilers?

An interesting question. The requirements for the constexpr constructor
have been relaxed. But does this relaxation suffice? From the fast reading
of the Standard, I cannot find a definite answer. The reference
implementation has the following definition:
optional(optional&& rhs) noexcept(is_nothrow_move_constructible::value)
: OptionalBase(only_set_initialized, false)
{
if (rhs.initialized()) {
::new (static_cast<void*>(dataptr())) T(std::move(*rhs));
OptionalBase::init_ = true;
}
}
Can the body of the constexpr constructor alter the value of class members?
I didn't find this to e described explicitly (at least on the fast reading)
Regards,
&rzej

Thanks for the reply. I have to admit that this stuff is a little bit out of my depth.
Perhaps guaranteed copy elision will resolve this for C++17 even if the move ctor can't be constexpr.
g++'s behavior might be a bug though. Since a non-movable type can't be returned by value from a function, it would make sense that a non-constexpr-movable type can't be returned by value from a constexpr function.

I am not sure if it helps anything in practice, but you can return non-moveable types by value with a bit of effort:
#include <cassert>

struct Guard
{
    int v;
    Guard(const Guard&) = delete;
    Guard(Guard&&) = delete;
};

Guard makeGuard()
{
    return {7};
}

int main()
{
    Guard&& g = makeGuard();
    assert (g.v == 7);
}

You can try it out:
http://melpon.org/wandbox/permlink/v1aWbdmfDgvZl4V4

The same is true for the copy-constructor, it is also not constexpr.
IMO, the whole optional interface should be constexpr for literal types(*). The best way to achieve it would be to special-case OptionalBase for literal types.
(*) Ideally one should special case copy-constructor, move-constructor, destructor, constructor... depending on whether the type is trivially copy-constructible/moveconstructible/destructible/constructibole/... but this explodes into a mess of base classes.
I would say, keep it simple. Make the whole optional interface conditionally constexpr and leave to the OptionalBase class whether the tricky operations (destruction, copy/move construction/assignment) are actually constexpr. Then just specialize the base-class once for literal types. Omit the destructor in the specialization (constexpr destructors must be implicitly generated), and omit the use of placement new in the other operations.
Having to special-case OptionalBase for literal/non-literal types is not optimal, but it is the best we can do in C++11, and doing so in C++14 is actually easy as long as one does not need placement new/reinterpret cast, and/or initializer_lists.

Yes, it should be doable.


Issue trying to prevent flicker light/dark mode

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Steps to reproduce 🕹
Link to live example:
Steps:

Current behavior 😯
I'm using nextjs router and attempting to support dark mode. I wrapped the  and subsequently all component in the CssVarsProvider, within the RootLayout of my app.
When I follow the steps here:
https://mui.com/material-ui/customization/dark-mode/
I am getting a flicker of white when the system preferences are set to a dark appearance.
When I follow the steps here to migrate to CSS theme variables:
https://mui.com/material-ui/experimental-api/css-theme-variables/migration/#3-prevent-dark-mode-flickering-in-server-side-applications
I am getting weird error: TypeError: Cannot read properties of undefined (reading 'appBar')
At first I was thinking all I needed to do was wrap with CssVarsProvider because I am not extending the theme in any way other than allowing light and dark mode. The documentation is not clear to me. Then I thought that because light and dark mode use createTheme that I need to follow the other steps in the migration guide. Which I did but it's giving me the error.
Is it possible to prevent the light/dark mode flicker? If not I need to start rewriting all of my components now. If it is possible then it's fine to keep using the mui library. Thanks!
Expected behavior 🤔
I am expecting that there is no flicker while the page loads.
Context 🔦
I'm attempting to follow the guide here:
https://mui.com/material-ui/experimental-api/css-theme-variables/migration/#1-add-the-new-provider
Your environment 🌎

npx @mui/envinfo
  Don't forget to mention which browser you used.
  Output from `npx @mui/envinfo` goes here.

I removed  and it works.


Refactor / Orderbook endblocker loop

Description

Type of change
Please check the options that are relevant. This PR introduces

[ ] Patch: Bug fix (non-breaking change which fixes an existing issue)
[ ] Minor: New feature (non-breaking change which adds new functionality)
[ ] Major: Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Features Description

[ ] NA

Test Cases

[ ] NA

Documentation

Checklist:

[ ] I have added change type (major|minor|patch) in the PR
[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes

Codecov Report
Attention: 15 lines in your changes are missing coverage. Please review.

Comparison is base (925e726) 11.73% compared to head (19535c9) 11.74%.

Files
Patch %
Lines

x/orderbook/keeper/orderbook_settle.go
46.42%
9 Missing and 6 partials :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@                  Coverage Diff                   @@
##           feature/upgrade-go     #353      +/-   ##
======================================================
+ Coverage               11.73%   11.74%   +0.01%
======================================================
  Files                     351      351
  Lines                   45066    45069       +3
======================================================
+ Hits                     5287     5292       +5
+ Misses                  39298    39297       -1
+ Partials                  481      480       -1

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


showWeeks works wrong in 01.2016

The picker shows 58 calendar weeks in january 2016. the february though is calculated correctly and the ui.bootstrap version works correctly too.
Here the reproduction. just click on the picker to open it.
http://plnkr.co/edit/ScoshB?p=preview

Try to update to the latest version of angularjs and angular-ui-bootstrap.
Demo: http://plnkr.co/edit/Vp0sdM?p=preview


CP_Font_Free is no longer in the API but it is still in the wiki

CP_Font_Free is no longer in the API (cprocessing.h) but it is still in the wiki as a broken link.
CP_Font_Load's example still references CP_Font_Free.
Without CP_Font_Free, users noticed an inconsistency between CP_Font's and CP_Image's API. CP_Image has a Load/Free pair while CP_Font does not, which causes users to be confused about CProcessing's philosophy behind resource management. Users who are monitoring their RAM usage also prefer to have a way to free their fonts (for example, using one set of fonts for state A and using another set of fonts for state B).
I suggest that we reintroduce CP_Font_Free to allow users to have full control over their application's memory management. When time permits, we will implement this and test in the Singapore branch first.

#28 This was a quite a bit more complex than I initially assumed.  I suspect the complexity is what caused us to leave out the function back in the beginning for some reason.
This PR adds the CP_Font_Free function to CProcessing so now all asset types have matching Load/Free pairs and proper memory management of fonts can be handled by the user.


When app.unmount() is called immediately after app.mount(), an error will be reported, as follows:

Version
6.0.0-beta.12
Browser and OS info
Chrome 90 / Mac 10.15.7
Steps to reproduce
main.ts
import { createApp } from "vue";
import App from "./App.vue";

const vm = createApp(App);
vm.mount("#app");
vm.unmount();

What is expected?
no error.
What is actually happening?
throw error: TypeError: Cannot set property 'VUE_DEVTOOLS_UID' of null at registerAppJob (backend.js:743)

Will display a warning


feat: use @hyperledger/aries-oca package in bifold.

Summary of Changes
Replace this text with a high-level summary of the changes included in this PR.
Related Issues
Please reference here any issue #'s that are relevant to this PR, or simply enter "N/A" if this PR does not relate to any existing issues.
Pull Request Checklist
Tick all boxes below to demonstrate that you have completed the respective task. If the item does not apply to your this PR check it anyway to make it apparent that there's nothing to do.

[x] All commits contain a DCO Signed-off-by line (we use the DCO GitHub app to enforce this);
[x] Updated LICENSE-3RD-PARTY.md for any added dependencies or vendored components;
[x] Updated documentation as needed for changed code and new or modified features;
[x] Added sufficient tests so that overall code coverage is not reduced.

If you have any questions to any of the points above, just submit and ask! This checklist is here to help you, not to deter you from contributing!
Pro Tip 🤓

Read our contribution guide at least once; it will save you a few review cycles!
Your PR will likely not be reviewed until all the above boxes are checked and all automated tests have passed.

PR template adapted from the Python attrs project.

Waiting for the next @hyperledger/aries-oca npm package.

Still working through this, looks great so far. Can we add some additional tests so that overall coverage is not decreased?

Still working through this, looks great so far. Can we add some additional tests so that overall coverage is not decreased?

Tbh, I'm a bit confused as to how the coverage is even determined based on the report

@thiagoromanos The util functions that have been moved over to the OCA package can be removed from Bifold IMO and referenced from the package if needed

@thiagoromanos The util functions that have been moved over to the OCA package can be removed from Bifold IMO and referenced from the package if needed

I think I removed those functions already. Will double check to see if I didn't missed anything, but I also think that the code that migrated to aries-oca package should be removed from bifold.

Still working through this, looks great so far. Can we add some additional tests so that overall coverage is not decreased?

I think we could, but don't really know where to add more tests. Most of the warnings from codecov were on lines that wasn't added, but changed, and those weren't covered already.

Really good work @thiagoromanos my only concern here is the double work will be needed to remove that "legacy" from the code being refactored. one option is to make a simple type mapping in one place for all those "legacy" types so that ones swapped with newer version, you only change in the mapping layer. Other option is to ditch "legacy" and keep the import from top file dictate what this type comes from

Really good work @thiagoromanos my only concern here is the double work will be needed to remove that "legacy" from the code being refactored. one option is to make a simple type mapping in one place for all those "legacy" types so that ones swapped with newer version, you only change in the mapping layer. Other option is to ditch "legacy" and keep the import from top file dictate what this type comes from

@MosCD3, I don't know how I would make the mapping for the types, but ditching the legacy from the type looks better IMO. However, the imports will be @hyperledger/aries-oca/build/legacy. I don't really like the build folder in imports, but to do the refactoring later will be better.

LGTM! Not sure how we can increase the coverage again, but I'm ok merging it as is

@thiagoromanos If you can fix those two conflicts I'll merge this first think in the morning so you don't have any more problems.


about: achieving temporal coherence naturally in paper

Great project!
I read your paper, in the sixth part:CONCLUSION, LIMITATIONS, AND FUTURE WORK:
This is the original text:
Finally, since our system is trained in the space of motions, the inherent smoothness of human motions is learned from the data, achieving temporal coherence naturally.
My question:
achieving temporal coherence naturally   .
Does it mean real-time? The input and output are real-time?
thanks!

Answered by email.
Short summary: Temporal coherence doesn't mean real-time performance, it's a metric on the output quality. If we want to extend this method to real-time, an offset would be applied which uses [0, 40] to predict [40, 50] rather than[0, 40] predicts [0, 40] currently.


Craco Wasm Loader Issue

Reproduction steps
Hi, I am trying to integrate my React Application using craco as per the docs,

But I am keep getting this webpack error on starting my project.

Which we are passing here as the configuration of wasm loader,
      const wasmLoader = {
        test: /\.wasm$/,
        exclude: /node_modules/,
        loaders: ['wasm-loader'],
      };

      addBeforeLoader(webpackConfig, loaderByName('file-loader'), wasmLoader);

My package.json dependencies:

    "@craco/craco": "^6.4.5",
    "@trinsic/trinsic": "^1.7.1-rc2",
    "@trinsic/trinsic-web": "^1.4.2",

```Please share your thoughts on this issue.

Thanks for filing this @kashyapshiv, we've been in contact through our Slack on this issue and should be close to a resolution.

@janpieterz isn't this now fixed?

Yes it is, confirmed today.


Central Authentication Server

Currently, Sky of Steel does not offer any sort of authentication system to verify your identity. While this is not a problem for playing singleplayer or joining a friend's server. However, people may eventually want to make larger servers and it's harder to moderate servers if there are no accounts to ban/mute/etc. Additionally, any given server requires a way to persistently identify players between sessions in order to store their player data persistently.
I suggest that a central authentication server be created using Azure PlayFab or a similar service and the multiplayer aspect of Sky of Steel should require authentication. Of course, we could also make it so that server owners can disable the auth requirement and just resort to nickname checking if they want.
Side Note: this solve #52

With a central account system we can have a friends system, invites, achievements, and more. However at the same time that sort of centralization may be in poor taste for a game such as SkyOfSteel.
The originally planned feature where players can set a password for their player on each server (a la MineTest) could provide a more secure way of ensuring authentication for servers wishing to not use this central system.

No longer applicable. https://github.com/ForLoveOfCats/SkyOfSteel/issues/52#issuecomment-631209373
I've always wanted some sort of achievement system, however that would require a central account system. The goal now is to have a per-savefile achievement system similar to Minecraft.


[proposal] Added link to deployment article

I wrote an article detailing deployment and hosting with Azure. I think this article would be helpful to others who might struggle with these topics.

I saw this and as I'm interested in ways to deploy sails thought I'd have a look.
The first article doesn't seem to reference sailsjs at all; so would be quite confusing to have this in the official docs.
I'm unable to read the second article on medium as it's behind a paywall :-(

I saw this and as I'm interested in ways to deploy sails thought I'd have a look.
The first article doesn't seem to reference sailsjs at all; so would be quite confusing to have this in the official docs.
I'm unable to read the second article on medium as it's behind a paywall :-(

Thanks for letting me know, I was also confused as to why the first article was there since it's more in line with node deployment. I'll update the link with the version that should be accessible by anyone.

@mikermcneil Any chance this can get reviewed when a maintainer has time? Shouldn't take very long, thanks keep up the good work!


Admin tool to set up CSV download site

PRD: https://docs.google.com/document/d/1J-fymTtGsN2U1JQ8LAIqIsE4ONzu7nE9h0gMfOCHCy0/edit
Build a web experience that allows a public health jurisdiction to receive Data Hub report data and access relevant insights
Story
“As an internal admin, I can set up an account for a new geography”
“As a PHD, I can get access to the existing download site by having a conversation with USDS/CDC”
Requirements
Account set up (e.g. a set of users get access to the following settings)
Set geography limitations (e.g. Users within account have access to data based on geographical settings, such as state, county, zipcode)
Set data schema (e.g. Users within account see data with XYZ fields)
Batching settings (e.g. Users within account receive emails based on a preferred notification cadence - hourly, daily)
Email settings (e.g. turn on or off notification emails)
Validation / QA (e.g. I can easily test to see if i’m seeing the appropriate data, and not the data you shouldn’t see; see test messages)

Initial sketch of work breakdown
Story: “As an internal admin, I can set up an account for a new geography”

[ ] Stand up Admin Settings API for organizations.yml -- #373

[ ] OpenAPI spec
[ ] Settings table in prime_data_hub database

Initialize db settings table from organizations.yml

[ ] Stand up Azure function endpoint

(reuse csv-downloads work)
in prime-router/src/main/kotlin/azure/AdminSettingsFunction.kt (or similar)
Validate Admin Role on every API call
Query/Update settings table from prime_data_hub database

[ ] Stand up Web front-end UX for accessing Admin API

(reuse csv-downloads work)
[ ] USWDS integration
[ ] Okta Login
[ ] Confirm Admin Role
[ ] Select (submitter/recevier) account from collection of all accounts configured in the system
[ ] Display & update receiver basic information (name, description) using API

[ ] CI/CD integration of Web front-end into prime-data-hub system

(reuse csv-downloads work)
[ ] API endpoint connection
[ ] Web static hosting endpoints

Expected Outcome

Internal admins can log in and see

In subsequent issues and sprints

Account set up (e.g. a set of users get access to the following settings)

Display & update of receiver standard information

Email settings (e.g. turn on or off notification emails)
Set data schema (e.g. Users within account see data with XYZ fields)
Set geography limitations (e.g. Users within account have access to data based on geographical settings, such as state, county, zipcode)
Batching settings (e.g. Users within account receive emails based on a preferred notification cadence - hourly, daily)

Developer targeted admin tooling "shim"

halfway between organizations.yml and complete onboarding support
e.g. YAML in the web, near direct API calls

Horizon

Account set up (e.g. a set of users get access to the following settings)

Display & update of receiver advanced configuration

e.g. multiple delivery options
e.g. change credentials for SFTP, etc.

Validation / QA (e.g. I can easily test to see if i’m seeing the appropriate data, and not the data you shouldn’t see; see test messages)

Initial sketch of work breakdown
Story: “As an internal admin, I can set up an account for a new geography”

[ ] Stand up Admin Settings API for organizations.yml -- #373

[ ] OpenAPI spec
[ ] Settings table in prime_data_hub database

Initialize db settings table from organizations.yml

[ ] Stand up Azure function endpoint

(reuse csv-downloads work)
in prime-router/src/main/kotlin/azure/AdminSettingsFunction.kt (or similar)
Validate Admin Role on every API call
Query/Update settings table from prime_data_hub database

[ ] Stand up Web front-end UX for accessing Admin API

(reuse csv-downloads work)
[ ] USWDS integration
[ ] Okta Login
[ ] Confirm Admin Role
[ ] Select (submitter/recevier) account from collection of all accounts configured in the system
[ ] Display & update receiver basic information (name, description) using API

[ ] CI/CD integration of Web front-end into prime-data-hub system

(reuse csv-downloads work)
[ ] API endpoint connection
[ ] Web static hosting endpoints

Expected Outcome

Internal admins can log in and see

In subsequent issues and sprints

Account set up (e.g. a set of users get access to the following settings)

Display & update of receiver standard information

Email settings (e.g. turn on or off notification emails)
Set data schema (e.g. Users within account see data with XYZ fields)
Set geography limitations (e.g. Users within account have access to data based on geographical settings, such as state, county, zipcode)
Batching settings (e.g. Users within account receive emails based on a preferred notification cadence - hourly, daily)

Developer targeted admin tooling "shim"

halfway between organizations.yml and complete onboarding support
e.g. YAML in the web, near direct API calls

Horizon

Account set up (e.g. a set of users get access to the following settings)

Display & update of receiver advanced configuration

e.g. multiple delivery options
e.g. change credentials for SFTP, etc.

Validation / QA (e.g. I can easily test to see if i’m seeing the appropriate data, and not the data you shouldn’t see; see test messages)

Sweet! Overall looks good to me

Sweet! Overall looks good to me

Changed the title to HL7


Update base64 minor, rollup (node only) and jose patch. Upgrade Deno …

Upgrade @hexagon/base64 minor
Upgrade rollup (node dev dependency only) minor version
Upgrade jose patch version
Upgrade Deno std library 0.135 -> 0.136
Bump own patch 3.2.4 -> 3.2.5
(And rebuilding main.js with latest Deno version will reduce bundle size a bit due to Deno optimizations)

Ready

If you're just updating dependencies and all tests are passing, feel free to merge yourself (you should have that permission) 👍


errors apear in vim-fugitive files after using :Gdiffsplit

Open a ts file with no errors
execute :Gdiffsplit
see errors in the diff file (even if there are no changes)

What are my options to prevent this?

Thanks you works like a charm!


[move-prover] Fix bound for serialization.

Minor fix, it should be <= bound instead of < bound.
Motivation
Bug fix.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
cargo test
Related PRs
NA

@bors-libra r=DavidLDill

:pushpin: Commit e6d4c9b has been approved by DavidLDill

:hourglass: Testing commit e6d4c9b9f3e2acbb86fc70329b07143a718241ac with merge 960a5f683fd9710418b89cdd6f859bc93f81b991...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: DavidLDill
Pushing 960a5f683fd9710418b89cdd6f859bc93f81b991 to master...


Allow scroll in x-axe when mobile

I tried to override the overflow-x assigning it 'scroll' when the width is 768px but it's not working.

You can set a min-width.
https://github.com/davidjbradshaw/iframe-resizer#minheight--minwidth


Minor comments on the installation instructions

Hi @mrmckain
we are currently working on a benchmarking of chloroplast assembly tools (see https://github.com/chloroExtractorTeam/benchmark). In this context, I installed Fast-Plast on a fresh installation of Ubuntu 18.04.2 and had to install a few additional packages (see below). You might want to add a note about these in your readme.

git
make
g++
libz-dev
java
python

Best,
Niklas

Thanks, Niklas.
I appreciate the comments. I will be interested to see how all these pipelines shape up when compared to each other.
Best,
Michael


(Neo)Forge Early Loading Screen for Fabric

CurseForge link
No response
CurseForge Mod Distribution
Unknown
Modrinth link
https://modrinth.com/mod/forge-early-loading-screen-fabric
Source/other link
https://github.com/Jab125/forge-early-loading-screen
Mod file size
367.08 KiB
License
(any other license)
What it does
This mod adds the early loading screen from FML to fabric.
Why should it be in the modpack
Allows the user to see the mod loading progress, rather than waiting a while for the minecraft to launch
If the user has added a lot of content mods on top of FO, then having a screen showing information is quiet helpful than waiting for 45 seconds for the game to launch and hoping it won't crash.
Why shouldn't it be in the modpack
Not available on CurseForge, still in beta (the mod is essentially a clone of FML's earlydisplay, so it while the mod is in beta, in reality it isn't).
Currently the mod shows a running fox on the early loading screen, which might be unexpected to some users launching the modpack. I have opened an issue to allow disabling that in the config, though.
Additional details
Licensed under LGPL-2.1-only
Mod supports the "Monochrome Logo" setting.

You know, in the early days of FO, I actually considered something like this. But ended up scrapping the idea, because other than the Forge likeness, most users have nothing to do with the data it gives.

Allows the user to see the mod loading progress, rather than waiting a while for the minecraft to launch

In this case, I'd rather optimize the startup speed than distract the user with data.

If the user has added a lot of content mods on top of FO, then having a screen showing information is quiet helpful than waiting for 45 seconds for the game to launch and hoping it won't crash.

Mods usually crash before or during loading screen... Title screen crashes aren't very common.
Rejected.


Update actions version comments

Commented versions were not in sync with the used versions. See :

https://github.com/actions/setup-java/commit/860f60056505705214d223b91ed7a30f173f6142
https://github.com/actions/checkout/commit/2541b1294d2704b0964813337f33b291d3f8596b
https://github.com/actions/upload-artifact/commit/3cea5372237819ed00197afe530f5a7ea3e805c8
https://github.com/github/codeql-action/commit/935969c6f771d9f0a35efa2ae9cf7c10d9886ca3

@marcwrobel, thanks so much for the explanation and fixes, much appreciated! :pray:
It is pretty fragile to manually manage these comments ourselves, yet having commit hashes is a security best-practice. Do you know of a way to make dependabot take care of this for us?

@vy, unfortunately I don't. I have to amend dependabot PR each time there is a version upgrade.

@vy, FYI https://github.blog/changelog/2022-10-31-dependabot-now-updates-comments-in-github-actions-workflows-referencing-action-versions/.


Config, generic and service test throws error in JustAfterEach on windows platform

[kind/bug]

What versions of software are you using?

Actual behavior
Unexpected error:
        <*os.PathError | 0xc0003fc300>: {
            Op: "remove",
            Path: "C:\\Users\\User\\AppData\\Local\\Temp\\921319331",
            Err: 0x20,
        }
        remove C:\Users\User\AppData\Local\Temp\921319331: The process cannot access the file because it is being used by another process.
    occurred

Expected behavior
Should not error out on windows platform
Any logs, error output, etc?

/king bug
/area testing


Compilation error since 41e92fc7

Since 41e92fc7:
In file included from src/be_debuglib.c:212:
src/../generate/be_fixed_debug.h:25:57: error: too many arguments provided to function-like macro invocation
BE_EXPORT_VARIABLE be_define_const_native_module(debug, NULL);
                                                        ^
src/be_constobj.h:152:9: note: macro 'be_define_const_native_module' defined here
#define be_define_const_native_module(_module)                  \
        ^

Compiling with gcc.

You need to force recompilation of coc
Remove it in tools/coc/coc and do make clean

Thank you!


[add-resource] New Plugin : grav-plugin-amazon-products

I would like to add my new plugin/theme to the Grav Repository._Here are the project details: https://github.com/kinformation/grav-plugin-amazon
This plugin displays Amazon products by ASIN/ISBN-10 on your pages.

This looks good, I just wonder if the plugin should be called more specifically as 'amazon-products', instead of the the very generic 'amazon'.
Without looking at the readme i thought this was about aws, hence my confusion.

Cool, thanks for sharing this @kinformation!

@w00fz
Thanks for the suggestion! I will change it.
Indeed it seems better to have amazon-products rather than amazon.

I changed the plugin name and repository name.
https://github.com/kinformation/grav-plugin-amazon-products

Thanks, i'll get this added soon.

Added.


Write SASS Code

Problem
Shr only supports LESS, I'll write SASS to be used along with LESS.
Rationale
Really just another option for compilation. I happen to know SASS and can structure
it the same way that you have your LESS structured so other devs can contribute as
well or use in the situation they have their application written in.
Solution
I'll write the SASS code for Shr.
Pros of Solution:

Another option for users who may be using SASS instead of LESS

If you'd like to move forward, let me know and I'll submit a PR!

I'd be happy to drop LESS support in favour of just SASS.


WebSocket Error: not opened

When Page.navigate overlimit the time, the following timeout happens:
            setTimeout(function() {
                if (page_loaded == true)
		{
                    return;
                }
		page_load_failed = true;
                console.log('Timeout: trying to check the state...');

		/*setTimeout(function() {
                            closeTarget(CDP, true, client);
                        }, 15000);*/

                Runtime.evaluate({
                    expression: 'document.readyState'
                }).then((result, err) => {
                    console.log(result);
                    console.log(err);
                    if (result.result.value == 'interactive' || result.result.value == 'complete') {
                        console.log('document state is interactive...');
                        pageLoaded();

                    } else {
                        console.log('Can\'t load the page...');
                        closeTarget(CDP, false, client);
                    }
                }).catch((err) => {
                    console.log('Can\'t load the page...');
		    console.log('>>>>>>>>>>>>>>', exit_done);
                    console.error(err);
                    //closeTarget(CDP, false);
		    CDP.List(options, function (err, targets) {
    		    if (!err)
			{
        			//console.log(targets);
				var str = JSON.stringify(targets);
				console.log(targetValueToCheck);
				if (str.includes(targetValueToCheck))
				{
					console.log('Target already exists...');
					//checkDocumentState();
					closeTarget(CDP, false,client);
				}
				else
				{
					//main();
					console.log('No such target...');
					closeTarget(CDP, false, client);
				}
    			} else { console.log(err); }
		    });
                });

            }, page_timeout);

And sometimes in Runtime.evaluate happens this error:
Error: not opened
    at WebSocket.send (/opt/forsys/rss/node_modules/chrome-remote-interface/node_modules/ws/lib/WebSocket.js:355:18)
    at Chrome.enqueueCommand (/opt/forsys/rss/node_modules/chrome-remote-interface/lib/chrome.js:124:16)
    at /opt/forsys/rss/node_modules/chrome-remote-interface/lib/chrome.js:86:28
    at Chrome.send (/opt/forsys/rss/node_modules/chrome-remote-interface/lib/chrome.js:85:16)
    at Object.handler [as evaluate] (/opt/forsys/rss/node_modules/chrome-remote-interface/lib/api.js:32:23)
    at Timeout._onTimeout (/opt/forsys/rss/url_readability.js:351:25)
    at ontimeout (timers.js:386:14)
    at tryOnTimeout (timers.js:250:5)
    at Timer.listOnTimeout (timers.js:214:5)

clint.close() was't executed before and the target exists. What can go wrong?
Hope on your responce!

It happens when you try to send a command through a closed WebSocket connection, it can happen either if client.close() is called (which apparently is not your case) or if the tab is closed.
Maybe you fail to clear that timeout in case of a successful page load?

Maybe you fail to clear that timeout in case of a successful page load?

What do you mean? I
I have remade this by domEventFired, but also after timeout Runtime.evaluate do not work and i get the same error.
This is current code:
 CDP(targetOptions, (client) => {
        // Extract used DevTools domains.

        console.log('Extract used DevTools domains');
        const {
            Page,
            Network,
            Runtime,
            DOM,
            Security
        } = client;

        // Enable events on domains we are interested in.
        Promise.all([
            Page.enable(),
            Runtime.enable(),
            DOM.enable(),
            Security.enable(),
            Network.enable()
        ]).then(() => {

            setTimeout(function() {
		if (domLoaded == true)
		{
			console.log('document state is interactive...');
			pageLoaded();
		}
		else
		{
			console.log('Can\'t load the page!');
			closeTarget(CDP, false, client);
		}
            }, page_timeout);

            Network.setBlockedURLs({
                urls: blackListURLs
            });

            return Page.navigate({
                url: downloaded_url
            }).then((res) => {
                console.log(res);
            });

        }).catch((err) => {
            console.error(err);
            closeTarget(CDP, false, client);
        });

        function pageLoaded() {

            var script = fs.readFileSync(readability_js, 'utf8');

            var saveOutTitlePromise = saveOutTitle(Runtime);
            var saveOrigPromise = saveOrigHtml(DOM, Runtime);
            var jsRulesPromise = applyJsRules(Runtime);
            var jQueryPromise = testJQuery(Page, Runtime);

            Promise.all([saveOutTitlePromise, saveOrigPromise, jsRulesPromise, jQueryPromise]).then(values => {
                console.log('Executing clearly/readability...');
                Runtime.evaluate({
                    expression: script
                }).then((result) => {
                    console.log('Clearly/readability executed...');
                    Runtime.evaluate({
                        expression: 'document.documentElement.innerHTML = clearly()'
                    }).then((result) => {
                        //console.log(result);
                        if (result["result"]["subtype"] == 'error') {
                            console.log('clearly() failed...');
                            closeTarget(CDP, false, client);
                        }
                        Runtime.evaluate({
                            expression: 'document.documentElement.innerHTML'
                        }).then((result) => {
                            console.log(do_save_png);
                            if (do_save_png) {
                                captureScreenShot(Page);
                            }

                            var plainTextPromise = getPlainText(Runtime);

                            var fs = require('fs');
                            fs.writeFileSync(out, result.result.value, {
                                mode: '666'
                            });
                            console.log("The file was saved!");

                            Promise.all([plainTextPromise]).then(() => {
                                console.log('Client closed!');
                                closeTarget(CDP, true, client);
                            });
                        });
                    }).catch((err) => {
			    console.error(err);
			    console.log('Terminating...');
			    closeTarget(CDP, false, client);
			});
                }).catch((err) => {
			    console.error(err);
			    console.log('Terminating...');
			    closeTarget(CDP, false, client);
			});
            }).catch((error) => {
		  console.log(error);
		  console.log('Terminating...');
		  closeTarget(CDP, false, client);
		  //done();
		});
        }

        // Evaluate outerHTML after page has loaded.
        Page.loadEventFired(() => {
            console.log('Page loaded...');
            pageLoaded();
        });

        Page.domContentEventFired(() => {
            console.log('dom loaded...');
            domLoaded = true;
        });

    }).on('error', (err) => {
        console.error('Cannot connect to browser:', err);
        process.exit(1);
    });

What do you mean?

If you use a timeout to catch page unresponsiveness you should cancel it once the Page.loadEventFired event fires, otherwise the timeout function executes anyway possibly after the code that handles the correct page load, thus running pageLoaded again and hence attempting to send methods on a closed WebSocket. I mean something like this:
const id = setTimeout(() => /*...*/);

Page.loadEventFired(() => {
    clearTimeout(id);
    /*...*/
});

P.S. you should really use async/await to deal with promises if your environment allows it.

If you use a timeout to catch page unresponsiveness you should cancel it once the
Page.loadEventFired event fires, otherwise the timeout function executes anyway possibly after the
code that handles the correct page load, thus running pageLoaded again and hence attempting to
send methods on a closed WebSocket. I mean something like this:

It didn't help

When timeout is fired, somehow websocket is closed.

The point is that the timeout should fire only if Page.loadEventFired doesn't. In any case the error itself is pretty straightforward to understand: activity performed on a closed connection. So you just have to make sure that this cannot happen and double check your program flow.
I'd like to help you further with this but I cannot run your code, if you manage to provide a standalone snippet that identify your issue, I'd be happy to look into it.

The point is that the timeout should fire only if Page.loadEventFired doesn't. In any case the error
itself is pretty straightforward to understand: activity performed on a closed connection. So you just
have to make sure that this cannot happen and double check your program flow.

It was very useful advice. Thanks!
But now, rarely, i'm getting the following error:
Cannot connect to browser: Error: unexpected server response (500)
    at ClientRequest._req.on (/opt/forsys/rss/node_modules/chrome-remote-interface/node_modules/ws/lib/WebSocket.js:651:26)
    at emitOne (events.js:96:13)
    at ClientRequest.emit (events.js:188:7)
    at HTTPParser.parserOnIncomingClient (_http_client.js:473:21)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:99:23)
    at Socket.socketOnData (_http_client.js:362:20)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at readableAddChunk (_stream_readable.js:176:18)
    at Socket.Readable.push (_stream_readable.js:134:10)

It happens when this code is executed: (in CDP(targetOptions, (client) => {)
function loadPage(mode) {
        CDP(targetOptions, (client) => {
.....
}

function main() {
    CDP.New(options, function(err, target) {
        if (err) {
            console.log('ERROR: target is not openning!');
            console.log(err);
            process.exit(1);
        }
        console.log('Target openned...');
        createdTarget = target;
        targetValueToCheck = target['id'];

        targetOptions = {
            host: arg_host,
            port: chrome_port,
            id: target.id
        };

        loadPage(1);
    });
}

main();

What can go wrong?

I can't see anything wrong with that code except that the id field is not used by CDP, do you mean targetOptions = {/*...*/, target: target.id}?
What version of chrome-remote-interface are you using?
(Please next time fill the issue template.)

TL;TR;
This is caused by --use-fake-device-for-media-stream flag, removing it will fix this issue for some edge cases.
Full story:
We've run into the same issue, struggled for 3 days, at the end we found out this was caused by --use-fake-device-for-media-stream flag of chrome process.
This was happening only for some pages, perhaps those where media stream devices are checked.
Exact Exception:
"Uncaught (in promise) NetworkError: A network error occurred.", source: https://example.com

Exact error of Runtime.evaluate({/*..*/}).catch():
Error: not opened


Multiple buses with health checks not working as I have coded it

Using VisualStudio Code asp.net core 3.1 appliation.
MassTransit.AspNetCore Version="6.2.4"
What am I doing wrong?
I need to support multiple bus instances in my application. All of the examples I have seen only have a single instance.
I have the application working with multiple instances, possible the wrong way because health checks are not working. I have looked over the code in GitHub and attempting to reproduce as some of the calls are not public.
I created my own copy of AddAndGetHealthChecks because of an error about multiple health checks being registered. My copy adds a unique suffix.
When the application runs all the buses are working and consuming messages but the health checks all fail.
fail: Microsoft.Extensions.Diagnostics.HealthChecks.DefaultHealthCheckService[103]
Health check masstransit-Lana-bus completed after 0.2261ms with status Unhealthy and 'MassTransit bus is not ready: '
fail: Microsoft.Extensions.Diagnostics.HealthChecks.DefaultHealthCheckService[103]
Health check masstransit-Archer-bus completed after 0.0014ms with status Unhealthy and 'MassTransit bus is not ready: '
fail: Microsoft.Extensions.Diagnostics.HealthChecks.DefaultHealthCheckService[103]
Health check masstransit-Archer-bus completed after 0.0048ms with status Unhealthy and 'MassTransit bus is not ready: '
Microsoft.Extensions.Diagnostics.HealthChecks.DefaultHealthCheckService: Error: Health check masstransit-Lana-bus completed after 0.2261ms with status Unhealthy and 'MassTransit bus is not ready: '
Microsoft.Extensions.Diagnostics.HealthChecks.DefaultHealthCheckService: Error: Health check masstransit-Archer-bus completed after 0.0014ms with status Unhealthy and 'MassTransit bus is not ready: '
Microsoft.Extensions.Diagnostics.HealthChecks.DefaultHealthCheckService: Error: Health check masstransit-Archer-bus completed after 0.0048ms with status Unhealthy and 'MassTransit bus is not ready: '
When I call the health check endpoint all tags show as "read"
foreach(var agent in agents)
	{
		var busOptions = configuration.GetSection($"Bus:{agent}").Get<BusOptions>();

		var healthChecks = services.AddAndGetHealthChecks($"-{agent}");

			services.AddSingleton<IHostedService>(provider =>
				new MassTransitHostedService(
					MassTransit.Bus.Factory.CreateUsingRabbitMq(cfg =>
					{
						cfg.UseHealthCheck(provider);
							/* bus configuration */
					}),
					healthChecks
				)
			);
		}

// borrowed and modified code
 static ReceiveEndpointHealthCheck AddAndGetHealthChecks(this IServiceCollection collection, string key)
        {
            var busHealthCheck = new BusHealthCheck();
            var endpointHealthCheck = new ReceiveEndpointHealthCheck();

            collection.AddSingleton(busHealthCheck);
            collection.AddHealthChecks()
                .AddBusHealthCheck($"{key}-bus", busHealthCheck)
                .AddBusHealthCheck($"{key}-endpoint", endpointHealthCheck);

            return endpointHealthCheck;
        }

        static IHealthChecksBuilder AddBusHealthCheck(this IHealthChecksBuilder builder, string suffix, IHealthCheck healthCheck)
        {
            return builder.AddCheck($"masstransit-{suffix}", healthCheck, HealthStatus.Unhealthy, new[] {"ready"});
        }

// from startup
endpoints.MapHealthChecks("/api/health-check", new HealthCheckOptions()
{
	Predicate = (check) => check.Tags.Contains("ready"),
});

Are you connecting each bus instance to a different RabbitMQ host and/or virtual host?

Yes
On Fri, Apr 24, 2020, 4:15 PM Chris Patterson<EMAIL_ADDRESS>wrote:

Are you connecting each bus instance to a different RabbitMQ host and/or
virtual host?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MassTransit/MassTransit/issues/1837#issuecomment-619219037,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABOGMU5JWEOUEFTVJVZXGOTROHXMRANCNFSM4MQMD7JQ
.

Well 2 unique hosts with 2 ghosts on each right now
On Fri, Apr 24, 2020, 5:01 PM Nicholas Randal<EMAIL_ADDRESS>wrote:

Yes
On Fri, Apr 24, 2020, 4:15 PM Chris Patterson<EMAIL_ADDRESS>wrote:

Are you connecting each bus instance to a different RabbitMQ host and/or
virtual host?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MassTransit/MassTransit/issues/1837#issuecomment-619219037,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABOGMU5JWEOUEFTVJVZXGOTROHXMRANCNFSM4MQMD7JQ
.

Hard to say, the MassTransit Hosted Service might only be getting one instance of the BusHealthCheck from the container, so it's only updating that one? You're likely going to need to wire everything up yourself and passed constructor arguments explicitly to get it sorted out.

ok, so just to confirm, there are currently support calls I'm overlooking to do a multiple bus setup?
In general what I'm doing is not off the rails? I'm attempting to follow your code.

There isn't any built-in support for configuring multiple buses in a single container. So no library or framework calls are missing.

Ok, I got all this working by wiring up on my own. However, no sooner did I get it all working when upgradeing from 6.2.4 to 6.2.5 immediately broke all the health checks. Any ideas before I have to wander through all the commits to find what changed?

There were no changes between 6.2.4 and 6.2.5 in this area, in fact, a unit test was added to ensure the health checks were working as expected.

I hear you but something changed. I have isolated this down to that change.
I can upgrade/break and downgrade/work over and over again.
On Sat, Apr 25, 2020, 9:25 AM Chris Patterson<EMAIL_ADDRESS>wrote:

There were no changes between 6.2.4 and 6.2.5 in this area, in fact, a
unit test was added to ensure the health checks were working as expected.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MassTransit/MassTransit/issues/1837#issuecomment-619379341,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABOGMU4V3GMBSHMC77THNGTROLQC5ANCNFSM4MQMD7JQ
.

I've tracked it as far as that the method in BusHealthCheck.PostStart is not being called when I upgrade my package to 6.2.5 from 6.2.4. At this point I'm not sure why that isn't being called.
public Task PostStart(IBus bus, Task<BusReady> busReady)
{
            return Success();
}

Next leg, PostStart is not being called because the first call to IBustControl.StartAsync never returns. No errors in the log.

Since this is no longer related to health checks should I open a new issue? Now the bus is not starting and hangs as Masstr

Multiple buses are possible with health checks but the existing calls cannot be used.

Heads up, I have a PR in progress adding multiple bus support to MassTransit. If you are able to provide some feedback, feel free to look it over. https://github.com/MassTransit/MassTransit/pull/1864

Awesome, thanks for the update.
On Fri, May 8, 2020, 10:03 AM Chris Patterson<EMAIL_ADDRESS>wrote:

Heads up, I have a PR in progress adding multiple bus support to
MassTransit. If you are able to provide some feedback, feel free to look it
over. #1864 https://github.com/MassTransit/MassTransit/pull/1864
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/MassTransit/MassTransit/issues/1837#issuecomment-625831213,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABOGMU42RIME7YOVUODVFELRQQGLLANCNFSM4MQMD7JQ
.

https://masstransit-project.com/usage/containers/multibus.html
The latest develop packages have it all setup, should be released with 6.2.6.


present animation

hello, i want to show view like present full screen view animation
i tried  slide(axis: .vertical)) but animation not like present

You can create a custom transition like this one:
import SwiftUI
import NavigationTransitions

extension AnyNavigationTransition {
    static var sheet: Self {
        .init(Sheet())
    }
}

struct Sheet: NavigationTransition {
    var body: some NavigationTransition {

        OnPush {
            OnInsertion {
                Move(edge: .bottom)
            }
        }

        OnPop {
            OnRemoval {
                Move(edge: .bottom)
            }
        }
    }
}


terragrunt_fmt: Why does hook run once per dir and once per repository if the command is recursive anyways

Describe the bug
I am wondering why e.g. terragrunt_fmt is running once for every folder and once per repository, as the commands are recursive from the top-level folder anyways
How can we reproduce it?
Run per directory: https://github.com/antonbabenko/pre-commit-terraform/blob/master/hooks/terragrunt_fmt.sh#L31
Run per repository: https://github.com/antonbabenko/pre-commit-terraform/blob/master/hooks/terragrunt_fmt.sh#L51
The effect should be the same, but the runtime is much longer for repos with many directories.
Environment information
Darwin 2BY1-1GC5T 21.6.0 Darwin Kernel Version 21.6.0: Mon Aug 22 20:19:52 PDT 2022; root:xnu-8020.140.49~2/RELEASE_ARM64_T6000 arm64

Tools availability and versions:

repo: https://github.com/antonbabenko/pre-commit-terraform.git
rev: v1.76.0

We run pre-commit with "pre-commit run -a", I guess this is why it runs in every directory.


JobRestController: Forward response status code

Let's say we have server A and B, and the job is running
on B. One user want to see job output via A, and A forward
the request to B.
If user refresh the page in browser, browser add
If-Modified-Since header to the request. Server A forward the header
to B and B will return 304, as the file is not changed since. But
user will see 200 and empty content because A set the status.
In order to let browser display cached file content, we can let
server A forward 304 to user.

Coverage remained the same at 88.508% when pulling 79d78cbf2b345cb76656b3563aa524b014e766aa on z1000:master into caca8e7547f9a0ebb4b42ee113d2147af57fddc3 on Netflix:master.


383 issues

The 383 field is pretty specific to music cataloging; the shape used by BIBFRAME is significantly different from the MLA specifications.
For exampe: https://lccn.loc.gov/2020564285/marcxml (ocn 923157573)
<datafield ind1=" " ind2=" " tag="383">
<subfield code="c">H. 658</subfield>
<subfield code="d">Helm</subfield>
<subfield code="2">mlati</subfield>
</datafield>
<datafield ind1=" " ind2=" " tag="383">
<subfield code="c">H. 659</subfield>
<subfield code="d">Helm</subfield>
<subfield code="2">mlati</subfield>
</datafield>
<datafield ind1=" " ind2=" " tag="383">
<subfield code="c">H. 660</subfield>
<subfield code="d">Helm</subfield>
<subfield code="2">mlati</subfield>
</datafield>
<datafield ind1=" " ind2=" " tag="383">
<subfield code="c">H. 661</subfield>
<subfield code="d">Helm</subfield>
<subfield code="2">mlati</subfield>
</datafield>
<datafield ind1=" " ind2=" " tag="383">
<subfield code="c">H. 662</subfield>
<subfield code="d">Helm</subfield>
<subfield code="2">mlati</subfield>
</datafield>

CPE Bach ("Helm" in mlati), is converted into repeated Music Thematic Numbers with the 383$cd concatenated and no $2.
https://id.loc.gov/resources/works/23417108
Music Thematic Number
H. 658 Helm
Music Thematic Number
H. 659 Helm
Music Thematic Number
H. 660 Helm
Music Thematic Number
H. 661 Helm
Music Thematic Number
H. 662 Helm

Converting that back to MARC, you get this:
    <marc:datafield tag="383" ind1=" " ind2=" ">
        <marc:subfield code="c">H. 658 Helm</marc:subfield>
        <marc:subfield code="c">H. 659 Helm</marc:subfield>
        <marc:subfield code="c">H. 660 Helm</marc:subfield>
        <marc:subfield code="c">H. 661 Helm</marc:subfield>
        <marc:subfield code="c">H. 662 Helm</marc:subfield>
    </marc:datafield>

But it could be something like this (or like the original):
<marc:datafield tag="383" ind1=" " ind2=" ">
    <marc:subfield code="c">H. 658</marc:subfield>
    <marc:subfield code="c">H. 659</marc:subfield>
    <marc:subfield code="c">H. 660</marc:subfield>
    <marc:subfield code="c">H. 661</marc:subfield>
    <marc:subfield code="c">H. 662</marc:subfield>
    <marc:subfield code="d">Helm</marc:subfield>
    <marc:subfield code="2">mlati</marc:subfield>
</marc:datafield>

Without some kind of new property/Class to hold the thematic numbering prob. this form is the only option.

Subfield e is not supported in m2bf2, and is very infrequently used in 383s in WC but it is in use.
e.g. https://lccn.loc.gov/2019564428/marcxml (which looks more like a mistake)

<datafield ind1=" " ind2=" " tag="383">
<subfield code="b">op. 39</subfield>
<subfield code="e">Pleyel</subfield>
</datafield>
<datafield ind1=" " ind2=" " tag="500">
<subfield code="a">"Pleyel took the liberty of extracting these twelve quartets from the collection of Boccherini's works in which he had acquired proprietary rights and publishing them, without any intimation to the reader of the true facts, with a single Opus number, although in relaity they were composed at various dates between 1780 and 1795 and are borrowed from various opera of Boccherini without any respect for chronological order."--Gérard.</subfield>
</datafield>

What are the $2s you have in your data?  'mlati,' obviously, but what are the others?  I ask in part because I can see a way to linked-data-ify the mlati codes but I don't know how many others of these are out there and the frequency of their use.
In any event, we can see a potential pathway here via PMO or treating this field as an Identifier.


Read conflicts from rpm package headers

Part of #508
Added methods to read conflicts from rpm package headers and corresponding tests.

@g4s8 thanks, corrected and answered


Error on Action Run

Hi,
Testing now your POC/Action.
Ran into Run failures with this message

[warn] Could not find config file at /github/workspace/config.yml
[development] Warning, this is the live theme on nostradamus.
[development] You have file names that will conflict with each other.
If you have files named [filename].js.liquid or [filename].scss.liquid,
they will be compiled to [filename].js and [filename].scss respectively
when they are uploaded to Shopify. Having both files uploaded to Shopify
will overwrite one or the other and cause unexpected behavior.
The files you will need to change are:
assets/theme.scss conflicts with assets/theme.scss.liquid
To fix this, you will need to ignore, rename or delete one or both of
the files.

What would you do? Do I have to remove frommy github files all .liquid file or maybe the contrary, remove all the .scss to only keep the scss.liquid files?

Solved: as a rookie on shopify I had downloaded form shopify then uploaded the Theme file but I had moved all files so there is a conflict between files with liquid and not ...compile stuff: removed the files without .liquid when conflict and it passed.

working great!


Updated Q

changes in Q

Q  updated  to a Python folder module
Q is easier to update it as a dotenv file for updates and docker file PORT changes
Q has Total time execution on run function now so it will show how long a query will take in Milliseconds
Q understands with the single_operator_parser function you can do single line Q statements
Q updated the unique_term function to add limit #39

single_operator_parser (renamed query) does not seem to parse if operator is not "=". see below
q = query('ResearchSubject.associated_project = "TCGA-OV" AND ResearchSubject.Diagnosis.age_at_diagnosis = 21550')

r = q.run()

print(r)

Getting results from database

Total execution time: 1231 ms

QueryID: f361c5b0-845b-4245-ac40-4b60f785fc5d
Query: SELECT v3.* FROM gdc-bq-sample.cda_mvp.v3 AS v3, UNNEST(ResearchSubject) AS _ResearchSubject, UNNEST(_ResearchSubject.Diagnosis) AS _Diagnosis WHERE ((_ResearchSubject.associated_project = 'TCGA-OV') AND (_Diagnosis.age_at_diagnosis = 21550))
Offset: 0
Count: 1
Total Row Count: 1
More pages: False

While similar query only switching the "=" to "<" brakes the search:
q = query('ResearchSubject.associated_project = "TCGA-OV" AND ResearchSubject.Diagnosis.age_at_diagnosis < 21550')

r = q.run()

print(r)

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-67-b6337f878c84> in <module>
----> 1 q = query('ResearchSubject.associated_project = "TCGA-OV" AND ResearchSubject.Diagnosis.age_at_diagnosis < 21550')
      2
      3 r = q.run()
      4
      5 print(r)

~/Desktop/test/cda-python/cdapython/utility.py in query(text)
     11
     12 def query(text: str) -> Q:
---> 13     return parser(text)
     14
     15

~/Desktop/test/cda-python/cdapython/Qparser.py in parser(text)
    171
    172 def parser(text):
--> 173     return lexer.parse(text)

~/opt/miniconda3/envs/cda/lib/python3.9/site-packages/tdparser/lexer.py in parse(self, text)
    163         tokens = self.lex(text)
    164         parser = Parser(tokens)
--> 165         return parser.parse()

~/opt/miniconda3/envs/cda/lib/python3.9/site-packages/tdparser/topdown.py in parse(self)
    212     def parse(self):
    213         """Parse the flow of tokens, and return their evaluation."""
--> 214         expr = self.expression()
    215         if not isinstance(self.current_token, EndToken):
    216             raise InvalidTokenError("Unconsumed trailing tokens.")

~/opt/miniconda3/envs/cda/lib/python3.9/site-packages/tdparser/topdown.py in expression(self, rbp)
    206             # than to the right of an expression.
    207             prev_token = self.consume()
--> 208             left = prev_token.led(left, context=self)
    209
    210         return left

~/Desktop/test/cda-python/cdapython/Qparser.py in led(self, left, context)
    125         # of same precedence
    126         right_side = context.expression(self.lbp)
--> 127         return left.And(right_side)
    128
    129

~/Desktop/test/cda-python/cdapython/Q.py in And(self, right)
    151
    152     def And(self, right: "Q") -> "Q":
--> 153         return Q(self.query, "AND", right.query)
    154
    155     def Or(self, right: "Q") -> "Q":

AttributeError: 'str' object has no attribute 'query'