Event Music & Nuke Countdown Song

About the PR
Modifies AdminSoundSystem to be a more generic system for playing sounds globally to players, with the only restrictions being if they've disabled the sound via cvar or (optionally) if they're not on the same grid.
Also as an example usage, adds Countdown from the BeeStation OST to when the nuke is armed. It's our second most-popular song by views.
I eventually intend to add support to everything Bee has songs for, like xeno infestation and war ops.
Screenshots
Note: I had to do a fresh install of OBS so the resolution is wonky but you're just here for the audio anyways.
It starts when armed, stops when disarmed, and will start again if rearmed. Make sure you unmute audio:
https://user-images.githubusercontent.com/5714543/171702349-d0eb251c-2e1f-4786-ba66-18d7fba58a46.mp4
Changelog

:cl:

add: A song now plays during the nuke countdown. It can be disabled with the Event Music audio setting.

Also, the song ends 67 seconds before the nuke explodes, so we will have to lower the nuke time until it explodes or have an awkward period of silence before detonation.

It's timed for SS13's default of 90 seconds. Don't really know what to do about SS14 using 180 seconds.

Are you still working on this?

Yes.

Are you still working on this?

> leave as draft for 2 days
> asked if derelict
> forensics has been waiting for a review for 10 days

:^(

thank you for making me realize i never submitted my review on forensics

Ideally we wouldn't have like 3 different content audio systems + engine but can fix that later.


Is it feasible to support get queryset descendants or ancestors like features in django-mptt

django-mptt has a feature get_queryset_descendants  which query the descendants of tree nodes represented by a queryset. However, TreeQuerySet.descendants method in django-tree-queries only support query descendants of a certain tree node. After doing some experiments, I find a way to implement such feature, like bellow:
def descendants(self, of, include_self=False):
    ...
    extra_where = " or ".join(['instr(__tree.tree_path, "{sep}{pk}{sep}") <> 0'.format(
                        pk=self.model._meta.pk.get_db_prep_value(pk(obj), connection),
                        sep=SEPARATOR,
                    ) for obj in of])
            queryset = self.with_tree_fields().extra(
                # NOTE! The representation of tree_path is NOT part of the API.
                where=[
                    # XXX This *may* be unsafe with some primary key field types.
                    # It is certainly safe with integers.
                    extra_where
                ]
            )

The idea is if of parameter is a queryset rather than a single model instance, changing the where clause to or.
The downside of this approach is we need an extra database query. I also have no idea if there is performance issue for a large queryset.
Another idea I come up with is inject a a subquery in CTE, like bellow:
change:
SELECT
            0 AS tree_depth,
            array[T.{pk}] AS tree_path,
            array[{order_by}] AS tree_ordering,
            T."{pk}"
        FROM {db_table} T
        WHERE T."{parent}" IS NULL

to:
SELECT
            0 AS tree_depth,
            array[T.{pk}] AS tree_path,
            array[{order_by}] AS tree_ordering,
            T."{pk}"
        FROM {db_table} T
        WHERE T."{parent}" in <<pks of queryset>>

but I also have no idea that this is feasible.

This would certainly be doable; the problem is that django-tree-queries doesn't add much API at all. It has almost no extension points. What you write would probably be more straightforward to implement on top of a more generic solution for building CTEs, maybe https://pypi.org/project/django-cte/


TypeError: Cannot read property '0' of undefined at GoogleSpreadsheetWorksheet.loadHeaderRow

Hey
Although it seems a little counterproductive you should contemplate the option that the sheet may be empty and prevent it from exploding

 TypeError: Cannot read property '0' of undefined
    at GoogleSpreadsheetWorksheet.loadHeaderRow (/home/intellisys/Desktop/metricas/functions/src/node_modules/google-spreadsheet/lib/GoogleSpreadsheetWorksheet.js:283:35)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:228:7)

Yeah I did notice that today as well. To be fair, I would still throw an error in this case, as it doesn't make sense to getRows without any headers set, but at least I can make the error message a bit more helpful.

just published a new version with better checks for empty row headers and better error messaging


Automatically create a PactDslJsonBody from a Java object

Currently, to define the body of a message within a Java consumer test, we have to do the following:
new PactDslJsonBody()
  .stringType("firstName", "Zaphod")
  .stringType("lastName", "Beeblebrox"))
  .toPact();

This is quite cumbersome, especially for large objects (which are not unusual).
Is there a way to automatically create a PactDslJsonBody from a given Java object?
If not, consider this a feature request :).
Implementing a mapper that does this seems easy enough, and I'd gladly give it a try.

Should be able to do this.

@thombergs you could use the jackson's ObjectMapper to write a json string of your body?

Yes, didn't think of this.

@oswaldquek Actually, just providing a JSON string doesn't suffice for our use case, since we want to use the "like" matchers (i.e. we don't want to match the exact JSON, but just that the types of the JSON fields are correct).

@thombergs yeah, true that. we're using the json pact (according to the pact specification https://github.com/pact-foundation/pact-specification/tree/version-3) directly: https://github.com/alphagov/pay-publicapi/pull/177. personally i'm not a huge fan of java dsls. that might help you.

We build a lib for that. It creates calls on PactDslJsonBody from a Java Bean. Matcher are used by default. But you can configure it very flexible.
@thombergs https://github.com/remondis-it/pact-consumer-builder :)

Closing this


test: remove random date test

Related Issue(s) & Descriptions
gofakeit.Date() generates different years when using the same seed because the year generation is based on the current year. I have submitted an issue to gofakeit, so for now, it's best to remove this function.

LGTM


Problem in accessing the solution array returned at every solver time step during the timespan solver is running using solve_ivp in python

I have been trying hard to find a way to access my solution vector returned at every solver successful time step for other calculations during the run. Simplifying my problem as : For time span [0,.001] I solve a differential equation Xdot =AX+BU (State-space equation) using
sol=solve_ivp(conv,tspan,X0)

At every sol.t point, a solution for X is computed. I want access to that solution during the run. sol.y returns the whole array at the end of the simulation but I want the solution for X at every time point so that it get used in the function conv during the run.

Considering that the first argument of solve_ivp has the following signature: fun(t, y), I think you can readily access the solution during the integration process inside fun, or in your case conv. When conv is first called, the second argument of conv, y, should be y0, or in your case X0. At each following call, y is updated to the result from the previous step. You can easily print y and compare it to sol.y: they should match whenever the function is evaluated and stored.


v3.0

BREAKING CHANGES
BREAKING CHANGES

React, jQuery and Element interfaces moved to dedicated packages at linkify-react,linkify-jquery and linkify-element respectively:
Remove default class="linkified" from all discovered links. Opt back in by setting the className option:linkifyStr(str, { className: 'linkified' })

Remove default target="_blank" attribute for discovered URLs. Opt back in by setting the target option:linkifyHtml(str, {
  target: (href, type) => type === 'url' && '_blank'
})

React component: Remove outer <span> tag wrapper in favour of tag-less React.Fragment for React >=16. To opt back-in, set tagName='span':<Linkify tagName='span'>{content}</Linkify>

AMD module interface is no longer provided. Use an ESM bundler instead.
Plugins imported after linkify is called on a string for the first time will not longer work. Import all plugins before calling a linkify core or interface function.
Custom plugin API is not compatible with previous API in Linkify v2
Dropped support for Internet Explorer versions 9 and 10. IE11 is still supported
Dropped support for React versions <15

Deprecations

Use dedicated packages linkify-string and linkify-html instead of linkifyjs/string and linkifyjs/html. The embedded packages will be removed in v4.0
Use dedicated plugin packages linkify-plugin-[PLUGIN] instead of linkifyjs/plugin/[PLUGIN]. The embedded packages will be removed in v4.0

All Changes

Full Internationalized Domain (IDN) and Emoji domain support 🇺🇳🌍✈🎉💃! Detect URLs, #hashtags and @mentions in any language
~10x faster startup; ~4x faster combined startup + first run

Custom protocols with linkify.registerCustomProtocol('protocol')
Add new rel option at top level as an alternate way of including it in attributes
New and improved plugin API
TypeScript definitions included in published packages
linkify.find() output includes start and end indexes for where in the string a link was found
Plugins no longer need to be called on linkify after import// Before
import * as linkify from 'linkifyjs'
import hashtag from 'linkifyjs/plugins/hashtag'
hashtag(linkify)

// After
import * as linkify from 'linkifyjs'
import 'linkifyjs/plugins/hashtag'

Fixes: #316 #315 #312 #309 #293 #284 #251 #231 #225 #216 #204 #92 #317 #313 #279 #277 #270 #253 #245 #254 #233 #212 #206 #205 #194 #171 #167

Just gotta fill out the README files for all the sub-packages and this should be ready to deploy.

YES


Pylint final steps

This PR is based on #144 and adds:

Consistent usage of quotes
Ignore no-member pylint error on CloudFlare class
Document SSH_KEYS_FINGERPRINTS usage:

tools/config.py comment
CONTRIBUTING.md

Ignore broad-except pylint error
Fix remaining pylint errors

So option 1 to me would be to put both in Setup and Release section, and option 2 to put both only in the Release section.

@nicolasvienot I thought that option 2 was better, I moved the SSH Key fingerprints instructions to the Setup and Release section. If you agree, feel free to merge :)


Normalize_lab_for_merlin.py and Merlin label files

Hi,
What exactly is normalize_lab_for_merlin.py doing, especially in the case of phone_align?

It is a multi-purpose code:

Normalize duration to nearest divisible number by 5. Say 1.413 -> 1.415
Merge consecutive silence phones or pause phones to one.
Get rid of timestamps if required -- input format for HTK alignment

Thanks @ronanki . Running the script on some label files generated by the Makefile in data/ of an HTS voice results in about half of the files still retaining "pau". I see the conditionals in the script that prevent the "pau"s from being replaced, but I don't know exactly what their purpose is. After doing the 3 steps above, why not do a simple substitution for all instances of pau into sil?

No, it doesn't replace 'pau' with 'sil' -- both phones are used. Sometimes, the alignment may yield consecutive pauses or consecutive sil phones in the beginning -- in which case, the consecutive 'pau' phones are replaced with single 'pau' and consecutive 'sil' phones are replaced with one 'sil' phone, merging the duration.


how to sovle the game by a progrom

Dear author,I like your work verymuch.After reading your code, I have a idea.let a progrom to solve the game,but I don't  know how to realize the algorithm,thank you

I have a wordle clone on my website that can do that: https://wordle.ayra.ch/
The button "Educated Guess" will guess a possible word from the list, and can often solve the riddle.


Connection Pooling

