enhancement add sleep 3s for schema change and rollup

Proposed changes
Sometime in regression test, the schema change or rollup finished but it may not be ready, so the regression test is not very stable.
I add sleep 3s after rollup or schema change finished to avoid failure.
Problem summary
Describe your changes.
Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

./run buildall

./run buildall


Fix error when uploading image (PrettyBlocksModel.php)

Fix error when uploading image.

When will this be released ?

It works fine, thanks to you @PubliAlex


upgrade lodash to 4.15.0

Do you normally bump up the package version with every change?

Nice, thanks! Yep I'll probably do a patch version bump for this.


[AJ-1138] Fix restore multi-replica bug

Problem: Cloning logic is currently:

On Initialization, check to see if we're already cloning.
If so, don't start in cloning mode, start regular mode.

Regular mode checks to see if default schema (destWorkspaceId) is created. If not, create it.
Continue with normal initialization.

If not, start cloning mode.

Cloning mode will request a backup, and restore if that's successful.
Part of restore is running the pg_dump, then changing the schema name from sourceWorkspaceId to destWorkspaceId
CONFLICT/SQL ERROR- can't change the name because destWorkspaceId schema was created by another replica not starting in clone mode!

Solution:
There are 2 ways to solve this, either have the other replicas wait until cloning is complete (not this PR and I don't recommend doing until cloning is Async). Or, drop the destWorkspaceId schema if it exists before renaming schema during restore.
TODO: figure out a test for this
Reminder:
PRs merged into main will not automatically generate a PR in https://github.com/broadinstitute/terra-helmfile to update the WDS image deployed to kubernetes - this action will need to be triggered manually by running the following github action: https://github.com/DataBiosphere/terra-workspace-data-service/actions/workflows/tag.yml. Dont forget to provide a Jira Id when triggering the manual action, if no Jira ID is provided the action will not fully succeed.
After you manually trigger the github action (and it completes with no errors), you must go to the terra-helmfile repo and verify that this generated a PR that merged successfully.
The terra-helmfile PR merge will then generate a PR in leonardo.  This will automerge if all tests pass, but if jenkins tests fail it will not; be sure to watch it to ensure it merges. To trigger jenkins retest simply comment on PR with "jenkins retest".

Would replicas potentially also make multiple requests to the source workspace to make a backup?  Is that something we're not worrying about since it won't hurt anything?

Would replicas potentially also make multiple requests to the source workspace to make a backup? Is that something we're not worrying about since it won't hurt anything?

This scenario shouldn't happen. We create an entry in the clone db once cloning is kicked off and part of "should we initiate cloning?" is to check that db for the source workspace id to see if there's already a clone in progress.
That said, in the event that does happen (race condition?), I think my change would actually fix any potential issues.
The clone entry is made with a different random tracking ID and we track a particular clone with that random ID, not with the source workspace ID. Both replicas would request the pg_dump, files would get uploaded to the container with a unique names, then each restore would take each file and restore. My change would dump the first clone (schema) in favor of the second.

Locking is hard.
This PR all boils down to "when starting multiple replicas for a clone, make sure only one actually does the cloning work". We've implemented our own version of this by checking cloneDao.cloneExistsForWorkspace and instanceDao.instanceSchemaExists; this PR adds our own custom logic to handle concurrency cases where one replica started in regular mode but the other started in clone mode.
I am thinking we should not be building our own custom logic for this. We could rely on Spring to implement a distributed lock: https://docs.spring.io/spring-integration/reference/distributed-locks.html; if starting with a SOURCE_WORKSPACE_ID env var present, attempt to get the lock. If you don't get the lock, do nothing; if you do get the lock, then you can be sure you're the only node performing a clone, and the only logic you have to implement is checking if a clone already ran at some point in the past.
Another possible implementation is using ShedLock, as TDR did in https://github.com/DataBiosphere/jade-data-repo/pull/1421, but that's for scheduled tasks and cloning is a one-time task, so we'd be jumping through some hoops.
Quartz could also help us here, as it allows run-once tasks and includes support for only one replica to run the task.

Closing for now, https://github.com/DataBiosphere/terra-workspace-data-service/pull/341 to replace


droppable: false issue

In some cases I would like to use component only for sorting nodes on one level.
So I am enabling drag and drop and adding droppable: false to every node.
However in that case I can actually drop another node. Please see example:
https://jsfiddle.net/h1z2n05k/22/

I have noticed this as well. Nodes are disappearing when dropped on nodes that have dropable: false applied to them.  This is demonstrated in the fiddle above when trying to drop a node onto the "(NOT DROPABLE)" node. Is this as intended?

Please check a new version

Nicely done


CONFIRM WITH MICHAEL: applications list (with current year implementation) after the New Year would be empty.

@dreamfall I've added to it to not forget about.

Move to spreadsheet


Update Package.json

Because proccess.env.PORT is undefined in webpack-dev-server. Maybe use other way to specific port rather than put it three places like this :p

Thanks!

Sorry, but it's has been fixed in #983


Feature Request: Enable Command Chaining for "winget show" and "winget install"

Description of the new feature / enhancement
Description:
I’d like to propose an enhancement to the Winget-CLI to support command chaining, particularly for winget show and winget install. I'm not exactly sure about the technical limitations of such a feature, but it's something I wished was a feature for quite a while now!
Currently, if you want to query or install multiple packages, you need to run separate commands for each package, which can quickly become tedious—especially when exploring for new tools, checking download locations, or checking versions for example. By enabling chaining, Winget could take a significant step toward improving the user experience for both new and experienced users, aligning more in terms of functionality set by package managers like Homebrew and apt-get.
This feature would allow users to execute commands like the following:
winget show GitHub.cli GitHub.GitHubDesktop GitTools.GitVersion StefHeyenrath.GitHubReleaseNotes
This would display information about all specified packages in one output, saving users from having to run separate commands for each package.

Similarly, chaining could also extend to winget install:
winget install GitHub.cli GitHub.GitHubDesktop GitTools.GitVersion StefHeyenrath.GitHubReleaseNotes
This would install multiple applications in a single command.
Benefits of Adding winget show Chaining
Improved Package Discovery:
Many package names may not be self-explanatory. For instance, a user might not know whether GitTools.GitVersion is related to git, GitHub, or both. By chaining winget show, users can query multiple packages in a single command to better understand what they are installing.
Streamlined User Experience:
Reduces the need for repetitive commands when researching packages or confirming package details before installation.
Combines efficiency with clarity, making winget a more effective tool for package management.
Ideal for New and Advanced Users Alike:
New Users: Helps users transitioning to Windows from macOS and Linux package managers understand packages faster.
Advanced Users: Enables faster workflows by combining queries into a single command.
Pre-installation Transparency:
Users can see descriptions, version details, and dependencies for multiple packages at once, reducing errors and improving confidence in installations.
Extending Command Chaining to winget install
While the winget show chaining is the primary focus of this request, adding similar functionality for winget install would also:
- Simplify Onboarding: Users setting up a new machine could install multiple applications with one command, saving time.
- Boost Adoption from macOS and Linux Users: Homebrew and Linux package managers like apt-get allow similar functionality, making Windows more attractive to cross-platform developers.
- Support for Automation: Chaining reduces complexity in batch scripts and automation pipelines, benefiting developers and IT professionals alike.
Why This Matters
With the rise of AI development and the need for cross-platform tools, Microsoft has an opportunity to attract macOS and Linux users to Windows. Features like this improve usability and align with what developers expect from modern package managers, ensuring Windows remains competitive as a development platform.
Proposed technical implementation details
Implementation Suggestion

Allow winget show to accept multiple package IDs as arguments and display their details in sequential order.
Extend winget install chaining to handle multiple packages in one command, processing them sequentially.
Ensure robust error handling for both commands so failures in one query or installation do not interrupt the rest.
Provide clear documentation and examples to educate users on this feature.

Technical Implementation Overview
To implement command chaining for winget show and winget install using the Winget COM API:
Argument Parsing:
Extend the Winget CLI to accept multiple package IDs or names as arguments for both commands (e.g., winget show Package1 Package2 or winget install Package1 Package2).
Batch Query and Installation:
For winget show: Invoke the FindPackages API sequentially for each package, or extend the COM API to support batch queries to minimize overhead.
For winget install: Use the InstallPackage method in sequence for multiple packages, ensuring robust error handling to skip failed installations without interrupting the process.
Enhanced Output and Error Handling:
Aggregate and format query results or installation progress for multiple packages into a clear, user-friendly output.
Gracefully handle invalid package names, query failures, or installation errors by logging and continuing with subsequent packages.
API Enhancements:
Introduce new batch methods like FindPackagesBatch or InstallPackagesBatch to allow the COM API to handle multiple packages in a single call, optimizing performance.
Backward Compatibility:
Ensure single-package queries and installations work seamlessly alongside the new multi-package chaining functionality. This approach streamlines workflows, reduces repetitive commands, and aligns Winget with the capabilities of other modern package managers like Homebrew and apt-get.

@davidldennison - you can already install multiple packages in a single install command just like you described

@davidldennison - you can already install multiple packages in a single install command similar to how you described

@Trenly  Oh sweet! I didn't know that as it's not in the documentation:

https://github.com/MicrosoftDocs/windows-dev-docs/blob/docs/hub/package-manager/winget/install.md
https://learn.microsoft.com/en-us/windows/package-manager/winget/install

Is there somewhere else I can find docs about this capability? Thanks in advance!

Is there somewhere else I can find docs about this capability? Thanks in advance!

I don’t know that there is any formal documentation, but here are the main items found just by searching for is:Closed Multiple in:Title in the issues search

Main request - https://github.com/microsoft/winget-cli/issues/219
Implementation - https://github.com/microsoft/winget-cli/pull/2861
Related - https://github.com/microsoft/winget-cli/issues/2586
Related - https://github.com/microsoft/winget-cli/issues/2479
Related - https://github.com/microsoft/winget-cli/issues/2478

FWIW, that functionality is available for install, uninstall and upgrade. It's pretty subtle and should be documented better, but you can tell where it's supported because when you use --help it shows elipsis for the query argument:
usage: winget uninstall [[-q] <query>...] [<options>]

FWIW, that functionality is available for install, uninstall and upgrade. It's pretty subtle and should be documented better, but you can tell where it's supported because when you use --help it shows elipsis for the query argument: usage: winget uninstall [[-q] <query>...] [<options>]

WHATTTTTTT 🤯 @florelis that is such a golden nugget about the ellipsis!! Appreciate it! 🚀


1.1 Net transfers to developing countries

A chart focused on showing the trend of net flows to developing countries in the last two decades.
This chart is an attempt to visualise this data, designed to explore what's happened in different countries/regions.
The objective of this chart is to show what's happened, rather than allow for exploration. Hence we should think about annotations, or even scrollytelling, if it helps to make the point eloquently. If we can enable exploration, that's a nice, secondary goal.
This chart will appear towards the beginning of the piece, in a section that looks at trends. It is trying to make the point that

Net transfers to developing countries have been in decline over the past few years, and are at the lowest level for the past 2 decades. Lower middle and middle income countries with market access hit hardest, as private debt service payments have soared.

Preliminary idea. Using multiples rather than $ values to show what has happened. We can probably include a filter to select income levels and countries. I would prefer showing a single line rather than multiple because values can fluctuate a significant amount.
@jm-rivera @Mattie-P

Thank you Luca. Overall:

It's a clearer picture with just the net flows. However, I'm not sure the multiples are adding that much value, when the line would be the same shape just showing the dollar amount, and it would allow people to 'see' the actual amount straightaway.
The annotation is helpful to indicator more inflows. I wonder if there should be another one at the peak saying "In 2012, inflows exceeded outflows by $xx billion", and another annotation at 2022 saying "In 2022, inflows were almost equal to outflows".

On wording:

this is not 'just' development finance, as it is also non-concessional lending.
unless very loosely defined, this is not a group of EMDEs. I'd just call it developing countries since a) it's not an acronym, and b) we're looking at LICs and MICs (with data).

