Forked for significant refactoring

I have forked this project and have already made significant contributions towards modernizing it. Here's the list of added support and improvements:

[ ] ES6/7 support with babel
[ ] Webpack support
[ ] Extracted copy/pasted dependencies from source to npm dependencies
[ ] ESLint support
[ ] Travis CI support
[x] Isomorphic Fetch API

I plan on adding / migrating to:

[ ] React/Preact
[ ] Mocha tests
[ ] Sass support with postcss autoprefixer support, minification, concatenation
[ ] Migration to localforage as an abstraction for localStorage

@premii It would be nice if you or other contributors can contribute to my fork, which I hope will be merged later when finished

Sounds good. Lot's of things has happened since hn was realeased. The UI is very good and the codebase is rather small. Hope that won't change to much.

None of the UI will change. The changes are only architectural changes and added tools. Adding react will probably reduce the amount of code and make it significantly easer to reason about.

Yes, the code should be much easier to read if rewritten with react. Do you plan to use the Touchstone UI library for react or create a new UI library? I have never used touchstone, but guess it can be tweaked to look like the HN app.

I'm not really changing any of the html or css. I'm just refactoring to react, simplifying the logic of the application, and taking advantage of modern API's (such as fetch and maybe ServiceWorker in the future.)

Sorry, I don't have write rights. I've just used the hn app as a template app before I started to use ionic.


Concurrent writing to memstore results in panic

The exception usually occurs while trying to write a Quad. In this example, GOMAXPROCS=4 on a dual core machine.
One example trace:
fatal error: bad map state

goroutine 48 [running]:
runtime.gothrow(0x4a3910, 0xd)
    /usr/local/Cellar/go/1.4.2/libexec/src/runtime/panic.go:503 +0x8e fp=0xc20817f230 sp=0xc20817f218
runtime.evacuate(0x3364c0, 0xc2081344b0, 0x5)
    /usr/local/Cellar/go/1.4.2/libexec/src/runtime/hashmap.go:799 +0x36a fp=0xc20817f2f0 sp=0xc20817f230
runtime.growWork(0x3364c0, 0xc2081344b0, 0x8)
    /usr/local/Cellar/go/1.4.2/libexec/src/runtime/hashmap.go:769 +0x8a fp=0xc20817f310 sp=0xc20817f2f0
runtime.mapassign1(0x3364c0, 0xc2081344b0, 0xc20817f428, 0xc208183860)
    /usr/local/Cellar/go/1.4.2/libexec/src/runtime/hashmap.go:408 +0x18f fp=0xc20817f3b0 sp=0xc20817f310
github.com/google/cayley/graph/memstore.(*QuadStore).AddDelta(0xc208183860, 0x1, 0x0, 0x41, 0x0, 0x0, 0xc208130210, 0x24, 0x4aac10, 0x9, ...)
    /go/src/github.com/google/cayley/graph/memstore/quadstore.go:186 +0x3ab fp=0xc20817f4f0 sp=0xc20817f3b0
github.com/google/cayley/graph/memstore.(*QuadStore).ApplyDeltas(0xc208183860, 0xc208160510, 0x1, 0x1, 0x0, 0x0, 0x0)
    /go/src/github.com/google/cayley/graph/memstore/quadstore.go:113 +0x1ec fp=0xc20817f720 sp=0xc20817f4f0
github.com/google/cayley/writer.(*Single).AddQuad(0xc2080e7240, 0xc208130210, 0x24, 0x4aac10, 0x9, 0xc2081345d0, 0x24, 0x48edf0, 0x3, 0x0, ...)
    /go/src/github.com/google/cayley/writer/single.go:77 +0x1bb fp=0xc20817f850 sp=0xc20817f720

Another trace:
panic: runtime error: index out of range

goroutine 19 [running]:
github.com/google/cayley/graph/memstore.(*Iterator).Next(0xc20809a4d0, 0x0)
    /go/src/github.com/google/cayley/graph/memstore/iterator.go:126 +0x3bf
github.com/google/cayley/graph/memstore.(*QuadStore).indexOf(0xc2080ba060, 0xc208065140, 0x24, 0xc208062f00, 0xd, 0xc208062ef2, 0xe, 0x48edf0, 0x3, 0xc20808c900, ...)
    /go/src/github.com/google/cayley/graph/memstore/quadstore.go:158 +0x104
github.com/google/cayley/graph/memstore.(*QuadStore).AddDelta(0xc2080ba060, 0x1, 0x0, 0x46, 0x0, 0x0, 0xc208065140, 0x24, 0xc208062f00, 0xd, ...)
    /go/src/github.com/google/cayley/graph/memstore/quadstore.go:168 +0x63
github.com/google/cayley/graph/memstore.(*QuadStore).ApplyDeltas(0xc2080ba060, 0xc208149050, 0x1, 0x1, 0x0, 0x0, 0x0)
    /go/src/github.com/google/cayley/graph/memstore/quadstore.go:113 +0x1ec
github.com/google/cayley/writer.(*Single).AddQuad(0xc208134000, 0xc208065140, 0x24, 0xc208062f00, 0xd, 0xc208062ef2, 0xe, 0x48edf0, 0x3, 0x0, ...)
    /go/src/github.com/google/cayley/writer/single.go:77 +0x1bb

Would you provide a complete reproducer please.

Reproducer:
package main

import (
	"fmt"
	"sync"

	"github.com/google/cayley"
)

func main() {
	store, _ := cayley.NewMemoryGraph()

	runner := func(index int, wg *sync.WaitGroup) {
		for i := 0; i < 1000; i++ {
			store.AddQuad(cayley.Quad("subject", fmt.Sprintf("predicate-%v", i), fmt.Sprintf("object-%v", i), ""))
		}

		wg.Done()
	}

	wg := sync.WaitGroup{}

	for i := 0; i < 10; i++ {
		wg.Add(1)
		go runner(i, &wg)
	}

	wg.Wait()
}

run with GOMAXPROCS=4 and it panics

OK. That is expected behaviour; you are breaking the client side of the contract. memstore.QuadStore is not marked as safe for concurrent use (admittedly it's not documented at all, but that's another matter); and it's built on things that are specifically noted as not being safe for concurrent writes (go maps and cznic/b B-trees). If you want to make concurrent write (more later), you will need to add synchronisation.
The reason there is no concurrency safety on this type is that there is no benefit. Every write needs to be synchronised since they all end up in the same store, and reads also need to be synchronised with the writes. This means that you actually get no benefit.
If you are seeing memstore writes being a significant bottleneck (I doubt it), and you know how your graph segments before hand, then you can just store into separate stores for each segment. Otherwise, there is really not much to do here.

Not being concurrently safe is perfectly fine (although unexpected, given the lack of documentation). Should I submit a PR to add such a warning to the memstore documentation?
In regards to why the underlying store is not concurrently safe, I certainly understand that it is built on primitives that would preclude that safety without work to add locking.  I don't agree, however, that there isn't value in doing so: If concurrently safe, I could confidently write multiple values while reading values I know to be present from previous phases of my program. If I were using a relational DB, I expect that my reads and writes can occur concurrently, even if I have to manually handle read-after-write hazards and the like myself. Granted, Cayley is a different beast, but it was certainly odd to encounter this restriction.
Incidentally, does the Bolt driver suffer the same limitation? I'd love to have the speed of an in-memory graph, but with concurrency guarantees. If not, I'll add my own locking in my own wrapper code, but have no desire to implement unless required.

No warning is needed for memstore, though docs are needed - there is #94 for this. The basis for this is that Go types by convention are not safe for concurrent use unless marked otherwise.
The rationale for not adding synchronisation to types by default is that in the non-concurrent case those additions add significant cost and the cost of adding synchronisation to the external access is not onerous. If your runner func added a sync.RWMutex then you would have what you want. The convention is a language wide-one, not specific to cayley.
I don't know how to bolt driver works, but looking at it I would say it depends entirely on whether bold.Tx are concurrency safe. The bolt docs say that between Tx concurrency use is safe - i.e. a Tx is not safe, but two independent Tx in different goroutines is fine.

Makes sense. Thanks for the information and hopefully the docs issue will make this more clear to other users in the future. Closing this issue.

Indeed, I cannot use concurrent writing to boltdb either as the race detector flags this.  In my case, I pre-process GBs of data and then I need to load it for visualization and querying.  As the code in my pre-process changes a lot, maximizing ingest speed is important.
Prior to attempting to use Cayley I was using maps pointing to slices to make my many-to-many relationships work out and I sharded the data to get concurrency.

@mzimmerman: I ended up creating a small lib for all write operations on my underlying memstore-backed Cayley graph: https://github.com/Serulian/compiler/blob/master/compilergraph/modifier.go. I can scan my graph in parallel (since it is read-only) and "change" it in parallel, while only applying the changes themselves transactionally once I'm done. Seems to have worked so far! :)

@mzimmerman Fixed bolt in 18f310ff0788fc2a494a6dd1db71d45f6c876610. Someone missed concurrent modification of cached size variables.
Memstore is still unsafe for concurrent modification, as it was.

Wow, awesome!  I'll try this on Monday, thanks.
On Sat, Feb 11, 2017, 2:40 PM Denys Smirnov<EMAIL_ADDRESS>wrote:

@mzimmerman https://github.com/mzimmerman Fixed bolt in 18f310f
https://github.com/cayleygraph/cayley/commit/18f310ff0788fc2a494a6dd1db71d45f6c876610.
Someone missed concurrent modification of cached size variables.
Memstore is still unsafe for concurrent modification, as it was.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/cayleygraph/cayley/issues/318#issuecomment-279170447,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACTSU5RZpYhQI69hpVKxXM1rwtopyCPyks5rbg67gaJpZM4GQ0l4
.

Forgive me for continuing to dig up this old bug!
@dennwc When I use your fix, there's no race condition anymore, however the performance isn't parallel in that overall CPU usage barely gets over one core.  I do see that bolt supports some parallel operations on write although exactly what performance one could expect I'm not sure.
https://github.com/boltdb/bolt#batch-read-write-transactions
Cayley seems not to use the .Batch() function however.  Is that a possibility?  I admit that I don't understand the internals to dig into it further.

@mzimmerman No we are not using batch for now. But we are working on a new Bolt-based backend which is already much faster. Later we will add a batch mode for initial import of the database, it will omit building most indexes until it has all quads, and then will run reindex in parallel.


Add parserOptions.vueFeatures.interpolationAsNonHTML option

This PR adds the parserOptions.vueFeatures.interpolationAsNonHTML option. When the option is enabled, the interpolation is parsed as non-HTML.
This option is disabled by default (it works the same as before).
Enabling this option by default is breaking change and requires a major version upgrade. Also, major version upgrades may need to add options for Vue 3, such as disabling filter parsing.
refs https://github.com/vuejs/eslint-plugin-vue/issues/370