Is there any way to configure CPR to take advantage of the underlying libcurl functionality to share connections between http requests to the same IP:Port?

Yes, and no.
You are able to reuse a connection if you use a cpr::Session object (Docs).
An actual connection pool does not exist. A while back there existed a PR (#330) for thread shared connection pools.
But this PR has never been merged since it lacked a couple of things.


Exclude not working

Hey together,
I am using the latest version of the card, but I did not get it managed to exclude an entry:
              filter:
                include:
                  - name: "attributes.device_class"
                    value: "battery"
                exlude:
                  - name: entity_id
                    value: sensor.s10x_state_of_charge

This is how I am trying to do it.
What am I doing wrong?
Thanks.

What is the "latest" actually? Please always give the exact version number. What do you see in the browser dev console?
Please make sure it is the following - there was a bug in 3.1.1 which can be the root cause of your problem. It was fixed in 3.1.2

Yes, I got 3.1.2. according to HACS

Sometimes the js fil is not being refreshed by the browser and the best way to check is to see the version being shown in console.

My card is not displayed, starting from version 1.3.1 with value = battery, without it the data appears
filter:
include:
- name: "attributes.device_class"
value: "battery"

This does not refer to this issue but to this:
https://github.com/maxwroc/battery-state-card/issues/630

I tried the new 3.1.3 version and the entity is still listed.
My syntax is fine, right?

No worries, thanks!

You have the typo - it should be "exclude"

Oh no 🤦🏼♂ Thanks


Feature request: Record and query the past n-minutes rate of an event.

My app has an operating that should happen at least once (possibly thousands of times) per minute.
I can't use com.codahale.metrics.Meter#getOneMinuteRate as it still takes into account older occurrences, albeit with a lower weight.
This FR is to add a mechanism to record and query the past n-minute rate of an event, ignoring all the events before that.

Hi @behrangsa,
I think you can use com.codahale.metrics.SlidingTimeWindowReservoir for such purposes.
But in this case should manually create Timer and/or Histogram with specified reservoir and then register it.

@storozhukBM reporting of rates, does not depend from type of reservoir, timer configured with SlidingTimeWindowReservoir will report absolutely same rates as timer configured with ExponentiallyDecayingReservoir.

@behrangsa  Why do you interest only for rates and do not interest for latency distribution(histogram) of last n-minute events? I ask, because I am creator of rolling-metrics extension for Dropwizzards/Metrics, and request for rates without percentiles looks very strange for me, could you describe your use case s little bit?

@vladimir-bukhtoyarov I think my requirements got lost in translation.
What I need is to ensure that a given activity has occurred at least once in the past n-minutes, like a heartbeat.
Anything beyond that (e.g. how many times did the even occur in the past event) is nice to have but not a requirement for my particular case.


Test - TBD

Codecov Report

Merging #129 into Dev will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              Dev     #129   +/-   ##
=======================================
  Coverage   90.67%   90.67%
=======================================
  Files          42       42
  Lines        3496     3496
  Branches       13       13
=======================================
  Hits         3170     3170
  Misses        313      313
  Partials       13       13

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 21e1efe...f51ae7d. Read the comment docs.


Re-enable tests

dependency:go-offline doesn't run tests. Also we should probably put the test section in the test block.
Probably need to just redo most of the circle.yml. Maven is really slow compared to SBT unless we are doing something horribly wrong (~50 min v.s. ~20 min for builds).

For reference the amplab jenkins build takes about 2hr to run a verify build: https://amplab.cs.berkeley.edu/jenkins/job/NewSparkPullRequestBuilder/lastSuccessfulBuild/

So this times out after a single command exceeds 120min -- a Circle limit
Timing of a full test run on my laptop:

RAT checks: 2 seconds
Scala style checks: 30 seconds
Python style checks: 34 seconds
R style checks: (skipped)
build tests: 48 seconds
building Spark: 9min9sec
detecting binary incompatibilities with MiMa: 1min54sec
running Spark unit tests: XminYsec clock time
Spark unit tests are run with 4 threads in parallel so below times are modules and their per-thread time (not wall clock time), assuming I reading these correctly
core: 10min47sec
external/kafka-0-10: 11min22sec
external/flume: 12min
mesos: 12min3sec
yarn: 17min24sec
external/kafka-0-8: 17min40sec
graphx: 18min13sec
streaming: 21min55sec
external/kinesis-asl: 21min59sec
sql/catalyst: 26min47sec
repl: 28min5sec
mllib: 36min40sec

I think the approach we should take for running tests in circle is to parallelize the Spark unit tests into separate circle containers and provide a list of modules (mesos, yarn, graphx, etc) that are run on each container.

Replaced with https://github.com/palantir/spark/pull/78


Commenting: no indication of where I am commenting on

Not sure how to tackle this / if this is really an issue, but it would be nice to know what I am commenting on - now, the VC's title is just "New Comment" and I have no idea on which issue I am commenting

I'd honestly rather it didn't open a new VC at all, and was just an expandable textview at the bottom

Ya I'm with you, path of least resistance at the moment. Inline will require auto expanding UITextView. Plus I'll need a place to put:

adding auto replies
preview button
UI real estate for autocomplete

Will give it some thought, not gonna prioritize it atm.

Alright, found a way to do this pretty easily, updating + sending new TF


Feature/portoaj/stage 6 component

Administrative Info
Issue 53
Changes

Added internalNotes field to User model
Added FosterProfile component
Added FosterProfile component to step 6 of application flow

Note

Still need to make step 6 get actual user for both Foster Profile and Dog Profile

Testing
How did you confirm your changes worked?

Made an application at step 6 and looked at result

Confirmation of Change
Upload a screenshot, if possible. Otherwise, please provide instructions on how to see the change.

What it looks like right now:

Not sure what to write for status field


setuptools.compat

Hi, this is a question - not an issue.
I have some older code that use the following import:
from setuptools.compat import reraise

which now gives:
ImportError: No module named 'setuptools.compat'

This code did work earlier so I assume something has changed in setuptools - or is there something else missing ? Searching this project I see a def reraise in _setuptools/pkg_resources/vendor/six.py. The path made it seemed a bit "internal". What is the correct way to import this now ?

Yeah, compat was an internal module and was never meant for external consumption. Your best bet is to depend on six and use re-raise from there.


Direct file upload via REST doesn't work

Using the direct upload (via Content-Type: Multipart/formdata) a null pointer occurs regardless of the input.
Inside https://github.com/OpenTOSCA/container/blob/master/org.opentosca.containerapi/src/org/opentosca/containerapi/resources/csar/CSARsResource.java
REST-Path:
containerapi/CSARs

Hi,
can you post some logs? Or the HTTP Request you are sending to the container?

It seems that the API requires the size information inside the content-disposition.
(as seen inside the Admin UI https://github.com/OpenTOSCA/ui-admin/blob/master/src/main/java/org/opentosca/ui/admin/action/client/ContainerClient.java#L572-575)


bug: Generated client interfaces does not extend other interfaces

I have a schema like this:
interface Error {
   message: String
}

interface SpecializedError implements Error {
   messsage: String
   specializedError: String
}

type ValidationError implements SpecializedError, Error {
   message: String
   specializedError: String
}

type TestPayload {
   errors: [Error!]
   result: ResultType
}

type ResultType {
   success: Boolean!
}

Expected behavior
I want the generated interface SpecializedError to extend Error so that my TestPayload error field can contain both ValidationError and other error types that implement Error directly.
Actual behavior
Interfaces do not extend other interfaces. However, concrete classes implement multiple interfaces.
If I have some shared code that internally generates SpecializedErrors, it would be nice to use that type even though the payload returns Error. Its very cumbersome to write reusable code in my resolvers when its split up like this.
Steps to reproduce
Generate code from the schema above and view its output. This is using the Java codegen.
Let me know if I can assist with more information.

We're lacking support for interfaces implementing interfaces. We have another issue open on this on the codegen project: https://github.com/Netflix/dgs-codegen/issues/181
I'm closing this issue as duplicate, but it will be addressed.


Question: Npm task registries

(On VSTS)
Really more of a clarification question on expected task behavior..
We noticed different behavior around external registries with the npm task based on the command selected (Registry configuration is pointed to 'Registries in my .npmrc' on all tasks).
When the command is set to publish, the registry url will be automatically pulled from the url specified in the npm service endpoint and automatically set in the generated .npmrc file. The task successfully publishes the package to the registry specified in the service endpoint.
However, the same configuration for the install command does not automatically pull in the registry url from the service endpoint, and as such packages are pulled from the default npmjs registry and not the registry specified in the same service endpoint. ( Enabling 'Verbose logging' on the task shows npm fetching from https://registry.npmjs.org/...)
In looking at the source for both npmcustom.ts (used for install command) and npmpublish.ts  (used for publish command) it appears that for install, npmcustom has a condition on whether always-auth is true  whereas npmpublish does not have that check and always appends the registry line

Is that the expected behavior? If so, does that mean the install command requires the registry be set elsewhere by the user (via .npmrc file in source control, set in configuration on agent, etc.)?

Thanks for asking. This is the expected behavior. For install, we want to promote the best practice of having a .npmrc checked into your repo, so that anyone cloning it knows where to restore packages from.


Cost Reporting

Administrators, PMs and Researchers need to have a clear view on spend and know when hitting budget limits.
Description

As a TRE Administrator I want to see the Azure spend for each workspace by custom time frame so that I can understand how much I have spent.

As a Workspace Owner I want to see the Azure spend for my workspace by custom time frame so I can see how much I have spent

As a Workspace Owner I want to see the Azure spend for my workspace split by workspace service

As a Workspace Owner I want to be notified when my workspace has hit its budget limit

Acceptance Criteria

[ ] API endpoint can retrieve spend for all workspaces
[ ] API endpoint can retrieve spend for a single workspace
[ ] API endpoint can returns spend split by workspace service
[ ] API endpoint can return spend over custom time frame

Feature Design
Implementation

[x] #1901
[x] #1902
[x] #2129

would it be possible also to measure how much % workspace used from core shared services and split costs for them ?

Looking at the API calls I think there needs to be the inclusion of one to return the cost of the costs of the TRE Core. This would be useful from the point of view of service providers so that they can easily see the costs.
In the Workspace related calls we need to make sure we return detailed information about the breakdown as there may need to be subsequent filtering depending on any reserved instance provision within the environment.

Here it follows a reviewed set on goals and a suggestions for user stories:
Main Goals:
Provide general cost reporting capability to a TRE instance
TRE Admins, TRE Users/Researchers need to have a clear view on TRE spending costs and on budget limits
TRE Workspace users need to have a clear view on Workspace spending costs and on budget limits
TRE users should be able get alerts around costs and budget limits.
Draft user stories:
As a TRE Admin,
I want to be able to query the total azure spend
So that I understand my overall research costs within this TRE instance
- TRE admin can access the costs endpoint for all TRE instance
- TRE admin gets total azure spend discriminated by workspace
- TRE admin gets total azure spend discriminated by shared service
- TRE admin gets total azure spend for TRE Core
- TRE admin must be able to specify custom time frame, being default calendar month
As a TRE Admin or a Workspace Owner
I want to see the Azure spend for a workspace
so that I can understand how much I have spent.
- Workspace Owner can access the costs endpoint for a workspace he owns
- TRE Admin can access the costs endpoint for any workspace
- TRE Admin/Workspace Owner gets total azure spend discriminated by user resources
- TRE Admin/Workspace Owner gets total azure spend discriminated by workspace shared services
- TRE Admin/Workspace Owner must be able to specify custom time frame, being default calendar month
As a TRE Admin/Workspace Owner
I want to set budget limit
so that I get notified with an alert when my workspace has it its budget limit
- Workspace Owner can set a budget limit for a workspace he owns
- TRE Admin can set a budget limit for any workspace
- TRE Admin/Workspace Owner get a proper alert notification when my workspace has it its budget limit
Implementation
Besides the provided suggestions, if implemented in the TRE API, it will allways depend on the billing info available in Azure REST APIs. At the moment there are few possibilities to investigate:

https://docs.microsoft.com/en-us/rest/api/cost-management/query/usage#timeframetype
https://docs.microsoft.com/en-us/rest/api/consumption/usage-details/list#customerusagedetailslist-modern

Related

#417

Design Considerations
Azure REST API provides two types of Cost APIs, Azure Cost Management API and Azure Consumption API.
The Azure Cost Management API provide the ability to explore cost and usage data via multidimensional analysis, where creating customized filters and expressions allow you to answer consumption-related questions for your Azure resources. These APIs are currently available for Azure Enterprise customers.
The Azure Consumption API give you programmatic access to cost and usage data for your Azure resources. These APIs currently only support Enterprise Enrollments and Web Direct Subscriptions (with a few exceptions). The APIs are continually updated to support other types of Azure subscriptions.
Currently doesn't support internal, CSP and sponsored subscription types.
Azure TRE currently deploys workspace services and user resources inside the same resource group per workspace.
Azure TRE API is aware of TRE entity types (workspace, workspace service, user resource), underling azure resources are visible only for resource processor.
Azure Cost Management API supports querying with different types of filtering, aggregation and grouping capabilities and different timeframes:

Grouping by - Tag or Dimention (valid values for Dimention: 'ResourceGroup','ResourceGroupName','ResourceLocation','ConsumedService','ResourceType','ResourceId','MeterId','BillingMonth','MeterCategory','MeterSubcategory','Meter','AccountName','DepartmentName','SubscriptionId','SubscriptionName','ServiceName','ServiceTier','EnrollmentAccountName','BillingAccountId','ResourceGuid','BillingPeriod','InvoiceNumber','ChargeType','PublisherType','ReservationId','ReservationName','Frequency','PartNumber','CostAllocationRuleName','MarkupRuleName','PricingModel','BenefitId','BenefitName')

Filter by - any Tag in array of values or any Dimention (same as above). note: when filtering by Tag, not all Azure Resources are supported in Cost Management (see list of supported resources).

Aggregation  - valid values: 'UsageQuantity','PreTaxCost','Cost','CostUSD','PreTaxCostUSD'

Timeframe - Valid values:  BillingMonthToDate, Custom (from-to dates), MonthToDate, TheLastBillingMonth, TheLastMonth, WeekToDate

Design Options

Option 1
Option 2
Option 3
Option 4

Description
Group by resource group
Group by Workspace / Workspace Service / User Resource Tags
Group by Resource IDs
Combine option 2 and 3tag resources, fetch resource idsthen group by resource ids

Pros
Easy to implement
Decouple TRE modules
Supported by all resource types
* Decouple TRE modules* Supports all resource types

Cons
* Supports only workspace level* Couple with resource processor internal implementation
* Not all azure resources supports tagging in Azure Cost management API* Complex - need to add tags for every resource
* very complex - need to return resource ID from resoruce processor and store in cosmos
* Complex - need to add tags for every resource

Option 4 is the prefered option.
Tagging resources upon creation
Cost report API will rely on Azure tagging to be able to generate cost report for core, shared, workspace, workspace services and user resources.
When creating each one of the above we need to make sure that underling Azure resources are taged with the corresponding tag:

Core Services - each core service will have a tag named "tre_core_service" with a value of the TRE ID to descriminate all core services per TRE instance
Shared Services - each core service will have a tag named "shared_service_id" with a value of the shared service id to descriminate each and every shared service
Workspace Services - each workspace service will have:

"workspace_id" with a value of the workspace id to descriminate each resource by workspace level
"workspace_service_id" with a value of the workspace service id to descriminate each resource by workspace service level

User Resource - each user resource will have the following tags:

"workspace_id" with a value of the workspace id to descriminate each resource by workspace level
"workspace_service_id" with a value of the workspace service id to descriminate each resource by workspace service level
"user_resource_id" with a value of the user resource id to descriminate each resource by user resource level

TRE Admin Cost Reporting - overall cost report
Description
Get overall cost report for TRE instance (core services), per shared services and per workspace
Authorization
Only TRE Admin can call this url, others will get unauthorized
Input
POST /costs
Payload:
{
    "timeframe":"BillingMonthToDate|Custom|MonthToDate|TheLastBillingMonth|TheLastMonth|WeekToDate",
    "timePeriod": {"from":"MM/DD/YYYY","to":"MM/DD/YYYY"}, // only for "Custom" timeframe, up to 1 year timespan
    "granularity":"Daily|None" // None will summarize for the timefame
}

Output
{
    "coreServices": [
        {"date":"", "cost":"", "currency":""} // date will return only for Daily granularity
        ],
    "sharedServices": [ {
        "sharedServiceId":"",
        "costs": [
            {"date":"", "cost":"", "currency":""} // date will return only for Daily granularity
            ]
        }],
    "workspaces": [ {
        "workspaceId":"",
        "costs":[
            {"date":"", "cost":"", "currency":""} // date will return only for Daily granularity
            ]}
        ]
}

sequence diagram

Get resource ids by tag
https://management.azure.com/subscriptions/{{subscriptionId}}/resources?api-version=2021-04-01&$filter=tagName eq 'workspace_id' and tagValue eq 'e67c8bf9-442f-406b-b40c-e482f190c1f1'

Cost management API payload
POST https://management.azure.com/subscriptions/{{subscriptionId}}/providers/Microsoft.CostManagement/query?api-version=2021-10-01&$expand=properties/data

Payload:
{
    "type": "Usage",
    "timeframe": "Custom", // can be also BillingMonthToDate|MonthToDate|TheLastBillingMonth|TheLastMonth|WeekToDate according to input
    "timePeriod": {
        "from": "MM/DD/YYYY",
        "to": "MM/DD/YYYY"
    },
    "dataset": {
        "granularity": "Daily",
        "aggregation": {
            "totalCost": {
                "name": "Cost",
                "function": "Sum"
            }
        },
        "filter": {
            "dimensions": {
                "name": "ResourceId",
                "operator": "In",
                "values": [
                    /// List of Azure resource ids as strings
                ]
            }
        }
    }
}

Output example:
{
    "id": "subscriptions/xxxx/providers/Microsoft.CostManagement/query/yyyy",
    "name": "yyy",
    "type": "Microsoft.CostManagement/query",
    "location": null,
    "sku": null,
    "eTag": null,
    "properties": {
        "nextLink": null,
        "columns": [
            {
                "name": "Cost",
                "type": "Number"
            },
            {
                "name": "UsageDate",
                "type": "Number"
            },
            {
                "name": "Currency",
                "type": "String"
            }
        ],
        "rows": [
            [
                0.00032930107526881738,
                20211208,
                "USD"
            ],
            [
                0.0011290322580645167,
                20211209,
                "USD"
            ],
            [
                0.0011290322580645167,
                20211210,
                "USD"
            ],
        ]
    }
}

TRE Admin / Workspace Owner Cost Reporting - specific workspace cost report
Description
Get overall cost report for a specific workspace
Authorization
Only TRE Admin and the workspace owner can call this url, others will get unauthorized
Input
POST /workspace/{workspace_id}/costs
Payload:
{
    "timeframe":"BillingMonthToDate|Custom|MonthToDate|TheLastBillingMonth|TheLastMonth|WeekToDate",
    "timePeriod": {"from":"MM/DD/YYYY","to":"MM/DD/YYYY"}, // only for "Custom" timeframe, up to 1 year timespan
    "granularity":"Daily|None" // None will summarize for the timefame
}

Output
{
    "sharedServices": [ {
      "sharedServiceId":"",
      "costs": [
          {"date":"", "cost":"", "currency":""} // date will return only for Daily granularity
          ]
      }],
    "workspace": {
      "workspaceId":"",
      "workspaceServices":[{
        "workspaceServiceId":"",
          "costs":[{"date":"", "cost":"", "currency":""}], // date will return only for Daily granularity
          "userResources":[{
            "userResourceId": "",
            "costs":[{"date":"", "cost":"", "currency":""}], // date will return only for Daily granularity
          }]
        }]
      }
}

Sequence diagram

@guybartal  does option 3 means you get a cost report per resource? is that what group by resource id means?
and option 3 means the same but instead of asking for the cost of these resource ids, you ask for the tags?
if so, I think that getting the resource cost is too fine grained, I think that the ws service or ws user resource level is better.

@guybartal does option 3 means you get a cost report per resource? is that what group by resource id means? and option 3 means the same but instead of asking for the cost of these resource ids, you ask for the tags?
if so, I think that getting the resource cost is too fine grained, I think that the ws service or ws user resource level is better.

Thanks for rasing this @eladiw, I changed "Group by" to "Filter By", it was a typo. I meant that the cost will be daily / total for a period and get filtered by a set of resources, it doen't make sense to group by a resource.

looks good. I like the fact you dont assume to keep track of the resource ids, and ask them from the management api

Status

[ ] Draft
[x] Proposed
[ ] Accepted
[ ] Deprecated

Design Considerations
Azure REST API provides two types of Cost APIs, Azure Cost Management API and Azure Consumption API.
The Azure Cost Management API provide the ability to explore cost and usage data via multidimensional analysis, where creating customized filters and expressions allow you to answer consumption-related questions for your Azure resources. These APIs are currently available for Azure Enterprise customers.
The Azure Consumption API give you programmatic access to cost and usage data for your Azure resources. These APIs currently only support Enterprise Enrollments and Web Direct Subscriptions (with a few exceptions). The APIs are continually updated to support other types of Azure subscriptions.
Currently doesn't support internal, CSP and sponsored subscription types.
Azure TRE currently deploys workspace services and user resources inside the same resource group per workspace.
Azure TRE API is aware of TRE entity types (workspace, workspace service, user resource), underling azure resources are visible only for resource processor.
Azure Cost Management API supports querying with different types of filtering, aggregation and grouping capabilities and different timeframes:

Grouping by - Tag or Dimention (valid values for Dimention: 'ResourceGroup','ResourceGroupName','ResourceLocation','ConsumedService','ResourceType','ResourceId','MeterId','BillingMonth','MeterCategory','MeterSubcategory','Meter','AccountName','DepartmentName','SubscriptionId','SubscriptionName','ServiceName','ServiceTier','EnrollmentAccountName','BillingAccountId','ResourceGuid','BillingPeriod','InvoiceNumber','ChargeType','PublisherType','ReservationId','ReservationName','Frequency','PartNumber','CostAllocationRuleName','MarkupRuleName','PricingModel','BenefitId','BenefitName')

Filter by - any Tag in array of values or any Dimention (same as above). note: when filtering by Tag, not all Azure Resources are supported in Cost Management (see list of supported resources).

Aggregation  - valid values: 'UsageQuantity','PreTaxCost','Cost','CostUSD','PreTaxCostUSD'

Timeframe - Valid values:  BillingMonthToDate, Custom (from-to dates), MonthToDate, TheLastBillingMonth, TheLastMonth, WeekToDate

Cost Management API requiers "Billing Reader" Role Assignment to be called.
Consumption API (Usage Details)

doesn't supports cost aggregation but only list of usage
doesn't supports start and end date but only per scope of billing
filtering by tags and resource groups will get deprecated.

Design Options

Option 1
Option 2
Option 3

Description
Group by resource group
Group by Workspace / Workspace Service / User Resource Tags
Filter by Resource IDs

Pros
Easy to implement
Decouple TRE modules
Supported by all resource types

Cons
* Supports only workspace level* Couple with resource processor internal implementation
* Not all azure resources supports tagging in Azure Cost management API* Complex - need to add tags for every resource, developer might miss tags when authoring new template
* very complex - need to return resource ID from resoruce processor and store in cosmos

Option 2 is the prefered option.
Tagging resources upon creation
Cost report API will rely on Azure tagging to be able to generate cost report for core, shared, workspace, workspace services and user resources.
When creating each one of the above we need to make sure that underling Azure resources are taged with the corresponding tag:

Core Services - each core service will have a tag named "tre_core_service" with a value of the TRE ID to descriminate all core services per TRE instance
Shared Services - each core service will have a tag named "shared_service_id" with a value of the shared service id to descriminate each and every shared service
Workspace Services - each workspace service will have:

"workspace_id" with a value of the workspace id to descriminate each resource by workspace level
"workspace_service_id" with a value of the workspace service id to descriminate each resource by workspace service level

User Resource - each user resource will have the following tags:

"workspace_id" with a value of the workspace id to descriminate each resource by workspace level
"workspace_service_id" with a value of the workspace service id to descriminate each resource by workspace service level
"user_resource_id" with a value of the user resource id to descriminate each resource by user resource level

TRE Admin Cost Reporting - overall cost report
Description
Get overall cost report for TRE instance (core services), per shared services and per workspace
Authorization
Only TRE Admin can call this url, others will get unauthorized
Input
GET /costs?from=MM/DD/YYYY&to=MM/DD/YYYY
Parameters:

from, to - time period, up to 1 year timespan

Output
{
    "coreServices": [
        {"date":"", "cost":"", "currency":""}
        ],
    "sharedServices": [ {
        "id":"shared service id",
        "name":"shared service name",
        "costs": [
            {"date":"", "cost":"", "currency":""}
            ]
        }],
    "workspaces": [ {
        "id": "workspace id",
        "name": "workspace name",
        "costs":[
            {"date":"", "cost":"", "currency":""}
            ]}
        ]
}

sequence diagram

Cost management API payload
API will return a flat result of all cost with every tag combination which exists on the filtered resources by the provided tag, meaning that a resource which has tre_id, tre_workspace_id, and tre_workspace_service_id will get be summerized in all three tags.
@SUBSCRIPTION = FILL_YOUR_SUBSCRIPTION_ID

@COST_API_URI = https://management.azure.com/subscriptions/{{SUBSCRIPTION}}/providers/Microsoft.CostManagement
@COST_API_VERSION = 2021-10-01
@TRE_ID = FILL_TRE_ID
@TIME_FROM = MM/DD/YYYY
@TIME_TO = MM/DD/YYYY

POST {{COST_API_URI}}/query?api-version={{COST_API_VERSION}}&$expand=properties/data
Authorization: {{$aadToken $aadV2TenantId}}
Content-Type: application/json

Payload:
{
    "type": "Usage",
    "timeframe": "Custom", // can be also BillingMonthToDate|MonthToDate|TheLastBillingMonth|TheLastMonth|WeekToDate according to input
    "timePeriod": {
        "from": "{{TIME_FROM}}",
        "to": "{{TIME_TO}}"
    },
    "dataset": {
        "granularity": "Daily", // can be also "None" for total costs
        "aggregation": {
            "totalCost": {
                "name": "Cost",
                "function": "Sum"
            }
        },
        "filter": {
            "tags": {
            "name": "tre_id",
            "operator": "In",
            "values" : [
                "{{TRE_ID}}",
                ]
            }
        },
        "grouping": [
            {
                "type": "Tag",
            }
        ]
    }
}

Output example:
{
  "id": "subscriptions/xxx/providers/Microsoft.CostManagement/query/xxx",
  "name": "e79b86b0-cc54-494c-9d8f-30b66e03aaff",
  "type": "Microsoft.CostManagement/query",
  "location": null,
  "sku": null,
  "eTag": null,
  "properties": {
    "nextLink": null,
    "columns": [
      {
        "name": "Cost",
        "type": "Number"
      },
      {
        "name": "UsageDate",
        "type": "Number"
      },
      {
        "name": "Tag",
        "type": "String"
      },
      {
        "name": "Currency",
        "type": "String"
      }
    ],
    "rows": [
      [
        0.000580800064177395,
        20220406,
        "\"tre_id\":\"yyy\"",
        "GBP"
      ],
      [
        2.1554252199539997E-05,
        20220407,
        "\"tre_id\":\"yyy\"",
        "GBP"
      ],
      [
        0.0,
        20220408,
        "\"tre_id\":\"yyy\"",
        "GBP"
      ],
      [
        0.0,
        20220409,
        "\"tre_id\":\"yyy\"",
        "GBP"
      ],
      [
        0.0,
        20220410,
        "\"tre_id\":\"yyy\"",
        "GBP"
      ]
    ]
  }
}

TRE Admin / Workspace Owner Cost Reporting - specific workspace cost report
Description
Get overall cost report for a specific workspace
Authorization
Only TRE Admin and the workspace owner can call this url, others will get unauthorized
Input
GET /workspace/{workspace_id}/costs?from=MM/DD/YYYY&to=MM/DD/YYYY
Parameters:

from, to - time period, up to 1 year timespan

Output
{
    "sharedServices": [ {
      "sharedServiceId":"",
      "costs": [
          {"date":"", "cost":"", "currency":""}
          ]
      }],
    "workspace": {
      "id": "workspace id",
      "name": "workspace name",
      "workspaceServices":[{
        "id": "workspace service id",
        "name": "workspace service name",
          "costs":[{"date":"", "cost":"", "currency":""}],
          "userResources":[{
            "id": "user resource id",
            "name": "user resource name",
            "costs":[{"date":"", "cost":"", "currency":""}],
          }]
        }]
      }
}

Sequence diagram

@eladiw @tamirkamara @joalmeid @marrobi can you please approve the design?

@guybartal while adding tags, can everything be tagged with tre_id in the instance where there are multiple TREs this would be useful when filtering resources etc.
Also can we use the format tre_workspace_id and tre_workspace_service_id, to distinguish that these tags are the TRE tags. In some cases there are many, many tags, so if they are grouped together alphabetically makes life easier when working in the portal.
Also not necessarily part of v1, but is there any way we can check that resources that have just been deployed have appropriate tags? Maybe check all resources deployed by the resource processor in the RG have a tre_id and at least a tre_shared_service or tre_workspace_id tag?
Thanks.

@guybartal while adding tags, can everything be tagged with tre_id in the instance where there are multiple TREs this would be useful when filtering resources etc.
Also can we use the format tre_workspace_id and tre_workspace_service_id, to distinguish that these tags are the TRE tags. In some cases there are many, many tags, so if they are grouped together alphabetically makes life easier when working in the portal.
Also not necessarily part of v1, but is there any way we can check that resources that have just been deployed have appropriate tags? Maybe check all resources deployed by the resource processor in the RG have a tre_id and at least a tre_shared_service or tre_workspace_id tag?
Thanks.

Thanks for commenting on this @marrobi, acctually I was counting on this tag for better perfomance upon calling the Cost Management API... I've updated the design,

@joalmeid @marrobi @eladiw @tamirkamara
design updated to reflect cache + gralularity options (daily + totals) between custom time frame

@guybartal @joalmeid can we close this feature is it's done?


[Bug]: Clone "Http Request" Error

Version of the software
0.2.2
Operating system
Win10
Browser / Native
Chrome
What happened?
https://prnt.sc/qsxYMcpDsEpm
When you clone a block, you get an error. Original version release 0.2.2
Unhandled exception thrown on 12.03.2022 11:35:01 Newtonsoft.Json.JsonSerializationException: Unable to find a constructor to use for type System.Collections.Generic.Dictionary2+KeyCollection[System.String,System.String]. Path 'Settings.method.FixedSetting.PrettyNames.$values', line 1, position 2265.
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateNewList(JsonReader reader, JsonArrayContract contract, Boolean& createdFromNonDefaultCreator)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
...`
Relevant LoliCode if needed
No response

This bug is due to my recent changes to enum parameters so it happens on every block with an enum (a dropdown). I fixed it and I will try to push the new build soon so that there won't be a problem with this anymore.


fix [Semantical Error] The class Entity is not annotated with @Annotatio...

...n. Are you sure this class can be used as annotation? If so, then you need to add @Annotation to the class doc comment of Entity. If it is indeed no annotation, then you need to add @IgnoreAnnotation(Entity) to the class doc comment of class Gedmo\Translatable\Entity\Translation.

Thanks for your PR and I'm sorry that there hasn't been any response by the maintainers.
I've closed this PR because it the branch conflicts that must be resolved. If you still want this PR to be merged, please resolve the conflicts and reopen this PR.


fix(driver): set driver instance to null if an exception is thrown du…

…ring creation or initialization.  Fixes #878

hmm not sure why it's failing on windows.  the tests failing on ubuntu seem unrelated (TestWheel.shouldWorkWhenTheEventIsCanceled)

(TestWheel.shouldWorkWhenTheEventIsCanceled)

This one has been flaky, don't worry about it, it needs to be addressed separately.

@yury-s  I added the test to run on it's own.


bug: Cast Activity Additional Spells, Limited Uses not visible

When granting a spell with limited uses via the cast action, the limited uses are displayed on the Feature/Item, but not on the spell itself as displayed in the spellbook.

From the community: https://discord.com/channels/1167985253072257115/1309988472974479401

Also, fix this:

Not sure if it's a bug yet or just a module conflict, but is anyone else seeing the Additional Spells category from the Cast Activity resetting it's position on the Spellcasting tab if you've moved it from the default position? I'm also not seeing its position update when hitting Apply when trying to move the position. It stays put until I close and reopen the sheet.

https://discord.com/channels/1167985253072257115/1170021717524107274/1310059871705759754


IRC package tests have enough race conditions to host olympics.

% go test -race ./...
[… SNIPPED …]
Found 22 data race(s)
FAIL    _/home/arachnist/scm/gorepost/irc       3.020s

Fixing them wasn't that hard.


Add Continuous Integration pipeline to our development

As a developer
I need to make sure my commits are built and tested properly when making a pull request
So that it guarantees that my code behaves like what I expected and also raises the reliability of my pull requests to other developers. (or reduces code integration risk and provides higher code quality.)
Details and Assumptions
Implement CI tool—GitHub Actions
Acceptance Criteria
Given GitHub Actions implemented
When I make a new pull request, the test suite will run automatically in the same page and provide test results for review
Then I and other developers can review this pull request based on test results.

Implement CI for TDD and add a badge showing the status

Also add badges for the repo.


Fix-14729

Purpose of the pull request
fix the problem of #14729

Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

(or)
If your pull request contain incompatible change, you should also add it to docs/docs/en/guide/upgrede/incompatible.md

Please submit PR based on the dev branch, and use a meaningful title.


HttpPost method Switches to HttpGet

I have a C# WebAPI ODataController endpoint that has a couple get methods and a post method. In the generated code, the request is set up as a POST method but, the call to the API is a client_.SendAsync instead of client_.PostAsync and always returns as 405 Method not allowed.
The call from the SwaggerUI successfully executes HttpPost. Also, manually making a PostAsync call to the endpoint also correctly calls the endpoint.
What am I missing to have NSwagStudio generate this as an HttpPost method and not change it?
The signature is as follows:
In Statup.Configure:
app.UseEndpoints(endpoints => {                 modelBuilder.DefaultModelConfiguration += (b, v, r) => {                     b.EntitySet<Thing>("Things");                     b.EntityType<Thing>().Action("Things").Parameter<int>("key");                     b.EntityType<Thing>().Collection.Action("DoTheThing").ReturnsFromEntitySet<Thing>("Things").Parameter<DoTheThingCommand>("command"); 	... }
In the controller:
``
[Authorize]
[ApiVersion("1.0")]
[ResponseCache(Duration = 60, Location = ResponseCacheLocation.Any)]
[Produces("application/json")]
public class MyController : ODataController {
[ProducesResponseType(typeof(Thing), StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
[Consumes("application/json")]
public async Task DoTheThing([FromBody] DoTheThingCommand command, CancellationToken cancellationToken = default) {
...
}
``

This issue can be deleted. I was able to resolve the bug. It was in code that a developer copied and pasted without reading the entire intent of the code. This has been resolved and does not apply to NSwagStudio.


¿COPYPASTA?

Why on the official page are that text to copy code?
"COPYPASTA"
Thanks!

http://knowyourmeme.com/memes/copypasta


[backport] Fix typo in L.ResNetLayers

Backport of #5665

[automatic post] Jenkins, test this please.

Jenkins CI test (for commit<PHONE_NUMBER>1c546adb237178960505ed03312238, target branch v5) succeeded!


Typo in custom.el

Should say Castlemacs.
Not sure how to handle as custom.el theoretically should not be updated, but I think it's worth noting.
https://github.com/freetonik/castlemacs/blob/b48af25b039fe44f831b8003623bbce27ee63a37/custom.el#L2

Yeah, it's a pickle... I guess it should be okay for the small number of early adopters to pull that change, since it's only a one line.


Add kemal to web framework

Shouldn't we delete frank now?

Yeah I agree. Frank serves as a proof of concept. Updated.

Thanks


Generic traits that return generic arrays don't bind array lengths

Aim
Doing code like this:
trait Serialize<N> {
    fn serialize(self) -> [Field; N];
}

struct ValueNote {
    value: Field,
}

impl Serialize<1> for ValueNote {
    fn serialize(self) -> [Field; 1] {
        [self.value]
    }
}

fn check<N>(serialized_note: [Field; N]) {
    assert(serialized_note[0] == 0);
}

fn oopsie<Note, N>(note: Note) where Note: Serialize<N> {
    let serialized_note = Note::serialize(note);

    check(serialized_note)
}

fn main(mut note: ValueNote) {
    oopsie(note);
}

Expected Behavior
It should compile!
Bug
Panics with
The application panicked (crashed).
Message:  assertion failed: `(left == right)`
  left: `2`,
 right: `1`
Location: compiler/noirc_evaluator/src/ssa/opt/inlining.rs:420

Workaround: typing annotating the return value:
trait Serialize<N> {
    fn serialize(self) -> [Field; N];
}

struct ValueNote {
    value: Field,
}

impl Serialize<1> for ValueNote {
    fn serialize(self) -> [Field; 1] {
        [self.value]
    }
}

fn check<N>(serialized_note: [Field; N]) {
    assert(serialized_note[0] == 0);
}

fn oopsie<Note, N>(note: Note) where Note: Serialize<N> {
    let serialized_note: [Field; N] = Note::serialize(note); <== This

    check(serialized_note)
}

fn main(mut note: ValueNote) {
    oopsie(note);
}

To Reproduce

Installation Method
None
Nargo Version
No response
Additional Context
No response
Would you like to submit a PR for this Issue?
No
Support Needs
No response

This issue can also cause the following error (a lot clearer) in the monomorphization step:
Message:  Non-numeric type variable used in expression expecting a value
Location: compiler/noirc_frontend/src/monomorphization/mod.rs:721

Another possibly related issue:
This fails:
use dep::std::option::Option;

trait MySerialize<N> {
    fn serialize(self) -> [Field; N];
}

trait MyDeserialize<N> {
    fn deserialize(fields: [Field; N]) -> Self;
}

impl MySerialize<1> for Field {
    fn serialize(self) -> [Field; 1] {
        [self]
    }
}

impl MyDeserialize<1> for Field {
    fn deserialize(fields: [Field; 1]) -> Self {
        fields[0]
    }
}

#[oracle(storageRead)]
fn storage_read_oracle<N>(_storage_slot: Field, _number_of_elements: Field) -> [Field; N] {}

unconstrained fn storage_read_oracle_wrapper<N>(_storage_slot: Field) -> [Field; N] {
    storage_read_oracle(_storage_slot, N)
}

pub fn storage_read<N>(storage_slot: Field) -> [Field; N] {
    storage_read_oracle_wrapper(storage_slot)
}

struct PublicState<T> {
    storage_slot: Field,
}

impl<T> PublicState<T> {
    pub fn new(
        storage_slot: Field,
    ) -> Self {
        assert(storage_slot != 0, "Storage slot 0 not allowed. Storage slots must start from 1.");
        PublicState {
            storage_slot,
        }
    }
    pub fn read<T_SERIALIZED_LEN>(self) -> T where T: MyDeserialize<T_SERIALIZED_LEN> {
        let fields: [Field; T_SERIALIZED_LEN] = storage_read(self.storage_slot);
        T::deserialize(fields)
    }
}

fn main(value: Field) {
    let ps: PublicState<Field> = PublicState::new(27);

    assert(ps.read() == value);
}

with
The application panicked (crashed).
Message:  assertion failed: `(left == right)`
  left: `2`,
 right: `1`
Location: compiler/noirc_evaluator/src/ssa/opt/inlining.rs:420

The workaround consists in passing an unused sample array with the length:
use dep::aztec::context::{Context};
use dep::std::option::Option;

trait MySerialize<N> {
    fn serialize(self) -> [Field; N];
}

trait MyDeserialize<N> {
    fn deserialize(fields: [Field; N]) -> Self;
    // Such a hackkity hack!!!!
    fn empty() -> [Field; N];
}

impl MySerialize<1> for Field {
    fn serialize(self) -> [Field; 1] {
        [self]
    }
}

impl MyDeserialize<1> for Field {
    fn deserialize(fields: [Field; 1]) -> Self {
        fields[0]
    }

    fn empty() -> [Field; 1] {
        dep::std::unsafe::zeroed()
    }
}

#[oracle(storageRead)]
fn storage_read_oracle<N>(_storage_slot: Field, _number_of_elements: Field) -> [Field; N] {}

unconstrained fn storage_read_oracle_wrapper<N>(_storage_slot: Field, _sample: [Field; N]) -> [Field; N] {
    storage_read_oracle(_storage_slot, N)
}

pub fn storage_read<N>(storage_slot: Field, _sample: [Field; N]) -> [Field; N] {
    storage_read_oracle_wrapper(storage_slot, _sample)
}

struct PublicState<T> {
    storage_slot: Field,
}

impl<T> PublicState<T> {
    pub fn new(
        storage_slot: Field,
    ) -> Self {
        assert(storage_slot != 0, "Storage slot 0 not allowed. Storage slots must start from 1.");
        PublicState {
            storage_slot,
        }
    }
    pub fn read<T_SERIALIZED_LEN>(self) -> T where T: MyDeserialize<T_SERIALIZED_LEN> {
        let fields: [Field; T_SERIALIZED_LEN] = storage_read(self.storage_slot, T::empty());
        T::deserialize(fields)
    }
}

fn main(value: Field) {
    let ps: PublicState<Field> = PublicState::new(27);

    assert(ps.read() == value);
}

@sirasistant I think your second error is a bit different. Do you mind filing a separate issue?

Opened https://github.com/noir-lang/noir/issues/4124


MapData

Hello guys, I need to know the MapData class alternate in ios or please guide me on how can i draw polygon and polyline on map.

Hey @haidershahzad, our core team is focusing on an Android SDK right now, a matching iOS SDK will come later in the year. For now, here's what I recommend:
The MapData Java class on Android is mostly a wrapper around the ClientGeoJsonSource C++ class (https://github.com/tangrams/tangram-es/blob/master/core/src/data/clientGeoJsonSource.h). On iOS, you can directly use this C++ class with Objective-C code if you compile it as Objective-C++ (using a .mm extension). With this class you can add point, line, polygon, and raw GeoJSON data to your map. The demo application for OS X shows an example of using the ClientGeoJsonSource with the Tangram-ES API (https://github.com/tangrams/tangram-es/blob/master/osx/src/main.cpp).
Let me know if this helps!

Hi @blair1618 thank you for you response, i have check the osx example and prepare a sample code to run on ios, im trying to draw line between to coordinates buts its get crashed on addline method from the class ClientGeoJsonSource. Im attching the images of the crash and console description.
And this is how i declared the datasource like in the osx application.
using namespace Tangram;
std::shared_ptr data_source;

Thank you.

@haidershahzad From your last screenshot, it looks like your data_source variable is holding a null pointer. A shared_ptr object must be initialized with an object to point to before it can be used (this is done here in the OS X demo: https://github.com/tangrams/tangram-es/blob/master/osx/src/main.cpp#L287).

Thanks alot guys, keep doing the great work.
HAPPY CODING


Migrate  electron-builder configuration from YML to JS

So that we can specify the conf fully using env variables, see: https://github.com/electron-userland/electron-builder/issues/7812#issuecomment-1788394416

this is not really necessary, closing it


Support for a close box.

I wanted to put a close box on the bottomsheet view that would close the bottomsheet when tapped.   It works fine on android but not iOS iOS it hides the bottomsheet but the UI becomes locked.
In my ModelView I have the following command.

        [RelayCommand]
        public async void HideBottomSheet()
        {
#if ANDROID || IOS

            Application.Current.MainPage.HideBottomSheet();
#endif
        }

In Android PageExtensions I changed the code as follows...
A class variable d; set d to the bottomSheetdialog; and the hide it when the command is called.

public static partial class PageExtensions
{
    static BottomSheetDialog d;
    public static void ShowBottomSheet(this Page page, IView bottomSheetContent, bool dimDismiss)
    {
        var bottomSheetDialog = new BottomSheetDialog(Platform.CurrentActivity?.Window?.DecorView.FindViewById(Android.Resource.Id.Content)?.Context ?? throw new InvalidOperationException("Context is null"));
        bottomSheetDialog.SetContentView(bottomSheetContent.ToPlatform(page.Handler?.MauiContext ?? throw new Exception("MauiContext is null")));
        bottomSheetDialog.Behavior.Hideable = dimDismiss;
        bottomSheetDialog.Behavior.FitToContents = true;
        bottomSheetDialog.Show();
        d = bottomSheetDialog;

    }
    public static void HideBottomSheet (this Page page)
    {
        d.Hide();
    }
}

Did the same kind of thing on iOS but I suspect I have gotten the wrong variable and something is not working...
Any suggestions on how I can update the iOS one to work without hanging?
Thanks
public static partial class PageExtensions
{
    public static void HideBottomSheet(this Page page)
    {
        c.PresentedView.Hidden = true;

    }
    static UISheetPresentationController c;
    public static void ShowBottomSheet(this Page page, IView bottomSheetContent, bool dimDismiss)
	{
		var mauiContext = page.Handler?.MauiContext ?? throw new Exception("MauiContext is null");
		var viewController = page.ToUIViewController(mauiContext);
		var viewControllerToPresent = bottomSheetContent.ToUIViewController(mauiContext);

		var sheet = viewControllerToPresent.SheetPresentationController;

		if (sheet is not null)
		{
			sheet.Detents = new[]
			{
				UISheetPresentationControllerDetent.CreateMediumDetent(),
				UISheetPresentationControllerDetent.CreateLargeDetent(),
			};
			sheet.LargestUndimmedDetentIdentifier = dimDismiss ? UISheetPresentationControllerDetentIdentifier.Unknown : UISheetPresentationControllerDetentIdentifier.Medium;
			sheet.PrefersScrollingExpandsWhenScrolledToEdge = false;
			sheet.PrefersEdgeAttachedInCompactHeight = true;
			sheet.WidthFollowsPreferredContentSizeWhenEdgeAttached = true;
		}

		viewController.PresentViewController(viewControllerToPresent, animated: true, null);
		c = sheet;

	}

}

on iOS, you need to call the DismissViewController method. I will update the sample and article to include these changes.

you can find changes in this branch: https://github.com/VladislavAntonyuk/MauiSamples/tree/bottomsheet-dismiss
After I test it, I will merge it to the main branch


testsuite: ztest: Add zassert_within macro

Added macro to test value against another value with
accepted delta.
Signed-off-by: Krzysztof Chruscinski<EMAIL_ADDRESS>

@nashif can you add other reviewers, i don't see ztest maintainer in CODEOWNERS

@anangl thanks for the review. I've applied your findings.


Test-GT

I am very interested in your work, how can I get the GT of my test set when I test on my own dataset.

If you want to compute metrics using GT, you need to prepare it. If GT images are not available (i.e., you can not obtain the paired well-exposed images), I suggest you set the GT path to None to predict the enhanced images without computing metrics.

Can you give me some guidance on how your code works when reproduced?

Can you give me some guidance on how your code works when reproduced?

Just follow the readme.md below.


rtm url command hangs

When I run the command rtm url 3163, the spinner starts and after about 15 seconds it stops spinning and the command hangs. The only way I can stop it is to kill it at this point. I can CTRL+C out if I do it while the spinner is still spinning.
I think that this may be a scaling problem; I'm a long time RTM user (over 14 years) and have a lot of tasks. I think that when the user.tasks.getTask() runs as part of the url command, it is pulling back all my tasks, twice and then has to iteratively scan through all my lists and taskseries to find the matching taskseries.
I let it sit overnight, but still nothing.
I'm not 100% sure if this is a rtm-api or rtm-cli issue.
I couldn't quite figure out user.tasks.getTask() and it's interactions with  _getTaskInfo() but I think I have a solution that leverages information from the cache to help pre-filter pulling the task information. I need to abstract it to a function and will share my code when I'm part way through, hopefully for some feedback.
I think that my solution, ultimately getting a taskseries by cache index, might help with #19 (or at least getting the notes) and #6 , too.

This should be addressed by 3b7ce730258d103b158ec3ffa64cfa081a43c525.
Unless the RTM API adds a method for getting a single task, performance could continue to be an issue if there are a lot of old tasks in an account.  In this case, it might be best to remove old tasks periodically.


Allow "resurrection" of MMS branches via MDK

When I branch gets deleted via VE or API, and a new commit of the branch is done from MDK a server 500 error is returned

branch 'resurrection' is a bit complicated since we dont' know whether we just 'resurrect' or it should really be a delete and rebranch from parent's latest, needs more consideration, for now we'll just update the error message to be more informative

reopening as fix was better error message, real fix needs more discusison


Redirects when reloading using lazy loading

Version
5.2.0
Test Case
https://codesandbox.io/s/hungry-robinson-5w30d
Steps to reproduce

go to codesandbox ^
press link (goto about)
reload the embeded browser
notice how the page redirects you to home

Expected Behavior
Expected that the page does not redirect me back to the home page when reloading using lazy loading.
Actual Behavior
The page redirects me to the home page when reloading using lazy loading.

Suspense needs to be outside of the Switch. Switch only works on the first level of children, so it's getting in the way.


Skip .fileinfo files when archiving

These are from an older version of Kingfisher Collect. They were removed since analysts said they didn't need them: https://github.com/open-contracting/kingfisher-collect/issues/307

I can instead just delete the fileinfo files from the archive server, before running this repo on that server.

find /home/archive/data -name '*.fileinfo' -type f -exec rm -f {} \;

Running this on server now.


Add missing decorators

What was wrong?
@property decorators are missing in the base class
How was it fixed?
Added them
Cute Animal Picture

@pipermerriam I guess this went unnoticed because I mentioned it after I already approved the PR :)


memtest86+ is failing on staging (ld SIGSEGV)

Issue description
cc @Ericson2314
[nix-shell:~/dev/nixpkgs-staging/memtest86+-5.01]$ gdb /nix/store/0kf6dwhhlra1fxpvbfg6c2x6s3xi0ixz-binutils-2.29/bin/ld
GNU gdb (GDB) 8.0
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /nix/store/0kf6dwhhlra1fxpvbfg6c2x6s3xi0ixz-binutils-2.29/bin/ld...(no debugging symbols found)...done.
(gdb) run -T memtest.bin.lds bootsect.o setup.o -b binary memtest_shared.bin -o memtest.bin
Starting program: /nix/store/0kf6dwhhlra1fxpvbfg6c2x6s3xi0ixz-binutils-2.29/bin/ld -T memtest.bin.lds bootsect.o setup.o -b binary memtest_shared.bin -o memtest.bin

Program received signal SIGSEGV, Segmentation fault.
0x00000000004273e4 in gldelf_x86_64_place_orphan ()
(gdb) bt
#0  0x00000000004273e4 in gldelf_x86_64_place_orphan ()
#1  0x000000000041829a in lang_process ()
#2  0x0000000000405c0e in main ()

Wait this isn't memtest failing, but ld crashing when linking memtest?

Yep /o\

Fixed in 0e18f28cecd


Stable BTreeMap benchmark comparison between this lib and dfinity's new offering

https://github.com/dfinity/stable-structures
Hi @seniorjoinu, would love to see a comparison benchmark between ic-stable-memory's implementation of stable BTreeMap and the one Dfinity recently made available. Thoughts?

@seniorjoinu Any thoughts on this?

ic-stable-memory is slightly faster that ic-stable-structures. Here are the results of a benchmark made by Adam from Dfinity
https://docs.google.com/presentation/d/1B-8Fz6yQx2BUiYdNQ3ZlYTmjuqyBr4VV6pgLQZO_sPo/edit#slide=id.g21c7bc0c394_0_25


Document src/termdag.rs

Wrote some docs.
I also deleted this old comment:
    // users can't construct a termnode, so just
    // look it up

which I believe to be wrong. Term is exported publicly via src/lib.rs:
pub use termdag::{Term, TermDag};

So users can construct Terms by hand.
Because of this, I included in the documentation for various methods what the
behavior of the current implementation is when given malformed Terms.

@oflatt please review my docs for accuracy before merge.


Undoing deletion a tag angle bracket (>) results in another tag closer

Issue Type
Bug
Description
1.create .html file
2. write any <tag> </tag> with at least one character between them (for example space/newline)
3. delete the opening tags angle bracket (resulting in <tag </tag>)
4 .undo - you now have <tag></tag> </tag>
VS Code Info
VS Code version: Code 1.20.0 (c63189deaa8e620f650cc28792b8f5f3363f2c5b, 2018-02-07T17:09:39.780Z)
OS version: Windows_NT x64 10.0.16299

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz (8 x 3408)

Memory (System)
15.88GB (8.34GB free)

Process Argv
C:\Program Files\Microsoft VS Code\Code.exe

Screen Reader
no

VM
0%

Extensions (9)

Extension
Author (truncated)
Version

make-hidden
dev
2.2.1

beautify
Hoo
1.3.0

vscode-discord
max
1.0.2

gitignore
mic
1.0.1

debugger-for-chrome
msj
4.1.0

vscode-icons
rob
7.19.0

code-settings-sync
Sha
2.8.7

vscode-surround
Swo
1.0.1

vim
vsc
0.10.13

(1 theme extensions excluded)

Reproduces without extensions

It's difficult to guess the users intent. Is the intent to complete an existing tag or is it inserting a new nested tag.
Right now, the closing pair is inserted unless one starts directly after the cursor. If that was the wrong guess, press undo to remove the closing tag.
I keep the issue open and we can tune the strategy if other users feel the same (in that case, please add 👍 to the description)

This is not a feature request, it's a bug. The key part of this is that the tag completion happens when the undo command occurs.  The tag completion shouldn't be running after an undo command as it screws up the undo/redo chain.
An example of how the chain gets broken.

Start with
1

Select
 and delete
Change the 1 to a 2
Undo twice
The editor ends up with

1

Redo now will not work as the tag completion edited the document and broke the previous chain

@subshock That's a slightly different issue: https://github.com/microsoft/vscode/issues/52777

I now think it's a dup of #52777. Undo should not trigger a auto-close


Help misuse of options argument.

I have sometimes seen misuse of a keyword argument options  in read_xxx/to_xxx functions. E.g.,
kdf = ks.read_csv(..., options={ ... })

In this case, the argument options is actually {'options': { ... }}, which is not what the user wants to do.
We can help those cases by getting the 'options' value.

This way is not currently supported in pandas, right?
But It's LGTM though.

It's not supported in pandas because options here means PySpark specific options.


all instances updated when updating default dict

Not sure if this is a bug or if it's the expected behaviour?
import attr

@attr.s
class D(object):
    m = attr.ib(default={'a': 1})

x = D()
y = D()
print(x.m)
print(y.m)
y.m.update({'a': 2})
print(x.m)
print(y.m)

Output
{'a': 1}
{'a': 1}
{'a': 2} <-- Was not expecting this one to change
{'a': 2}

This is expected Python behavior. A dict is a mutable datastructure and the way you use it, there's only one instance of it (common mistake is to use them as default arguments def f(x={})).
Use factory=dict instead.

Ok, thanks for the explanation. This worked as expected:
@attr.s
class D(object):
    m = attr.ib()
    @m.default
    def m_default(self):
        return {'a': 1}


Upgrade druid-0.11.0 from 0.10.0 timezone faild?

Upgrade Druid 0.11.0 by Druid 0.10.0, Duser.timezone = UTC + 0800 does not take effect
[

The start an end are now represented in UTC instead of user.timezone and this is as expected.
IMO, your queries should still be getting correct results.


JSDisconnectedException in RadzenDataGrid Dispose

Describe the bug
I added a NotificationService.Notify to my server side Blazor app and it is now repeatedly throwing JSDisconnectedException when I refresh the page.
The call stack:
Microsoft.AspNetCore.Components.Server.dll!Microsoft.AspNetCore.Components.Server.Circuits.RemoteJSRuntime.BeginInvokeJS(long asyncHandle, string identifier, string argsJson, Microsoft.JSInterop.JSCallResultType resultType, long targetInstanceId) Line 116
	at /_/src/Components/Server/src/Circuits/RemoteJSRuntime.cs(116)
Microsoft.JSInterop.dll!Microsoft.JSInterop.JSRuntime.InvokeAsync<Microsoft.JSInterop.Infrastructure.IJSVoidResult>(long targetInstanceId, string identifier, System.Threading.CancellationToken cancellationToken, object[] args) Line 132
	at /_/src/JSInterop/Microsoft.JSInterop/src/JSRuntime.cs(132)
Microsoft.JSInterop.dll!Microsoft.JSInterop.JSRuntime.InvokeAsync<Microsoft.JSInterop.Infrastructure.IJSVoidResult>(long targetInstanceId, string identifier, object[] args) Line 91
	at /_/src/JSInterop/Microsoft.JSInterop/src/JSRuntime.cs(91)
Microsoft.JSInterop.dll!Microsoft.JSInterop.JSRuntime.InvokeAsync<Microsoft.JSInterop.Infrastructure.IJSVoidResult>(string identifier, object[] args) Line 69
	at /_/src/JSInterop/Microsoft.JSInterop/src/JSRuntime.cs(69)
Microsoft.JSInterop.dll!Microsoft.JSInterop.JSRuntimeExtensions.InvokeVoidAsync(Microsoft.JSInterop.IJSRuntime jsRuntime, string identifier, object[] args) Line 32
	at /_/src/JSInterop/Microsoft.JSInterop/src/JSRuntimeExtensions.cs(32)
[Resuming Async Method]
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start<Microsoft.JSInterop.JSRuntimeExtensions.<InvokeVoidAsync>d__0>(ref Microsoft.JSInterop.JSRuntimeExtensions.<InvokeVoidAsync>d__0 stateMachine) Line 38
	at /_/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/AsyncMethodBuilderCore.cs(38)
Radzen.Blazor.dll!Radzen.Blazor.RadzenDataGrid<DiveShop.ViewModels.CertificationVM>.Dispose()
Microsoft.AspNetCore.Components.dll!Microsoft.AspNetCore.Components.Rendering.ComponentState.Dispose() Line 252
	at /_/src/Components/Components/src/Rendering/ComponentState.cs(252)
Microsoft.AspNetCore.Components.dll!Microsoft.AspNetCore.Components.RenderTree.Renderer.Dispose(bool disposing) Line 1030
	at /_/src/Components/Components/src/RenderTree/Renderer.cs(1030)
Microsoft.AspNetCore.Components.Web.dll!Microsoft.AspNetCore.Components.RenderTree.WebRenderer.Dispose(bool disposing) Line 87
	at /_/src/Components/Web/src/WebRenderer.cs(87)
Microsoft.AspNetCore.Components.Server.dll!Microsoft.AspNetCore.Components.Server.Circuits.RemoteRenderer.Dispose(bool disposing) Line 121
	at /_/src/Components/Server/src/Circuits/RemoteRenderer.cs(121)
Microsoft.AspNetCore.Components.dll!Microsoft.AspNetCore.Components.RenderTree.Renderer.Dispose() Line 1089
	at /_/src/Components/Components/src/RenderTree/Renderer.cs(1089)
Microsoft.AspNetCore.Components.dll!Microsoft.AspNetCore.Components.Rendering.RendererSynchronizationContextDispatcher.InvokeAsync(System.Action workItem) Line 30
	at /_/src/Components/Components/src/Rendering/RendererSynchronizationContextDispatcher.cs(30)
Microsoft.AspNetCore.Components.dll!Microsoft.AspNetCore.Components.RenderTree.Renderer.DisposeAsync() Line 1105
	at /_/src/Components/Components/src/RenderTree/Renderer.cs(1105)
Microsoft.AspNetCore.Components.Server.dll!Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost.DisposeAsync.AnonymousMethod__36_0() Line 188
	at /_/src/Components/Server/src/Circuits/CircuitHost.cs(188)
Microsoft.AspNetCore.Components.dll!Microsoft.AspNetCore.Components.Rendering.RendererSynchronizationContext.InvokeAsync.AnonymousMethod__9_0(object state) Line 74
	at /_/src/Components/Components/src/Rendering/RendererSynchronizationContext.cs(74)
Microsoft.AspNetCore.Components.dll!Microsoft.AspNetCore.Components.Rendering.RendererSynchronizationContext.ExecuteSynchronously(System.Threading.Tasks.TaskCompletionSource<object> completion, System.Threading.SendOrPostCallback d, object state) Line 237
[...] uninteresting stacks elided

Environment

.Net 6
Windows 10
Edge (Chromium)
Server side Blazor
Latest Radzen nuget

Related issues
See the following Blazor issues:

Blazor 33336
Blazor 32901
Blazor 32808

Comments
Based on my reading of the related issues, there is a change in behavior in .Net 6 where calling JSRuntime inside a Dispose method can trigger this exception as the runtime may have disconnected from its circuit. This exception does not exist in .Net 5 so it is likely not caught and handled in the current Radzen library.
Looking at    RadzenDataGrid.razor.cs#L1948 this is the likely code that needs to handle this exception.
In looking at the RemoteJSRuntime.cs code where the exception is thrown, one possible way to help avoid this is to check RemoteJSRuntime.IsInitialized which checks the validity of _clientProxy which must not be null. The JSDisconnectedException can only be thrown if  _clientProxy is null, therefore if IsInitialized is true then it is safe to call JSRuntime.InvokeVoidAsync.
There may be other places where this same pattern occurs.

I'm unable to reproduce such exception on our demos: https://blazor.radzen.com/notification

It appears that pointing a finger at Notifications was a red herring. I removed notifications and it still throws.
I have distilled my repo down to a very minimal test case that only involves a DataGrid and I can consistently see the exceptions being throw when the Page is refreshed.
See this test repro.

I'm afraid that we cannot do anything else to prevent this. There is already check if the JSRuntime is available. And the StateHasChanged is in try/catch block.

A little more debugging on this.
The code is failing in the RadzenDataGrid.Dispose method, the critical code is where it checks IsJSRuntimeAvailable to be true, if so then in calls JSRuntime.InvokeVoidAsync which throws JSDisconnectedException.
If you look at JSRuntime.IsInitialized it is false when the Invoke is called, so it is not unexpected that this fails.
Tracing through my testcase for when IsJSRuntimeAvailable is set and when it is get, you can observe that on initial access to the page it is set to true in OnAfterRenderAsync and a few more times when it is already true. In each case  JSRuntime.IsInitialized is true.
The I hit Refresh (^R) I see a call to RadzenDataGrid.Dispose with a different UniqueID than the previous cases and IsJSRuntimeAvailable is false and JSRuntime.IsInitialized is false .
There is then another call to RadzenDataGrid.Dispose with the same UniqueID as the initial access, now IsJSRuntimeAvailable is still true but JSRuntime.IsInitialized is false ! The exception is thus thrown.
My working theory is that when the browser does a Refresh of the page, the JSRuntime is reset (new instance?). But all of the existing RadzenComponents have not had their Dispose methods called. This appears to fit with the discussions in the Issues linked above, that the Dispose method may take up to 60 seconds to be called in some cases.
I don't understand the history of the RadzenComponent code and why it is independently tracking the state of the JSRuntime, and notably that it never tracks the case where the runtime goes away (never set to false). So this appears to be a bad assumption that the Dispose method will be called before the JSRuntime goes away, and with .Net 6.0 things have changed where it does go away first (race?).
Without knowing the internal details, I would opine that the property be removed and the checks such as this:
if (IsJSRuntimeAvailable)
{
...
}

Be replaced by:
if (JSRuntime?.IsInitialized)
{
...
}

However, IsInitialized may be Public but it is not documented, so it may not be stable to rely on. The only documented way to know if the runtime is initialized is if OnAfterRenderAsync has been called, but I don't see how to detect if it has been destroyed.
An alternative approach that might work is to grab a reference to a IJSObjectReference in OnAfterRenderAsync and hold on to it, then in the RadzenComponent.Dispose actually dispose of the reference. This will guarantee that it still exists, but it may still not be in a usable state.
Or maybe the only stable thing to do is to simply catch JSDisconnectedException and swallow it?


DOC: fix type descriptors in ltisys documentation

"ndarray" must be "tuple"

Thanks @mohmmadd, merged.


Your seed phrase screen is flashing

Describe the bug
Your seed phrase screen is flashing

Version test : http://<IP_ADDRESS>:8900/s/nQ9xTLop6BS6qzJ
Validation passed in case

When has popup Keep your seed phrase

When hasn't popup Keep your seed phrase

Re-load background and then create account


Fix omitData for top level array

Reasons for making this change
Enabling omitData currently converts a top level array to an object. Now includes a check if the form's top level type is an array, and converts back to an array if necessary.
#1396
Checklist

[ ] I'm updating documentation

[ ] I've checked the rendering of the Markdown text I've added

[x] I'm adding or updating code

[ ] I've added and/or updated tests
[ ] I've updated docs if needed

[ ] I'm adding a new feature

[ ] I've updated the playground with an example use of the feature

Thanks @Tonexus ! Can you add a test?

Ok, added one test to make sure the top level array stays as an array.


feat!: Update default values for security posture improvement

Description

update outputs to use try() function
update default settings for passwords to fix security settings

do not set an empty string as default (ref #354)
change default behavior to use randomly generated password of length 16 (was 10 previously)

update default settings to enable encryption by default (ref #354)
set username, password, and engine to null when  a replicate_source_db or snapshot_identifier is provided; these values are already provided in the respective source (ref #324)
add new attribute replica_mode and bump AWS provider version to support (ref #357)
add latest_restorable_time to ignored changes (ref #356)
correct db_subnet_group_name to use full name when prefix is enabled (ref #359)
add restore_to_point_in_time attribute to MSSQL instance (ref #363)
bump min supported version of Terraform to 0.13.1
bump random provider to be consistent using v4.x due to name being deprecated and db_name replacing it

For complete list of changes, please see upgrade guide https://github.com/bryantbiggs/terraform-aws-rds/blob/feat/updates/UPGRADE-4.0.md
Motivation and Context

Closes #105
Closes #324
Closes #354
Closes #356
Closes #357
Closes #359
Closes #362
Closes #363
Closes #373
Closes #374
Closes #377

Breaking Changes

Yes

How Has This Been Tested?

[x] I have tested and validated these changes using one or more of the provided examples/* projects

@antonbabenko ps - it looks like their might be an issue with the token or something on the PR title check for this repo, not sure Error: Resource not accessible by integration

This PR is included in version 4.0.0 :tada:


0.6.0 not on crates.io yet

Latest reported version is 0.5.7 according to crates.io

Not a bug, 0.6.0 was never released on crates.io because too many large issues appeared after rebase.

Ah, I see. Was missing that context, thanks.


net/http: DetectContentType does not detect ttf fonts

Go's DetectContentType is detecting ttf fonts as application/octet-stream. Acceptable content types for tff fonts would be:
font/ttf
application/ttf
application/x-ttf
application/truetype
application/font
application/font-sfnt
Related: https://github.com/mholt/caddy/issues/1729
Tagging: @mholt

It does seem that the mimesniff spec includes fonts:
https://mimesniff.spec.whatwg.org/#matching-a-font-type-pattern
/cc @odeke-em

Thanks @watermelonjuice and @bradfitz, I'll work on it.

@watermelonjuice @mholt could someone help me with an MS FontObject sample?


Media queries support

Hi, will @Media queries be supported? Because as I can see in caniemail it is supported in most web/mobile email clients.

Yup, can you share what are you trying to do?

I want to have two columns on desktop, and one column on mobile (when width is lower than 400) and I also want to have different padding on mobile and different on desktop.

I want to have two columns on desktop, and one column on mobile (when width is lower than 400) and I also want to have different padding on mobile and different on desktop.

did you manage to get it working?

I changed my layout, to have one column on both devices, but now i guess you can use tailwind for media queries :)

I want to have two columns on desktop, and one column on mobile (when width is lower than 400) and I also want to have different padding on mobile and different on desktop.

did you manage to get it working?

I changed my layout, to have one column on both devices, but now i guess you can use tailwind for media queries :)

I want to have two columns on desktop, and one column on mobile (when width is lower than 400) and I also want to have different padding on mobile and different on desktop.

did you manage to get it working?

I changed my layout, to have one column on both devices, but now i guess you can use tailwind for media queries :)

The use of tailwind styles... in your email template is not supported by browsers like gmail.com

I want to have two columns on desktop, and one column on mobile (when width is lower than 400) and I also want to have different padding on mobile and different on desktop.

did you manage to get it working?

I changed my layout, to have one column on both devices, but now i guess you can use tailwind for media queries :)

The use of <styles>tailwind styles...</styles> in your email template is not supported by browsers like gmail.com

That's why i changed my layout to consist of only one column on both devices, because you never know if what email client is customer using


How to get list of work items in azure boards using a command in Azure CLI

https://docs.microsoft.com/en-us/cli/azure/ext/azure-devops/boards/work-item?view=azure-cli-latest#ext_azure_devops_az_boards_work_item_show
refer to this above url I did not find any related command to list all work items

devops

1: Define a query via the UI
2: use "az boards query --id {query id}" to retrieve it on the command line

Good day,
In couldn't figure out how to find the ID of the query itself,
Can you please tell me how to find the query's ID.
Thanks, in-advance.


/new not accepting repos without 5 issues

a repo without 5 issues isn't accepted... In addition a repo that only recently got 5 issues doesn't get accepted either.

Hey, as of now we're setting the minimum issues to 5 but this can change very soon - and we get all data from GitHub API, so it may take a bit for it to update. Which repo are you trying to add? I may be able to assist.

Makes sense, thank you!

I am curious to know why is this based on the number of issues rather than the number of stars? I've always seen others use stars as the metric, Any specific reason for using the number of issues as the metric?

I am curious to know why is this based on the number of issues rather than the number of stars? I've always seen others use stars as the metric, Any specific reason for using the number of issues as the metric?

Not everyone stars repositories and it shouldn't be based on that because for newer projects that's not fair as they might have a good readme, and be open to taking contributors but only have a few stars or maybe none at all.
Issues can determine if there are things that need to be worked on, we're still thinking of a possible better way to determine this but as of now we've made it 5+ issues, and not stars for the reason I gave here. If you have any questions about this, feel free to let me know.

Ah yes, it makes sense to have the metric as issues if the focus is on getting contributors. The website landing page made seem like it was something like a social network for developers so got a bit confused.

Ah yes, it makes sense to have the metric as issues if the focus is on getting contributors. The website landing page made seem like it was something like a social network for developers so got a bit confused.

Oh yeah, it is. It's a developer platform community, this issue was for the original idea of the project that is no longer the case.
So yes, it's a social network.

Closing this issue.
In the new version we may do something like:
You can add any repo, but if it's under a certain point level (mix of stars, non-bot prs and non-bot issues and other factors), it would be added but would require moderator verification. (To prevent bots)
the 5 issue requirement was originally to used as a requirement so new people had somewhere to go, but since we're shifting the overall idea of the project, this exact limit will be removed.


License hyperlink on anaconda.org not working

This hyperlink on anaconda.org does not correctly jump to license_url set in meta.yaml:

This is similar to the issue we had with cudatoolkit ( https://github.com/conda-forge/cudatoolkit-feedstock/issues/2 ), but we fixed that one.
@chenghlee, would you be able to help us here? 🙂

Closing, this is fixed now!


Kicked for permission data not loaded

Sometimes, when players join the server, there kicked for this reason "doesn't have data pre-loaded, they have never been processed during pre-login in this session. - denying login." §7§l[§b§lL§3§lP§7§l] §cPermissions data for your user was not loaded during the pre-login stage - unable to continue. Please try again later. If you are a server admin, please check the console for any errors.
version lp : 5.0.72
tacospigot

That's caused by running a cracked server, usually. Either use a better authentication plugin, or make it online-mode: true

If you don't run a cracked server, try updating to the latest version of LP from https://luckperms.net


Mkdocs plugin assumes a valid git working tree in all cases

If Mkdocs plugin is enabled, but source code is used outside of git, for example after git archive, then all gradle tasks will fail as the Mkdocs plugin fails.
Mkdocs plugin should not fail all gradle tasks just because the source code isn't in a git clone.
Mkdocs plugin looks up publish.repoUri, which fails if there is no git metadata or if a config directory exists at the root of the project.

Could you please post the error itself here (if possible, run gradle with --stacktrace option). And, please, describe steps to simulate this situatuation (is it multi-module project?).
Plugin works when there is no initialized git in the project (it should be the case for git archive). Anyway, there is only one place that can fail - git origin detection appeared just after project initialization. But I need a guide to reproduce the problem to be sure
There should be a workaround: you can specify mkdocks.publish.repoUrl manually and plugin will not try to auto-detect origin and so should stop failing the build.

In the new version 3.0.0 there should be no problem with it.
Moreover, now it is possible to avoid publication tasks (and git related staff) at all with new lightweight plugin version ru.vyarus.mkdocs-build.
Closing this, please reopen if issue will appear again