@Mattie-P what do you think?
Also @sharcourt14 in case you want to weight in on multiples vs. money or generally on the chart

Hi both. Overall:

I am not a huge fan of the multiples scale. I think for the first, top line figure, the reader just wants to know the scale of the issue i.e. net transfers were once hundreds of billions, and now they are near 0 globally. This way, we are giving the reader monetary values they can use for headline stats, or comparison to the aid figures they have in their head, etc.
I agree with the need for simplicity to drill home quite a complex point. I think the use of just net transfers does this well. I do wonder whether we could include options to add in inflows and outflows (at the fully aggregated level) for the user to interact with if they want to understand how this has changed? They could be formatted as a fairly transparent red (outflows) and blue (inflows) to not add too much to the visual of the graph, but understand this is still unneccessary complexity.

For discussion, given that are arguement is for increased concessional funding and grants, I worry that this graph is maybe missing the point of the problem? That funding is more for LICs and LMICs, so the context of net transfers is important:  Private borrowing (especially private bonds) has increased substantially over 2010 - 2021. 'Private - bonds' alone go from 22% of inflows in 2009 to an average of 44% over 2017-2021. There is a significant decrease in 2022 (from $236b to $94b inflows), which drives a lot of net flows drop, but China fell from $90b of private bond inflows in 2021 to $24b in 2022. For Russia, who has no inflows data in 2022 (due to Ukraine), this drop is from $12bn to $0bn.  Over this same period, China increased its outflows due to private bonds from $36b to $60b, and Russia also paid back an additional $7b in 2022. So I wonder if the message of this first graph is hiding the story? It looks like there is a discussion on Slack on how to proceed, but I think we should have these details in mind when building any aggregate data graphs. Would be great to hear your thoughts to see if I am well off the mark here/missing the point of the paper.

This is another option. Potentially we could include both- start with the overall and breakdown by type in this faceted chart. But The text would need to integrate the charts @sharcourt14
Please ignore styling etc it will be fixed.
@jm-rivera @Mattie-P