@ota-meshi setting parserOptions.vueFeatures.interpolationAsNonHTML to true doesn't disable the error when using greater than or less than in conditional statements.
  parser: 'vue-eslint-parser',
  parserOptions: {
    vueFeatures: {
      interpolationAsNonHTML: true,
    },
  },

            <VIcon
              v-if="activities?.length > 1"
              icon="mdi-menu-down"
            />

Closing tag highlights in red.


spendable: 0, total: 319, awaiting confirmation: 0

See screenshot. This should not be possible right?

Yes, they should check what is  mwc713  info said

To recover - they can resync

Yes, haven't heard from them. Hopefully just a fluke.
On Tue, Nov 19, 2019 at 4:25 PM Konstantin<EMAIL_ADDRESS>wrote:

To recover - they can resync
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mwcproject/mwc-qt-wallet/issues/134?email_source=notifications&email_token=ABXFVNZMQIASV2ZDZNRL653QUR7V3A5CNFSM4JO7KHC2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEQIBMI#issuecomment-555778225,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABXFVN3BYSAYN6EDHAXL2XDQUR7V3ANCNFSM4JO7KHCQ
.

Let's close, we can't reproduce it in any case


How to understand this sentence about live directive?

How to understand this sentence of live directive's summary, is this means: if the attribute or propery is differs from live dom value, then set the attribute or property value to live dom value ?
but the description of live directive says: "if you want to overwrite the DOM value with the bound value no matter what—use the live() directive"
This confuses me；

sorry， but I'm not an English developer

The live() directive makes sure that the checking whether it needs to update happens against the live DOM value, then sets the attribute/property to the bound expression, overwriting the current DOM value.
Perhaps this example helps clarify it https://lit.dev/playground/#sample=examples/directive-live
If you make changes to the text in the 2nd and 3rd input, the DOM values of those inputs change so they are out of sync with this.data.value. If you then click commit, the 2nd one with the live() directive detects that the current DOM value is different than what's in this.data.value and updates, whereas the 3rd input thinks that because this.data.value never changed it doesn't need to update.

The live() directive makes sure that the checking whether it needs to update happens against the live DOM value, then sets the attribute/property to the bound expression, overwriting the current DOM value.
Perhaps this example helps clarify it https://lit.dev/playground/#sample=examples/directive-live
If you make changes to the text in the 2nd and 3rd input, the DOM values of those inputs change so they are out of sync with this.data.value. If you then click commit, the 2nd one with the live() directive detects that the current DOM value is different than what's in this.data.value and updates, whereas the 3rd input thinks that because this.data.value never changed it doesn't need to update.

thanks!!!
I misunderstood I thought "attribute/properties" here belonged to Lit components, but in fact they belonged to input elements.

Assigning to @arthurevans in case this warrants a reword


Use https for onboarded services

Currently, the onboarded services can be accessed via http.
We need a way to access them via https.
One possible approach is to correspondingly adapt the generated Gateways in the helm-service.
@christian-kreuzberger-dtx  @bacherfl: What approach do you prefer?

Just a quick analysis:
For each project and stage we have a gateway that looks as follows:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  generation: 1
  name: someproject-staging-gateway
  namespace: someproject-staging
spec:
  selector:
    istio: ingressgateway
  servers:
  - hosts:
    - '*'
    port:
      name: http
      number: 80
      protocol: HTTP

and then the virtual service looks like this:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  generation: 1
  name: some-service
  namespace: someproject-staging
spec:
  gateways:
  - someproject-staging-gateway.someproject-staging
  - mesh
  hosts:
  - some-service.someproject-staging.gke.demo.keptn.sh
  - some-service
  http:
  - route:
    - destination:
        host: some-service.someproject-staging.svc.cluster.local

How would we like to address this issue? I have two solutions in mind:

One solution would be to edit the Gateways and also add HTTPS ports. If we select this solution, should the services still be available via HTTP? Probably yes because we only use self-signed certificates and this could cause problems.
Usage of an external service and provide a hint on the webpage.

I want to propose to completely move to HTTPS only - that includes both the keptn API, Bridge as well as all deployed services that have to be accessible outside k8s.
As for the certificate issue: I am not an expert in this topic - but - I would think that keptn users that install k8s and want to expose their services to the outside world have their own SSL Certificates for their domains. If thats the case we should allow a keptn user during installation or during keptn configure domain to pass in their certificate.

I vote for "Usage of an external service and provide a hint on the webpage.".
If an end-user wants SSL termination, it is their job to get it done for two very simple reasons:

SSL configuration is critical and you wouldn't want to trust "some 3rd party tool" on this (and having worked with hosting providers there is a lot more to this then just enabling port 443 and setting up certificates)
Keptn is not tool that "hosts" services, it is a control plane. The fact that we have support for hosting HTTP traffic right now should not lead to the fact that we need to support HTTPs with Keptn. IMHO we should not care whether the traffic that is exposed is HTTP, HTTPS, SSH or anything else.

Google and other Kubernetes providers have tutorials on how to set up SSL termination:

https://cloud.google.com/kubernetes-engine/docs/concepts/ingress
https://aws.amazon.com/premiumsupport/knowledge-center/terminate-https-traffic-eks-acm/

The only thing that we should handle within Keptn is:

${SERVICE}.${PROJECT}-${STAGE}.${KEPTN_DOMAIN}:${PORT} is linked to ${SERVICE} (or ${SERVICE}-primary or ${SERVICE}-canary) in stage ${STAGE} in project ${PROJECT}

I want to propose to completely move to HTTPS only - that includes both the keptn API, Bridge as well

That's unrelated to the actual topic, but I support that.
However, about

as well as all deployed services that have to be accessible outside k8s.

my comment above still holds.

Bridge and API are already using a self-signed cert and are only reachable via https. So the generated Isitio gateway and virtual service for the onboarded services, could expose 443 as default as well. If it is https only in the future, than the customer needs to be informed, so he can configure his service accordingly.
If the user wants to use his own cert, he can just overwrite the secret "istio-ingressgateway-certs" in the Istio namespace. I really like the suggestion from @grabnerandi

[...] we should allow a keptn user during installation or during keptn configure domain to pass in their certificate.

We decided to not provide https endpoints for onboarded services because then Keptn would be responsible for managing certificates/secrets.


Implemented multi entry index test

Implemented multi entry index tests on every type.
I added 2 groups, one for non-nullable properties & values, and one for nullable properties & values.
Only one minor issue found:
For queries of values that are nullable (List<int?>, List<double?>, List<String?>, List<DateTime?>), the 'lessThan' function is also returning objects that have null as values.
I think this could be easily fixed by adding a lower bound of null and excluding the lower in the generator on lessThan methods that acts on nullable properties / values.

Codecov Report

Merging #486 (e1a1231) into main (69108fe) will decrease coverage by 63.35%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main     #486       +/-   ##
===========================================
- Coverage   76.17%   12.81%   -63.36%
===========================================
  Files          32       32
  Lines        2447     2216      -231
===========================================
- Hits         1864      284     -1580
- Misses        583     1932     +1349

Impacted Files
Coverage Δ

packages/isar/lib/src/version.dart
0.00% <0.00%> (-100.00%)
:arrow_down:

packages/isar/lib/src/native/open.dart
0.00% <0.00%> (-100.00%)
:arrow_down:

packages/isar/lib/src/annotations/name.dart
0.00% <0.00%> (-100.00%)
:arrow_down:

packages/isar/lib/src/native/split_words.dart
0.00% <0.00%> (-100.00%)
:arrow_down:

packages/isar/lib/src/annotations/backlink.dart
0.00% <0.00%> (-100.00%)
:arrow_down:

packages/isar/lib/src/annotations/collection.dart
0.00% <0.00%> (-100.00%)
:arrow_down:

...kages/isar/lib/src/annotations/type_converter.dart
0.00% <0.00%> (-100.00%)
:arrow_down:

packages/isar/lib/src/native/bindings.dart
0.00% <0.00%> (-91.84%)
:arrow_down:

packages/isar/lib/src/native/query_build.dart
0.00% <0.00%> (-84.98%)
:arrow_down:

packages/isar/lib/src/query_builder.dart
0.00% <0.00%> (-82.67%)
:arrow_down:

... and 20 more

Continue to review full report at Codecov.

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

@Jtplouffe null is considered smaller than all other values so the current behavior is correct.

@Jtplouffe null is considered smaller than all other values so the current behavior is correct.

Alright, I fixed the nullable lessThan tests.


Fix link

What
Fix link
Why
It's broken.

Preview is available here:http://soroban-docs-pr172.previews.kube001.services.stellar-ops.com/


Is interpret-community not compatible with interpret v0.2.5?

I have interpret v0.2.5 installed on a Windows 10 machine with Python 3.7 env then I installed interpret-community. I found interpret gone back to v0.2.4 so I updated it to v0.2.5 again. Now I can't import interpret-community anymore.
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-6-7c6318f93b40> in <module>
----> 1 from interpret.ext.blackbox import TabularExplainer

ImportError: cannot import name 'TabularExplainer' from 'interpret.ext.blackbox' (d:\srp\lib\site-packages\interpret\ext\blackbox\__init__.py)

This is the error message I get when installing raiwidgets:
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
interpret 0.2.5 requires interpret-core[dash,debug,decisiontree,ebm,lime,linear,notebook,plotly,required,sensitivity,shap,skoperules,treeinterpreter]>=0.2.5, but you have interpret-core 0.2.4 which is incompatible.

@bwang482 it looks like interpret 0.2.5 was just released on June 21.  I will try to upgrade to it this week.  We have had breaking changes in the past so we manually upgrade to new interpret releases.  In all likelihood it should just work anyway.  You can use the older version of interpret for now, or you can force pip to install the newer version of interpret but the import in interpret-community will break.  You can still use:
from interpret_community import TabularExplainer

instead of the other import.  You can also just try to update this upper bound on master and install locally, as long as there are no breaking changes it should work:
https://github.com/interpretml/interpret-community/blob/master/python/setup.py#L44

closing as this is fixed with PR:
https://github.com/interpretml/interpret-community/pull/423


Slider: Mandatory prayers state