Sorry I have no idea how to properly comment on this. I think this is good, but again I think it's necessary to have a separate line graph then for China (and then exclude China from the other bilateral or privte flows) because China and private flows are the key drivers here so we need to highlight them both in all charts I think
Sara Harcourt | +44 7765 241737
From: Luca Picci @.>
Sent: Thursday, April 11, 2024 10:08 AM
To: ONEcampaign/net_flows @.>
Cc: Sara Harcourt @.>; Mention @.>
Subject: Re: [ONEcampaign/net_flows] 1.1 Net transfers to developing countries (Issue #6)
This is another option. Potentially we could include both- start with the overall and breakdown by type in this faceted chart. But The text would need to integrate the charts @sharcourt14https://github.com/sharcourt14
Please ignore styling etc it will be fixed.
@jm-riverahttps://github.com/jm-rivera @Mattie-Phttps://github.com/Mattie-P
image.png (view on web)https://github.com/ONEcampaign/net_flows/assets/56567716/6c9f175f-280c-41c7-bf3e-9c8364ee53fb

Reply to this email directly, view it on GitHubhttps://github.com/ONEcampaign/net_flows/issues/6#issuecomment-2049251158, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A32SOJJAWUPPUHMPUIKBTT3Y4ZHFNAVCNFSM6AAAAABF4VAXDWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBZGI2TCMJVHA.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Maybe we break it down as "Bilateral (excl. China)" "Multilateral" "Private (excl. China)" "China (bilateral + private)"?

Like this?

Yes, this is great thanks! I presume instead of world it will say all EMDEs or something? and then we can break down by income group or region? That would be helpful

Actually @lpicci96 and @jm-rivera just realising this is showing net transfers, when actually in the text I'm going to be talking about inflows decreasing, so I think it would be clearer to just show the inflows themselves, rather than net. And finally could we not just have all the lines on one graph in different colors since there are only 4 of them?

This will be the final chart for 1.1
https://public.flourish.studio/visualisation/17517277/

Closing since we have a final version of the chart (connected to the data)


Add value "component" to type enum list  CR 10-21

Description of the change: (free-text)
Add the value "component" to the list of available values under "type".
Rationale for the change:
TT has added it to the TTNINJS with the description: "$$TT: TT added 'component' for items with, for example, embed codes for toolbox deliveries."

Voted into 1.2 on oct 16 2019


Get usage stats for versions by site

Repeating sections will only be supported by some version 1.2.x and above. We still have a lot of users who pin previous versions (as discussed in https://github.com/dobtco/screendoor-v2/issues/4725)
Figure out who these users are so we can come up with a communication strategy
Work Log

Enabled request logging for the formrenderer-cloudfront distro. Link to log bucket
Parsed papertrail logs
uploaded results to google docs

TODO

[ ] Analyze cloudfront logs
[ ] Decide whether we should leave logging enabled for this distribution in the long run

Unfortunately cloudfront doesn't expose the exact information we need to do this by default.
It shows you top referrers and top objects separately, but not top referrers by object. The referrer lets us determine the user (its the site that made the request), and the object is the version they requested.
I've enabled logging for our formrenderer-base cloudfront distribution. This logs every single request for the formrenderer assets, including referrer and object, and dumps them in s3 roughly every hour. We should start getting these in the next 4 hours.
I'll analyze the log files in a few hours to make sure we're getting the info we need. Hopefully we can start identifying requests to old versions right away, at least for the frequently requested ones. We'll probably need to accumulate several days of logs for an in depth analysis though.

Turns out we can actually almost exactly what we need by searching [FormRenderer API] in papertrail. This reports the url of the form and the formrenderer version.
This doesn't tell us if the embed is requesting 0 or 0.19.0 (because the 0 object in cloudfront probably returns version 0.19.0, but it at least gets us close. We can then cross reference the cloudfront logs against the papertrail logs.
Papertrail stores 2 weeks worth of logs.

Here's a spreadsheet of sites that made API requests using formrenderer in the last two weeks.
Notes:

this filters out all requests from a forms.fm site. forms.fm always includes latest formrenderer
Many/most of the requests for higher versions are likely pinned to 1

1.2.4 was released 10/30, so requests for versions 1.2.4 and above are likely to come from requests to the autoupdating 1 version.

It'l be easier to get conclusive information on who is pinning what when I have a few days of cloudfront logs to analyze but this is enough to get started.

@kariannemah, let me know if there is some alternate format that would be easier for you to use. Also, if you need to see the specific url (so you can figure out which project is on what version), I can get you that info too. I omitted it from the aggregation because otherwise the list gets huge.

Thanks for pulling this together. Why are some requests "unknown"?

I haven't dug into that yet.
We log the requests as unknown if the X-FR-Version or X-FR-URL request headers are not present.
Could be that the formrenderer clients are so old they don't send that data.
We started sending those headers in 0.6.0, around 3 years ago. I should be able to track down those requests once I can go over the cloudfront logs.

I just investigated one request that returns "unknown" versions -
its for this form - https://www.propublica.org/getinvolved/have-you-been-harmed-in-a-medical-facility-share-your-story
They're pulling 0.3.10!

putting this on hold for a few days, will analyze cloudfront logs then

Leaving aside the unknown requests for now, the good news is that there aren't that many customers pinned to 1.0.0 or below to reach out to:

Thought Catalog
State Department
ProPublica. wnyc.org, AL.com, pilotonline.com, and hamptonroads.com are embedding ProPublica's forms as part of a reporting partnership. I think it will be suffice to just email Terry.
TechCongress
IMCO / #3de3: Both tresdetres.mx and 3de3.mx are theirs.
Arizona Republic (azcentral.com)
Texas Tribune
GovLab
DataSF (City and County of San Francisco)
Chattahoochee Hills Charter School (Clay's school)

Inactive forms:

LA Times (graphics.latimes.com): The project's now unlisted.
Everytown: Users haven't logged on in over a year.
Global Innovation Exchange: The project is unlisted and the account churned a while ago.

Victor, can you grab the specific URLs for...

http://static.azcentral.com/
https://www.texastribune.org/ (I think the request for 0.19.0 is for an old ProPublica partnership form.)
https://media.wnyc.org/
http://desafios.sanpedro.gob.mx (My guess is this is related to #3de3.)
http://govlabacademy.org/

This issue was moved to dobtco/dobt#2330

Specific URLs
http://static.azcentral.com/
url=http://static.azcentral.com/child-safety-form/ version=1.1.4
url=http://static.azcentral.com/child-safety-form/ version=1.2.7
url=http://static.azcentral.com/election-survey/ version=0.19.0
url=http://static.azcentral.com/school-bus-safety/ version=0.19.0
url=http://static.azcentral.com/teacher-shortage-arizona/ version=1.1.4
url=http://static.azcentral.com/teacher-shortage-arizona/ version=1.2.7

https://www.texastribune.org/
https://media.wnyc.org/
http://desafios.sanpedro.gob.mx
http://govlabacademy.org/


Should router close the connection automatically, when aborted?

When context.Abort() has been called in handler, should it set the "keepAlive" of context.Writer to false?

When  a context of handler aborted, it can't abort again. So we can close the "connection".


tests: build_all: sensor: fix i2c duplicate address

Fix address for hs300x driver in dts file for test.

Oh, yeah sure, totally missed that. Good that you noticed it. It's changed now.


near future construction reports 1.2.1 but it is not listed in CKAN for 1.2.1

It'll appear again when B9PartSwitch is updated


(fix/issue-6237) Add check to see if connected to the internet

Signed-off-by: Vibhav Bobade<EMAIL_ADDRESS>
What this PR does / why we need it:
Fixes #6237
If applicable:

[ ] this PR contains documentation
[ ] this PR contains unit tests
[ ] this PR has been tested for backwards compatibility

cc @mattfarina @thomastaylor312 @adamreese

Let me know if I need to make any changes.
Output of the command looks like the following when not connected to the internet.
➜  helm git:(fix/6237) ✗ helm list --debug
helm.go:132: [debug] Please connect to the Internet.
NAME    NAMESPACE       REVISION

cc @jdolitsky

Hi thanks for looking into this. I think that there is maybe a more elegant
way to check connection via the kube client. I think connected to the
“internet” is misstated - should be connected to “cluster” (think minikube
for example, no internet connection required)
On Mon, Aug 19, 2019 at 2:57 PM Vibhav Bobade<EMAIL_ADDRESS>wrote:

cc @jdolitsky https://github.com/jdolitsky
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/helm/helm/pull/6255?email_source=notifications&email_token=AADACFTBZDF6SCK2S4LKZTDQFMJLNA5CNFSM4ING2W7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4UNKQQ#issuecomment-522769730,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AADACFTCKK2A2DA4UHFUIRLQFMJLNANCNFSM4ING2W7A
.

@jdolitsky That makes more sense. I will update the PR accordingly.

Cool. My guess is there is an ignored error somewhere? (Sry away from
computer)
On Mon, Aug 19, 2019 at 3:18 PM Vibhav Bobade<EMAIL_ADDRESS>wrote:

@jdolitsky https://github.com/jdolitsky That makes more sense. I will
update the PR accordingly.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/helm/helm/pull/6255?email_source=notifications&email_token=AADACFVTFBHUMP4PAODAZ2LQFML4VA5CNFSM4ING2W7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4UOX4Y#issuecomment-522775539,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AADACFXR2KCEMI67TNESIXDQFML4VANCNFSM4ING2W7A
.

@jdolitsky I have updated the PR and this time I am checking if the Kubernetes client is reachable. DO let me know if I need ot make any changes.

Test coverage is failing here, on my local system it works. Any idea why this might be happening @jdolitsky

@jdolitsky  @mattfarina I have made the necessary changes, do check it out

@waveywaves This is really nice!  I think helm test run would also benefit from this check:
> helm test run hello
Error: query: failed to query with labels:
Get https://mycluster:6443/api/v1/namespaces/default/secrets?labelSelector=name%3Dhello%2Cowner%3Dhelm:
Get https://myopenid-configuration: dial tcp: lookup mykubehost: no such host


Issues in identification of genes/isoforms based on the reference GTF in Talon:

I used the Talon in Bioconda. I ran the Talon using blank GTF as reference for de novo genes identification. It was successful. However, when I used the output of Talon run-1 as input GTF reference, for identifying the genes using subreads data, it was keeping giving me the errors during 'talon_abundance' and 'talon_create_GTF' steps. I have used variety of names for -a and -g, but could not able to succeed. Could you help me to solve this issue?

Hi,
When you initialize a TALON database with a blank GTF, you essentially get an empty database, which leads to problems downstream as you noticed because no genome build or annotation names got added. What I would recommend to get around this is to initialize with a dummy GTF like the one I've uploaded here- even having one mock GTF entry in the file means that the annotation name and build will be added to the database, where the downstream scripts should be able to find them. It is possible you will hit some other unusual behaviors since we didn't develop TALON for de novo annotation from the outset, but I'm happy to answer more questions as they come up.
Best,
Dana

Hi,
Thank you for your response. I have used an actual GTF (output of first
Talon run) as input and I am doing a new run with isoseq data for novel
transcript discovery. I had used the test gtf that you had shared for the
previous run. I am happy to share the data if you wants to look at them.
Best,
Arun
On Wed, Mar 25, 2020 at 9:52 AM Dana Wyman<EMAIL_ADDRESS>wrote:

Hi,
When you initialize a TALON database with a blank GTF, you essentially get
an empty database, which leads to problems downstream as you noticed
because no genome build or annotation names got added. What I would
recommend to get around this is to initialize with a dummy GTF like the one
I've uploaded here
https://github.com/mortazavilab/TALON/blob/master/src/talon/blank.gtf-
even having one mock GTF entry in the file means that the annotation name
and build will be added to the database, where the downstream scripts
should be able to find them. It is possible you will hit some other unusual
behaviors since we didn't develop TALON for de novo annotation from the
outset, but I'm happy to answer more questions as they come up.
Best,
Dana
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mortazavilab/TALON/issues/55#issuecomment-603956845,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALXZBMG3N5W4UGMHT4FREB3RJIZEJANCNFSM4LTDQMIA
.

Hi Arun,
I'd be happy to take a look. You can send the GTF to me at<EMAIL_ADDRESS>Best,
Dana


chore: Add faq about missing config postgres in the first repo build

Problem
I forked the project and in my local repo, I wasn't able to compile the project and in my search, I found the solution in neon forum.
Summary of changes
Just incorporate the proposal in the readme, to support new users if they are faced with the same issue.
The issue and solution can be found here
https://community.neon.tech/t/problem-installing-neon-locally-on-fedora/258
Problem
Summary of changes
Checklist before requesting a review

[x] I have performed a self-review of my code.
[ ] If it is a core feature, I have added thorough tests.
[ ] Do we need to implement analytics? if so did you add the relevant metrics to the dashboard?
[ ] If this PR requires public announcement, mark it with /release-notes label and add several sentences in this section.

Checklist before merging

[ ] Do not forget to reformat commit message to not include the above checklist

@fluz thank you for your contribution

@fluz are you planning to continue on this one?

Yes @shanyp, I plan to implement the suggestion from @koivunej and add a message in the makefile process. But I'm a little overloaded this week. But I will propose a new version of this PR in this weekend :-)

Great ! thanks for contributing @fluz

@shanyp and @koivunej please take a look again in my PR 🙏🏾  :-)

Thanks a lot for this @fluz!


Rework HubConnectionBuilder

Specifically we want to log unknown message types
Also, we can consider adding a service collection as the backend for the HubConnectionBuilder to have DI on the client.
Some context: https://github.com/aspnet/SignalR/pull/1666#discussion_r176460811

If we do this right, we could end up with the same extension methods by having the new builder implement ISignalRBuilder (or something like that)


Create axios two axios instance

Create two axios instances public and private instance for data fetching
in private instance set withCredentials to true, and credentials:"include"

Create two axios instances public and private instance for data fetching in private instance set withCredentials to true, and credentials:"include"

AK, why do we need two axios instances? Can you elaborate on this? Also, have you taken a look at this file?

1- It is more advantageous to use Axios with Axios. because it creates a new instance of Axios with a custom config.
2- Axios does more with less code. Unlike the Fetch API, you only need one .then() callback to access your requested JSON data.


 For Extension

Is There Any Way That I Can Implement tag in AndroidManifest.xml Using Aix , If Yes Then How Can I Add It And If Not Then Can AppInventor Make It Possible Because It Really Need To Be Added🙂

https://github.com/mit-cml/appinventor-sources/pull/2191


How to convert sfb to gltf for use with your library

I have the sfb model used in earlier versions of sceneform. How do I convert it to gltf to be used with your library?

No time to loose for not answer searched questions.


#516 archives

Fixes issues raised by @ogrosko in #516

More tests for diff't archive types
Args now properly accepted

Coverage increased (+1.66%) to 74.5% when pulling 4f5b5919590f8559b0b980ce015b0fe431c6b274 on 516_archives into e1320495e207976e661d55ca0dffc093cf4c668c on master.

Coverage increased (+1.66%) to 74.5% when pulling 4f5b5919590f8559b0b980ce015b0fe431c6b274 on 516_archives into e1320495e207976e661d55ca0dffc093cf4c668c on master.

Coverage increased (+1.66%) to 74.5% when pulling 4f5b5919590f8559b0b980ce015b0fe431c6b274 on 516_archives into e1320495e207976e661d55ca0dffc093cf4c668c on master.

Coverage increased (+1.66%) to 74.5% when pulling 4f5b5919590f8559b0b980ce015b0fe431c6b274 on 516_archives into e1320495e207976e661d55ca0dffc093cf4c668c on master.

Coverage increased (+1.66%) to 74.5% when pulling 4f5b5919590f8559b0b980ce015b0fe431c6b274 on 516_archives into e1320495e207976e661d55ca0dffc093cf4c668c on master.

Coverage increased (+1.66%) to 74.5% when pulling 4f5b5919590f8559b0b980ce015b0fe431c6b274 on 516_archives into e1320495e207976e661d55ca0dffc093cf4c668c on master.

Coverage increased (+1.66%) to 74.5% when pulling 4f5b5919590f8559b0b980ce015b0fe431c6b274 on 516_archives into e1320495e207976e661d55ca0dffc093cf4c668c on master.

Coverage increased (+1.66%) to 74.5% when pulling dfa218424ca21be8564717b7b31c80a2c19da1a8 on 516_archives into e1320495e207976e661d55ca0dffc093cf4c668c on master.

Coverage increased (+1.66%) to 74.5% when pulling dfa218424ca21be8564717b7b31c80a2c19da1a8 on 516_archives into e1320495e207976e661d55ca0dffc093cf4c668c on master.

Coverage increased (+1.66%) to 74.5% when pulling dfa218424ca21be8564717b7b31c80a2c19da1a8 on 516_archives into e1320495e207976e661d55ca0dffc093cf4c668c on master.

Coverage increased (+3.18%) to 76.01% when pulling 5f66b8b52289f2a16d28a2c2010cae0e33188b09 on 516_archives into e1320495e207976e661d55ca0dffc093cf4c668c on master.

Coverage increased (+3.18%) to 76.01% when pulling 5f66b8b52289f2a16d28a2c2010cae0e33188b09 on 516_archives into e1320495e207976e661d55ca0dffc093cf4c668c on master.

Coverage increased (+3.18%) to 76.01% when pulling 5f66b8b52289f2a16d28a2c2010cae0e33188b09 on 516_archives into e1320495e207976e661d55ca0dffc093cf4c668c on master.

Coverage increased (+3.18%) to 76.01% when pulling 5f66b8b52289f2a16d28a2c2010cae0e33188b09 on 516_archives into e1320495e207976e661d55ca0dffc093cf4c668c on master.

Coverage increased (+3.18%) to 76.01% when pulling 5f66b8b52289f2a16d28a2c2010cae0e33188b09 on 516_archives into e1320495e207976e661d55ca0dffc093cf4c668c on master.

Coverage increased (+3.18%) to 76.01% when pulling 5f66b8b52289f2a16d28a2c2010cae0e33188b09 on 516_archives into e1320495e207976e661d55ca0dffc093cf4c668c on master.


Manually compiled code does not execute with -UI option

I seem to have misplaced the original TempSafe.cfg file, so I have no reference for what the correct format is and unfortunately the spaghetti code does not make it obvious.

[ ] Write a working TempSafe.cfg file
[x] Locate where memory is not being allocated (I appear to have misused the std::vector in my infancy so it's not allocated)
[x] Get ncurses UI working again

Fixed code to compile in 6e54b5a76fc7613dd8f154386bcaad593e5a6315.
Since NCurses was still not working and I didn't want to have to unravel the mess I'd left from my last commit, I rewrote most of the NCurses UI.  Current version is in commit bb068a50650c4a0d02f00284622b71e23899bf53 which can give basic data, however it is not configurable.  This will be added in the future.


Better exception messages instead of warnings

See https://github.com/amphp/artax/issues/90.

Fixed via #42.


Exclude bundle.*.js and stats.json with .gitignore

Added compiled bundle.*.js and local stats.json files to .gignore to ensure they are not accidentally committed, if present.

Thanks @sahat

removed stats.json and generalized the wildcard for bundles to handle with/without chunkhash.

Looks good!


Not sure how to use textures from Sketchfab FBX

I tried to use https://sketchfab.com/3d-models/phoenix-bird-844ba0cf144a413ea92c779f18912042 within my game, but the resulting mesh was untextured:

It's likely that we need to specify where the model pipeline should find textures (if it's not embedded within the fbx itself). This may be a documentation issue.

It's possible to manually set the materials/textures like this: https://ambientrun.github.io/Ambient/reference/asset_pipeline.html#a-more-complex-model-example But that can probably be made more ergonomic (need to run build and then look in the build folder to find out what the material names are).
Might also be possible to automatically find the textures if the fbx file contains textures with relative paths; can't remember if we implemented this or not.

Yeah, I'm guessing that it's a relative path. Having a quick look at model_import suggests that we don't do this; we'll probably need to implement this at some point. I'll update the issue.


Number of CAPTCHA retries

Larger jobs fail for me because the captcha provider is not able to guess the CAPTCHA within the 3 retries - can I increase this number myself? If not, can it be made part of the configuration?

How many captcha provider do you specify and which one ? Consider creating an account on all captcha providers supported by serposcope.
You can increase Fetch retries in Google settings it should lead to the same behavior.

I have two captcha providers specified; increasing fetch retries still has the whole job fail at three incorrect captcha solutions. Is there another fix do have the jobs complete successfully more reliably?

Here are some logs:
[2017-04-27 12:33:56,647] [google-0] INFO  c.s.s.t.g.GoogleTaskRunnable - search "livescore fussball" | try 1 | total search done : 173/304
[2017-04-27 12:33:56,647] [google-0] DEBUG c.s.s.s.g.s.GoogleScraper - GET https://www.google.de/search?q=livescore+fussball&uule=w+CAIQICIHZ2VybWFueQ==&num=100 via proxy:direct try 1
[2017-04-27 12:33:57,189] [google-0] INFO  c.s.s.s.g.s.GoogleScraper - GOT status=[302] exception=[none]
[2017-04-27 12:33:57,767] [google-0] INFO  c.s.s.s.g.s.GoogleScraper - GOT[refetch] status=[302] exception=[none]
[2017-04-27 12:33:57,767] [google-0] DEBUG c.s.s.s.g.s.GoogleScraper - captcha form detected via proxy:direct
[2017-04-27 12:33:57,867] [google-0] DEBUG c.s.s.s.g.s.GoogleScraper - noscript form detected, trying with captcha image
[2017-04-27 12:33:57,923] [google-0] INFO  c.s.s.s.c.s.RandomCaptchaSolver - trying decaptcher
[2017-04-27 12:34:10,036] [google-0] DEBUG c.s.s.s.g.s.GoogleScraper - got captcha response ingoarh in 12 seconds from decaptcher
[2017-04-27 12:34:10,083] [google-0] DEBUG c.s.s.s.g.s.GoogleScraper - reporting incorrect captcha (incorrect response = ingoarh)
[2017-04-27 12:34:10,136] [google-0] DEBUG c.s.s.s.g.s.GoogleScraper - GET https://www.google.de/search?q=livescore+fussball&uule=w+CAIQICIHZ2VybWFueQ==&num=100 via proxy:direct try 2
[2017-04-27 12:34:10,576] [google-0] INFO  c.s.s.s.g.s.GoogleScraper - GOT status=[302] exception=[none]
[2017-04-27 12:34:10,944] [google-0] INFO  c.s.s.s.g.s.GoogleScraper - GOT[refetch] status=[302] exception=[none]
[2017-04-27 12:34:10,944] [google-0] DEBUG c.s.s.s.g.s.GoogleScraper - captcha form detected via proxy:direct
[2017-04-27 12:34:11,025] [google-0] DEBUG c.s.s.s.g.s.GoogleScraper - noscript form detected, trying with captcha image
[2017-04-27 12:34:11,075] [google-0] INFO  c.s.s.s.c.s.RandomCaptchaSolver - trying decaptcher
[2017-04-27 12:34:24,202] [google-0] DEBUG c.s.s.s.g.s.GoogleScraper - got captcha response inflaugl in 13 seconds from decaptcher
[2017-04-27 12:34:24,261] [google-0] DEBUG c.s.s.s.g.s.GoogleScraper - reporting incorrect captcha (incorrect response = inflaugl)
[2017-04-27 12:34:24,313] [google-0] DEBUG c.s.s.s.g.s.GoogleScraper - GET https://www.google.de/search?q=livescore+fussball&uule=w+CAIQICIHZ2VybWFueQ==&num=100 via proxy:direct try 3
[2017-04-27 12:34:24,700] [google-0] INFO  c.s.s.s.g.s.GoogleScraper - GOT status=[302] exception=[none]
[2017-04-27 12:34:24,981] [google-0] INFO  c.s.s.s.g.s.GoogleScraper - GOT[refetch] status=[302] exception=[none]
[2017-04-27 12:34:24,982] [google-0] DEBUG c.s.s.s.g.s.GoogleScraper - captcha form detected via proxy:direct
[2017-04-27 12:34:25,063] [google-0] DEBUG c.s.s.s.g.s.GoogleScraper - noscript form detected, trying with captcha image
[2017-04-27 12:34:25,112] [google-0] INFO  c.s.s.s.c.s.RandomCaptchaSolver - trying decaptcher
[2017-04-27 12:34:33,194] [google-0] DEBUG c.s.s.s.g.s.GoogleScraper - got captcha response anadbi in 8 seconds from decaptcher
[2017-04-27 12:34:33,237] [google-0] DEBUG c.s.s.s.g.s.GoogleScraper - reporting incorrect captcha (incorrect response = anadbi)
[2017-04-27 12:34:33,339] [google-0] WARN  c.s.s.t.g.GoogleTaskRunnable - scrap failed for livescore fussball because of ERROR_CAPTCHA_INCORRECT
[2017-04-27 12:34:33,339] [google-0] WARN  c.s.s.t.g.GoogleTaskRunnable - no more proxy, stopping the thread
[2017-04-27 12:34:33,339] [google-0] INFO  c.s.s.t.g.GoogleTaskRunnable - google thread stopped
[2017-04-27 12:34:35,636] [Thread-74] WARN  c.s.s.t.g.GoogleTask - 1 proxies failed during the task
[2017-04-27 12:34:35,636] [Thread-74] WARN  c.s.s.t.g.GoogleTask - 131 searches have not been checked
[2017-04-27 12:34:35,803] [Thread-74] INFO  c.s.s.t.AbstractTask - task done for module GOOGLE

version ?

2.7.1


how to indicate polygon holes in CF

The CDL example in #13 stores indicators of polygon holes within the same array that stores polygon node lats or lons. Let's call this the PR13 way. I'm a little uncomfortable with this because we're mixing coordinates and flags into a single variable.
Another way to do this could be to use CF ancillary variables, and specifically, a flag variable, to indicate holes, leaving the node array to store only node coordinates.
PR13 pros:

Node array could store any number of flags between nodes. This could be useful if we eventually support geometry collections, which could have a multipolygon followed by a polygon. You may want a flag indicating that the multipolygon is over, and another flag indicating that a new polygon is starting now (all belonging to the same geometry collection feature). The flags could go so far as to be roughly equivalent to the parentheses and keywords in a WKT instance, i.e., a way to separate each piece of a each geometry.

PR13 cons:

The flags are repeated in the x variable and y variable (and potentially z and m). This is redundant and may lead to errors.
Single variable serves two purposes.
Hard to standardize on flag values due to potential overlap with coordinate values, but does anyone care?

Ancillary variable pros:

Use of existing CF convention lets the node variable really just store the nodes.

Ancillary variable cons:

Bloat since we add a variable with a flag value for each node
Can only store one flag value per node

To compare each of these approaches, I've created CDL examples below. I'm representing two geometries; here's the WKT:
POLYGON ((0 0, 6 0, 3 6, 0 0), (2 1, 3 2, 4 1, 2 1))
POLYGON ((4 6, 7 0, 10 6, 4 6))
You can feed this website the following multipolygon and select WKT as the format if you want to see those geometries.
MULTIPOLYGON (((0 0, 6 0, 3 6, 0 0), (2 1, 3 2, 4 1, 2 1)), ((4 6, 7 0, 10 6, 4 6)))
For the examples, I started with the CDL in #13 and added the contiguous_ragged_dimension attribute from https://github.com/bekozi/netCDF-CF-simple-geometry/issues/11#issuecomment-224442244.
PR13 example
Note how the hole flag, -2, is found in both the polyLat and polyLon data.
netcdf example {
  dimensions:
    polyNodes = 13 ;  // number of nodes plus flags to indicate holes
    polygons = 2 ; // number of features
  variables:
    int crs() ;
    int polyLat(polyNodes) ;
        polyLat:standard_name = "polygon y node" ;
        polyLat:grid_mapping = "crs"
    int polyLon(polyNodes) ;
        polyLon:standard_name = "polygon x node" ;
        polyLon:grid_mapping = "crs"
    int polyNodeStop(polygons) ;
        polyNodeStop:contiguous_ragged_dimension = "polyNodes" ;
    // global attributes:
    :Conventions = "CF-1.8" ;
  data:
polyLat = 0, 0, 6, 0, -2, 1, 2, 1, 1, 6, 0, 6, 6 ;
polyLon = 0, 6, 3, 0, -2, 2, 3, 4, 2, 4, 7, 10, 4 ;
polyNodeStop = 9, 13 ;
crs = _ ;
}

Ancillary variable example
In this example, I use flags to indicate the start of each polygon, which isn't necessary for this simple case but may be useful later when we play with multipolygons, geometry collections, etc. The flag value for the start of each polygon comes from Table 7: Integer codes for geometric types from the OGC simple feature access spec. I also have a hole flag.
netcdf example {
  dimensions:
    polyNodes = 12 ;  // number of nodes
    polygons = 2 ; // number of features
  variables:
    int crs() ;
    int polyLat(polyNodes) ;
        polyLat:standard_name = "polygon y node" ;
        polyLat:grid_mapping = "crs"
        polyLat:ancillary_variables = "polyNodeFlag" ;
    int polyLon(polyNodes) ;
        polyLon:standard_name = "polygon x node" ;
        polyLon:grid_mapping = "crs"
        polyLon:ancillary_variables = "polyNodeFlag" ;
    int polyNodeStop(polygons) ;
        polyNodeStop:contiguous_ragged_dimension = "polyNodes" ;
    int polyNodeFlag(polyNodes) ;
        polyNodeFlag:long_name = "Well-known Text Flag" ;
        polyNodeFlag:standard_name = "wkt_flag" ;
        polyNodeFlag:_FillValue = -9999 ;
        polyNodeFlag:valid_range = -2, 3 ;
        polyNodeFlag:flag_values = -2, 3 ; // positive values from OGC 06-103r4
        polyNodeFlag:flag_meanings = "hole Polygon" ;
    // global attributes:
    :Conventions = "CF-1.8" ;
  data:
polyLat = 0, 0, 6, 0, 1, 2, 1, 1, 6, 0, 6, 6 ;
polyLon = 0, 6, 3, 0, 2, 3, 4, 2, 4, 7, 10, 4 ;
polyNodeStop = 8, 12 ;
polyNodeFlag = 3, _, _, _, -2, _, _, _, 3, _, _, _ ;
crs = _ ;
}

Questions for the team:

Am I missing use cases that kill the ancillary variable approach?
Do you have a sense of how well each approach would perform?
Other thoughts?

btw I used int for lat and lon just to avoid decimal clutter.

This is looking good. Let me try and work up an example in the near-term of the data structure cf.loads would expect. The major difference from this is that an index variable into polyLat and polyLon would contain the flags and the poly* variables would contain coordinates only. No risk of coordinates and flags having the same values. The grid_mapping attribute would only exist on the index variable and not on the coordinate variables. This is consistent with UGRID.
Following from your case here, the proposed polygonCoordinateIndex variable would have dimension (polygons, polyNodes).
I definitely like the CF approach to defining flags though unsure if this would give us unnecessary overhead.

As an example, the data structure used for cf.loads looks like:
netcdf _ncsg_test_output_ {
types:
  int64(*) geom_VLType ;
dimensions:
	geom = 1 ;
	node = 12 ;
variables:
	geom_VLType coordinateIndex(geom) ;
		string coordinateIndex:geom_type = "polygon" ;
		string coordinateIndex:coordinates = "x y" ;
		coordinateIndex:multipart_break_value = -1L ;
		coordinateIndex:hole_break_value = -2L ;
	double x(node) ;
	double y(node) ;
data:

 coordinateIndex = {0, 1, 2, 3, -2, 4, 5, 6, 7, -1, 8, 9, 10, 11} ;

 x = 0, 6, 3, 0, 2, 3, 4, 2, 4, 7, 10, 4 ;

 y = 0, 0, 6, 0, 1, 2, 1, 1, 6, 0, 6, 6 ;
}

This is for the WKT: MULTIPOLYGON (((0 0, 6 0, 3 6, 0 0), (2 1, 3 2, 4 1, 2 1)), ((4 6, 7 0, 10 6, 4 6))). The code used to generate this is here: https://github.com/bekozi/netCDF-CF-simple-geometry/blob/i7-dumps/src/python/ncsg/test/test_ncsg/test_cf.py#L108.
This is by no means intended to be complete with accurate names, etc. This is essentially the format used for the NHDPlus catchment polygon conversion so I can vouch that its scalable. The mesh format we were using collapsed the ragged array into 1D and added stops similar to polyNodeStop. I believe that format would fall into the continuous ragged array category.
I am :+1: on a format like this, but that kinda goes without saying...

Would you mind showing an example where geom = 2 please?

@twhiteaker Yes, that would have been useful. See below.
netcdf _ncsg_test_output_ {
types:
  int64(*) geom_VLType ;
dimensions:
	geom = 3 ;
	node = 24 ;
variables:
	geom_VLType coordinateIndex(geom) ;
		string coordinateIndex:geom_type = "polygon" ;
		string coordinateIndex:coordinates = "x y" ;
		coordinateIndex:multipart_break_value = -1L ;
		coordinateIndex:hole_break_value = -2L ;
	double x(node) ;
	double y(node) ;
data:

 coordinateIndex = {0, 1, 2, 3, -2, 4, 5, 6, 7, -1, 8, 9, 10, 11},
    {12, 13, 14, 15, -2, 16, 17, 18, 19}, {20, 21, 22, 23} ;

 x = 0, 6, 3, 0, 2, 3, 4, 2, 4, 7, 10, 4, 0, 6, 3, 0, 2, 3, 4, 2, 4, 7, 10, 4 ;

 y = 0, 0, 6, 0, 1, 2, 1, 1, 6, 0, 6, 6, 0, 0, 6, 0, 1, 2, 1, 1, 6, 0, 6, 6 ;
}

This is for WKT:
MULTIPOLYGON (((0 0, 6 0, 3 6, 0 0), (2 1, 3 2, 4 1, 2 1)), ((4 6, 7 0, 10 6, 4 6)))
POLYGON ((0 0, 6 0, 3 6, 0 0), (2 1, 3 2, 4 1, 2 1))
POLYGON ((4 6, 7 0, 10 6, 4 6))

I reworked the nc3 ancillary variable example from above to include the three WKT geometries in https://github.com/bekozi/netCDF-CF-simple-geometry/issues/16#issuecomment-225245800. This scheme DOES NOT support compound geometries, e.g., GeometryCollection, MultiCurve, CompoundCurve, and CurvePolygon. For these types, you would need to know when the current geometry is ending (could be several if nested) and the type of the new geometry.
netcdf nc3_and_flags {
  dimensions:
    node = 24 ;  // number of nodes
    geom = 3 ; // number of features
  variables:
    int crs() ;
    double y(node) ;
        y:standard_name = "polygon y node" ;
        y:ancillary_variables = "geom_node_flag" ;
    double x(node) ;
        x:standard_name = "polygon x node" ;
        x:ancillary_variables = "geom_node_flag" ;
    int geom_stop(geom) ;
        geom_stop:contiguous_ragged_dimension = "node" ;
        geom_stop:grid_mapping = "crs" ;
        geom_stop:outer_ring_order = "anticlockwise" ;
        geom_stop:closure_convention = "last_node_equals_first" ;
    int geom_node_flag(node) ;
        geom_node_flag:long_name = "Well-known Text Flag" ;
        geom_node_flag:standard_name = "wkt_flag" ;
        geom_node_flag:_FillValue = -9999 ;
        geom_node_flag:valid_range = -2, 6 ;
        geom_node_flag:flag_values = -2, 3, 6 ; // positive values from OGC 06-103r4
        geom_node_flag:flag_meanings = "hole geometry_end Polygon MultiPolygon" ;
    // global attributes:
    :Conventions = "CF-1.8" ;
  data:
y = 0, 0, 6, 0, 1, 2, 1, 1, 6, 0, 6, 6, 0, 0, 6, 0, 1, 2, 1, 1, 6, 0, 6, 6 ;
x = 0, 6, 3, 0, 2, 3, 4, 2, 4, 7, 10, 4, 0, 6, 3, 0, 2, 3, 4, 2, 4, 7, 10, 4 ;
geom_stop = 12, 20, 24 ;
geom_node_flag = 6, _, _, _, -2, _, _, _, 3, _, _, _, 3, _, _, _, -2, _, _, _, 3, _, _, _ ;
crs = _ ;
}

Same example data, but this time as nc3 CRA which more closely matches Ben's example with the addition of type of the geometry starting at the current index value.  This could support compound geometries if we add flags for when a geometry is ending.
netcdf nc3_index_cra {
  dimensions:
    geom = 3 ; // number of features
    node = 24 ;  // number of nodes
    nodes_and_flags = 31; // number of nodes plus indicators of geometry types, holes, etc.
  variables:
    int crs() ;
    double y(polyNodes) ;
        y:standard_name = "polygon y node" ;
    double x(polyNodes) ;
        x:standard_name = "polygon x node" ;
    int coordinate_index(nodes_and_flags) ;
        coordinateIndex:geom_types = "MultiPolygon Polygon" ;  // two geom types here
        coordinate_index:coordinates = "x y" ;
        coordinate_index:grid_mapping = "crs" ;
        coordinate_index:hole_break_value = -2 ;
        coordinate_index:multipart_break_value = -1 ;
        coordinate_index:MultiPolygon_break_value = -6 ;
        coordinate_index:Polygon_break_value = -3 ;
        coordinate_index:outer_ring_order = "anticlockwise" ;
        coordinate_index:closure_convention = "last_node_equals_first" ;
    int geom_stop(geom) ;
        geom_stop:contiguous_ragged_dimension = "nodes_and_flags" ;
    // global attributes:
    :Conventions = "CF-1.8" ;
  data:
coordinate_index = -6, 0, 1, 2, 3, -2, 4, 5, 6, 7, -1, 8, 9, 10, 11, -3, 12, 13, 14, 15, -2, 16, 17, 18, 19, -3, 20, 21, 22, 23 ;
y = 0, 0, 6, 0, 1, 2, 1, 1, 6, 0, 6, 6, 0, 0, 6, 0, 1, 2, 1, 1, 6, 0, 6, 6 ;
x = 0, 6, 3, 0, 2, 3, 4, 2, 4, 7, 10, 4, 0, 6, 3, 0, 2, 3, 4, 2, 4, 7, 10, 4 ;
geom_stop = 16, 26, 31 ;
crs = _ ;
}

Sorry for not responding sooner. I got a summer cold early this week... Thanks @twhiteaker for the additional examples!

I reworked the nc3 ancillary variable example from above to include the three WKT geometries in https://github.com/bekozi/netCDF-CF-simple-geometry/issues/16#issuecomment-225245800. This scheme DOES NOT support compound geometries, e.g., GeometryCollection, MultiCurve, CompoundCurve, and CurvePolygon. For these types, you would need to know when the current geometry is ending (could be several if nested) and the type of the new geometry.

My turn to be dense. What is the argument for the auxiliary variable approach? It looks more cumbersome than our other proposed approaches and requires a mostly empty masked variable in geom_node_flag. The coordinate index approach also allows coordinate data to be "packed" (i.e. de-duplication of nodes by sharing indices).

coordinate_index:multipart_break_value = -1 ;
coordinate_index:MultiPolygon_break_value = -6 ;
coordinate_index:Polygon_break_value = -3 ;

This brings up a question about how we want to indicate geometry types. Basically, do we want to have "Point" and "MultiPoint"? "Polygon" and "MultiPolygon"? Right now, the reference implementation only uses "point", "line", and "polygon". A multi-geometry is flagged using the multi-part break value. Setting the break value to None tells the converter not to search for or create multi-geometries. Adding "MultiPoint", etc. is not really necessary but does bring us more in compliance with OGC. Thoughts?
I am also inclined to go with a single geometry type per coordinate index variable. This is similar to how a shapefile works. Basically, if there is a single multi-polygon in a collection then the entire collection is multi-polygon even though a number of the geometries will only have a single polygon. Doing this should remove the need for MultiPolygon_break_value and Polygon_break_value and only require the geom_type attribute. Again - thoughts?

With ancillary variables, I was attempting to leverage an existing CF+nc3 pattern.  I needed to look at this example to really make an assessment. My conclusion is that, while it would support our simple examples (point, line, polygon), it breaks for more complex geometries, and I could see people wanting to use multipolygons like the shape of Hawaii.  Plus all the reasons @bekozi stated. Plus my second example more intuitively matches the nc4 approach. So, I'm finished with the ancillary exercise.

Adding "MultiPoint", etc. is not really necessary but does bring us more in compliance with OGC.

I would keep the focus on our anticipated use cases, which I think means line, polygon, and maaayyybe multipolygon, while being mindful of the other geometries for possible future extensions. With our current scheme, I think supporting other geometries would be as simple as defining some new break values and how to interpret them, so I'm comfortable with where we are.

I am also inclined to go with a single geometry type per coordinate index variable.

Agreed.  This seems in line with the CF community's thinking on mixing geometry types since CF allows only a single DSG type in an entire file.

Doing this should remove the need for MultiPolygon_break_value and Polygon_break_value and only require the geom_type attribute.

Is that true? If we just have multipart_break_value then how does software know whether the next part in a multipolygon is a hole in the first polygon or the start of a second polygon?  Or does software even care?  It could be that software just stores sequential rings and figures out what to do with them on display, in which case @bekozi is correct. I'll see if I can tease out what ArcGIS does under the hood for an example.  Wow this is down in the weeds.

I made a JSON file with a multipolygon with two polys and a hole, and there was no indication of when something was a hole vs a new polygon, and ArcGIS didn't care. I even shuffled those three rings around, one time with the hole first, and ArcGIS didn't care. Maybe it just uses ring order (CCW vs CW) or does some other magic, but it appears that @bekozi is right about not needing the polygon break values for this case. Does anyone know if other software cares?

My conclusion is that, while it would support our simple examples (point, line, polygon), it breaks for more complex geometries, and I could see people wanting to use multipolygons like the shape of Hawaii.

I agree. It was good to investigate and discuss regardless. I was not aware of the approach until this exchange.

I would keep the focus on our anticipated use cases, which I think means line, polygon, and maaayyybe multipolygon, while being mindful of the other geometries for possible future extensions.

Yeah, eyes on the prize! I think adding multipoint, etc. makes sense and eliminates the "multipart_break_value means multi-geometries only if its present and found in the index variable". I added a ticket #21. No reason to deviate from established geometry types to avoid some additional string flags.

Agreed.  This seems in line with the CF community's thinking on mixing geometry types since CF allows only a single DSG type in an entire file.

:+1:

Is that true? If we just have multipart_break_value then how does software know whether the next part in a multipolygon is a hole in the first polygon or the start of a second polygon?  Or does software even care?

In the reference implementation, ordering is important. All holes must be preceded by the definition of the containing polygon's exterior: https://github.com/bekozi/netCDF-CF-simple-geometry/blob/caf66845e8964a7637c450228674bdb84d2b57e3/src/python/ncsg/cf.py#L31. For multi-polygons the parsing sequence is:

Split coordinate indices by the multipart_break_value. Each split is a polygon element of the multi-geometry and still includes any holes/interiors.
Split the polygon indices into subplits by the hole_break_value. The first subsplit is the polygon exterior. The remaining subsplits are the holes.

You end up with some funky recursion-like stuff, but it works: https://github.com/bekozi/netCDF-CF-simple-geometry/blob/caf66845e8964a7637c450228674bdb84d2b57e3/src/python/ncsg/cf.py#L57-68. See also the ragged array example: https://github.com/bekozi/netCDF-CF-simple-geometry/issues/16#issuecomment-225245800.

I even shuffled those three rings around, one time with the hole first, and ArcGIS didn't care.

Interesting! Must be the ordering in that case? Like you suggested.

Does anyone know if other software cares?

I don't have enough experience with low-level GIS software implementations to know. I think as long as our specification produces reliable WKT-like representations of holey polygons we should be okay. Just looking to hit the lowest common denominator.

I think we're close to closing this one.

I think so!

I finally read all the way through cf.py and poked around shapely docs. I see that, unlike ArcGIS, shapely DOES need to differentiate holes and multiparts upon polygon instantiation. I think we should support shapely in this regard. So, I believe the answer to this issue is:
For coordinate index variables with attribute geom_type = "polygon", if holes are present in one or more polygon features, the coordinate index values shall include a negative integer flagging the start of each hole. In this case, the variable shall include a 'hole_break_value' to indicate the value of the flag.
Also, not answering this question but useful for wiki:
For multipart geometries, the coordinate index variable shall include a negative integer flagging the start of each new part to the current feature with the exception of the first part. The variable shall include an attribute named multipart_break_value to indicate the value of the flag.
Of course, this is the conclusion that @bekozi had already reached and I'm just catching up!
If this looks good, let's close the issue and add to wiki.

I think we're good! I inserted @twhiteaker's text snippets in the wiki more or less as they were above. We may want to consider using the CF flag specification like @twhiteaker used in some examples. I find it cumbersome having to split the string and convert the values, so I'm not really a fan. Anyway, just good to keep in mind.


Representation of lists of documents (search)

representation of requirement List of items available on shelf from: https://codimd.web.cern.ch/uploads/upload_eb207b97be887b8d30738623dbabb791.png
which in translation on current data model is a list of documents where number of available items (not loaned and in status: LOANABLE) >= number of loans state:PENDING (list of documents requested for loans for which we can actually fulfil  the loan straight away, because we have enough items on shelf)
PROPOSED solutions:

Solve circular imports problem
Add documents search page, but no menu tab
Add documents search page, with menu tab
Other solution which will allow to search circulation statistics within the item index (?)

Arguments for adding a documents search:

Librarian workflow to reach document details page is not intuitive (within that the pending on document)
There are requested searches which are document-specific and displaying the items list for that would be confusing if the librarian

Arguments against:

Adds new point to a user training, to remember where to search for specific attributes (items-related in items tab, and document-related in documents tab)


[Feature Request] Make a system in python that will scan for possible scam domains/accounts/threads and report it via a Github Issue, Google Sheets/Google Form or custom database.

You can make a mini version of the YT-Spammer-Purge where it will auto scan videos where users put in the .exe file, and if it finds any links, it will automatically report it to a database, such as automatic Github issue thread depending on if its a domain scam comment, account or thread spam comment. Even using the method of, Google Form responses/Google Sheets or a custom database for that matter. This will help get all the links possible, instead of users manually checking and copying all the links. Like, even I reported domains in #36 and for those few domains it took me around 10 minutes.
So lets sum it up again:

A script where user can put in a youtube video link
It scans that video for scam domains, accounts and threads
It either automatically creates a issue in this github or reports the details to a custom database, preferably to github so it makes life easier.
And then, if you add #30 too all the work will be done by a bot. You just need to get a team of people that will scan average size videos, four-five times a week. Or, even without a team, you can do this yourself too, once a week or if you want to do it daily, that's good too but definitely it will save your time, because while we search one by one a comment to see if any scam domains, accounts or threads are there in the comment section, the bot will do it in a couple seconds depending on how many comments are on the video.

I think, this would work very well and get all the spam domains, accounts and threads and make it very efficient and save a lot of your time as well as contributors time.
If you got any query, please reach out to me @ThioJoe ,
Thanks,
Kendall Does Coding

Hm I'll move this to a discussion. My initial thought though, is that if the program could detect the spam domains well enough to be useful, there would be no need for the spam lists in the first place


Audio/Video element with preload can lead to precaching getting a 206 response and crashing

Library Affected:
workbox-precaching
Browser & Platform:
Google Chrome 120.0.6099.199 Desktop
Issue or Feature Request Description:
On a page with an audio/video elements  with preload="auto", where workbox is also set to precache the audio/video src file, sometimes the service worker ends up getting a 206 in its install event for its precache request, which leads to the following error:
workbox-0f22832a.js:2064 Uncaught (in promise) TypeError: Failed to execute 'put' on 'Cache': Partial response (status code 206) is unsupported
    at StrategyHandler.cachePut (workbox-0f22832a.js:2064:23)
    at async PrecacheStrategy._handleInstall (workbox-0f22832a.js:3072:27)
    at async PrecacheStrategy._handle (workbox-0f22832a.js:3005:18)
    at async PrecacheStrategy._getResponse (workbox-0f22832a.js:2402:22)
cachePut @ workbox-0f22832a.js:2064

I'd assume it's taking the request to preload from the browser which has a Range request, before the pre-caching is done, and sending it to the network, trying to pre-cache based on it, instead of simply dropping the uncachable partial response, and still sending a normal pre-cache request separately.
I did follow https://developer.chrome.com/docs/workbox/serving-cached-audio-and-video (P.S. I guess the cacheableResponse plugin for this is redundant nowadays?)
When reporting bugs, please include relevant JavaScript Console logs and links to public URLs at which the issue could be reproduced.
The site is private, I will create a standalone repro later on.

Hmm, actually I probably need to add the RangeRequests plugin to the precaching handler... So that runtimeCachine example from the linked article isn't helpful for that...

Doesn't seem to help even if I do that though...

I guess a workaround will be to do preload="none" and hope the user doesn't start any media before pre-caching ends... There doesn't seem to be an obvious way to add plugins to workbox-precaching in generateSW mode of workbox-build which I opened a separate request for https://github.com/GoogleChrome/workbox/issues/3289.
I guess a fix will be to just let such requests through to the network, without trying to precache from their response, letting the normal pre-caching still take place, or alternatively to outright  to dump the Range header when getting a request that has it during the install phase in the PrecachingStrategy, and maybe also pass the response through plugins so the ranges plugin can modify the complete response to only return the requested range even in that case.

Maybe we want something like this in the range requests plugin or inside workbox-precaching:
// requestWillFetch() if from a plugin
    if (handler.event && handler.event.type === 'install') {
      request.headers.delete("Range")
    }

Doesn't work. The headers received in the request object seem empty for this case...

We probably need to add 206 to be ignored here: https://github.com/GoogleChrome/workbox/blob/ee62b5b5b9ed321af457a2d962b2a34196a80263/packages/workbox-precaching/src/PrecacheStrategy.ts#L41

Doesn't help, still leads to bad-precaching-response.

So basically the browser sets a Range: bytes=0- header with preload="auto" and gets a full response with a 206 status, when the service worker starts after that request is complete, and tries to prefetch the file, the browser returns the 206 full content response which fails to be inserted into the cache with the described error. Something like this can possibly fix this:
    async cacheWillUpdate({ response }) {
      // The default will update logic of workbox-precaching
      if (!response || response.status >= 400) {
        return null;
      }

      if (response.status === 206 /* && fullBody */) {
        console.log('Patching 206 response');
        response = await copyResponse(response, (responseInit) => {
          responseInit.status = 200;
          return responseInit;
        })
      }

      return response;
    },

But I think copyResponse will fail if the request is cross origin...

@segevfiner did you found solution to this issue?

@segevfiner did you found solution to this issue?
Perhaps a plugin such as this one would help: #1644 (comment)

This is something I have in some experimental branch that I didn't deploy, but I think it might make this work. (For injectManifest mode)
/// <reference lib="WebWorker" />
declare let self: ServiceWorkerGlobalScope;

import { clientsClaim, copyResponse } from 'workbox-core';
import {
  addPlugins,
  cleanupOutdatedCaches,
  createHandlerBoundToURL,
  precacheAndRoute,
} from 'workbox-precaching';
import { RangeRequestsPlugin } from 'workbox-range-requests';
import { NavigationRoute, registerRoute } from 'workbox-routing';

void self.skipWaiting();
clientsClaim();

addPlugins([
  {
    // async requestWillFetch({ request, event }) {
    //   if (event && event.type === 'install') {
    //     console.log(request);
    //   }
    //   return request;
    // },
    async cacheWillUpdate({ response }) {
      if (!response || response.status >= 400) {
        return null;
      }

      if (response.status === 206 /* && fullBody */) {
        console.log('Patching 206 response');
        response = await copyResponse(response, (responseInit) => {
          responseInit.status = 200;
          return responseInit;
        });
      }

      return response;
    },
  },
  new RangeRequestsPlugin(),
]);
precacheAndRoute(self.__WB_MANIFEST);
cleanupOutdatedCaches();

let allowlist: undefined | RegExp[];
if (import.meta.env.DEV) {
  allowlist = [/^\/$/];
}

registerRoute(new NavigationRoute(createHandlerBoundToURL('index.html'), { allowlist }));

Thanks, this seems to work (btw: videos Cache storage status code is 200 Partial Content and response default instead of basic)
More complex version of similar custom plugin can be found here: https://github.com/GoogleChrome/workbox/issues/1644#issuecomment-1126871851

Here's is my take, which mixes your plugin (copyResponse usage) with this one: https://github.com/GoogleChrome/workbox/issues/1644#issuecomment-1126871851
import { copyResponse } from 'workbox-core'
import { addPlugins } from 'workbox-precaching'
import { RangeRequestsPlugin } from 'workbox-range-requests'

addPlugins([
  {
    async cacheWillUpdate({ response }) {
      // Content encoding shouldn't be set, or content-type will be inaccurate
      if (response.status === 206 && response.headers.has('content-length') && !response.headers.has('content-encoding')) {
        const contentLength = Number.parseInt(response.headers.get('content-length')!)

        if (response.headers.get('content-range') === `bytes 0-${contentLength - 1}/${contentLength}`) {
          // Note: response still has the content-range header, but it should be ignored by browser on status code 200
          return copyResponse(response, (responseInit) => ({
            ...responseInit,
            status: 200,
            statusText: undefined,
          }))
        }
      }

      return response
    },
  },
  new RangeRequestsPlugin(),
])

To reproduce the issue:

add <video src="/assets/<some-video>.mp4" /> element to your app.
use serve (npx serve -p 4173 dist)
browser will request video with HTTP range requests and receive response with 206 Partial Content
service worker will install, populate runtime cache for which browser will reuse above request
browser will throw an error as in issue description


Use tile.band function

Overview
@fosskers pointed out that we were using the bands function along with an indexed call into the Vector it generates rather than band, which should just grab the band immediately from the underlying array. This is a free performance improvement.

Two more:

LazyTile.scala: 141
ColorCorrect.scala: 215


Merge null-safety migration to master & updates

Hi Paul, are you using the dev branch anywhere? Can we nuke it to avoid confusion?
I think we could continue with the null-safe version in master and publish it as a pre-released. Maintaining multiple branches is no longer necessary, or what do you think? Presumably, null-safety is going to hit Flutter stable soon anyway.

https://pub.dev/packages/cupertino_list_tile/versions/0.2.0-nullsafety.0

@jpnurmi I'm happy to remove dev if it isn't being used anymore. We can just stick to feature/xyz on master from here on out.


Transferring ownership of private repository

Gogs Info

Gogs version (or commit ref): <IP_ADDRESS>5
Git version: 2.1.4
Operating system: Debian 8.3
Database:

[ ] PostgreSQL
[x] MySQL
[ ] SQLite

Log gist:

Description
Assume the following:

I have a Organization called "Org" with two Teams: "Owner" and "Admin Access".
"User" is member of "Org" and "Admin Access".

Now, "User" creates a private repository as "User/Repo". Afterwards he transfers ownership to Org/Repo. "User" cannot see the repository anymore or add it to the team "Admin Access". Only members of the team "Owner" can add the repository to the team "Admin Access".
Expected Behaviour
I would suggest, that "User" should still be able to add the repository to the Team "Admin Access".
Alternatively, a warning that only users with owner rights can handle the repository would be sufficient: The warning "Transfer this repository to another user or to an organization in which you have admin rights" seems to be incorrect.

Thanks your feedback!

The warning "Transfer this repository to another user or to an organization in which you have admin rights" seems to be incorrect.

I think the problem is the warning here. The behaviour is expected currently.

Would it be prudent to change the message to

Transfer this repository to another user or to an organization in which you have owner rights

After another thought, I think it would be better to:

If repository is transferring to an organization and old owner is not member of it, add the old owner as collaborator with write access.
If repository is transferring to another person, add the old owner as collaborator with write access.
If repository is transferring to an organization and old owner is member of it, behavior as right now.


⚠ ClamAV has degraded performance

In 8d29233, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 192 ms

Resolved: ClamAV performance has improved in 00dad6e.


[Question] config.yaml whitelist based on ranges (e.g. dates, versions)

Can we use a range of values for config.yaml?
e.g. pandas > 2.0.0
or
release date > 2016-01-01

No, that doesn't work.


add switch that allows escape/unescape to be turned off

Add a switch to the compiler to allow escape/unescape to become no-ops. This switch should also turn off the enforcement of rules on path terms.

Duplicated by #32


node 14 circular dependency with mongodb driver

Hello everyone,
Mongodb has new issue (fixed since one week) since node 14.
https://jira.mongodb.org/browse/NODE-2536
https://github.com/mongodb/node-mongodb-native/releases
The bug is fixed since mongodb 3.5.7 version, it is possible to update it in your package json ?
It cause problem on pipeline on our CI :(
Thanks you !

I'm having issues with these warnings as well.

In the meantime, I was able to upgrade Monk's mongodb dependency by adding the overrides property to my package.json:
"overrides": {
    "monk": {
      "mongodb": "~3.5.7"
    }
  }


Slow indexing in Google

hello Timothy,
I noticed that latest posts in my blog based on tailwind-nextjs-starter-blog are not indexed. Some fresh posts in your blog are not indexed too, for example:
https://www.timlrx.com/blog/creating-a-rehype-syntax-highlighting-plugin
Is sitemap.xml format optimal for google search console? Probably, it would be better to add lastmod property for every post to let crawler know when it was updated.
Thanks.

You can submit the rss feed to google if you are worried. I don't see the need to add more information to the sitemap, unless you can link some sources which suggest that that is the best practice.


Avoid using regexps always

@ammachado in the configuration properties recipes, we say that the elements can be regexp but in fact they always are, right?
So if you want to replace quarkus.something key, you actually need to define quarkus\.something or you will also replace quarkuswsomethingor quarkus-something.
This makes things a bit more complex than they need to be and also not in line with https://docs.openrewrite.org/recipes/properties/changepropertykey where you have this regex boolean to actually enable regexp transformation.
I wonder if we should change the current behavior to avoid regexps in the default case and only enable regexps when regex is set to true.
That would be a breaking change but I think these recipes are new enough that it's worth breaking them to be consistent with the rest of OpenRewrite.
I thought about that because I was migrating old Quarkus Update recipes to this new stuff.
WDYT?
/cc @timtebeek for advice.

Hey @ammachado ,
Did you have time to think about it? I can implement it, I just wanted to make sure you were in line with the idea and I didn't want to step on your toes.

I used regex on the property recipes due to the changes required on properties that have map keys. If there's a flag to enable regexes for the property keys, how the recipe will capture the parts of the config that are independent of the map key? I can make changes to accommodate substitutions in separate parts, but to me it seems that the regex is a simpler approach.


[Containerapp] az containerapp auth update: Fix prompt twice if azure-cli version > 2.61.0

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

General Guidelines

[ ] Have you run azdev style <YOUR_EXT> locally? (pip install azdev required)
[ ] Have you run python scripts/ci/test_index.py -q locally? (pip install wheel==0.30.0 required)
[ ] My extension version conforms to the Extension version schema

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

Containerapp


Grunt: Run carto-node before browserify

Arch's package stopped working complaining about a missing file:
Running "browserify:test_specs_for_browserify_modules" (browserify) task
>> Error: Cannot find module '../../../../../../vendor/assets/javascripts/carto-node/carto-node' from '/home/raul/dev/PKGBUILDs/carto-builder/src/cartodb/lib/assets/test/spec/cartodb/account'

Browserify uses the carto-node files and it couldn't find them, so I've added the task before running browserify. @elenatorro I see you've been the last one tinkering with the file, can you have a look at the change please?

Updated to remove the call in the test task and NEWs file


chore(release): 2.67.0

See CHANGELOG

AWS CodeBuild CI Report

CodeBuild project: githubautobuild-for-cdk-v2
Commit ID: f74b278538bbd4113754738a127e65fac5781b42
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


Callback example

Hi okonet,
Thanks for adding a example. However, the example is a simplified via configuration object. Which is not really useful in a real word scenario.
I'd like to know two things -

How does the callback function works? Could you please provide an example?
Currently it directly generates the static files. Is there a way to define a template to use?

Thanks,
Viraj

Also, you can see tests for some examples.

Is there a way to define a template to use?

You can use other plugins with it, so it's up to you how you transform your files object. In the example, I use collections and markdown to generate http://colorsnapper.com/changelog/ page.


Manual inline/critical CSS, or CSS groups

What problem does this feature solve?
Allowing for performance optimisation by picking which CSS to render into the head of the page during SSR, and which to load later.
It would be great if we could choose to tag css to be compiled into a separate file somehow. We could then add the separate CSS to the head of the page during or after SSR rendering
What does the proposed API look like?
Add two style tags to the SFC file, one with a tag, e.g:
<style critical>
...
</style>
<style>
...
</style>

Add a configuration option to control which tags get split. The goal is to have the build generate two or more CSS files so one of them can be rendered into the head of the page during or after SSR

Just realised I'm not entirely sure if this would be in sfc-compiler or vite or both.

Introducing something like <script critical> should definitely go through an RFC

Please use https://github.com/vuejs/rfcs for ideas like this.

If anyone comes across this wanting to do something similar, I created a quick and dirty vite plugin to be placed after the vue plugin. It modifies the SFC code to load the <style critical> CSS into the ssrContext, which can then be retrieved and injected to the html after renderToString`
function performanceOptimisationPlugin(): Plugin {
  return {
    name: 'vite:performanceOptimisation',
    transform(code: string, id: string, ssr?: boolean) {
      if (ssr && id.endsWith('.vue') && code.includes('&critical=true')) {
        const matches = code.matchAll(/^import "(.*?&critical=true.*?&lang.css)"$/gm)
        let imports = ''
        const vars = []
        for (const match of matches) {
          imports += (`\nimport criticalCss${match.index} from "${match[1]}"`)
          vars.push('criticalCss'+match.index)
        }
        if (imports) {
          const insert = `\n  ;(ssrContext.criticalCss || (ssrContext.criticalCss = [])).push([${vars.join(', ')}].join('\\n'))`
          code = code.replace("import { useSSRContext as __vite_useSSRContext } from 'vue'", `$&${imports}`)
          code = code.replace('const ssrContext = __vite_useSSRContext()', `$&${insert}`)
          const map = this.getCombinedSourcemap()
          return { code, map }
        }
      }
      return
    },
    transformIndexHtml(html, { bundle }) {
      if (bundle) {
        // If we're building, transform the html to have async JS/CSS
        const $ = cheerio.load(html)
        $('script').attr('async', 'async')
        $('link[rel=stylesheet]').attr('media', 'print').attr('onload', "this.media='all'")
        return $.html()
      }
    }
  }


Remove for loops from Field.Typed language

Fix #54  by removing for loops from Field.Typed language and unrolling loops in the front-end of the compiler.

@effectfully do you have any further comments?


How to trigger a hard bounce for incoming route

Mail coming into my postal hits a webhook endpoint which looks for a matched user. If no match is found, I'd like to trigger a hard fail and send a bounce email back saying "this email address doesn't exist anymore". I have two questions around this:

What response should my webhook send back to trigger a hard fail? I tried sending back 550, but that's resulting in a soft fail.

and, sidenote question:

I've edited /opt/postal/app/lib/postal/bounce_message.rb slightly -- when can I expect those changes will over overwritten? When I update postal I presume?

it looks like its expecting HTTP codes not SMTP code so I think you might want to try 400 but I could be mistaken if thats not the file.
https://github.com/atech/postal/blob/5c8f9b99c019952ea93bdb6cf329af2cffd43336/lib/postal/http_sender.rb#L34-L53

exactly, the files won't be replaced until you update Postal


[Navigation-animation] Delegate navigation-animation impl to androidx navigation

With navigation-animation migrated back to androidx navigation, we are deprecating accompanist navigation-animation with first step as delegating its implementation to androidx navigation.
Source breaking change -- navigation-animation migrated all internal usages of AnimatedComposeNavigator to ComposeNavigator. This means by default, animated NavHostController will only contain ComposeNavigator and no longer contain any AnimatedComposeNavigator. Code references to AnimatedComposeNavigators such as its retrieval from navigatorProvider may be impacted if none were manually added.
Test: ./gradlew navigation-aninmation:cC
Issue: #1646

Looks like you'll need to run ./gradlew :navigation-animation:spotlessApply to apply the formatting fixes before this can be merged in.


Python: Pass aPBObject back to PythonBridge script

The following doesn't work (MpError cannot encode):
PBApplication uniqueInstance newCommandStringFactory
    addAllBindings: {
        #playwright -> aPBProxyObject } asDictionary;
    script: 'browser = playwright.firefox.launch(headless=False)';
    resultExpression: 'browser';
    sendAndWait.

It is a bug per @akgrant43

I spent quite a bit of time on this, but I just can't see how this seemingly simple thing is supposed to work. I looked at the JS bridge for inspiration and the tests for both libraries, but it doesn't seem to be addressed.
My best (wild?) guess is that one needs to reverse this:
	rawObj isCollection ifFalse: [ ^ rawObj ].
	rawObj isDictionary and: [ (rawObj includesKey: #__pyid__)
		ifTrue: [ ^ self reifyProxyFor: rawObj ] ].
	^ rawObj collect: [ :elem | self privateDeserialize: elem ]

But I'm not sure where is the right spot or that the dictionary would be recognized as and matched up to the appropriate python object.
Calling out to PB experts for guidance: @alejandroinfante, @bergel, @akgrant43

Hi Sean,
Can you try adding and modifying the two following methods and see if this resolves the issue.  It isn't a proper fix as it doesn't recurse through collections to find proxies, but it should prove the idea.
PBProxyObject>>asJsonDictionary
	"Answer the receiver as a Dictionary"

	^ {
		#__pyclass__ -> pythonClass.
		#__pyid__ -> pythonVariable name } asDictionary.

PBSerializer>>serialize: anObject
	^ serializerWrapper serialize: ((anObject isKindOf: PBProxyObject)
		ifTrue: [ anObject asJsonDictionary ]
		ifFalse: [ anObject ])

It doesn't seem to have worked:

Hi Sean,
I've found the issue, it will take a bit more to fix it. :-)

@seandenigris  can you try this in v0.8.1445?
It still requires that the bound object itself is the proxy, i.e. it can't be a collection containing a proxy object, etc.

It works!!!! Thanks :) Tested in v 0.8.147. I say we close this until a real use case for recursion presents itself


difference-of-squares: add tests for edge cases 0 and 1

Zero is by some definitions regarded as a natural number, so an implementation should be able to handle this case, as well as the edge case of 1.
Summary of changes:

Add tests for edge cases 0 and 1
Remove test for input 10 (there are tests for 5 and 100 and if the implementation works for these numbers, it most likely also works for 10)
Bump version number of the test suite to 1.1.0

I think the description is ok, no need to include 0 there as it has anyway no influence on the result.

Great PR description 👍 :heart:

Is the ordering of these tests optimal?
Numeric order is tempting, but my preference would be for ease-of-implementation with the standard cases first followed by the edge cases.

Zero is not specified as one of the natural numbers, so I am not sure this is an appropriate test case in the canonical data.

+1 I would consider the 1-cases as the boundaries here, and remove the tests for 0, given the problem description.

@Insti @stkent

Yes, the edge cases should come after the standard cases. I had the same thought too.
I agree that it's probably better to take 1 as the edge case and drop 0. It would be more consistent with the problem description which requires a result only for numbers >= 1. (And actually, most solution that I just checked would already handle 0 correctly.)

I'm going to commit these changes.

I'm also in favor of numerical ordering.

I'm fine with numerical ordering now that none of the cases are really exceptional.

@weibeld sounds like there's a consensus on one more ordering change (apologies!), and then this will be good to go :)

Done :)

Thanks, @weibeld, nice work!


shell: fix make_argv function

Shell will now detect not terminated " or ' character.
Signed-off-by: Jakub Rzeszutko<EMAIL_ADDRESS>

Codecov Report

Merging #11685 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master   #11685   +/-   ##
=======================================
  Coverage   48.23%   48.23%
=======================================
  Files         279      279
  Lines       43291    43291
  Branches    10359    10359
=======================================
  Hits        20881    20881
  Misses      18270    18270
  Partials     4140     4140

Impacted Files
Coverage Δ

subsys/shell/shell_utils.c
38.31% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Service Definition item (IncidentHotSpots) exists without an associated hosted service

Hosted service IncidentHotSpots/MapServer does not exist, but associated service definition item "IncidentHotSpots" e7ac0db53cb0496f9607c591e0bb2ef6 exists; please delete the following item; otherwise the hosted service will be published to ops servers.

Item "IncidentHotSpots" e7ac0db53cb0496f9607c591e0bb2ef6" has been deleted


CherryToastIcon misspelled as CherryToatIcon

As mentioned.

Thanks for your feedback I will fix it ASAP

Hello @jeff999955 I just published a new version with the neccessary modifications

Thanks!


verification of pkg/addr

Verifies the pkg/addr package.
The package was actually simplified in the new scionproto/scion code. It uses fewer interfaces. However the package now uses the net/netip go standard library.
Also serrors.WrapStr no longer exists. Therefore the gobra annotations will also be removed in this PR.

I will take a look at this PR after my comments are addressed

This was merged in the verification branch, we should merge it in the upstream PR

Ah I thought you wanted to keep the verification and the upstream changes in separate PRs. Thats why I created this verification branch. If that is not the case I will merge it into the upstream branch as well.


Identity type is missing information about the possible values

spec.forProvider.identity.type description in<EMAIL_ADDRESS>is missing the possible value (UserAssigned and SystemAssigned ).

Hi @vfarcic,
I've opened a separate issue in Terrajet for supporting configuration of markers on generated fields. Thank you for reporting this.


Building location not the same as build command given

I have noticed sometimes the location I tell a building to be built is different than the final position of the constructed unit. Can this behavior be documented or explained somehow?

Hi @davechurchill
I see your issue was referenced in a PR which is already merged.
Was this solved?
If yes, can you please close this issue?


Compute parallel vector norm

Hi MFEM community,
I am trying to compute the relative error which || U - c|| / || c ||.
Assuming U and c are vectors, in MFEM I can do the following
subtract(c,U,res);
err = res.Norml2()/c.Norml2();
 std::cout << " err=" << err <<"\n";

The above code does work when using 1 core,
but when multiple cores are used, different err are printed out from different proccesses, where I expect them to be the same.
I think I am missing something simple here, but what would you recommend in order to compute the relative error in parallel runs.
Thank you for the help

Vector::Norml2() is a serial function, try with inline double InnerProduct(MPI_Comm comm, const Vector &x, const Vector &y) from vector.hpp, or do the reductions yourself.
Or if these are ParGridFunctions you can use ComputeLpError.


I added this question bag-of-tokens , it should be in the list of array questions

please assign me this , this will be my first contribution

Hello, Can you please assign this issue to me?
Thanks in advance :)

Hello, Can you please assign this issue to me? Thanks in advance :)

Please do not spam on every issue.


Renaming master branch to main

Hi @danielfireman,
We're doing this renaming org-wide as per frictionlessdata/project#537. Can you please take a look?
It's as easy as updating the branch name here - https://github.com/frictionlessdata/schema-collaboration/settings/branches - no more actions on Github are needed.

Done!


Support flags in 32x32

Cos sometimes you want to display a bigger flag :-)

You're right.
But I think should prefer CSS or SVG flags for bigger sizes, because of file size and pixel resolution.
:kissing_heart:


WIP: CheckboxGroup

Excuse me, How to make the Checkbox component to callback the parent component CheckboxGroup's function changed.

@linbingquan There's a changed function prop in Checkbox, you can use that to connect with the group's changed prop

@mxdi9i7 I had connect Checkbox and CheckboxGroup component changed function, I don't konw how to get other children component state.

@linbingquan  hi, is this pr ready?

@linbingquan hi, is this pr ready?

TBH, this is just basic function. I am not sure it doesn't has any bug.


chore: add workflow_dispatch on helm publish

Description

How has this been tested?

Checklist

[ ] changelog was updated with notable changes
[ ] documentation was updated

duplicate ok https://github.com/Substra/substra-backend/pull/834/files

duplicate of https://github.com/Substra/substra-backend/pull/834/files

Closed


-webkit-text-decoration-skip-ink: none > Property > w3c error

With W3c validator, we get error with BS 4.3.1 with text-decoration-skip-ink property
(https://github.com/twbs/bootstrap/blob/8fa0d3010112dca5dd6dd501173415856001ba8b/dist/css/bootstrap-reboot.css#L63)
Error: CSS: text-decoration-skip-ink: Property text-decoration-skip-ink doesn't exist.

It's in the W3C draft though
https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property

Yup, closing as not a big at this point.


Google Chrome blocks some downloads

https://support.google.com/chrome/answer/6261569?dark=1&sjid=4293920111607591939-AP

感谢您与我们联系。(Thank you for contacting us.)
我们收到了您的请求，并会在一至两个工作日内给您回复。您的案例编号是<PHONE_NUMBER>02。
想了解更多与开发相关主题的信息，请访问 开发者支持网页 (https://developer.apple.com/support/)。
Apple Developer Program Support
We’ve received your support request and will get back to you in one to two business days. Your case number is<PHONE_NUMBER>02.
For additional information on development-related topics, visit:
https://developer.apple.com/support/
Best regards,
Apple Developer Program Support

Copyright (c) 2024 Apple Inc. All rights reserved.
Contact Us
https://developer.apple.com/contact/
Developer
https://developer.apple.com/
My Apple ID
https://appleid.apple.com
Privacy Policy
https://www.apple.com/privacy/


Encoder led status not synced when switching between layers

Hi,
Many thanks for the latest release, with great improvements.
I noticed than, when switching between layers, the LED status of the encoder don't re-sync.
For example : i use AP controls on Layer A, and now I've set up the encoders so that they light up when activating AP controls.
I use Layer B for garmin encoder and keys - thanks to mobiflight wasm module - which works great. But when switching back from LAyer B to layer A, the encoders leds are out of sync.

This is kind of fixed. The main problem is that when you change the layer no midi event is send to identify that that happened. So I have to wait until the user presses a button or rotates a knob before I know that the layer has been changed.
But when I detect a layer change by the user the LEDs will be updated accordingly

Fixed in https://github.com/maartentamboer/X-Touch-Mini-FS2020/releases/tag/v1.2.0