[x] Layout
[x] Make responsive (icons #20 and text #21 scale properly)
[x] Correct icons
[ ] On click animation: Icon adds tick

Scrapped


Move error message and hint out of labels and legends

This PR moves error messages and hints out of legends and labels, instead associating them with the input using aria-describedby.
https://govuk-frontend-review-pr-681.herokuapp.com/
https://trello.com/c/6JHtnTfC
Co-authored with @36degrees.
Background
For question pages that follow the 'one-thing-per-page' format, the question being asked functions as both the label for the question and the H1 for the page.

This was previously achieved by putting the question in the H1 but duplicating it within a visually hidden label or legend. This was functional, but resulted in the question being read twice by screen readers. Anika did a lot of research into this and made changes to Elements to remove the duplication.
The way this currently works is:

putting the
 inside the legend of a fieldset (<legend>
Question
</legend>); or
wrapping the  in an
 (
Question
)

The reason that the nesting differs is that fieldsets allow 'phrasing content and headings' as permitted content (since https://github.com/w3c/html/issues/724) but labels only allow for 'phrasing content', so a heading inside a label is technically invalid.
There are a few issues that we would like to address to make this approach work correctly in GOV.UK Frontend:

If the form field has associated hint text and an error message then these become part of the h1 for the page as well.
because the hint and error message are part of the label, clicking them focusses the input. This confuses things if the hint or error message contain a link – for example to additional guidance or resources.
it is difficult to make the relationship between the question and the hint and error message consistent with the fieldset, because of the inconsistency in the markup.

Having explored a number of options (including questioning whether the HTML spec should allow headings inside labels), we've settled on moving the hint and error message outside of the label / legend and associating them with aria-describedby as has been previously suggested - it resolves the first two issues and makes it considerably easier to tackle the third.
Unfortunately Voiceover on macOS will not announce the hint or error message when focussing the field. This is not ideal, but every approach (including the current approach of nesting them inside the label) had issues in at least one combination of technologies, so we have opted to go with the approach that seemed the most 'semantically correct', which is to treat the error message and hints as part of the 'description' of the field as per the ARIA spec:

The aria-labelledby attribute is similar to the aria-describedby in that both reference other elements to calculate a text alternative, but a label should be concise, where a description is intended to provide more verbose information.

We will file an issue with Apple if we can not find it already recorded as a bug.
We have filed a bug report with Apple for this issue.
We considered using different approaches for different scenarios (for example, only using aria-describedby if the legend or label sits inside a heading, or using different implementations depending on whether we are dealing with a legend or a label). However, we concluded that there were a number of benefits to having a consistent approach, as:

assistive technologies should announce the field(s) in a consistent manner regardless of the field type or page structure
it reduces the likelihood of service teams introducing errors when implementing
it reduces the complexity of the logic required in the macros for the different components

Detailed changes

moves errorMessage component out of label (for every component that uses a label)
moves errorMessage component out of legend  (for every component that uses a fieldset)
adds a Hint component (similar with the errorMessage component; up for discussions if this component should be treated separately in the Design System)
moves hint out of label (for every component that uses a label)
moves hint out of legend  (for every component that uses a fieldset)
updates SCSS dependencies for each updated component
update tests to reflect the changes mentioned above
add a dependency on /tools/exports to helpers/clearfix in order to pass the Individual components should compile individual SCSS files without throwing exceptions

To be done in future PRs:

update the styling (one obvious issue is the bottom spacing on the legend, which visually separates it from the hint and the error message)

handle the headings in labels and legends

Appendix: Results of testing with assistive technologies
Current approach (nesting error and hint inside of legend or label)
Input with
❗When the  is nested inside a heading, the hint and error message also become part of the heading.
❗It is difficult to make the relationship between the question and the hint and error message consistent with the fieldset, because of the inconsistency in the markup.

✅ Voiceover + Safari (Mac OS X El Capitan)
Voiceover announces:

"National insurance number It’s on your National Insurance card, benefit letter, payslip or P60. For example, ‘QQ 12 34 56 C’. Enter your national insurance number edit text
You are currently on a text field, inside of HTML content. To enter text in this field, type. To exit this web area, press Control-Option-Shift-Up Arrow."

✅ Voiceover + Safari (iOS 11)
Voiceover announces:

National insurance number It’s on your National Insurance card, benefit letter, payslip or P60. For example, ‘QQ 12 34 56 C’. Enter your national insurance number, text field.
Double tap to edit.

✅ Voiceover + Safari (iOS 10)
Voiceover announces:

National insurance number It’s on your National Insurance card, benefit letter, payslip or P60. For example, ‘QQ 12 34 56 C’. Enter your national insurance number, text field.
Double tap to edit.

✅ Voiceover + Safari (iOS 9)
Voiceover announces:

National insurance number It’s on your National Insurance card, benefit letter, payslip or P60. For example, ‘QQ 12 34 56 C’. Enter your national insurance number, text field.
Double tap to edit."

✅ NVDA + Firefox
NVDA announces:

National insurance number. It’s on your National Insurance card, benefit letter, payslip or P60. For example, ‘QQ 12 34 56 C’. Enter your national insurance number. Edit. Blank.

✅ JAWS18 + IE11
JAWS announces:

National insurance number.
It’s on your National Insurance card, benefit letter, payslip or P60. For example, ‘QQ 12 34 56 C’.
Enter your national insurance number.
Edit. Type in text.

Fieldset with <legend>
Very strange issue in JAWS18 where the hint and error message are not announced. Other than that, this works OK – because the heading is inside the legend (unlike label) the hint and error message can sit outside of the page heading.

✅ Voiceover + Safari (Mac OS X El Capitan)
Voiceover announces:

"Yes, radio button, 1 of 2, Have you changed your name? This includes changing your last name or spelling your name differently. Choose yes or no.
You are currently on a radio button, 1 of 2, inside of a group. To select this option…"

✅ Voiceover + Safari (iOS 11)
When entering the fieldset (e.g. navigating backwards through the document)", Voiceover announces:

Have you changed your name? This includes changing your last name or spelling your name differently. Choose yes or no.

Then, for each input:

Yes, radio button, 1 of 2.

✅ Voiceover + Safari (iOS 10)
When entering the fieldset (e.g. navigating backwards through the document)", Voiceover announces:

Have you changed your name? This includes changing your last name or spelling your name differently. Choose yes or no.

Then, for each input:

Yes, radio button, 1 of 2.

✅ Voiceover + Safari (iOS 9)
For each input, Voiceover announces:

Yes, radio button, 1 of 2. This includes changing your last name or spelling your name differently. Choose yes or no.

iOS 9 does not seem to announce <fieldset> legends for inputs.

✅ NVDA + Firefox
NVDA announces:

Have you changed your name?
This includes changing your last name or spelling your name differently.
Choose yes or no. Grouping.
Yes, radio button, not checked, 1 of 2.

❗ JAWS18 + IE11
JAWS announces:

Have you changed your name?
Yes, radio button, not checked.

Hint and error message are not announced despite being part of the legend. Absolutely no idea what's going on here. Tested this with the current implementation in Elements and the same thing happens.

Associating error and hint with aria-describedby
Seems like the 'correct' implementation semantically. Some slight quirks in the way this is announced, e.g. JAWS puts the description between "Edit" and "Type in text" which seems disjointed.
For legends, we should associate the hint and error message with the fieldset, not the individual inputs.
Input with

✅ Voiceover + Safari (Mac OS X El Capitan)
Voiceover announces:

National insurance number, edit text
It’s on your National Insurance card, benefit letter, payslip or P60. For example, ‘QQ 12 34 56 C’. Enter your national insurance number, You are currently on a text field, inside of HTML content. To enter text in this field, type. To exit this web area, press Control-Option-Shift-Up Arrow.

✅ Voiceover + Safari (iOS 11)
Voiceover announces:

National insurance number, text field
It’s on your National Insurance card, benefit letter, payslip or P60. For example, ‘QQ 12 34 56 C’. Enter your national insurance number, double tap to edit

✅ Voiceover + Safari (iOS 10)
Voiceover announces:

National insurance number, text field
It’s on your National Insurance card, benefit letter, payslip or P60. For example, ‘QQ 12 34 56 C’. Enter your national insurance number, double tap to edit

✅ Voiceover + Safari (iOS 9)
Voiceover announces:

National insurance number, text field
It’s on your National Insurance card, benefit letter, payslip or P60. For example, ‘QQ 12 34 56 C’. Enter your national insurance number, double tap to edit

✅ NVDA + Firefox
NVDA announces:

National insurance number. Edit. It’s on your National Insurance card, benefit letter, payslip or P60. For example, ‘QQ 12 34 56 C’. Enter your national insurance number. Blank.

✅ JAWS18 + IE11
JAWS announces:

National insurance number. Edit. Use JAWS key + alt + r to read descriptive text.
It’s on your National Insurance card, benefit letter, payslip or P60. For example, ‘QQ 12 34 56 C’.
Enter your national insurance number.
Type in text.

(includes JAWS commands)

Fieldset with <legend>, aria-describedby on each <input>

✅ Voiceover + Safari (Mac OS X El Capitan)
Voiceover announces:

Yes, radio button, 1 of 2, Have you changed your name?

This includes changing your last name or spelling your name differently. Choose yes or no. You are currently on a radio button, 1 of 2, inside of a group. To select this option…

❗ Voiceover + Safari (iOS 11)
When entering the fieldset (e.g. navigating backwards through the document)", Voiceover announces:

Have you changed your name?

Then, for each input:

Yes, radio button, 1 of 2. This includes changing your last name or spelling your name differently. Choose yes or no.

Hint and error message are always announced when focussing the input, but the legend is only announced when entering the fieldset. This behaviour may be confusing as the hint is unlikely to make sense without the question being announced. It's also overly verbose.

❗ Voiceover + Safari (iOS 10)
When entering the fieldset (e.g. navigating backwards through the document)", Voiceover announces:

Have you changed your name?

Then, for each input:

Yes, radio button, 1 of 2. This includes changing your last name or spelling your name differently. Choose yes or no.

Hint and error message are always announced when focussing the input, but the legend is only announced when entering the fieldset. This behaviour may be confusing as the hint is unlikely to make sense without the question being announced. It's also overly verbose.

❗ Voiceover + Safari (iOS 9)
For each input, Voiceover announces:

Yes, radio button, 1 of 2. This includes changing your last name or spelling your name differently. Choose yes or no.

iOS 9 does not seem to announce <fieldset> legends for inputs.

✅ NVDA + Firefox
NVDA announces:

"Have you changed your name? Grouping.
Yes, radio button, not checked.
This includes changing your last name or spelling your name differently. Choose yes or number. 1 of 2."

There is a minor bug here where no is announced as number, but it is a side effect of the ordering.

✅ JAWS18 + IE11
JAWS announces:

"Have you changed your name?
Yes, radio button, not checked. This includes changing your last name or spelling your name differently.
Choose yes or no."

Fieldset with <legend>, aria-describedby on the <fieldset>

❗ Voiceover + Safari (Mac OS X El Capitan)
Voiceover announces:

Yes, radio button, 1 of 2, Have you changed your name?
You are currently on a radio button, 1 of 2, inside of a group. To select this option…

The error message and hint are not announced.

✅ Voiceover + Safari (iOS 11)
When entering the fieldset (e.g. navigating backwards through the document)", Voiceover announces:

Have you changed your name?
This includes changing your last name or spelling your name differently. Choose yes or no.""

Then, for each input:

Yes, radio button, 1 of 2.

✅ Voiceover + Safari (iOS 10)
When entering the fieldset (e.g. navigating backwards through the document)", Voiceover announces:

Have you changed your name?
This includes changing your last name or spelling your name differently. Choose yes or no.""

Then, for each input:

Yes, radio button, 1 of 2.

❗ Voiceover + Safari (iOS 9)
For each input, Voiceover announces:

Yes, radio button, unticked, 1 of 2.

iOS 9 does not seem to announce <fieldset> legends for inputs.

✅ NVDA + Firefox
NVDA announces:

"Have you changed your name? Grouping.
Yes, radio button, not checked.
This includes changing your last name or spelling your name differently. Choose yes or number. 1 of 2."

There is a minor bug here where no is announced as number, but it is a side effect of the ordering.

✅ JAWS18 + IE11
JAWS announces:

"Have you changed your name?
Yes, radio button, not checked. This includes changing your last name or spelling your name differently.
Choose yes or no."

Associating error and hint with aria-labelledby
According to the ARIA spec, a label should be concise, where a description is intended to provide more verbose information. This suggests that aria-labelledby is not the right implementation for the hint and error message, as they do not label the field and cannot really be considered 'concise'.
Input with

✅ Voiceover + Safari (Mac OS X El Capitan)
Voiceover announces:

"National insurance number It’s on your National Insurance card, benefit letter, payslip or P60. For example, ‘QQ 12 34 56 C’. Enter your national insurance number edit text

You are currently on a text field, inside of HTML content. To enter text in this field, type. To exit this web area, press Control-Option-Shift-Up Arrow."

❗ Voiceover + Safari (iOS 11)
Voiceover announces:

National insurance number, text field, double tap to edit.

A bug in iOS means that if a label is associated with a field, that label will override any aria defined label.

❗ Voiceover + Safari (iOS 10)
Voiceover announces:

National insurance number, text field, double tap to edit.

A bug in iOS means that if a label is associated with a field, that label will override any aria defined label.

❗ Voiceover + Safari (iOS 9)
Voiceover announces:

National insurance number, text field, double tap to edit.

A bug in iOS means that if a label is associated with a field, that label will override any aria defined label.

✅ NVDA + Firefox
NVDA announces:

National insurance number. It’s on your National Insurance card, benefit letter, payslip or P60. For example, ‘QQ 12 34 56 C’. Enter your national insurance number. Edit. Blank.

✅ JAWS18 + IE11
JAWS announces:

"National insurance number.
It’s on your National Insurance card, benefit letter, payslip or P60. For example, ‘QQ 12 34 56 C’.
Enter your national insurance number.
Edit. Type in text."

(includes JAWS commands)

Fieldset with <legend>

✅ Voiceover + Safari (Mac OS X El Capitan)
Voiceover announces:

"Yes, radio button, 1 of 2, Have you changed your name? This includes changing your last name or spelling your name differently. Choose yes or no.
You are currently on a radio button, 1 of 2, inside of a group. To select this option…"

✅ Voiceover + Safari (iOS 11)
When entering the fieldset (e.g. navigating backwards through the document)", Voiceover announces:

Have you changed your name? This includes changing your last name or spelling your name differently. Choose yes or no.

Then, for each input:

Yes, radio button, 1 of 2.

✅ Voiceover + Safari (iOS 10)
When entering the fieldset (e.g. navigating backwards through the document)", Voiceover announces:

Have you changed your name? This includes changing your last name or spelling your name differently. Choose yes or no.

Then, for each input:

Yes, radio button, 1 of 2.

❗ Voiceover + Safari (iOS 9)
For each input, Voiceover announces:

Yes, radio button, 1 of 2. This includes changing your last name or spelling your name differently. Choose yes or no.

iOS 9 does not seem to announce <fieldset> legends for inputs.

✅ NVDA + Firefox
NVDA announces:

Have you changed your name?
This includes changing your last name or spelling your name differently.
Choose yes or no. Grouping.
Yes, radio button, not checked, 1 of 2.

✅ JAWS18 + IE11
JAWS announces:

"Have you changed your name?
This includes changing your last name or spelling your name differently.
Choose yes or no.
Have you changed your name?
Yes, radio button, not checked."

Great and thorough work, well done!
One thing I already mentioned to Oli... There are generally three cases to test not just two.

Label for input
fieldset and legend for radio buttons or checkboxes
fieldset and legend for multiple inputs, e.g. date of birth

I believe you haven't tested the latter. It might make a difference or it might not. But I think it makes sense to check that as well, especially regarding where the aria-describedby should go.

Good call @selfthinker! In my naivety, I thought any input, regardless its type, will be treated similarly by the ATs. @36degrees and I did a round of tests today on the date input example, and it turns out it's not the case with JAWS - which for the date input example doesn't announce the hint and error message when landing on the input fields, despite the fact that they are being referred in the describedby attribute. We'll think about workarounds for JAWS to be able to pick them up.

@nickcolley tests to make sure aria-describedby contains both the hint and the error message and in the right order might be a good addition.
Also accessibility criteria should be added, but I'm not sure will get into this commit until we define generic cirterias.
I would thumb up your comment, but I can't since it's a review.

There's nothing stopping us from adding additional information right now.  https://github.com/alphagov/govuk-frontend/search?utf8=✓&q=accessibilityCriteria&type=
Would be good to have this since this is fairly nuanced.

We haven't been able to make Voiceover on macOS read the error message and hint when focussing the field. It doesn't read the description for the fieldset. We've filed a bug with Apple as we don't think this is correct.
However, the error message is available as part of the error summary component (which acts as an alert, so should always be announced to the user), and both the hint and error message can be accessed by 'going out of' the input (ctrl-option-shift + up-arrow) which focuses the fieldset.
This change also gives us a number of benefits. It:

fixes an issue where the error message and hint are not announced in JAWS 18, which we understand to be considerably more popular according to the WebAIM screen reader survey [2017] and our own research [2016].
removes the hint and error message from the page heading.
allowing us to better define the relationship between the question, hint and error message.

With that in mind, we're going to merge this.


[AP] Make amount_out optional for request funds

Preview is available here:http://developers-pr937.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr937.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr937.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr937.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr937.previews.kube001.services.stellar-ops.com

Is there a Jira ticket related to this?

This adds docs for ANCHOR-752 and ANCHOR-783.

This adds docs for ANCHOR-752 and ANCHOR-783.

Can we add [ANCHOR-752] and [ANCHOR-783] tags to the title of the PR?


Fix formatting verb in error message

Go doesn't distinguish between unsigned and signed in Printf.
Spotted by "go vet".

:thumbsup:

Thanks, merging.


Reducer not getting called after COMMIT/REVERT

It seems the reducer isn't being called after an optimistic action is committed/reverted. Is this intentional? Or am I missing something? If I remove the optimistic value from meta, the reducer is called as expected.
Basically I am trying to set an error message in the event that an optimistic action fails. Looking at your meatier example, it seems that this should be possible?
Here is the relevant API code which dispatches the optimistic actions:
const [ requestType, successType, failureType ] = types

// Allow the requestType action to continue being dispatched
next(_actionWith(action, Object.assign({}, { type: requestType },
  optimistic ? { meta: { optimistic: { type: BEGIN, id: transactionId } } } : {}
)))

// Call the API
return _callApi(endpoint, schema, method, payload).then(
  // If successful, dispatch the successType action and COMMIT the optimistic transaction
  response => {
    let nextActionParams = _actionWith(action, Object.assign({}, { type: successType, payload: response },
      optimistic ? { meta: { optimistic: { type: COMMIT, id: transactionId } } } : {}
    ))
    return next(nextActionParams)
  },
  // If unsuccessful, dispatch the failureType action and REVERT the optimistic transaction
  error => {
    let nextActionParams = _actionWith(action, Object.assign({},
      { type: failureType, error: error.message || 'Something bad happened' },
      optimistic ? { meta: { optimistic: { type: REVERT, id: transactionId } } } : {}
    ))
    return next(nextActionParams)
  }
).catch(error => {
  debugger
})

function _actionWith (action, data) {
  const finalAction = Object.assign({}, action, data)
  delete finalAction.meta[API_CALL]
  return finalAction
}

It looks like historyWithoutRevert is empty when the revert is being applied, which I believe is why the reducer isn't being called.

So your callback adds an error message and ACTION_ERROR should put that in
the state
On Mon, Feb 22, 2016, 10:29 PM Mike Walsh<EMAIL_ADDRESS>wrote:

It looks like historyWithoutRevert is empty when the revert is being
applied, which I believe is why the reducer isn't being called.
—
Reply to this email directly or view it on GitHub
https://github.com/mattkrick/redux-optimistic-ui/issues/5#issuecomment-187506811
.

That's exactly what is supposed to happen (and in fact does happen if I set optimistic: false to disable your reducer enhancer), however my ACTION_ERROR action isn't getting triggered when a REVERT occurs.

Changing your code as follows fixes the issue:
case COMMIT:
  let committedState = applyRevert(state, id, reducer)
  return committedState.withMutations(mutState => {
    mutState
      .set('history', mutState.get('history').push(action))
      .set('current', reducer(mutState.get('current'), action))
      .set('beforeState', mutState.get('current'))
  })
case REVERT:
  let revertedState = applyRevert(state, id, reducer)
  return revertedState.withMutations(mutState => {
    mutState
      .set('history', mutState.get('history').push(action))
      .set('current', reducer(mutState.get('current'), action))
      .set('beforeState', mutState.get('current'))
  })

could you write a failing test case? I still think this is a middleware error instead of something wrong with the package

reading through this again, are you saying that you commit something and THEN revert it? If so then that's expected behavior. SUCCESS & ERROR are mutually exclusive

believe this is was an implementation problem, since the optimistic-ui result should be part of the action meta data & not an action itself


Refactor(ios): ios methods use health api

1.6.0 (2021-11-29)
Bug Fixes

ios:  RNHealthTracker.m -> queryDailyTotals returns correct daily values (2c246378)

Refactors

ios:  fitness api uses health tracker api (7c1bccd1)

This could be a patch release


Added simple authentication support to perlcassa

Tried to add authentication support for perlcassa. Please feel free to re-factor. It works for me on a single-node Cassandra 2.1 cluster with PasswordAuthenticator.
 my $client = new perlcassa(
      keyspace => 'mykeyspace,
      hosts => ['localhost'],
      do_not_discover_peers => 1,
      'credentials' => { 'username' => 'cassandra', 'password' => 'cassandra' },
 );
 my $result = $client->exec("SELECT id from my_table limit 1");

Not sure whether perlcassa::Client::check_host should also authenticate. Could add authentication there as well


Support phoebus simulator pv's

See #35.
This page from the Phoebus documentation talks about both sim and loc PVs. We should try to support what Phoebus supports:
https://phoebus-doc.readthedocs.io/en/latest/phoebus/core/pv/doc/index.html

This depends on #35

This includes a small change to coniql subscription.
This branch should be tested against coniql before merging.

Can you open a PR?

Yep. You can look at what's implemented so far.
I've just implemented a way of preventing duplicated initializaitons but this isn't working yet.

Let's close this and add further ones as we think they are necessary.


[BUG] Failure mode when including non-wasm compatible stuff is poor

Is there an existing issue for this?

[X] I have searched the existing issues

What version of workers-rs are you using?
0.4.1
What version of wrangler are you using?
3.78.12
Describe the bug
Adding code that does non-wasm compatible things leads to errors that are difficult to diagnose. E.g. take the tracing example and remove features=['wasm-bindgen'] from the time dependency in Cargo.toml and the build succeeds fine, but fails at runtime with:
[wrangler:inf] Ready on http://localhost:8787
✘ [ERROR] A hanging Promise was canceled. This happens when the worker runtime is waiting for a Promise from JavaScript to resolve, but has detected that the Promise cannot possibly ever resolve because all code and events related to the Promise's I/O context have already finished.

[wrangler:inf] GET / 500 Internal Server Error (6ms)
✘ [ERROR] RuntimeError: unreachable RuntimeError: unreachable

      at [object Object]
      at [object Object]
      at [object Object]
      at [object Object]
      at [object Object]
      at [object Object]
      at [object Object]
      at [object Object]
      at [object Object]
      at [object Object]
      at [object Object]
      at [object Object]
      at [object Object]
      at [object Object]
      at [object Object]
      at X (file:///Users/joshka/local/workers-rs/examples/tracing/build/worker/shim.mjs:2:492)
      at f (file:///Users/joshka/local/workers-rs/examples/tracing/build/worker/shim.mjs:2:331)

A similar thing goes when trying to add tower_http::trace::TraceLayer to an axum router (this is the crux of my actual problem - I want to trace requests and providing the appropriate context to the traces).
Add the following to cargo.toml:
tower = "0.5.1"
tower-http = { version = "0.6.1", features = ["trace", "util"] }

And then to your router:
.layer(ServiceBuilder::new().trace_for_http())

You get a web response of:
Error: The script will never generate a response.
    at async Object.fetch (file:///Users/joshka/local/cloudflare-webfinger-worker/node_modules/miniflare/dist/src/workers/core/entry.worker.js:1029:22)

and logs:
✘ [ERROR] A hanging Promise was canceled. This happens when the worker runtime is waiting for a Promise from JavaScript to resolve, but has detected that the Promise cannot possibly ever resolve because all code and events related to the Promise's I/O context have already finished.

✘ [ERROR] RuntimeError: unreachable RuntimeError: unreachable

      at [object Object]
      at [object Object]
      at [object Object]
      at [object Object]
      at [object Object]
      at [object Object]
      at [object Object]
      at J (file:///Users/joshka/local/cloudflare-webfinger-worker/build/worker/shim.mjs:2:419)
      at a (file:///Users/joshka/local/cloudflare-webfinger-worker/build/worker/shim.mjs:2:258)

Looking at shim.mjs is useless as it's minified.
Expectations
These are the things that would help inspire confidence in the cloudflare workers platform:

Fail at build time for unsupported things rather than runtime
Clear actionable log messages when errors like this occur
Document Instructions on how to diagnose / troubleshoot errors in shim.mjs
Document how the shim / wasm stuff works and how cloudflare workers / rust uses that.

I'm assuming that these pain points / limitations probably come mostly from Wasm rather than cloudflare (but could be wrong there)
Steps To Reproduce
No response

IMO these crates should not be successfully compiling when they cannot support the target with the feature set. It looks like you are encountering a Rust unreachable panic, and I don't think there is much we can do as a platform there. Are you using console_error_panic_hook or following our coredump example. These may provide more insight into what crate is misconfigured.

IMO these crates should not be successfully compiling when they cannot support the target with the feature set.

I'd agree - that would be much better for end users.
The comment in the std lib source about why this is happening is informative here:
//! Currently all functions here are basically stubs that immediately return
//! errors. The hope is that with a portability lint we can turn actually just
//! remove all this and just omit parts of the standard library if we're
//! compiling for wasm. That way it's a compile time error for something that's
//! guaranteed to be a runtime error!

I don't think there is much we can do as a platform there.

Sure there is. Generally the idea is to help a user encountering the issue move forward at least one step. Instead of just displaying a stack trace, and treating that as good enough, provide information that would help a user encountering the failure diagnose it. That might be simply pointing at a troubleshooting guide url, or it could be better error messages. Either way right now encountering a failure is effectively a dead end state for cloudflare workers built on rust, especially for someone not intimately familiar with wasm.
Additionally, the shim.js file is generated by worker-build (I think). In dev mode perhaps it could default to not minifying the code. This might help make this a little less of a pain to move past to at least see what line of code is failing with proper method names. (Checking this idea using the NO_MINIFY env var suggests that I'm wrong here - it doesn't help much, as the location of the error in the stack trace comes from the logging of the error, not from the actual source of it, but at least it rules out a bit more of the unknowns)

Are you using console_error_panic_hook or following our coredump example. These may provide more insight into what crate is misconfigured.

Thanks for the pointers to troubleshooting further. I added the panic hook and saw that the failure for the servicebuilder / trace is also around not supporting time functionality and that the tracing code calls duration / instant methods internally.
✘ [ERROR] panicked at library/std/src/sys/pal/wasm/../unsupported/time.rs:13:9:

  time not implemented on this platform

Which correlates to https://github.com/rust-lang/rust/blob/master/library/std/src/sys/pal/unsupported/time.rs#L13
It seems like to support crates that use Instant / Duration right now on wasm32-unknown-unknown, all these crates would need to fall back to using something like https://docs.rs/web-time/latest/web_time/, which would be kinda painful to do for all the libraries that need it (This is enough of a blocker that it likely changes my focus on whether this is a problem worth solving for my purpose). Mainly I wanted a bit more info about the comings and goings deeper in the axum stack for diagnostic purposes.
The top level of the yak shave on this request was that I was seeing timeouts on workers that I'd expected to work, after changing the config from custom domain to lower level routs, This worked locally fine, so I thought it must have been something in axum playing weird with workers and wanted to add more tracing of that level (using tower_http::trace::TraceLayer). It actually turned out that I'd missed adding a star at the end of the route (combined with incorrect docs on the cloudflare site schemes being supported in the route patterns), so requests with query strings timed out while requests without query strings did not.

TL;DR, my main suggestions / feedback here are to think about the failure modes that can occur at runtime and make it easy for users to do the next thing when troubleshooting. Assume that the user is not a wasm / web expert (which is why they're using rust for running workers), and be mindful of how to present information about what to do next directly in the tooling / error messages / default templates, and not just in the docs.

I understand the additional information that you would like to have, I'm saying that the runtime does not do anything special for Rust WebAssembly modules and it will likely stay that way. In the workers-rs shim, I don't think its likely that we will be able to disambiguate an unreachable statement due to this problem from the many other ways that unreachable statements can be encountered.
We recommend using console_error_panic_hook in the README, all templates, and most examples. That allows the runtime to produce sensible error messages as you saw.
There are many options for time support, including the time crate and chrono, which both support WebAssembly. Unfortunately std::time is not one of them, and I can't speak to the percentage of crates in the ecosystem which choose std::time vs. the alternatives, but in my experience most do not use std::time, especially if their authors have attempted to support WebAssembly themselves.
In general, I do think this SDK assumes some familiarity with developing for WebAssembly. We do our best to abstract over JavaScript interop code, but WebAssembly is a restricted compile target with good (but not 100%) crate support. Fully solving that developer experience is not in scope for this project.

I will also note that the tracing layer is unlikely to be useful because we do not allow timing of CPU time on the platform for security reasons, see https://developers.cloudflare.com/workers/reference/security-model/#step-1-disallow-timers-and-multi-threading

Yup, that makes a lot of sense. My project was generated using the pre- cargo-generate template (the wrangler experimental one), which didn't have the panic handler, so I missed the message on using this.


Improve and extend Maintainer Guidelines

This is what I hope improves the Maintainer Guidelines:

Rearrange sections so that there's a place for general information, handling formulae, and handling core stuff. Also:

Fix some minor formatting glitches.
Remove some jargon, e.g., “dupes” vs. “duplicates”.
Split the formula-related checklist into items for all formula changes and for new formulae only.

Add a quick checklist for core stuff. This is completely new, so feedback is more than welcome.
Add a “Testing” subsection for core stuff, drawing mainly from #46994.
Relax the wording on formula naming a bit, acknowledging that we now have formula renames.

Appreciate you didn't author the wording below, they've been there a while, but:

Sign off cherry-picks if you amended them
(GitX-dev can do this, otherwise there is
a command line flag for it).

If the commit fixes a bug, use “Fixes #104” syntax to close the bug
report and link to the commit.

I don't know if we want to retain this section given we very strongly recommend maintainers use brew pull these days as it handles bottles and does the above two automatically. Rowanj's gitx also seems to be unmaintained at this point, sadly.

Many times on other projects I’ve seen code removed because the new guy didn’t know
why it was there.

I'd prefer to use new person or new contributor or such here. I'd rather avoid the unnecessary gender pronoun given tech's broad problem of being very dominated by fairly wealthy white men.

Ideally, request a test do block to test that functionality is consistently available.

We may want to tighten this line up given we more or less refuse to accept new formulae that don't have some form of test, however basic.

I don't know if we want to retain this section given we very strongly recommend maintainers use brew pull these days as it handles bottles and does the above two automatically. Rowanj's gitx also seems to be unmaintained at this point, sadly.

Sounds good :+1:

I'd prefer to use new person or new contributor or such here. I'd rather avoid the unnecessary gender pronoun given tech's broad problem of being very dominated by fairly wealthy white men.

Agreed :+1:

Ping. Want to split this in to a multi-commit PR on homebrew/brew if still interested in this? I think it's a good change overall, though a little harder to evaluate because it's in a single commit.

Yeah, similar situation like in the other PR: I need to address some comments before I resubmit this to Homebrew/brew. It got prioritized down a bit, but I'll get back to this—hopefully soon.


How to ignore absolute paths in url()

.logo {
  background-image: url("/images/logo.png");
}

I expect that resources starting with / are not bundled when used explicitly. How do I configure this?
In my project, these paths starting with / are copied to outputPath , so I hope to skip the compilation of such files.
error[internal]: Failed to resolve /images/logo.png in css/auto|/xxx/node_modules/less-loader/dist/cjs.js!/xxxx/src/pages/home/index.module.less

can you help check the behavior of webpack

In webpack can use 'css-loader' options.url  filter files ,  https://webpack.js.org/loaders/css-loader/#object
rspack  remove css-loader https://www.rspack.dev/guide/migrate-from-webpack.html#removing-css-loader-style-loader-and-mini-css-extract-plugin
So how to configure it?

After some exploration, I found that it can be implemented through the ExternalsPlugin plug-in, but there is no detailed documentation explaining the role of the parameters. I'm not sure if I should use it this way
https://www.rspack.dev/config/plugins.html#externalsplugin
new ExternalsPlugin('commonjs', (dep, callback) => {
        if (dep.dependencyType === 'url' && dep.request.startsWith('/')) {
          return callback(null, dep.request);
        }
        callback(null);
      }),

For example, what does the callback(null) above represent, what does the second parameter mean, and what is the third parameter?

Good news: You can now use CssExtractRspackPlugin to solve it now, I've tested it and it works just fine!
see: https://www.rspack.dev/plugins/rspack/css-extract-rspack-plugin#cssextractrspackplugin

close since it could be solved and we have added api description in https://www.rspack.dev/plugins/webpack/externals-plugin


Doesn't work if there's more than one main() function

I know this shouldn't happen, but I have a helper program that builds my project for different GOOS/GOARCH concurrently that resides within the project, along with the main.go.
If I run goweight, it exits with:
2019/04/03 10:58:28 exit status 2

Maybe there should be some way to define which .go files should be used to compile, or to exclude?

#9  should help your issue.

Thanks all - merged and closing ❤


Update VSIX to use AsyncPackage

When uploading the VSIX, we get this warning. We should update it to use AsyncPackage.
Warning from VSIX Gallery
When using the ProvideAutoLoad attribute, your package (ApiPortVS.ApiPortVSPackage) class should derive from AsyncPackage instead of Package to improve performance. Read more about using AsyncPackage here: https://aka.ms/asyncpackage.

869797ecf0eef6720310b9cee02312c906705bff involved some of this work. I tried cloning and running from dev to get a bug fix, but had issues with the background loading. Trying to run a portability analysis pretty frequently threw UnsupportedOperationExceptions from calling GetService from a background thread. I believe the issue may have been exacerbated by having 112 projects in our solution.
To at least workaround this I needed to call ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync before some VS service calls like adding the context menu items were made. I have no idea how to find out whether this is necessary without just adding it wherever the exception gets thrown.


add -msse4.1 and -msse4.2 for files that ought to require it

This is required to build with the default system C++ compiler on RHEL/CentOS 7.

Oh crap... Sorry I missed that.
For the record, there's no need to make PR's. Feel free to check-in directly.
Looking at this project, we should probably setup Appveyor and Travis to catch errors on Linux, OS X and Windows.


Commentator mails failing

Mails are created when a user comments on a subscribed mail thread. However the mails are failing due to this error.
NoMethodError: undefined method `project_url' for #<ActionDispatch::Routing::RoutesProxy:0x00000000059d7268>

To Reproduce
Steps to reproduce the behavior:

Create a project
Add a comment (this will subscribe user1)
Sign in as another user (user2)
Create another comment on the same project (user1 should get email)
Run sidekiq in the background

Expected behavior
An email is received
Additional context
project_url method doesn't exist. Instead user_project_url exists. A fix would be to define project_url in terms of user_project_url.
Are you working on this issue? (Yes/No)
No

Looked into this for quite some time.
Probable solution
./app/config/commontator.rb
config.comment_url_proc = ->(comment, app_routes) {
    if comment.thread.commontable.class.name == "Project"
      project = comment.thread.commontable
      author = project.author
      return "/users/#{author.id}/projects/#{project.id}#comment_#{comment.id}_div"
    else
      return app_routes.polymorphic_url(comment.thread.commontable, anchor: "comment_#{comment.id}_div")
    end
  }

Reference: https://github.com/lml/commontator/issues/119
Then inside rails console
Commontator.comment_url(Commontator::Comment.find(183), ActionDispatch::Routing::PolymorphicRoutes)

"/users/6874/projects/19246#comment_183_div"

But, initial testing still showed the same error in sidekiq
Looking more into this.
More references:

Polymorphic routes

@ankitkataria sidekiq runs independently of the rails server. So you will have to kill and restart the sidekiq process to test.


Fix the coord system to CartesianIV

ctx.SetCoordSystem(canvas.CartesianIV) works well. This p-r is unnecessary.


Send notification to project owner when someone boosts a project

related to https://github.com/Giveth/impact-graph/issues/775

@aminlatifi  I did all your requested changes, please review it again


KongArmy: Implement status conditions in CR

Add manual keeping of CR status, this is due to known OCP 3.x limitations with operators and manageStatus.
In summary :

Implement KongArmy CR status conditions for kong_res_clean and kong_res_gen
Ensure status phase is also updated as we reconcile operator
Targets issue #3

See samples cases below:
Failure due to requested bogus kind
[fbladilo@fdev:~/git-projects/kube-kong-operator/roles/kongarmy/tasks] (update_status *%)$ oc describe kongarmy
Name:         bad-monkey
Namespace:    king-kong
Labels:       <none>
Annotations:  <none>
API Version:  konveyor.openshift.io/v1alpha1
Kind:         KongArmy
Metadata:
  Creation Timestamp:  2020-07-27T03:39:43Z
  Generation:          1
  Resource Version:    3006945
  Self Link:           /apis/konveyor.openshift.io/v1alpha1/namespaces/king-kong/kongarmies/bad-monkey
  UID:                 cf5d2562-cfba-11ea-b2a5-06172c481d9d
Spec:
  requested_resources:
    Count:  8
    Kind:   Blah
Status:
  Conditions:
    Last Transition Time:  2020-07-27T03:59:15Z
    Message:               Requested resource blah not a part of default KongArmy. Please specify a definition field.
    Reason:                ResourceCheckFailed
    Status:                True
    Type:                  ResourceCheckFailed
    Last Transition Time:  2020-07-27T03:59:15Z
    Message:               Requested resource blah generation failed. Please see ansible container logs for details.
    Reason:                ResourceGenFailed
    Status:                True
    Type:                  ResourceGenerateFailed
  Phase:                   Reconciled
Events:                    <none>

Success case using secret resource
[fbladilo@fdev:~/git-projects/kube-kong-operator] (update_status %=)$ oc describe kongarmy good-monkey
Name:         good-monkey
Namespace:    king-kong
Labels:       <none>
Annotations:  <none>
API Version:  konveyor.openshift.io/v1alpha1
Kind:         KongArmy
Metadata:
  Creation Timestamp:  2020-07-27T04:16:05Z
  Generation:          1
  Resource Version:    3010175
  Self Link:           /apis/konveyor.openshift.io/v1alpha1/namespaces/king-kong/kongarmies/good-monkey
  UID:                 e409e3fb-cfbf-11ea-b2a5-06172c481d9d
Spec:
  requested_resources:
    Count:  8
    Kind:   Secret
Status:
  Conditions:
    Last Transition Time:  2020-07-27T04:16:14Z
    Message:               Requested resource secret successfully created.
    Reason:                ResourceGenSucceeded
    Status:                True
    Type:                  ResourceGenerate
  Phase:                   Reconciled
Events:                    <none>

Clean up of secret resources
[fbladilo@fdev:~/git-projects/kube-kong-operator] (update_status %=)$ oc describe kongarmy
Name:         good-monkey
Namespace:    king-kong
Labels:       <none>
Annotations:  <none>
API Version:  konveyor.openshift.io/v1alpha1
Kind:         KongArmy
Metadata:
  Creation Timestamp:  2020-07-27T04:16:05Z
  Generation:          2
  Resource Version:    3010561
  Self Link:           /apis/konveyor.openshift.io/v1alpha1/namespaces/king-kong/kongarmies/good-monkey
  UID:                 e409e3fb-cfbf-11ea-b2a5-06172c481d9d
Spec:
  requested_resources:
    Count:   8
    Kind:    Secret
  Teardown:  true
Status:
  Conditions:
    Last Transition Time:  2020-07-27T04:18:12Z
    Message:               Requested resource secret successfully removed.
    Reason:                ResourceCleanSucceeded
    Status:                True
    Type:                  ResourceClean
  Phase:                   Reconciled
Events:                    <none>

I created following KongArmy CR:
  spec:
    requested_resources:
    - count: 2
      kind: Pod
    - count: 2
      kind: Deployment
    - count: 2
      kind: Sec

I saw the expected results :
  status:
    conditions:
    - lastTransitionTime: "2020-07-27T14:48:54Z"
      message: Requested resource sec not a part of default KongArmy. Please specify
        a definition field.
      reason: ResourceCheckFailed
      status: "True"
      type: ResourceCheckFailed
    - lastTransitionTime: "2020-07-27T14:48:54Z"
      message: Requested resource sec generation failed. Please see ansible container
        logs for details.
      reason: ResourceGenFailed
      status: "True"
      type: ResourceGenerateFailed
    phase: Reconciled


Decommission Eclipse nightly and demo environment

in lieu of #367

@aforward do you remember if this was done? thanks!


Bug fixes

Codecov Report

Merging #1 (d421fc1) into master (ccb7cee) will increase coverage by 0.25%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master       #1      +/-   ##
==========================================
+ Coverage   88.50%   88.75%   +0.25%
==========================================
  Files          38       38
  Lines        2757     2757
  Branches        0      865     +865
==========================================
+ Hits         2440     2447       +7
+ Misses        317      310       -7

Impacted Files
Coverage Δ

Source/Cells/PickerLabelCell.swift
97.46% <100.00%> (+1.89%)
:arrow_up:

...urce/PanModal/PanModalNavigationCollectionVC.swift
65.57% <100.00%> (ø)

Source/Cells/SeparatorCell.swift
100.00% <0.00%> (+1.29%)
:arrow_up:

Source/Cells/IconTextCell.swift
91.66% <0.00%> (+2.27%)
:arrow_up:

Continue to review full report at Codecov.

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


[State Restoration] Bottom Sheet

To show a bottom sheet, one needs to call Scaffold.of(context).showBottomSheet, which takes a builder for the content to display when the bottom sheet is displayed. AFAICT, there's no straightforward way for users to make the bottom sheet state restorable and we may need to provide this support directly in the Scaffold widget.
First discovered trying to make the Flutter Gallery's bottom sheet demo state restorable.

We could add a showRestorableBottomSheet method. It would have to take a static builder callback similar to how restorablePush works on the navigator.

There isn't a way to restore state from modal bottom sheet, like the example for showDialog from State Restoration document), right?
Currently, _ModalBottomSheetRoute is private, so it's not possible to create it from a static method to use in pushRestorable, like is possible with DialogRoute.


Unit test of coin selection migration fails

Release
Operating System
Cause

next
Windows & OSX & Linux)
Code  v Configuration v Environment v Human v Unknown

Context

When running on Hydra stack test cardano-wallet-core:unit
https://hydra.iohk.io/build/1278531/nixlog/15

Steps to Reproduce

See the below log :
Failures:

  test/unit/Cardano/Wallet/Primitive/CoinSelection/MigrationSpec.hs:111:9:
  1) Cardano.Wallet.Primitive.CoinSelection.Migration, selectCoinsForMigration properties, Total input UTxO value >= sum of selection change coins
       Falsifiable (after 899 tests and 7 shrinks):
         Coin {getCoin = 9}
         1
         UTxO {getUTxO = fromList [(TxIn {inputId = Hash {getHash = "|\243^\SUBg\242\231\&1\213\203"}, inputIx = 2},TxOut {address = Address {unAddress = "ADDR03"}, coin = Coin {getCoin = 2}})]}

  To rerun use: --match "/Cardano.Wallet.Primitive.CoinSelection.Migration/selectCoinsForMigration properties/Total input UTxO value >= sum of selection change coins/"

Randomized with seed<PHONE_NUMBER>

...

Expected behavior

Actual behavior

Resolution Plan

PR

Number
Base

#?
master

QA

I can reproduce it locally :
[pawel@arch cardano-wallet]$ stack test --ta '-m ">= sum of selection change coins" --seed<PHONE_NUMBER>' cardano-wallet-core:unit
cardano-wallet-core> test (suite: unit, args: -m ">= sum of selection change coins" --seed<PHONE_NUMBER>)

Cardano.Wallet.Primitive.CoinSelection.Migration
  selectCoinsForMigration properties
    Total input UTxO value >= sum of selection change coins FAILED [1]

Failures:

  test/unit/Cardano/Wallet/Primitive/CoinSelection/MigrationSpec.hs:111:9:
  1) Cardano.Wallet.Primitive.CoinSelection.Migration, selectCoinsForMigration properties, Total input UTxO value >= sum of selection change coins
       Falsifiable (after 899 tests and 7 shrinks):
         Coin {getCoin = 9}
         1
         UTxO {getUTxO = fromList [(TxIn {inputId = Hash {getHash = "|\243^\SUBg\242\231\&1\213\203"}, inputIx = 2},TxOut {address = Address {unAddress = "ADDR03"}, coin = Coin {getCoin = 2}})]}

  To rerun use: --match "/Cardano.Wallet.Primitive.CoinSelection.Migration/selectCoinsForMigration properties/Total input UTxO value >= sum of selection change coins/"

Randomized with seed<PHONE_NUMBER>

Finished in 0.3802 seconds
1 example, 1 failure

so we have situation that :

So, for
coinSel:CoinSelection {inputs = [(TxIn {inputId = Hash {getHash = "|\243^\SUBg\242\231\&1\213\203"}, inputIx = 2},TxOut {address = Address {unAddress = "ADDR03"}, coin = Coin {getCoin = 2}})], outputs = [], change = [Coin {getCoin = 9}]}
inputBalance coinSel:2
changeBalance coinSel:9

actualFee:18446744073709551609

So, because
inputBalance :: CoinSelection -> Word64
changeBalance :: CoinSelection -> Word64
and
https://github.com/input-output-hk/cardano-wallet/blob/master/lib/core/src/Cardano/Wallet/Primitive/CoinSelection/Migration.hs#L142

lgtm.


[Fabric 1.21] [Crash/Incompat] Incompatible with Accessories from 1.1.0 and above

Recent Crash w/ the mod and the libraries involved
https://paste.atlauncher.com/view/febe2a99-6d17-4182-9801-8d2e911a6f9a
here's the most current atlauncher's log

Unsure on where to report this, so I decided to report this on both ends! Hope you don't mind. ><

oh !!! my fault! thank you for the notice!


can you specify how to use Personae?

It's hard for me to run it up

Of course, first do you use Docker?


drivers: pwm: fix the bug of frequency in pwm_nrf5_sw

正确的分频值
函数 pwm_nrf5_sw_get_cycles_per_sec 获取正确的周期数
The following is a machine translation
The correct crossover value
The function pwm_nrf5_sw_get_cycles_per_sec gets the correct number of cycles

Codecov Report

Merging #7471 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #7471   +/-   ##
=======================================
  Coverage   55.25%   55.25%
=======================================
  Files         467      467
  Lines       51656    51656
  Branches     9889     9889
=======================================
  Hits        28541    28541
  Misses      19205    19205
  Partials     3910     3910

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 3be0c56...d58e493. Read the comment docs.


Need way to validate source maps when testing

We should have a way to validate source maps.

Johnni has actually been working on this so be able to test out the new source-map information. There are some tests in place, so we could close this (Johnni WDYT?)
@peter-ahe-google I was actually thinking that this might be a good use-case for your testing.dart tool as well.

I think this is great fit for package:testing. Please take a look at the documentation, and let me know if there are questions I need to address,


Update cli_install.md

-h option doesn't work, --help is the correct option

Description
Fix aio help command

This was fixed in another pr


Use absolute imports for files

Change from using getcwd() which is unreliable to absolute paths from where the file is located.

@priyaananthasankar please take a look when you can


small changes to include task in clocking in

This  is not much but here.

Alright I made the changes.  I forgot to run flask8 last time sorry.


(PUP-5520) Exclude Yocto init scripts from service init provider

Yocto Linux ships a series of init scripts that are not safe to execute.  This creates unintended consequences such as sending shutdown signals to daemons.
This commit excludes the known list of unsafe scripts so that Puppet does not try to execute them via the service init provider.
https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-core/initscripts/initscripts-1.0
Replaces #4479

FWIW Debian is confined off this provider already: https://github.com/puppetlabs/puppet/blob/4.3.1/lib/puppet/provider/service/init.rb#L19-L23
However, that there may still be other distros that do similar fun things.
+1 on making this conditional on platform. Is there any downside to doing so?

@shermdog can you add the confines?

Updated with confinement

:+1:

Sorry to be a downer. Can we add a test that at least one of these scripts are excluded on cisco-wrlinux, and not excluded on other platforms?

@joshcooper where do you prefer that test live?

Probably here in init_spec

:+1:


timezone resource is not idempotent

Description

The timezone resource is not idempotent with action :set and the system timezone is already correctly set.
Chef Version

16.9.20
Platform Version

Redhat Enterprise Linux 8.4
Replication Case

timezone 'UTC' do
  action :set
  retries 5
  retry_delay 5
  notifies :permissive, 'selinux_state[SELinux]', :before
end

Client Output
The resource does not trigger a notification to temporarily set selinux to "permissive" mode. However, the client log output does show that timezone is trying to "set" the system timezone to UTC. It will fail, because selinux is set to enforcing.
  * selinux_state[SELinux] action nothing[2021-05-31T20:19:42+00:00] INFO: Processing selinux_state[SELinux] action nothing (REDACTED::myrecipe line 28)
 (skipped due to action :nothing)
  * dnf_package[selinux-policy] action upgrade[2021-05-31T20:19:42+00:00] INFO: Processing dnf_package[selinux-policy] action upgrade (REDACTED::myrecipe line 36)
 (up to date)
[2021-05-31T20:19:45+00:00] INFO: timezone[UTC] running why-run set action to support before action
  * timezone[UTC] action set[2021-05-31T20:19:45+00:00] INFO: Processing timezone[UTC] action set (REDACTED::myrecipe line 41)
[2021-05-31T20:20:10+00:00] INFO: Retrying execution of timezone[UTC], 4 attempts left

timedatectl show indicates it is UTC.
Workaround
I have to add this guard to the resource:
  not_if "test `timedatectl show|grep Timezone|awk -F= '{print$2}'` = \"UTC\""

Hi @haidangwa,
I tried to reproduce this issue on OS Rhel-8 and Chef Workstation version: 21.9.613, but I could not reproduce it.
I have tried multiple scenarios on timezone resources, following are the recipes I have executed. I have also took a look at the code. Time resource looks like behaving as idempotent only.
step1 - chef generate cookbook cheftest
- edit metadata.rb add depends  "selinux"
step2 - added recipe in defoult.rb
recipe 1-
selinux_state 'SELinux' do
  action :permissive
end
timezone 'UTC' do
  action :set
  retries 5
  retry_delay 5
  notifies :permissive, 'selinux_state[SELinux]', :before
end

o/p -
[root@rhel8 vagrant]# chef-client -z -r recipe[cheftest]
* selinux_state[SELinux] action permissive[2021-09-13T02:22:16-05:00] INFO: Processing selinux_state[SELinux] action permissive (cheftest::default line 6)

    * execute[selinux-setenforce-permissive] action run[2021-09-13T02:22:16-05:00] INFO: Processing execute[selinux-setenforce-permissive] action run (/vagrant/.chef/local-mode-cache/cache/cookbooks/selinux/resources/state.rb line 97)
[2021-09-13T02:22:16-05:00] INFO: execute[selinux-setenforce-permissive] ran successfully

      - execute /usr/sbin/setenforce 0
    * template[permissive selinux config] action create[2021-09-13T02:22:17-05:00] INFO: Processing template[permissive selinux config] action create (/vagrant/.chef/local-mode-cache/cache/cookbooks/selinux/resources/state.rb line 56)
[2021-09-13T02:22:17-05:00] INFO: template[permissive selinux config] backed up to /vagrant/.chef/local-mode-cache/backup/etc/selinux/config.chef-20210913022217.060784
[2021-09-13T02:22:17-05:00] INFO: template[permissive selinux config] updated file contents /etc/selinux/config

      - update content in file /etc/selinux/config from b1bf6f to 6d12e4
      --- /etc/selinux/config 2021-09-13 02:18:13.635814465 -0500
      +++ /etc/selinux/.chef-config20210913-6261-etmm6j 2021-09-13 02:22:17.044255680 -0500
      @@ -7,7 +7,7 @@
       #     enforcing - SELinux security policy is enforced.
       #     permissive - SELinux prints warnings instead of enforcing.
       #     disabled - No SELinux policy is loaded.
      -SELINUX=enforcing
      +SELINUX=permissive
       # SELINUXTYPE= can take one of these three values:
       #     targeted - Targeted processes are protected,
       #     minimum - Modification of targeted policy. Only selected processes are protected.
      - restore selinux security context

[2021-09-13T02:22:17-05:00] INFO: timezone[UTC] running why-run set action to support before action
  * timezone[UTC] action set[2021-09-13T02:22:17-05:00] INFO: Processing timezone[UTC] action set (cheftest::default line 11)

    - Would update EST
    - Would   set timezone to "UTC" (was "EST")
[2021-09-13T02:22:17-05:00] INFO: timezone[UTC] sending permissive action to selinux_state[SELinux] (before)
  * selinux_state[SELinux] action permissive[2021-09-13T02:22:17-05:00] INFO: Processing selinux_state[SELinux] action permissive (cheftest::default line 6)

    * template[permissive selinux config] action create[2021-09-13T02:22:17-05:00] INFO: Processing template[permissive selinux config] action create (/vagrant/.chef/local-mode-cache/cache/cookbooks/selinux/resources/state.rb line 56)
 (up to date)
     (up to date)
  * timezone[UTC] action set[2021-09-13T02:22:17-05:00] INFO: Processing timezone[UTC] action set (cheftest::default line 11)

    * dnf_package[tzdata] action install[2021-09-13T02:22:17-05:00] INFO: Processing dnf_package[tzdata] action install (/opt/chef-workstation/embedded/lib/ruby/gems/3.0.0/gems/chef-17.4.38/lib/chef/resource/timezone.rb line 135)
 (up to date)
    - update EST
    -   set timezone to "UTC" (was "EST")
[2021-09-13T02:22:18-05:00] INFO: Chef Infra Client Run complete in 2.474983384 seconds

recipe 2:
file '/etc/example.crt' do
  mode '0600'
  owner 'root'
end
timezone 'UTC' do
  action :set
  retries 5
  retry_delay 5
  notifies :touch, 'file[/etc/example.crt]',:before
end

o/p:
[root@rhel8 vagrant]# bundle exec chef-apply /vagrant/bugtest.rb
Recipe: (chef-apply cookbook)::(chef-apply recipe)
  * file[/etc/example.crt] action create (up to date)
  * timezone[UTC] action set (up to date)
  * timezone[UTC] action set (up to date)

Please try it once on the latest version and if you still face the issue let us know with some more details.

@snehaldwivedi I noticed in your first recipe that you set selinux default to "permissive". In our environment, we leave selinux to enforce and only temporarily set it to permissive mode when we need to make certain changes. I have our default setting to "enforcing".  Have you tried a scenario with selinux already configured for enforcing?

selinux_state 'SELinux' do
  action :nothing
end

# setting time zone from a cron job is blocked by selinux, but it is also
# a bug in the selinux-policy package. That package was fixed by selinux-policy-3.14.3-67.el8.noarch.rpm.
# So, we need to ensure we have the latest version installed.
# More details: https://bugzilla.redhat.com/show_bug.cgi?id=1883906.
# package 'selinux-policy' do
#   action :upgrade
#   flush_cache [ :before ]
# end

timezone node['etech_splunk_installer']['timezone'] do
  action :set
  retries 5
  retry_delay 5
  notifies :permissive, 'selinux_state[SELinux]', :before
  notifies :enforcing, 'selinux_state[SELinux]'
end

Hi @haidangwa, yes I have tested this recipe with sestatus as enforcing and timezone UTC. Looks like its working fine.
selinux_state 'SELinux' do
  action :nothing
end
timezone 'UTC' do
  action :set
  retries 5
  retry_delay 5
  notifies :permissive, 'selinux_state[SELinux]', :before
  notifies :enforcing, 'selinux_state[SELinux]'
end

o\p: when already set to UTC
* selinux_state[SELinux] action nothing[2021-09-14T08:43:49+00:00] INFO: Processing selinux_state[SELinux] action nothing (cheftest::default line 10)
 (skipped due to action :nothing)
[2021-09-14T08:43:49+00:00] INFO: timezone[UTC] running why-run set action to support before action
  * timezone[UTC] action set[2021-09-14T08:43:49+00:00] INFO: Processing timezone[UTC] action set (cheftest::default line 21)
 (up to date)
  * timezone[UTC] action set[2021-09-14T08:43:49+00:00] INFO: Processing timezone[UTC] action set (cheftest::default line 21)
 (up to date)
[2021-09-14T08:43:49+00:00] INFO: Chef Infra Client Run complete in 0.723513538 seconds

logs:
[root@rhel8 vagrant]# chef-client -z -r recipe[cheftest]
[2021-09-14T08:33:24+00:00] INFO: Started Chef Infra Zero at chefzero://localhost:1 with repository at /vagrant (One version per cookbook)
Chef Infra Client, version 17.4.38
Patents: https://www.chef.io/patents
Infra Phase starting
[2021-09-14T08:33:24+00:00] INFO: *** Chef Infra Client 17.4.38 ***
[2021-09-14T08:33:24+00:00] INFO: Platform: x86_64-linux
[2021-09-14T08:33:24+00:00] INFO: Chef-client pid: 7198
[2021-09-14T08:33:26+00:00] INFO: Setting the run_list to [#<Chef::RunList::RunListItem:0x0000000001d3df00 @version=nil, @type=:recipe, @name="cheftest">] from CLI options
[2021-09-14T08:33:26+00:00] INFO: Run List is [recipe[cheftest]]
[2021-09-14T08:33:26+00:00] INFO: Run List expands to [cheftest]
[2021-09-14T08:33:26+00:00] INFO: Starting Chef Infra Client Run for pratixha
[2021-09-14T08:33:26+00:00] INFO: Running start handlers
[2021-09-14T08:33:26+00:00] INFO: Start handlers complete.
Resolving cookbooks for run list: ["cheftest"]
[2021-09-14T08:33:26+00:00] INFO: Loading cookbooks<EMAIL_ADDRESS><EMAIL_ADDRESS>Synchronizing cookbooks:
[2021-09-14T08:33:26+00:00] INFO: Storing updated cookbooks/cheftest/recipes/default.rb in the cache.
  - selinux (6.0.0)
  - cheftest (0.1.0)
Installing cookbook gem dependencies:
Compiling cookbooks...
Converging 2 resources
Recipe: cheftest::default
  * selinux_state[SELinux] action nothing[2021-09-14T08:33:26+00:00] INFO: Processing selinux_state[SELinux] action nothing (cheftest::default line 10)
 (skipped due to action :nothing)
[2021-09-14T08:33:26+00:00] INFO: timezone[EST] running why-run set action to support before action
  * timezone[EST] action set[2021-09-14T08:33:26+00:00] INFO: Processing timezone[EST] action set (cheftest::default line 21)

    - Would update UTC
    - Would   set timezone to "EST" (was "UTC")
[2021-09-14T08:33:26+00:00] INFO: timezone[EST] sending permissive action to selinux_state[SELinux] (before)
  * selinux_state[SELinux] action permissive[2021-09-14T08:33:26+00:00] INFO: Processing selinux_state[SELinux] action permissive (cheftest::default line 10)

    * execute[selinux-setenforce-permissive] action run[2021-09-14T08:33:26+00:00] INFO: Processing execute[selinux-setenforce-permissive] action run (/vagrant/.chef/local-mode-cache/cache/cookbooks/selinux/resources/state.rb line 97)
[2021-09-14T08:33:27+00:00] INFO: execute[selinux-setenforce-permissive] ran successfully

      - execute /usr/sbin/setenforce 0
    * template[permissive selinux config] action create[2021-09-14T08:33:27+00:00] INFO: Processing template[permissive selinux config] action create (/vagrant/.chef/local-mode-cache/cache/cookbooks/selinux/resources/state.rb line 56)
[2021-09-14T08:33:27+00:00] INFO: template[permissive selinux config] backed up to /vagrant/.chef/local-mode-cache/backup/etc/selinux/config.chef-20210914083327.136184
[2021-09-14T08:33:27+00:00] INFO: template[permissive selinux config] removed backup at /vagrant/.chef/local-mode-cache/backup/etc/selinux/config.chef-20210913022217.060784
[2021-09-14T08:33:27+00:00] INFO: template[permissive selinux config] updated file contents /etc/selinux/config

      - update content in file /etc/selinux/config from b1bf6f to 6d12e4
      --- /etc/selinux/config	2021-09-14 08:31:39.609817927 +0000
      +++ /etc/selinux/.chef-config20210914-7198-4nzyxm	2021-09-14 08:33:27.122640430 +0000
      @@ -7,7 +7,7 @@
       #     enforcing - SELinux security policy is enforced.
       #     permissive - SELinux prints warnings instead of enforcing.
       #     disabled - No SELinux policy is loaded.
      -SELINUX=enforcing
      +SELINUX=permissive
       # SELINUXTYPE= can take one of these three values:
       #     targeted - Targeted processes are protected,
       #     minimum - Modification of targeted policy. Only selected processes are protected.
      - restore selinux security context

  * timezone[EST] action set[2021-09-14T08:33:27+00:00] INFO: Processing timezone[EST] action set (cheftest::default line 21)

    * dnf_package[tzdata] action install[2021-09-14T08:33:27+00:00] INFO: Processing dnf_package[tzdata] action install (/opt/chef-workstation/embedded/lib/ruby/gems/3.0.0/gems/chef-17.4.38/lib/chef/resource/timezone.rb line 135)
 (up to date)
    - update UTC
    -   set timezone to "EST" (was "UTC")
[2021-09-14T08:33:28+00:00] INFO: timezone[EST] sending enforcing action to selinux_state[SELinux] (delayed)
  * selinux_state[SELinux] action enforcing[2021-09-14T08:33:28+00:00] INFO: Processing selinux_state[SELinux] action enforcing (cheftest::default line 10)

    * execute[selinux-setenforce-enforcing] action run[2021-09-14T08:33:28+00:00] INFO: Processing execute[selinux-setenforce-enforcing] action run (/vagrant/.chef/local-mode-cache/cache/cookbooks/selinux/resources/state.rb line 84)
[2021-09-14T08:33:28+00:00] INFO: execute[selinux-setenforce-enforcing] ran successfully

      - execute /usr/sbin/setenforce 1
    * template[enforcing selinux config] action create[2021-09-14T08:33:28+00:00] INFO: Processing template[enforcing selinux config] action create (/vagrant/.chef/local-mode-cache/cache/cookbooks/selinux/resources/state.rb line 56)
[2021-09-14T08:33:28+00:00] INFO: template[enforcing selinux config] backed up to /vagrant/.chef/local-mode-cache/backup/etc/selinux/config.chef-20210914083328.881924
[2021-09-14T08:33:28+00:00] INFO: template[enforcing selinux config] removed backup at /vagrant/.chef/local-mode-cache/backup/etc/selinux/config.chef-20210913071350.039309
[2021-09-14T08:33:28+00:00] INFO: template[enforcing selinux config] updated file contents /etc/selinux/config

      - update content in file /etc/selinux/config from 6d12e4 to b1bf6f
      --- /etc/selinux/config	2021-09-14 08:33:27.122640430 +0000
      +++ /etc/selinux/.chef-config20210914-7198-jdh1p2	2021-09-14 08:33:28.880714871 +0000
      @@ -7,7 +7,7 @@
       #     enforcing - SELinux security policy is enforced.
       #     permissive - SELinux prints warnings instead of enforcing.
       #     disabled - No SELinux policy is loaded.
      -SELINUX=permissive
      +SELINUX=enforcing
       # SELINUXTYPE= can take one of these three values:
       #     targeted - Targeted processes are protected,
       #     minimum - Modification of targeted policy. Only selected processes are protected.
      - restore selinux security context

[2021-09-14T08:33:29+00:00] INFO: Chef Infra Client Run complete in 2.834341633 seconds

Running handlers:
[2021-09-14T08:33:29+00:00] INFO: Running report handlers
Running handlers complete
[2021-09-14T08:33:29+00:00] INFO: Report handlers complete
Infra Phase complete, 8/10 resources updated in 05 seconds
[2021-09-14T08:33:29+00:00] INFO: Starting Chef Infra Compliance Phase
[2021-09-14T08:33:29+00:00] ERROR: Chef InSpec has raised a runtime exception. Generating a minimal failed report.
[2021-09-14T08:33:29+00:00] ERROR: Cannot fetch all profiles: [{:path=>"/tmp/chef_repo20210723-89531-1iig4nl/profiles/my-profile", :name=>"my-profile"}]. Please make sure you're authenticated and the server is reachable. Profile dependency local path '/tmp/chef_repo20210723-89531-1iig4nl/profiles/my-profile' does not exist
[2021-09-14T08:33:29+00:00] INFO: Reporting to cli

Compliance report:

[2021-09-14T08:33:29+00:00] INFO: Chef Infra Compliance Phase Complete
[root@rhel8 vagrant]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      33

@haidangwa we are closing this issue, for now, please check it on the latest version and if the issue still persists please reopen it.