inconsistent type returned by pull join depending on cardinality

(let [db (dx/create-dx [{:db/id 1 :name "ivan" :cars [{:db/id 10 :name "tesla"}
                                                        {:db/id 11 :name "ferrari"}]}
                          {:db/id 2 :name "petr" :cars [{:db/id 10 :name "peugot"}]}
                          {:db/id 3 :name "mike" :cars []}])]
    [; expected result
     (:cars (dx/pull db [:name {:cars [:name]}] [:db/id 1]))
     ; unexpected result
     (:cars (dx/pull db [:name {:cars [:name]}] [:db/id 2]))])

When there is a single entity, pull returns the entity without the vector. Is this intentional or a bug? This is different from pull in other impls.
I can workaround it but just want to know that it's intentional.

It is identical to other implementations. The tests were copied from datascript, which, if the description is trustworthy, is compatible with datomic in this respect.
https://github.com/tonsky/datascript/blob/master/test/datascript/test/pull_api.cljc#L198

I'm not sure that's true. In Datascript, you can mark a ref attribute as plural using
{:db/type        :db.type/ref
:db/cardinality :db.cardinality/many}
and then pull always returns a vector.
I use Datomic Cloud and the same is true there for "many" attributes.
Does this concept exist in a Doxa db?

none of the tests you link to show this particular example. or am I missing something?

Could you paste a sample datascript code so I can check? Maybe I don't know how to do something. If it is as you say then I will gladly correct it to make it consistent.

no probs. does this make it clear?
(do
(require '[datascript.core :as d])
(let [schema {:cars {:db/type        :db.type/ref
:db/cardinality :db.cardinality/many}}
db (d/create-conn schema)]
; try this with no schema and it will reject the cars refs
(d/transact! db [{:db/id 1
:name  "Rafal"
:cars  [20]}
                 {:db/id 2
                  :name  "Steve"
                  :cars  [20 21]}

                 {:db/id 20
                  :make  "Ferrari"}
                 {:db/id 21
                  :make  "Ferrari"}])

{:single-child (d/pull @db [:name {:cars     [:make]
                                   :projects [:name]}] 1)
 :n-child      (d/pull @db [:name {:cars     [:make]
                                   :projects [:name]}] 2)}))

here's a test for it...
(t/deftest gh-16
  ; https://github.com/ribelo/doxa/issues/16
  (let [db (dx/create-dx [{:db/id 1 :name "ivan" :cars [{:db/id 10 :name "tesla"}
                                                        {:db/id 11 :name "ferrari"}]}
                          {:db/id 2 :name "petr" :cars [{:db/id 10 :name "peugot"}]}
                          {:db/id 3 :name "mike" :cars []}])]
    (t/is (vector? (:cars (dx/pull db [:name {:cars [:name]}] [:db/id 1])))
          "pull returns vector when N entities in join")
    (t/is (vector? (:cars (dx/pull db [:name {:cars [:name]}] [:db/id 2])))
          "pull returns vector when 1 entity in join")))

fix validated in my apps. closing


Support HTTP PATCH with LDPatch format

At #10, we expressed some interest in supporting LDPatch as a format for HTTP PATCH. Any work on this is dependent on an implementation somewhere upstream in RDF.rb.

An implementation is here: https://github.com/ruby-rdf/rdf-ldp/compare/feature/ld-patch
It depends on a stable release of https://github.com/gkellogg/ld-patch, but otherwise is ready to merge (perhaps with light refactoring).

Released version 0.1.0 of the ld-patch gem, which passes all (but two intentionally) tests from the LD Patch test suite.


Feature/ dropdown close onBlur

Issue description

components: Dropdown

It would be sweet to add closeOnBlur prop to dropdown.
The result:
If closeOnBlur={false} user my trigger dropdown toggle to close dropdown.

It was just a feature I used in Semantic UI, which I had to program again. It is nice out of the box.
https://react.semantic-ui.com/modules/dropdown

Sorry I misunderstood, so you want to prevent closing of the dropdown onBlur?

We probably should be passing the event which triggered toggle to toggle so that the user can then better determine to take action or not.

I think the event is passed, it's not triggered onBlur though. It's always a click:
https://stackblitz.com/edit/reactstrap-v5-beta-starter-fuhdna

keyup happens when there is something else on the page which can be focused, allowing tab to blur and trigger toggle.
The event target may also give some insight.
https://stackblitz.com/edit/reactstrap-v5-beta-starter-7mgu2c?file=index.js

Slick, using that logic you could not close the dropdown. If added to reactstrap, should probably just be added to the UncontrolledDropdown.


Power bi Action:Integration of two power bi datasets in one report  not working in Rebind step.

1.Using Power bi Action tools we are trying to provide two Power bi dataset connection to a Single report but we are not able to achieve it as we are getting two report each connected with single dataset individually.

Is there a way to add two datasets in rebind report action, so that for the single Power bi report two datasets will be attached.

Not at this moment.

@maikvandergaag

Will it be added as a feature or in coming weeks.
Is there some tweak we can do like adding dataset name in JSON format in "Update Dataset" Steps.

Please let us know if there is a work around we can try for this.

It will take time to add this functionality. You have to do this in another way or help with adding this functionality. For now I will mark this issue as a feature request.


downsampling: Inconsistent query results on store data

Hi, I have a prometheus setup with 5 days retention and I'm seeing strange query results for intervals outside this range, see:
Query for k8s cpu usage now-14 days:

Everything is ok!
Now query for 15 days:

That's not ok, data that was present on the last query is not present in this one... what could be causing this?
thanos store log for 14 day query:
level=debug ts=2018-06-14T17:55:40.02736218Z caller=bucket.go:672 msg="Blocks source resolutions" blocks=23 mint=1527789280000 maxt=1528998940000 lset="{prometheus=\"monitoring/k8s\",prometheus_replica=\"prometheus-k8s-0\"}" spans="Range:<PHONE_NUMBER>000-1528992000000 Resolution: 0"
level=debug ts=2018-06-14T17:55:40.027477391Z caller=bucket.go:672 msg="Blocks source resolutions" blocks=23 mint=1527789280000 maxt=1528998940000 lset="{prometheus=\"monitoring/k8s\",prometheus_replica=\"prometheus-k8s-1\"}" spans="Range:<PHONE_NUMBER>000-1528992000000 Resolution: 0"
level=debug ts=2018-06-14T17:55:40.027344258Z caller=bucket.go:672 msg="Blocks source resolutions" blocks=23 mint=1527789280000 maxt=1528998940000 lset="{prometheus=\"monitoring/k8s\",prometheus_replica=\"prometheus-k8s-0\"}" spans="Range:<PHONE_NUMBER>000-1528992000000 Resolution: 0"
level=debug ts=2018-06-14T17:55:40.027779679Z caller=bucket.go:672 msg="Blocks source resolutions" blocks=23 mint=1527789280000 maxt=1528998940000 lset="{prometheus=\"monitoring/k8s\",prometheus_replica=\"prometheus-k8s-1\"}" spans="Range:<PHONE_NUMBER>000-1528992000000 Resolution: 0"
level=debug ts=2018-06-14T17:55:40.054760716Z caller=bucket.go:672 msg="Blocks source resolutions" blocks=23 mint=1527789280000 maxt=1528998940000 lset="{prometheus=\"monitoring/k8s\",prometheus_replica=\"prometheus-k8s-0\"}" spans="Range:<PHONE_NUMBER>000-1528992000000 Resolution: 0"
level=debug ts=2018-06-14T17:55:40.054883118Z caller=bucket.go:672 msg="Blocks source resolutions" blocks=23 mint=1527789280000 maxt=1528998940000 lset="{prometheus=\"monitoring/k8s\",prometheus_replica=\"prometheus-k8s-1\"}" spans="Range:<PHONE_NUMBER>000-1528992000000 Resolution: 0"
level=debug ts=2018-06-14T17:55:40.07814406Z caller=bucket.go:672 msg="Blocks source resolutions" blocks=23 mint=1527789040000 maxt=1528998940000 lset="{prometheus=\"monitoring/k8s\",prometheus_replica=\"prometheus-k8s-0\"}" spans="Range:<PHONE_NUMBER>000-1528992000000 Resolution: 0"
level=debug ts=2018-06-14T17:55:40.078350323Z caller=bucket.go:672 msg="Blocks source resolutions" blocks=23 mint=1527789040000 maxt=1528998940000 lset="{prometheus=\"monitoring/k8s\",prometheus_replica=\"prometheus-k8s-1\"}" spans="Range:<PHONE_NUMBER>000-1528992000000 Resolution: 0"
level=debug ts=2018-06-14T17:55:41.950475808Z caller=bucket.go:800 msg="series query processed" stats="&{blocksQueried:46 postingsTouched:552 postingsTouchedSizeSum:4070632 postingsFetched:0 postingsFetchedSizeSum:0 postingsFetchCount:0 postingsFetchDurationSum:0 seriesTouched:1258 seriesTouchedSizeSum:253447 seriesFetched:0 seriesFetchedSizeSum:0 seriesFetchCount:0 seriesFetchDurationSum:0 chunksTouched:17866 chunksTouchedSizeSum:1861778 chunksFetched:17866 chunksFetchedSizeSum:51450095 chunksFetchCount:184 chunksFetchDurationSum:149802503703 getAllDuration:1851983101 mergedSeriesCount:70 mergedChunksCount:17866 mergeDuration:19861396}"
level=debug ts=2018-06-14T17:55:41.954716263Z caller=bucket.go:800 msg="series query processed" stats="&{blocksQueried:46 postingsTouched:598 postingsTouchedSizeSum:9427568 postingsFetched:0 postingsFetchedSizeSum:0 postingsFetchCount:0 postingsFetchDurationSum:0 seriesTouched:464 seriesTouchedSizeSum:97787 seriesFetched:0 seriesFetchedSizeSum:0 seriesFetchCount:0 seriesFetchDurationSum:0 chunksTouched:6612 chunksTouchedSizeSum:2865925 chunksFetched:6612 chunksFetchedSizeSum:41982198 chunksFetchCount:298 chunksFetchDurationSum:186802588703 getAllDuration:1914146084 mergedSeriesCount:24 mergedChunksCount:6612 mergeDuration:12971602}"
level=debug ts=2018-06-14T17:55:41.989527874Z caller=bucket.go:800 msg="series query processed" stats="&{blocksQueried:46 postingsTouched:598 postingsTouchedSizeSum:9427568 postingsFetched:0 postingsFetchedSizeSum:0 postingsFetchCount:0 postingsFetchDurationSum:0 seriesTouched:464 seriesTouchedSizeSum:97787 seriesFetched:0 seriesFetchedSizeSum:0 seriesFetchCount:0 seriesFetchDurationSum:0 chunksTouched:6612 chunksTouchedSizeSum:2796196 chunksFetched:6612 chunksFetchedSizeSum:42536229 chunksFetchCount:297 chunksFetchDurationSum:208190432230 getAllDuration:1927619220 mergedSeriesCount:24 mergedChunksCount:6612 mergeDuration:6426206}"
level=debug ts=2018-06-14T17:55:42.947116671Z caller=bucket.go:800 msg="series query processed" stats="&{blocksQueried:46 postingsTouched:552 postingsTouchedSizeSum:17949124 postingsFetched:0 postingsFetchedSizeSum:0 postingsFetchCount:0 postingsFetchDurationSum:0 seriesTouched:9668 seriesTouchedSizeSum:2004888 seriesFetched:0 seriesFetchedSizeSum:0 seriesFetchCount:0 seriesFetchDurationSum:0 chunksTouched:136680 chunksTouchedSizeSum:59734295 chunksFetched:136680 chunksFetchedSizeSum:264297028 chunksFetchCount:689 chunksFetchDurationSum:608738627953 getAllDuration:2593597046 mergedSeriesCount:536 mergedChunksCount:136680 mergeDuration:325581043}"

thanos store log for 15 days query:
level=debug ts=2018-06-14T17:56:12.429287084Z caller=bucket.go:672 msg="Blocks source resolutions" blocks=24 mint=1527702673000 maxt=1528998973000 lset="{prometheus=\"monitoring/k8s\",prometheus_replica=\"prometheus-k8s-0\"}" spans="Range:<PHONE_NUMBER>000-1528992000000 Resolution: 0"
level=debug ts=2018-06-14T17:56:12.429393076Z caller=bucket.go:672 msg="Blocks source resolutions" blocks=24 mint=1527702673000 maxt=1528998973000 lset="{prometheus=\"monitoring/k8s\",prometheus_replica=\"prometheus-k8s-1\"}" spans="Range:<PHONE_NUMBER>000-1528992000000 Resolution: 0"
level=debug ts=2018-06-14T17:56:12.460069565Z caller=bucket.go:672 msg="Blocks source resolutions" blocks=24 mint=1527702913000 maxt=1528998973000 lset="{prometheus=\"monitoring/k8s\",prometheus_replica=\"prometheus-k8s-0\"}" spans="Range:<PHONE_NUMBER>000-1528761600000 Resolution: 300000\nRange:<PHONE_NUMBER>000-1528992000000 Resolution: 0"
level=debug ts=2018-06-14T17:56:12.460256071Z caller=bucket.go:672 msg="Blocks source resolutions" blocks=24 mint=1527702913000 maxt=1528998973000 lset="{prometheus=\"monitoring/k8s\",prometheus_replica=\"prometheus-k8s-1\"}" spans="Range:<PHONE_NUMBER>000-1528761600000 Resolution: 300000\nRange:<PHONE_NUMBER>000-1528992000000 Resolution: 0"
level=debug ts=2018-06-14T17:56:12.466264658Z caller=bucket.go:672 msg="Blocks source resolutions" blocks=24 mint=1527702913000 maxt=1528998973000 lset="{prometheus=\"monitoring/k8s\",prometheus_replica=\"prometheus-k8s-0\"}" spans="Range:<PHONE_NUMBER>000-1528761600000 Resolution: 300000\nRange:<PHONE_NUMBER>000-1528992000000 Resolution: 0"
level=debug ts=2018-06-14T17:56:12.466457773Z caller=bucket.go:672 msg="Blocks source resolutions" blocks=24 mint=1527702913000 maxt=1528998973000 lset="{prometheus=\"monitoring/k8s\",prometheus_replica=\"prometheus-k8s-1\"}" spans="Range:<PHONE_NUMBER>000-1528761600000 Resolution: 300000\nRange:<PHONE_NUMBER>000-1528992000000 Resolution: 0"
level=debug ts=2018-06-14T17:56:12.466554802Z caller=bucket.go:672 msg="Blocks source resolutions" blocks=24 mint=1527702913000 maxt=1528998973000 lset="{prometheus=\"monitoring/k8s\",prometheus_replica=\"prometheus-k8s-0\"}" spans="Range:<PHONE_NUMBER>000-1528761600000 Resolution: 300000\nRange:<PHONE_NUMBER>000-1528992000000 Resolution: 0"
level=debug ts=2018-06-14T17:56:12.466676523Z caller=bucket.go:672 msg="Blocks source resolutions" blocks=24 mint=1527702913000 maxt=1528998973000 lset="{prometheus=\"monitoring/k8s\",prometheus_replica=\"prometheus-k8s-1\"}" spans="Range:<PHONE_NUMBER>000-1528761600000 Resolution: 300000\nRange:<PHONE_NUMBER>000-1528992000000 Resolution: 0"
level=debug ts=2018-06-14T17:56:14.115951935Z caller=bucket.go:800 msg="series query processed" stats="&{blocksQueried:48 postingsTouched:574 postingsTouchedSizeSum:5867160 postingsFetched:0 postingsFetchedSizeSum:0 postingsFetchCount:0 postingsFetchDurationSum:0 seriesTouched:1504 seriesTouchedSizeSum:346151 seriesFetched:0 seriesFetchedSizeSum:0 seriesFetchCount:0 seriesFetchDurationSum:0 chunksTouched:19066 chunksTouchedSizeSum:1986770 chunksFetched:19066 chunksFetchedSizeSum:53108993 chunksFetchCount:210 chunksFetchDurationSum:67354104479 getAllDuration:1654984398 mergedSeriesCount:70 mergedChunksCount:19066 mergeDuration:31396167}"
level=debug ts=2018-06-14T17:56:14.195766079Z caller=bucket.go:800 msg="series query processed" stats="&{blocksQueried:48 postingsTouched:622 postingsTouchedSizeSum:13175876 postingsFetched:0 postingsFetchedSizeSum:0 postingsFetchCount:0 postingsFetchDurationSum:0 seriesTouched:537 seriesTouchedSizeSum:60859 seriesFetched:0 seriesFetchedSizeSum:0 seriesFetchCount:0 seriesFetchDurationSum:0 chunksTouched:1896 chunksTouchedSizeSum:1734401 chunksFetched:1896 chunksFetchedSizeSum:40088789 chunksFetchCount:314 chunksFetchDurationSum:105507023747 getAllDuration:1725388093 mergedSeriesCount:24 mergedChunksCount:1896 mergeDuration:3540445}"
level=debug ts=2018-06-14T17:56:14.223252075Z caller=bucket.go:800 msg="series query processed" stats="&{blocksQueried:48 postingsTouched:622 postingsTouchedSizeSum:13175876 postingsFetched:0 postingsFetchedSizeSum:0 postingsFetchCount:0 postingsFetchDurationSum:0 seriesTouched:537 seriesTouchedSizeSum:60859 seriesFetched:0 seriesFetchedSizeSum:0 seriesFetchCount:0 seriesFetchDurationSum:0 chunksTouched:1896 chunksTouchedSizeSum:1691652 chunksFetched:1896 chunksFetchedSizeSum:40628795 chunksFetchCount:313 chunksFetchDurationSum:116399504980 getAllDuration:1748273088 mergedSeriesCount:24 mergedChunksCount:1896 mergeDuration:8378818}"
level=debug ts=2018-06-14T17:56:14.755423499Z caller=bucket.go:800 msg="series query processed" stats="&{blocksQueried:48 postingsTouched:574 postingsTouchedSizeSum:24836496 postingsFetched:0 postingsFetchedSizeSum:0 postingsFetchCount:0 postingsFetchDurationSum:0 seriesTouched:11551 seriesTouchedSizeSum:1296203 seriesFetched:0 seriesFetchedSizeSum:0 seriesFetchCount:0 seriesFetchDurationSum:0 chunksTouched:39372 chunksTouchedSizeSum:38324179 chunksFetched:39372 chunksFetchedSizeSum:358715428 chunksFetchCount:422 chunksFetchDurationSum:269549509562 getAllDuration:2144709645 mergedSeriesCount:536 mergedChunksCount:39372 mergeDuration:150213602}"

are there any easy ways for debugging that?
thanks!

You already narrowed it down, nice! ((: From logs, it looks like for 14d store is using RAW data and for 15d store is using downsampled data Resolution: 300000\ (at least for some portion of data). Downsampling is experimental and seems like somehow Thanos has chosen to use 5m resolution block (300000) and somehow... either the block does not exists or it wrongly downsampled. Sounds like a valid downsampling bug.
How to debug it?

find downsampled blocks that are actually used and investigate what's there ):
use Thanos UI instead of grafana and control the Downsampling resolutions using button.

Thanks for finding this!
NOTE: Downsampled data needs to be carefully used (need _over_time functions to have correct results). More about using downsampled data is in progress:  https://github.com/improbable-eng/thanos/issues/310

@Bplotka you're right, using thanos-query ui and forcing raw-only data the queries are working as expected.
My queries are not using _over_time, that must be the reason it's not working, I haven't found a way to combine irate and sum_over_time for plotting cpu usage...
Maybe there's no bug them? Is it possible for us to make thanos stopping from downsampling results in the queries made by grafana?
thanks!

Not really, but it sounds like we can add some flag for it. But TBH using downsampling make sense, because you cannot even plot the all raw samples.
I will add the flag for choosing default resolution mode for queries until we have some nice downsampling tutorial with examples.

But still you should see something.. not empty results ):

The reason I’m seeing empty results should be that I’m not using the
_over_time methods in the grafana query, does this make sense?
Thanks
On Tue, 19 Jun 2018 at 13:07 Bartek Plotka<EMAIL_ADDRESS>wrote:

But still you should see something.. not empty results ):
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/improbable-eng/thanos/issues/376#issuecomment-398455266,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AARcVrMn2kZBLSV6S17yaY9ZX0_Bw5a1ks5t-SHZgaJpZM4UoZfb
.

this is the query:
sum(irate(container_cpu_usage_seconds_total{namespace="$namespace",pod_name=~"$pod"}[1m])) by (pod_name)

Looks like old dup of: https://github.com/improbable-eng/thanos/issues/396 which was fixed. (:


python3.pkgs.twisted: 21.7.0 -> 22.1.0

Motivation for this change
https://matrix-org.github.io/synapse/latest/upgrade#twisted-security-release
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Do they have some kind of roadmap for 22.2.0, because it's been three weeks.

Good question.  According to the pre-release announcement (https://mail.python.org/archives/list/twisted@python.org/thread/C3SDH2GRMCAEYXUF2HPBEVMMNAWUQLPH/), the final should have been around the 15th... so I'm not sure what's going on.  I might prod someone...

It sounds like the process was stuck but now is unstuck.  Perhaps a final will be out in a day or two.


Redesign language selectors for space-saving

Overview
Currently, our registry and docs use tabs for language selection. However, if we were to support additional languages down the line, we would quickly run out of horizontal space. We need to redesign selectors with space-saving in mind, so in the future we can accommodate changes to our offering.

Considerations

Often the first modification that can be made when running out of horizontal tabs is to transition into vertical tabs. However, both our Docs and Registry already have competing vertically displayed information. Introducing more vertical information would further shrink the maximum width of core content, and is not a recommended option in this case.
Now, with only a handful of languages, it's ideal to see all four tab headings so users immediately know what options are available to them. However, if those options grow, we should expect to lose the ability to expose all languages at once as a function of space-saving

Figma File
Design Changes

Tabs have been exchanged for a dropdown selector which can accommodate additional language options. Mock-up models extra languages for demonstration purposes.
Languages are listed alphabetically with TypeScript still selected by default.

Existing functionality is not impacted. If a language is chosen on one page, that decision is remembered across all pages until the selection is toggled again.

Handoff Notes

If it's easily accessible, the dropdown component is the same one we use in the Registry, the only change being the options are radios instead of checkboxes.

I think this is probably the best approach, and it looks very good. The only thing that gave me pause was that I can no longer see at a glance what all of the options are. With the old design if I’m a Python person, I can see and right away connect with the fact that there’s a Python option. Now I need to click something to see it. Did you worry about this too? I don’t really have a counter proposal but figured I would mention since it’s the first impression and thought that came to mind.

The fundamental design is solid IMO and an obvious improvement. Nice work!
Some feedback:

Because of the rainbow beneath Selected Language, the label/drop-down combo isn't visually obvious to me that it's a form field - it looks more like a textual heading rather than a control. Not sure what the fix is. Maybe a grey background or 1px border around both the label and form field?
Would adding icons for each language clutter things up, or Make It Pop?

Some notes on the technical side:
I'm excited that losing the tabs would significantly improve our docs in a major way with nearly no additional effort: The way we parse docs today expects any sample code to be in an "Example Usage" section, to which we add the template macro that creates the tabs. We massage the upstream TF docs to get our expected structure, but we often are not able to recognize examples because TF providers put examples in non-standard places in a doc, which makes the sample code display without tabs and does not look good (example).
With this change I believe we would just show/hide based on a simple CSS selector (the code blocks render as e.g. <code class="language-typescript" data-lang="typescript"> and would no longer need to inject a macro to get show/hide for all code examples on the page. Even when the tabs do not correctly render, the <code> tag does render, so that means we'll be able to correctly display examples even when they are not present in the expected place in the upstream docs.
When it comes time for implementation, I believe that the Bridge will need to change, because the Description and Examples are stored in a single text blob with the template macro ({{% examples %}}) embedded in the generated schema, so please coordinate with the Providers team. I believe we would also need to update the bridge and re-deploy all providers, because the tabs macro is embedded in the schema.

@joeduffy im a bit worried about the same thing but not a lot worried. though i think there are two approaches we could take to address this...

add help text below the drop down that states something like "We support x languages"; this will need to adjust though in situations where that example only supports x-y languages.
add something to the footer reinforcing all the languages we support (though this should not increase the scope of this current issue, but we can come back with a followup issue)

@anita-trimbur what do you think? do you have other ideas?

@kimberleyamackenzie do you have thoughts on @jkodroff tech feedback? i was hoping we could do this with CSS but if not then we should make sure to coordinate and plan with the provider's team.

and @jkodroff this is the current design of our dropdowns, beyond just this experience. we can take your feedback and figure out how to adjust them everywhere but would rather not increase the scope of this work to address that.
@anita-trimbur i think it would be worth exploring how we could bring the language logos into the experience, as Josh calls out.

@susanev @kimberleyamackenzie If we can simply ignore the {{% examples %}} macro (make it a no-op), we wouldn't have to change the bridge. If we cannot ignore the macro, we would need to update the bridge on all providers and re-release them all. Not the end of the world, but not trivial either.

I've looked at this a few times, and each time I feel like I expect we can do something better - but I'm not sure I know what concretely to suggest yet.  A few thoughts/questions:

The "Selected Language" with the rainbow underline is very prominent, but doesn't actually really seem necessary.  We don't have anything like that today, it isn't really part of the useful content of the page, and I expect it will  feel quite noisy on pages like https://www.pulumi.com/docs/intro/concepts/inputs-outputs/ (and lots of others) that have a lot of code snippets.
The styling of the dropdown feels like it could be "better" somehow
Are there other options we considered?  I feel like it would be interesting to look at 2-3 strong candidates for design approach.
Are there options to use icons instead of words to save space, and/or to pull this inside the code snippet bounding box?
Have we compared with other Framework documentation?  This isn't a completely unique problem for us, there's a fair bit of precedent for documenting multi-language APIs/frameworks - are there examples we feel of this being done really well?

@anita-trimbur i think we have enough feedback on this to continue and i also received some feedback from Christian by way of dm. lets plan to sync up about this next week.

Following up from a conversation earlier in the week, here are some examples of places where we use the tabs for non-code, or for code but in a different way than the typical docs usage:
Homepage:

/product/packages (code but not in the docs way)

/solutions

We have a number of examples where we display a chooser, and that chooser updates code styled strings within a larger block of text:

@jkodroff I poked around, and I just want to confirm my understanding of your comment about the technical implementation.  It's my understanding after a short spike that we can implement the suggested design options purely in CSS/HTML/JS, on the component in theme alone, without touching docs at all.  Doing so would maintain existing behavior, including a few places where the selector doesn't render as expected.  If we want to improve on existing behavior, the new designs enable us to do so with some work from your team.  Is that right?


Add working Sets in Tree Explorer and Open/Close Project like Eclipse

Eclipse has a very useful Eclipse which is named Working Sets . So i have many different projects which i organize in working sets so they don't get on my way  , below is a picture :)

2)The ability to close projects like in Eclipse
As we can see in the above picture some projects are closed . In vs code when i have many projects it's a mess . Let's say i want only one project opened and all the others closed . When i open git view i don't want to see the other projects which i am not interested . So if i open them i want to be able to see them in git view .

Working sets is a feature exploration on our roadmap.

Where is the duplicate link mister robot?


Remove FEI parameter and note for payroll tax

@talumbau found two things when I was doing my other task:

This parameter won't work right due to lack of data. So we should remove this one from input page for now.

This 'no payroll revenue' should also be taken off as we have payroll reported now.
Thank you!
cc @MattHJensen

closed via #142


Integration Test - Release - 2019/03/15 00:18:01

Auto create for integration test. IssueCommandFlow

#pri1

Just type '#backlog'

#pri2

#backlog

#assign PRMergerTest1

#assign NonAllowedUser

NonAllowedUser is not a valid GitHub ID, or is not a collaborator on this repo.

#reassign PRMergerTest2

GitHub user PRMergerTest1 has been removed from the MicrosoftDocs organization, so they were automatically removed as an assignee.

#reassign NonAllowedUser

NonAllowedUser is not a valid GitHub ID, or is not a collaborator on this repo.

#please-close


nwjs/Browserify Support

I'm using this plugin in my app built with nw.js [which allows for non-browser execution, like Browserify], this PR allows for nwjs/Browserify [closing #234] support by including the plugin via require('malihu-custom-scrollbar-plugin'); instead of having to include the js script directly.
A detailed writeup on converting jQuery plugins to work with commonJS/Browserify can be found in this npm blog post: Making your jQuery plugin work better with npm tools
Specifically I needed to:
Change package.json:

main field needs to point to an individual file: the  jquery.mCustomScrollbar.js file in our case.
added jquery-mousewheel as a dependency so it doesn't have to be required externally.

Change jquery.mCustomScrollbar.js:

check if this is a node environment and:

set.module.exports to export the plugin factory so it can be called/required externally.
allow the jQuery variable to be passed in, so we can reuse it instead of requiring our own.
require jquery-mousewheel using the passed in jQuery.

I also added a few lines to the Readme to clarify how to use it with Browserify.

Merged. Thanks a lot.

Thanks, could you publish a new release to npm when you have the chance? That way npm install malihu-custom-scrollbar-plugin will provide the Browserify-compatible version.

Done.


Support specify Azure environment in Function/WebApp plugin configuration

Support specify Azure environment in Function/WebApp plugin configuration with new parameter <azureEnvironment>

This will work for Azure Maven Plugin Authentication and Cloud Shell

Codecov Report

Merging #1095 into develop will decrease coverage by 0.07%.
The diff coverage is 7.69%.

@@              Coverage Diff              @@
##             develop    #1095      +/-   ##
=============================================
- Coverage      36.16%   36.09%   -0.08%
  Complexity       542      542
=============================================
  Files            103      103
  Lines           4474     4483       +9
  Branches         693      695       +2
=============================================
  Hits            1618     1618
- Misses          2710     2719       +9
  Partials         146      146

Impacted Files
Coverage Δ
Complexity Δ

...m/microsoft/azure/auth/configuration/AuthType.java
30.00% <0.00%> (ø)
1.00 <0.00> (ø)

...a/com/microsoft/azure/maven/AbstractAzureMojo.java
32.24% <0.00%> (-1.67%)
0.00 <0.00> (ø)

...java/com/microsoft/azure/auth/AzureAuthHelper.java
62.16% <50.00%> (ø)
36.00 <0.00> (ø)

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 5bcee51...7f40943. Read the comment docs.


Minigo real games played for each model should be logged and consider a tunnable hyperparameter

Among minigo hyperparameters, min_games_per_iteration (=8192) only restrict the minimum number of games should be played before a new training iteration can sample from.
https://github.com/mlperf/training/blob/master/reinforcement/tensorflow/minigo/ml_perf/flags/19/train_loop.flags#L9
However the reference implementation allows continuation of selfplay on the same model that creates more games until training iteration is finished.   So the real number of games played for each model is an open HP [8192, +inf), which would affect the varity of samples.
Thus the real number of games played should be printed in the log to make reproduce a result possible, and should be considered a tunnable HP that fits HP stealing rule.   The output in the logging could be something like:
"X games played for model 18"
"Y games played for model 19"
"Z games played for model 20"
...

We discussed this for Minigo and it is present in the HP table now in the rules;
minigo | sgd | actual_selfplay_games_per_generation | integer >= 8192 (min_selfplay_games_per_generation) | "NOT A HYPERPARAMETER, CANNOT BE 'BORROWED' during review" Implicit (LOG ONLY) - total number of games played per epoch; many parameters can impact this, varies per iteration
For context, this was labeled not an HP because actual characteristics of the system impact this (such as number of accelerators) and those characteristics cannot be stolen. We are happy to revisit this in future meetings and discussion.


Related project

intel-intrinsics is the implementation of Intel intrinsics but for the D programming language.
It is surprisingly similar to simde in goals except much less advanced, as I only do MMX/SSE/SSE2/SSE3 for x86 / x86_64 / ARMv7 / ARMv8. (so: about 400 intrinsics)
It only support x86 Intel Intrinsics as API, not NEON intrinsics.
Like you I've discovered it's a lot of work ^^.
Ref: https://github.com/AuburnSounds/intel-intrinsics

@p0nce Cool! Is there anything we can do so that you all can reuse SIMDe?
SIMDe is MIT licensed, so it should be easy to bring code over (with attribution, please!)

Does simde need binary attribution or attribution in just code (copyright line) ?

The only place where we used simde code was for _mm_madd_epi16 ARM version.
simde commit: https://github.com/simd-everywhere/simde/blob/2f88a0ce46325080957d78c7fe773aa2f55e1394/simde/x86/sse2.h#L1691
intel-intrinsics: https://github.com/AuburnSounds/intel-intrinsics/commit/10a93485f200c017e34c6d4d57849539a268e01e
I don't really feel like imposing binary redistribution licences such as MIT/BSD on dependent projects, so I will remove that piece of code (unless you can give me explicit permission, reticence under Boost 1.0 this piece of code?).
As per Boost vs MIT, the compatibility of the two licences seems unfortunately more difficult that I was expecting: https://law.stackexchange.com/questions/91/is-there-any-difference-in-meaning-between-the-boost-and-mit-software-licenses
Sad, as simde source code is super useful.

I can't really change the license; I don't own it all.  Some has been contributed by others, and they retain ownership of their code (SIMDe doesn't require copyright assignment).  Also, some code was copied from SSE2NEON (also MIT, which is a large part of the reason I chose MIT for this project).
Yeah, feel free to use that under the Boost license; it looks like I was the original author, so I can relicense it.
Actually, looking at it that could be improved on AArch64… a better NEON implementation would be
    #if defined(SIMDE_ARM_NEON_A64V8_NATIVE)
      int32x4_t pl = vmull_s16(vget_low_s16(a_.neon_i16),  vget_low_s16(b_.neon_i16));
      int32x4_t ph = vmull_high_s16(a_.neon_i16, b_.neon_i16);
      r_.neon_i32 = vpaddq_s32(pl, ph);
    #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
      int32x4_t pl = vmull_s16(vget_low_s16(a_.neon_i16),  vget_low_s16(b_.neon_i16));
      int32x4_t ph = vmull_s16(vget_high_s16(a_.neon_i16), vget_high_s16(b_.neon_i16));
      int32x2_t rl = vpadd_s32(vget_low_s32(pl), vget_high_s32(pl));
      int32x2_t rh = vpadd_s32(vget_low_s32(ph), vget_high_s32(ph));
      r_.neon_i32 = vcombine_s32(rl, rh);
    #endif

Feel free to use that under Boost, too, of course. There is also a pretty trivial implementation (using vec_msum) on AltiVec, but AFAICT you don't care about that.

Thanks! Will use that second solution.

I've added an entry to the Alternatives page on the Wiki; the description is a bit vague since I'm not really familiar with the state of SIMD in D, but feel free to add more info if you want.

Implements: MMX, SSE, SSE2, SSE3 for all D compilers, targetting x86 and ARM.
It is the only "intrinsics" library in the D language, so it also has to implement _mm builtins in the first place, not only translations.

I was wondering about that; I didn't see any calls to native intrinsics, but I thought maybe that's because there was a different implementation.  So the NEON functions aren't implemented using intrinsics, either, they're just wrappers for more portable code?
You say it targets x86 and ARM, but is there anything that actually ties you to those architectures?  AFAICT everything is implemented using portable code.
I guess core.simd would be the equivalent of using intrinsics (specifically the functions which take an XMM opcode), but it seems like that only supports 128-bit vectors. Am I missing something?

Haha it's complicated :)
D without this library provides a variety of support for SIMD.

most compilers have basic core.simd, which are basically vector extensions + helpful operator overloading. intel-intrinsics exist to emulate and complement core.simd. However DMD + 32-bit x86 doesn't provide this combination.
one compiler define D_SIMD and provide builtin acess through __simd (DMD). AFAIK noone use it because DMD produce 40% slower code, it's a backend specific to Digital Mars (but a fast one!).
GDC have a variety of builtin functions like in C++ (__builtin_xxx)
LDC have a few of these builtins (less than clang, and they change over time), and other additional SIMD facilities form LLVM (such as shufflevector)
LDC and GDC provide inlinable GCC-style assembly
LDC and DMD provide non-inlinable D-style x86 assembly

So we are using everything at disposal to try to have something semantically equivalent to all intel intrinsics
It is by and large an attempt to simplify the mess that D SIMD support was before. In practice, top speed is only achieved with LDC for now. And ARM is quite difficult because the compilers don't provide much in builtins.
The Intel Intrinsics are really a portable API that C++ compilers choose to let user ignore their differences. Instead D compilers chose the less featureful core.simd.

You say it targets x86 and ARM, but is there anything that actually ties you to those architectures?

Yes, we have portable implementation of everything, but often __builtin_XXX are used and with LLVM and GCC backend this isn't portable to other arch.
A slide of intel-intrinsics talk discussed about this.

Eek, that does seem like quite a mess, sorry :(
I suppose there isn't anything we can do on the SIMDe side to make this any easier? You're right that our goals seem pretty similar, so it seems a shame to duplicate so much effort…

I guess we won't change licence, so we can always exchange persmission in case a piece of code is interesting. :)
As long as I have copyright this will always be yes from me of course.

Me too; I don't mind licensing code from SIMDe under Boost if I'm the original author.
If there is anything else we can do on the SIMDe side which would help you please let us know.

Well, continue what you do ^^.
I have a question about the general efficiency of NEON over SSE.
Something I wonder is if it's worth it to also implement neon ARM intrinsics as part of the public API, like simde does.
I don't know if specially optimised ARM goes much further than x86, or if it you can stay close to it using emulated x86 intrinsics.

In C/C++ you can potentially see huge performance improvements by porting to another ISA extension instead of relying on a layer like SIMDe, or you might see no improvement at all.
It really comes down to which functions you are using; an emulated _mm_add_epi32 is basically going to be just as fast as a native call everywhere (vaddq_s32 on NEON, vec_add on AltiVec, wasm_i32x4_add on WebAssembly, etc.) because the semantics match up perfectly.  On the other hand, most SIMD ISAs have functionality that others don't really have and would need to be emulated using a sequence of several functions, sometimes a rather long and slow one.  For example, if you want to get the sum of all element in a vector, NEON's vaddv_* intrinsics are going to be extremely fast, but there is nothing similar on Intel so you have to string together several instructions (which ones depend on the element type).
When manually porting people are likely to tailor their approach to the ISA they are targeting.  For example, maybe they'll use a horizontal sum operation on NEON, but on x86 they may take another approach that doesn't require a horizontal sum.  APIs like SIMDe and intel-intrinsics are really at too low a level to have many options about which approach to take; by the time people call functions at that level they're basically already locked in to an approach.
An abstraction layer at a higher level can do a better job at choosing the fastest approach, but you'll also likely be leaving some performance on the table since the abstractions they use generally don't perfectly match the underlying hardware.
Another complication is that you seem to be mostly using portable implementations and relying on the compiler to select the instruction that corresponds to that implementation.  That generally works well for simpler instructions like add, subtract, etc., but for more complicated operations there is a good chance the compiler won't be smart enough to recognize that the pattern you're using matches up with a specific instruction and instead it will output a sequence of instructions anyways.  In that case, my guess is that performance on NEON and x86 would be closer because they would both be relatively slow.  Actually, NEON hardware probably has an advantage there since they have much better coverage of basic operations.
You can use Compiler Explorer to play around with this idea a bit if you want.  For example, _mm_add_epi32 vs. _mm_maddubs_epi16.

Another complication is that you seem to be mostly using portable implementations and relying on the compiler to select the instruction that corresponds to that implementation. That generally works well for simpler instructions like add, subtract, etc., but for more complicated operations there is a good chance the compiler won't be smart enough to recognize that the pattern you're using matches up with a specific instruction and instead it will output a sequence of instructions anyways.

Well actually every single such intrinsic is tested in Godbolt with LDC, often we mark since which -O optimization level and LDC version (LLVM version) the right instruction start being generated. Our goal is to explicitely use the least amount of "builtins", since they can be removed from LLVM from time to time.
What we've found is that there is hardly a regression in how well the LLVM can infer the right instruction.
Of course this breaks down once you have multiple different backends, you'll need separate version especially for GCC that is less able to infer the right instruction and need builtins.
Though we've had one such problem lately when the instruction is generated in isolation but not in a larger function: https://github.com/ldc-developers/ldc/issues/3587
All in all i don't think there is a problem we use whatever generates the instruction, sometimes it's dumb code.

Oops, sorry, I somehow missed the notification for this :(

Our goal is to explicitly use the least amount of "builtins", since they can be removed from LLVM from time to time.

I assume this applies mostly to architecture-specific builtins, not stuff like __builtin_shufflevector / __builtin_convertvector (or whatever they're called in D)?  In C/C++ we're mostly lucky enough to have an abstraction layer in the form of the official APIs (SSE, AVX, NEON, AltiVec, etc.) so we don't really call the underlying intrinsics directly.  We just have to smooth over any differences between the official APIs and what the compilers actually provide (i.e., sometimes a function is missing, a type is wrong, implementation is buggy, etc.).

What we've found is that there is hardly a regression in how well the LLVM can infer the right instruction.

That's awesome.  LLVM tends to be excellent at autovectorization on the C/C++, too.  It even seems like it usually beats ICC when I test, but I think most people have the opposite experience.
What about other compilers?  For us, GCC usually does fairly well, but MSVC is terrible, and I doubt D compilers are as well-resourced so unless they're using LLVM for codegen I'd be surprised to see them handle this very well. Of course I'm not sure there is much you can do about this, other than perhaps complain to the compiler people.

Though we've had one such problem lately when the instruction is generated in isolation but not in a larger function: ldc-developers/ldc#3587

Yep, we run into those, too.  A similar issue we is when using 256 or 512-bit functions on a target which only supports 128-bit vectors the compiler generates a lot of extra moves for each function call, but since everything is inlined they are mostly optimized out under real conditions.

All in all i don't think there is a problem we use whatever generates the instruction, sometimes it's dumb code.

Yeah, often the most important optimization is to find a pattern the compiler recognizes. There are lots of times where I've come up with a clever optimization which should make things faster only to realize that the compiler can't recognize it and generates slower code :(
In any case, it's awesome that you're testing every function like that :)

In C/C++ we're mostly lucky enough to have an abstraction layer in the form of the official APIs

Yes I dearly miss that layer, probably because it's a lot of work that C++ compiler people put into it ?
I think I will never get to implement the Neon intrinsics as public API for this reason.

What about other compilers? For us, GCC usually does fairly well, but MSVC is terrible, and I doubt D compilers are as well-resourced so unless they're using LLVM for codegen I'd be surprised to see them handle this very well. Of course I'm not sure there is much you can do about this, other than perhaps complain to the compiler people.

Good question. In D you have 3 compilers:

LDC is mostly the same as clang thanks to using LLVM backend. The list of UB are mostly the same in C and D. It has more corporate use than others, and as a small business that's the one I use the most too.
GDC is mostly the same as GCC thanks to using GCC backend. It is supported by intel-intrinsics, but less well for example we don't do GDC + ARM. For GCC backend you really have to rely on builtins a lot more than for LLVM.
DMD usually does 40% to 50% worse thanks to a custom back-end. It's not all a question of resources, that backend is also low in bus factor and possibly odd architecturally by modern standards. So fewer enterprise customer end up using this codegen, but it's quite fast at generating and likeable as a compiler. intel-intrinsics does worse than vanilla D when using that compiler.

When using DUB you can easily swap compilers and build anything with --compiler ldc2|dmd|gdc. "Modern" native language biggest contribution is, ironically, the language package manager. ^^
In my experience ICC was more awesome as a backend, always impressive, but this was ago when I was doing codec optimization in C++. Since LLVM advances and GCC 5 I'm not sure how close the gap really is. LLVM sure seems to have less regression or outright codegen bugs than ICC.

Yes I dearly miss that layer, probably because it's a lot of work that C++ compiler people put into it ?

Well, it's really the standard way of calling the functions on the C/C++ side; the manufacturer (Intel, Arm, etc.) defines the API, and functions are generally designed to map 1:1 to an instruction.  The builtins defined by different compilers are really just implementation details of how to interface with the compiler so they can provide that API; they're not really meant to be called directly (except for the ones which aren't backend-specific (mostly documented here, but there are a few others).
Since there are no "official" APIs for D I guess you're stuck with unofficial, un-standardized APIs.

In my experience ICC was more awesome as a backend, always impressive, but this was ago when I was doing codec optimization in C++.

I think the general consensus is that ICC is still the best, and benchmarks tend to bear that out.  For example, one of the big reasons Clear Linux performs so well is that they use ICC to compile everything.  I don't know why I seem to get better results from clang when I test; it's probably just an anomaly…

Since LLVM advances and GCC 5 I'm not sure how close the gap really is.

It's still there, but ICC does have one major cheat: it defaults to fast math (i.e., -ffast-math on clang and gcc).  You have to pass a flag (-fp-model=precise, IIRC) to get "correct" results on ICC, but most benchmarks don't change the default.  Interestingly, ICC can actually perform significantly worse in SIMDe since we can detect when fast math is enabled in gcc/clang (there is a preprocessor macro) and use faster implementations for some functions, but on ICC there is (AFAIK) no way to detect the FP model so we default to the correct mode and you have to define SIMDE_FAST_MATH manually to get the fast implementations.

LLVM sure seems to have less regression or outright codegen bugs than ICC.

Or GCC.  At this point I think LLVM is pretty clearly the most correct, and ICC seems to be the buggiest of the three (though GCC does provide some stiff competition to ICC sometimes).  I can't be sure, but I think a lot of the credit here goes to LLVM's tooling.  They have really cool stuff like Alive and Alive2 which (AFAIK) just don't seem to have any analogues in other compilers.
Most of the bugs I've found in LLVM while developing SIMDe tend to be API issues (missing functions, incorrect types, etc.) not incorrect optimizations.  ICC seems to be weak on the frontend, whereas GCC's problems seem to be largely backend or optimization-related.  At least in my experience.

Since there are no "official" APIs for D I guess you're stuck with unofficial, un-standardized APIs.

Yes, I'm the one building the standardized API over the differences.

it defaults to fast math (i.e., -ffast-math on clang and gcc).

Ouch. I really dislike this as a default. For my audio product I tried --fast-math many times with LLVM and it was roughly 1% slower everytime, don't know why. If an optimization is both dangerous (audio changes that are difficult to measure and hear) and doesn't pay off... well... I hope it works out for ICC but I find it odd.

ICC seems to be weak on the frontend, whereas GCC's problems seem to be largely backend or optimization-related. At least in my experience.

From memory, it was also the backend mostly. We were having one ICC backend bug every six month: some codegen, some backend ICE ; it wasn't all front-end. YMMV.
I've yet to see a codegen regression in LLVM, perhaps it's the optimization level I ask for that isn't as high.


TypeError: stream.getReader is not a function

`newuser@work % npm run cli

<EMAIL_ADDRESS>cli
node bin/cli.js

╔═══════════════╗
║  ChatGPT CLI  ║
╚═══════════════╝
Type "!" to access the command menu.
? Write a message: hi
TypeError: stream.getReader is not a function
at getBytes (file:///Users/newuser/Documents/chatgpt/node-chatgpt-api/node_modules/@fortaine/fetch-event-source/lib/esm/parse.js:2:27)
at create (file:///Users/newuser/Documents/chatgpt/node-chatgpt-api/node_modules/@fortaine/fetch-event-source/lib/esm/fetch.js:54:23)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
Type "!" to access the command menu.
? Write a message: `
this is a bug? or my setting is error?
export default {     // Your OpenAI API key     openaiApiKey: 'apikey' || '',     chatGptClient: {         // (Optional) Parameters as described in https://platform.openai.com/docs/api-reference/completions         modelOptions: {             // The model is set to text-chat-davinci-002-20221122 by default, but you can override             // it and any other parameters here             //model: 'text-chat-davinci-002-20221122', 	    model: 'text-davinci-003',         },         // (Optional) Set custom instructions instead of "You are ChatGPT...".         // promptPrefix: 'You are Bob, a cowboy in Western times...',         // (Optional) Set a custom name for the user         // userLabel: 'User',         // (Optional) Set a custom name for ChatGPT         // chatGptLabel: 'ChatGPT',         // (Optional) Set to true to enable console.debug()logging         debug: false,     },     // Options for the Keyv cache, see https://www.npmjs.com/package/keyv.     // This is used for storing conversations, and supports additional drivers (conversations are stored in memory by default)     cacheOptions: {},     // Options for the API server     apiOptions: {         port: process.env.API_PORT || 3000,         host: process.env.API_HOST || 'localhost',         // (Optional) Set to true to enableconsole.debug()logging         debug: false,     },     // If set, ChatGPTClient will usekeyv-fileto store conversations to this JSON file instead of in memory.     // However,cacheOptions.store will override this if set     storageFilePath: process.env.STORAGE_FILE_PATH || './cache.json', }

+1

What version of Node.js are you running? Try upgrading to at least LTS version if it's older than that.

v16.8.0
after upgrade to v18.14.0, all is right!
thx!

v16 should be fully supported now


"Cornățelu", "Alunișu" are listed in the drop-down menu

Description:
When user writes ”Cornățelu” and "Alunișu" the locations appear in the drop-down menu next to the comune and the county which is a part according to the law.
Precondition:
The website is up an running.

Step 1
Write in the search bar "Cornățelu"

Expected results
The location appears in the drop-down menu as "Sat Cornățelu, DÂMBOVIȚA (Cornățelu)".

Step 2
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 3
Write in the search bar "Alunișu"

Expected results
The location appears in the drop-down menu as "Sat Alunișu, DÂMBOVIȚA (Cornățelu)".


[FEATURE] Migrate Plugin install into an GitHub action

Is your feature request related to a problem?
The plugin-install workflow user to separate paths to configure and run OpenSearch from the min build.  This would be really useful if it was reusable for this codebase as well as others.  Being that we are thinking more multiplatform this is also an opportunity where we should could invest in combining these workflows.
What solution would you like?
In the plugin-install workflow the there all the downloading, configuring, starting of OpenSearch would be replaced with a step like the following:
   - id: start-opensearch
     uses: uses: ./.github/actions/start-opensearch
     with:
         platform: ${{ matrix.platform }}
         opensearch-version: 3.0.0
         plugin-zip-path: ./security-dashboards-plugin.zip
         plugin-start-script: plugins/opensearch-security/tools/install_demo_configuration.sh

This would the be reusable for workflows within this Security codebase, but also for https://github.com/opensearch-project/security-dashboards-plugin/issues/1171 where this kind of workflow would simplify the extra work needed
Do you have any additional context?
Started a prototype with https://github.com/peternied/security/commit/1b880f4797c60ee4ba60598e548cbdd28c16426d

FYI @scrawfor99 we talked about this offline to support the dashboard integration test workflows on linux/windows/mac

Note; I think this action could be made more generic so it was usable by all plugin teams, but it might be good to start building it here before sharing it out to all the other plugins via opensearch-build or another repo

To start things off I have been working on creating a more streamlined workflow for the plugin install. My plan is to get it working on both JDK versions for all three OS' and then I will start splitting out steps in actions and files for drop-in functionality along the lines of the prototype you linked. For a preview checkout https://github.com/scrawfor99/security/tree/CombinedInstallWorkflows

Update 2: Still working on streamlining the workflow and adding macOS install. Because the GHA macOS runner does not come with docker (Linux does) we cannot simply reuse the Linux commands so I am having to write a new workflow similar to the Windows install.

Maybe for now we just thrown an error if the OS is mac?  OpenSearch doesn't yet support the mac platform so there are no guarentees it will work or we could get support to get it running.

Update 3: This (https://github.com/scrawfor99/security/tree/CombinedInstallWorkflows) is a refactoring of the plugin_install.yml that I made before. This version has a streamlined workflow with Linux and Windows environments being supported. The MacOS code is there but you cannot use it as it does not work yet so I removed any calls to it.
From this code I will create an actions suite for installing any given plugin on a given OS using a given opensearch version.

Update 4: I further cleaned up some of the install logic and then added the basic setup for the action-ification of a generic plugin install process (https://github.com/scrawfor99/security/tree/ActionfiedWorkflows) . I next need to look at the way actions work and decided whether it is best to have the user assemble the plugin beforehand and provide it built in the repo or whether we want to have the building be part of the action. As is, it expects:
platform:
description: 'What platform is this action running on, e.g. "windows-latest" ? '
required: true
opensearch-version:
description: 'The version of OpenSearch that should be used, e.g "3.0.0"'
required: true
plugin-name:
description: 'The the name of the plugin to use, such as security-dashboards-plugin'
required: true
plugin-zip-path:
description: 'The relative path to where the assembled plugin zip is stored'
required: true
plugin-start-script:
description: 'The file name for the configuration script for the plugin such as install_demo_configurations'
required: true
I have not tested it but using these inputs the security-plugin install file I wrote should work for both Windows and Linux. However, this is maybe a little bit more challenging to use then simply requiring a path to a plugin folder and parsing a lot of this information. It is just a pain do to the interaction of the shells, github actions, and the actual logic.

Just took a peek at the plugin-install.yml [1] this is great work.  Absolutely on the right track!
[1] https://github.com/scrawfor99/security/blob/ActionfiedWorkflows/.github/workflows/plugin_install.yml

Just took a peek at the plugin-install.yml [1] this is great work. Absolutely on the right track!
[1] https://github.com/scrawfor99/security/blob/ActionfiedWorkflows/.github/workflows/plugin_install.yml

Thank you :). I also am hoping that when we add MacOS this will make doing so pretty straightforward.

Update 5: Today is mostly being spent looking at the rolling upgrade issue. That being said, checkout out the linked repo above should show a cleared plugin_install with the steps migrated to an action file which will then be called as the third step.

Update 6:
Run curl https://localhost:9200 -u 'admin:admin' -k -v
curl https://localhost:9200 -u 'admin:admin' -k -v
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
JAVA_HOME_17.0.5_x64: /opt/hostedtoolcache/jdk/17.0.5/x64
JAVA_HOME: /opt/hostedtoolcache/jdk/17.0.5/x64
JAVA_HOME_17_0_5_X64: /opt/hostedtoolcache/jdk/17.0.5/x64

Trying <IP_ADDRESS>:9200...
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed

0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to localhost (<IP_ADDRESS>) port 9200 (#0)

ALPN, offering h2

ALPN, offering http/1.1

TLSv1.0 (OUT), TLS header, Certificate Status (22):
} [5 bytes data]

TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]

TLSv1.0 (OUT), TLS header, Unknown (21):
} [5 bytes data]

TLSv1.3 (OUT), TLS alert, decode error (562):
} [2 bytes data]

error:0A000126:SSL routines::unexpected eof while reading
0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0

Closing connection 0
curl: (35) error:0A000126:SSL routines::unexpected eof while reading
Error: Process completed with exit code 35.

It seems as if as it seems like it was attempting to use TLSv1.3 and the output could not be decoded both weird and bad!  A couple steps that you could take to figure it out,

Retry the workflow - it might have been a network blip?
I'd recommend disabling fast-fail so you get as many test results as possible maybe its only a jdk11 thing?
Try printing out the curl version before using the command, maybe also add it to a version of the workflow that does work, see an example below
Add the command to dump the logs from docker into the workflow, maybe the certs aren't loading correctly or something else has gone wrong with the docker setup script

Curl version info
% curl -V                                                                                ~/git/opensearch
curl 7.85.0 (x86_64-pc-linux-gnu) libcurl/7.85.0 OpenSSL/1.0.2zf zlib/1.2.11 c-ares/1.17.0 nghttp2/1.41.0
Release-Date: 2022-08-31
Protocols: dict file ftp ftps gopher gophers http https imap imaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS GSS-API HSTS HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz NTLM NTLM_WB SPNEGO SSL threadsafe UnixSockets

Get opensearch logs
https://github.com/opensearch-project/security/blob/f75be3edaf900df6f42aec2fd41175e66af06f3b/.github/workflows/plugin_install.yml#L62-L64

Update 6: I spent the day working on the refactoring requested by @peternied a half-working version is present on the linked PR and a full process can be seen over at the commit history of https://github.com/scrawfor99/security/tree/LoweredPermissionsInstall.
I also started creating a side-by-side run action for Opensearch and Dashboards. That can be found at https://github.com/scrawfor99/security/tree/DashboardsInstallAction2.4. This has been put on hold while I have been working on the refactoring.
The plan is to finish the refactoring and then continue to do the dashboards install in the style of the refactor. After that, I will be creating a dual front and backend test with OS, Security, OS Dash, Sec Dash all running.
I am tagging @RyanL1997 because yesterday we went over a lot of this and I know he is also working on some code towards these designs.

Update 7: https://github.com/opensearch-project/security/pull/2239/files#diff-8518d56d53ee081f6bbcd0a88a46182f8089f57be5dab4360ee71a808e9963abR100 seems ready for final touches and merge. I have also created a branch of OS core and OS dashboards just for working on the dashboards actions. Currently implemented 2 actions on https://github.com/scrawfor99/OpenSearch-Dashboards/tree/DashboardsSetupActions that are running as I type this. They may be looping though so am looking into that.

This issue is fully resolved with PR #2271


Multiplue Scenarios in one Tag

Currently it only records one error when it fails multiple times under the same tag. I want it separated by scenario failure.

I am no longer developing this


Polls not yet showing

Pills not yet showing. If the should be now let me knoyand I'll check into why one I saw Isn't displaying

I'm going to start working on it.


feat(server) Add new /normalize/:template endpoint implementation

Changes

Implemented /normalize endpoint for Cicero Server.
Added test cases for /normalize.
New fromArchive() and fromUrl() support

Flags

You have to send all the arguments as JSON field inside request.body
Documentation will be added later with Swagger UI PR.

Demo

Sample request.body:
{
    "sample":"## Late Delivery and Penalty.\n\n In case of delayed delivery except for Force Majeure cases,\n\"Dan\" (the Seller) shall pay to \"Steve\" (the Buyer) for every 2 days\nof delay penalty amounting to 10.5% of the total value of the Equipment\nwhose delivery has been delayed. Any fractional part of a days is to be\nconsidered a full days. The total amount of penalty shall not however,\nexceed 55% of the total value of the Equipment involved in late delivery.\nIf the delay is more than 15 days, the Buyer is entitled to terminate this Contract."
}

Response to sample request:
{
    "result": "Late Delivery and Penalty.\n----\n\nIn case of delayed delivery except for Force Majeure cases,\n\"Dan\" (the Seller) shall pay to \"Steve\" (the Buyer) for every 2 days\nof delay penalty amounting to 10.5% of the total value of the Equipment\nwhose delivery has been delayed. Any fractional part of a days is to be\nconsidered a full days. The total amount of penalty shall not however,\nexceed 55.0% of the total value of the Equipment involved in late delivery.\nIf the delay is more than 15 days, the Buyer is entitled to terminate this Contract."
}

Author Checklist

[x] Ensure you provide a DCO sign-off for your commits using the --signoff option of git commit.
[x] Vital features and changes captured in unit and/or integration tests
[ ] Commits messages follow AP format
[ ] Extend the documentation, if necessary
[x] Merging to master from fork:branchname

Coverage decreased (-0.03%) to 93.592% when pulling 57a4d62d4434b3aef3eda22efea515b98a29e516 on mehmettokgoz:normalize into 62a2f44c40e26cd417c6502933f63f467e8fa579 on accordproject:master.


Create product flavour for pre-ICS

Use Gradle's product flavours to create an alternative APK for pre-API 15 devices. (Maybe reduce minSDK in main app to 11.)

@k3b Please can you test the latest code which should work back to API 7 with a fallback theme where Material Design isn't available.

note: the ticket should be renamed to Restore minSDK to 7 (not 17)
Is there a reason why you want to use "SettingsActivity extends ActionBarActivity" with "SettingsFragment extends PreferenceFragment" in newer android versions?
"Pre15SettingsActivity extends PreferenceActivity" will also work with newer devices (at least on my android 4.4 device).
That way there would be no need for StartUpActivity that decides which settings version to launch.

I have tested your last code changes:
on my android 2.2 device Pre15SettingsActivity crashes when calling SettingsFragment.setupSettings because "SettingsFragment extends PreferenceFragment" cannot be created.
After moving setupSettings to Pre15SettingsActivity the code worked as expected.

I am using "SettingsActivity extends ActionBarActivity" with "SettingsFragment extends PreferenceFragment" so I can use Material Design with an ActionBar.
Unless you are seeing something different "Pre15SettingsActivity extends PreferenceActivity" doesn't have have an ActionBar and looks ugly using the original Android theme. This is acceptable on pre-API 15 devices but I have no desire to see it on modern versions of Android.
If you can find another way to do this then please send a pull request.
I have pushed code which should fix the crash.

Closing because minSdk 8 is good enough.


Feature run job task

Description

Added code to support Run Job task type. Run Job task can trigger another job by its job_name
Related Issue

Link to the issue - #55
Motivation and Context

Databricks now supports creating a "Run Job" task, which can trigger another job by its job_id, its good to have this feature in brickflow
How Has This Been Tested?

Unit tests + deployed test workflow using wheel file
Screenshots (if appropriate):

Tested using brickflow-bundles-test

All test cases passed

Test workflow with a Run Job task created using whl file

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

We need to update docs. Looks like the build failed, can you please run make fmt locally and then confirm if every thing looks good with make cov. Thanks for the effort!

Closing this as this is being reviewed at #117


moving git repo to alexei-led

update code to reflect the move to alexei-led repo

Codecov Report

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

@@           Coverage Diff           @@
##           master      #78   +/-   ##
=======================================
  Coverage   77.22%   77.22%
=======================================
  Files           8        8
  Lines        1471     1471
=======================================
  Hits         1136     1136
  Misses        250      250
  Partials       85       85

Impacted Files
Coverage Δ

action/chaos.go
73.84% <ø> (ø)
:arrow_up:

main.go
78.91% <ø> (ø)
: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 888c3c1...4cf5421. Read the comment docs.


"Strong/Weak" vs "Static/Dynamic"

Throughout the document, the terms "strong" and "weak" seem to be used to describe "static" and "dynamic" typing, not "strong" and "weak" typing. I know there's not a universal definition of these terms, but It seems like the author is intending to convey the concepts of static vs dynamic typing, since they reference explicit type declaration (or the lack thereof) and the time (compile vs run) that types are checked, rather than if implicit conversions take place or not. Not a huge problem, but could be misleading to learners unfamiliar with these concepts.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: d2e47828-6da8-2323-053f-dcbf7475b1b6
Version Independent ID: 62d4c2be-4233-64e1-2a3d-8a5e98d9d941
Content: Views in ASP.NET Core MVC
Content Source: aspnetcore/mvc/views/overview.md
Product: aspnet-core
Technology: aspnetcore-mvc
GitHub Login: @ardalis
Microsoft Alias: riande

Strongly typed data (viewmodel) has a good definition, and that's a standard definition.
Weakly typed data (ViewData, ViewData attribute, and ViewBag) also has a good definition.
Neither of theses could be labeled more accurately static or dynamic.


Namespace: MaterialUi -> Mui

IMHO we should change the namespace from MaterialUi to Mui in 3.0.0 for the following reasons:

Nice and short 🙂
Material-UI rebranded to MUI
Now that we are using the namespace feature in bsconfig.json, it is not possible anymore for the user to "alias" the MaterialUi module to Mui himself using include MaterialUi.
3.0.0 already has other breaking changes anyway.

Done, but leaving it open so that we do not forget to mention it in the docs.

Closing this, I put it already into the Draft PR (#177).


Update translations

Coverage remained the same at 4.051% when pulling 0844ab2586252cc8f9084638dfe98e132195f882 on kruton:update-translations into 2d2d14c83fc21cce366c30775dfc3b9931924b52 on connectbot:master.


fix: 5e mappings for character sheet

added null check to certain .length calls that were blowing up certain sheets in Foundry; fixed spell mappings on 5e character sheet; added VSMC indicators for all spells to determine components

also fixed the formatting on the 1st level spells to match others


Nyoom calculator

Nyoom metric: messages / minute when active
"Active" is calculated by "first message after period of inactivity of 10 minutes to last message followed by inactivity of 10 minutes"

Finalised in 51db59c9f43feb145bda65333669a4fba1539a23


Using GeoEXT2 store for Layer tree

I am sorry as this might not be the relevant platform for the question but i didn't get any help from anywhere that is why I am posting it here.
I want to create a layer tree like the one given in the below example.
https://iris.gov.gr/SoilServices/danger.html
The example finely works when i implement the same on my own system it doesn't work and I don't know much about the complexities of GeoEXT.
I am writing my code here below and the error that I get.
Here is the code for the Store:
var store = Ext.create('Ext.data.TreeStore', {
model: 'GeoExt.data.LayerTreeModel',
root: {
text: "Root",
expanded: true,
children: [
{
text: "Θεματικοί Χάρτες",
leaf: false,
expanded: true,
children: [
{
text: sppsq.name,
layer: sppsq,
leaf: true,
checked: false,
children: [],
nodeType: "gx_overlaylayercontainer"
},
{
text: elecag.name,
layer: elecag,
leaf: true,
checked: false,
children: [],
nodeType: "gx_overlaylayercontainer"
},
]
},
{
plugins: [{
ptype: 'gx_baselayercontainer',
loader: {store: mapPanel.layers} // BASE "REFERENCE" LAYERS FROM arcticMapPanel
}],
expanded: true,
text: 'Υπόβαθρα'
}
]
}
});
Below is the code for tree:
_var tree = Ext.create('GeoExt.tree.Panel', {
border: true,
region: "west",
title: "Επίπεδα",
width: 290,
split: true,
collapsible: true,
collapseMode: "mini",
autoScroll: true,
store: store,
rootVisible: false,
lines: false,
listeners: {
checkchange: {
fn: function (record, checked, opts) {
record.data.layer.setVisibility(checked)
}
}
}
}
);
Error Got:
too much recursion
http://cdn.sencha.com/ext/gpl/5.1.0/build/ext-all-debug.js
Line 1759

Hi @shahidnawazkhan ,
you are right, this is not the right platform to ask such questions. The "issues"-section here in github is only for reporting software bugs in GeoExt itself. At the first sight this does not seem the case here.
Can you please post your question to the mailing list: http://www.geoext.org/cgi-bin/mailman/listinfo/users? I am sure you will get help there.
If it comes out that this is a bug in GeoExt itself we will re-open this issue.
Thank you!

Can anyone else reply as I didn't got any reply in the Geoext mailing lists

Can anyone else reply as I didn't got any reply in the Geoext mailing lists

That is not true, I personally answered your question on the mailing list. See http://www.geoext.org/pipermail/users/2017-March/003543.html


Trailblazer does not recognize subclassed models

In an existing project I have a model the looks like this:
class GLTransaction < ActiveRecord::Base
  . . .
end

and a sub-classed model that looks like this:
class ARInvoice < GLTransaction
  has_many( :ar_invoice_details )
end

I am trying out Trailblazer and I have created app/concepts/ar_invoice/operation.rb that looks like this:
class ARInvoice < GLTransaction
  class Create < trailblazer::Operation
    def process( params )
     @model = ARInvoice.create( params[ :ar_invoice ] )
    end
  end
end

And a crud_test.rb that looks like this:
class ARInvoiceCrudTest < MiniTest::Spec
  describe( "Create" ) do
    it( "persists valid" ) do
      ar_invoice = ARInvoice::Create.(
      :ar_invoice => { :invoice_number => 101,
                       :client_number => 1234
        }
      ).model

      ar_invoice.persisted?.must_equal( true )
      ar_invoice.invoice_number.must_equal( 102 )
      ar_invoice.client_number.must_equal( 5678 )
    end
  end
end

When this is run bundle rake test test/concepts/ar_invoice/crud_test.rb I see this:
rake aborted!
NameError: undefined local variable or method `trailblazer' for ARInvoice (call
'ARInvoice.connection' to establish a connection):Class`

This is no doubt caused by the sub-classing of ARInvoice from GLTransaction.  However, this sub-classing works for my existing cucumber features without complaint.  What additional configuration is required for Trailblazer or what am I doing wrong that causes this error?

class Create < trailblazer::Operation must be class Create < Trailblazer::Operation. Too many :beers:?

If only.  Thanks for the eyeballs.


Can I change FOV of Zed2?

Hi team,
I am studying Zed2 camera. I want to record left + right camera with FHD resulotion and maximize FOV?
Can I change FOV of Zed2? Was it configure in calibration process? Should I change it?
Thank team

See here : https://github.com/stereolabs/zed-ros2-wrapper/issues/47


Add altimetry svg limits to json to be used in geotrek - rando

Nice to see that you wrote some tests for the new code! GG!


Install susieR from conda-forge

susieR was submitted to CRAN. I added it to conda-forge.
https://cran.r-project.org/package=susieR
https://github.com/conda-forge/r-susier-feedstock
https://anaconda.org/conda-forge/r-susier/files

Excellent, thanks @jdblischak !


fix: Menu Search does not work on search page

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #704
Test URLs:

Before: https://main--moleculardevices--hlxsites.hlx.page/search-results#q=test&t=All&sort=relevancy
After: https://704-close-menus-search--moleculardevices--hlxsites.hlx.page/search-results#q=test&t=All&sort=relevancy

The low lighthouse score is not related to this change. The search page itself does not have the best performance


Add method to format a single CSLItemData

I often need to format a single citation without being part of a full bibliography. It would be great if there would be a thread safe CSL method like CSL.formatEntry(CSLItemData) that returns a String just as the entry in a full bibliography, but without the need to register it and have the ItemDataProvider know about it.

I've added a static method to generate ad-hoc citations (makeAdhocCitation). For bibliographies, there already is a static method called makeAdhocBibliography.


elfpy: deprecate elfpy

after #923 (removing explicit dependencies) is finished, do a final feature check to make sure there is nothing left to pull out of elfpy. Once this is done, delete it.

Accomplished by #1083


V7: WebSocket injection broken

Problem Description
WebSockets messages are either binary or utf-8. That's it. Currently the injected string is passed into strutils.escaped_str_to_bytes which breaks it (I have a real world WebSocket message that contains backslashes, but not after injection which breaks the application protocol which is some weird JSON based RPC). This is mostly a mental note to me. I want to refactor the injection. I personally would like it to accept a single websocket.WebSocketMessage argument to make things explicit and similar to how you can build requests/responses.
I think for inject_tcp having a string as argument is not very useful. The meaning of the TCP bytes is entirely application dependent.
["{\"method\":\"updateRoomCount\",\"data\":{\"model_name\":\"mitmproxy\",\"private_room\":false}}"]

@mhils I'd really like to get the ws/tcp injection fixed for v7. It should at least work, but a nicer API would also be cool. Can you look at the linked PR draft? It's kind of blocked because of things I don't know how to do.


gizmo acts weirdly with large translations

I'm writing an editor in bevy where the scale of everything is very large (due to the file format I'm trying to edit). However when using a gizmo on a point far away from the origin the gizmo controls don't work properly and the translate is very jittery. Editing a point closer to the origin with the camera closer fixes the problem. Demonstration of the issue below:
https://github.com/urholaukkarinen/egui-gizmo/assets/98399119/e67f416e-d5a1-4a9d-a76b-812b70358ec6

Just tested it and everything works correctly now, thank you!


Issues when upgrading existing sites with config order

Due to the name change from ba-sis to seed, mysite's config comes in before ba-sis which can mess with the LeftAndMain::menu_groups ordering.
We'll need to be wary of other ordering/breakages that could occur with this.

Good catch, definitely something we need to keep an eye on.

Thank you for your contribution here. I just wanted to let you know that we’re looking to improve our management of issues and pull requests, with a goal to providing clear direction on how Symbiote contributes to the open source community. As part of this ongoing effort:

issues and pull requests that have been open prior to December 2017 with no recent activity are being closed

this is included

if you can confirm this remains applicable for SS3.6+ please do open it again

remaining issues and pull requests will be

categorised

on a clear path to resolution (whatever the next step may be).

This ultimately brings us one step closer to our ambition; being able to prioritise current issues and contributions in a timely manner. If you have any questions, please see https://www.symbiote.com.au/contributing for further information.


Include enqueued_at in payload

Without this, sidekiq-web responds with a 500 if a rubykiq job is at the top of the queue.
Since mperham/sidekiq@20c616e97196e2dae585ccce1a8526a73de003bb, enqueued_at is required by this line.
See mperham/sidekiq#1061 for a little bit of background.

CI is failing because the test suite depends on rspec 2, but there is no Gemfile.lock to lock the rspec version.

#3 should resolve the CI build

Awesome! Thanks for releasing a new version :grinning:


Rename prom metric names to match default HTTP dashboards

Renames metrics so that Weave Cloud will be able to automagically generate an HTTP dashboard for this service.

cc @dlespiau one for you.


Panics don't fail SLT tests

Context
thread 'tokio-runtime-worker' panicked at 'called `Result::unwrap()` on an `Err` value: CannotModifyBuiltin(Table(TableEntry { meta: EntryMeta { entry_type: Table, id: 16484, parent: 16385, name: "databases", builtin: true, external: false }, options: Internal(TableOptionsInternal { columns: [InternalColumnDefinition { name: "oid", nullable: false, arrow_type: UInt32 }, InternalColumnDefinition { name: "database_name", nullable: false, arrow_type: Utf8 }, InternalColumnDefinition { name: "builtin", nullable: false, arrow_type: Boolean }, InternalColumnDefinition { name: "external", nullable: false, arrow_type: Boolean }, InternalColumnDefinition { name: "datasource", nullable: false, arrow_type: Utf8 }] }), tunnel_id: None }))', crates/metastore/src/database.rs:535:50

Panics should always cause a failure.
Expected
Actual
Impact

@scsmithr Should we close this issue? Or do we want to fail the test in case metastore panics?
My thought here is that we can have different tests for metastore that check all the mutations.

Add https://github.com/GlareDB/glaredb/pull/1052 which will close this. That pr adds a panic handler for just aborting on panics for slt tests.


Bunny emoji

Adds a rabbit face emoji

@raiyni is there anything more that needs doing on my end for this?


How about cooperate?

Hi! I started a new project to integrate the osmdroid library under react native. I'm doing it in my spare time, managed to update and rewrite some things, but I need help. If suddenly you are interested in this library, you can help me! I will be glad for any help, thank you in advance.
https://github.com/Splicer97/react-native-osmdroid

Hello!
It would be nice to work with you.
What I am planning now is to make this lib completely oblivious of
react-native-maps. The way I did it before was revealed to be terrible in
the long term. I hoped they would accept my PR, but it never happened.
In the next few months I will unplug this lib from react-native-maps,
update rn version, and maybe create a 'bridge' library that abstracts
choosing this osmdroid or react-native-maps one when displaying a map.
Please let me know what you think.
On Sun, Jan 22, 2023 at 2:50 PM Nikita Kovantsov @.***>
wrote:

Hi! I started a new project to integrate the osmdroid library under react
native. I'm doing it in my spare time, managed to update and rewrite some
things, but I need help. If suddenly you are interested in this library,
you can help me! I will be glad for any help, thank you in advance.
https://github.com/Splicer97/react-native-osmdroid
—
Reply to this email directly, view it on GitHub
https://github.com/fqborges/react-native-maps-osmdroid/issues/27, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAPWWLPJCYTWNWN3F7B3P5DWTVXPRANCNFSM6AAAAAAUDDJMWY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
Filipe

That's a great idea. That's exactly what I'm doing. I took your library as a base, removed ios folder, removed google maps, updated osmdroid sdk and added possibility to select map bounding box via ref. I don't know Java language very well, but I think I will gradually manage to transfer osmdroid functionality to React Native. I would be very glad of your help! My contacts for contact: Telegram @Splicerok , email<EMAIL_ADDRESS>

@fqborges
Is there anything we can do to help with moving this to a separate package?


Invalid CSRF token issues - unable to recover submitted data

Feature Description
If you have an issue / pull comment open for a long time, submitting it will yield Bad Request: Invalid CSRF token, which is fine from a security perspective, but very annoying to users.
It seems there is currently no way to restore the submitted data. I encountered this two times very recently with pull review comments, the content is gone if you go back in your history, and you can't re-send (and maybe get via the browser console, although this is already very unintuitive, because Gitea uses a redirect to the dashboard to display this warning, instead of directly showing it on the next page).
This is very annoying to me, and I think it might be annoying to all users ever encountering this.
I can think of some "naive solutions", but I doubt all work or are secure:

rework the error forward or #15394 so that the usual browser-internal restoring of text fields works (it doesn't for me with Gitea, I think it might be related to one of these things)
if the user is still logged in, allow to re-submit the data in the GUI, either with an "authorize" button on the page with the valid CSRF token, or by filling back the form the user wanted to submit
consider allowing to disable CSRF tokens as of #11188

Screenshots
No response

And possible this one:

https://github.com/go-gitea/gitea/issues/17282

My proposal (https://github.com/go-gitea/gitea/issues/17282#issuecomment-950305936) is saving a draft in local storage.

After reading the EasyMDE source code, the autosave of EasyMDE seems not ideal, it doesn't clear expired drafted, it may lead to problems: https://stackoverflow.com/questions/13567509/what-happens-when-localstorage-is-full .

I second this Request. I just lost a good hour or two of code review commentary.

I think save it in the frontend is a choice. So the form content will not be lost when special things happen.

This is a very annoying issue. I had it multiple times and last time i lost 2 hours of work!
@lunny have you considered using a more modern architecture with AJAX (is that still a thing?) or Websockets to change the page content in real time, like displaying an error or adding new comments in real-time? As always, GitHubs design is great!

This is a very annoying issue. I had it multiple times and last time i lost 2 hours of work!
@lunny have you considered using a more modern architecture with AJAX (is that still a thing?) or Websockets to change the page content in real time, like displaying an error or adding new comments in real-time? As always, GitHubs design is great!

We should do that AJAX thing, but there is no plan currently. But we are working toward that direction. And currently I think it should be a bug. At least, it should redirect to login page but not display the CSRF token issue.

The issue is that you can still be logged in, but the CSRF token be expired. At least this is the scenario for me.
Another solution would be to present a confirmation page that asks the user if they still want to perform the action with the new token.

The issue is that you can still be logged in, but the CSRF token be expired. At least this is the scenario for me.
Another solution would be to present a confirmation page that asks the user if they still want to perform the action with the new token.

So the CSRF expired time have to be set longer than session expired time to avoid that.

The issue is that you could for example login again in the meantime - the CSRF token is expired, but you have a valid session. The login page wouldn't help in this case. It should be gracefully handled, and in case you don't have a valid session, you'll be redirected to the login page from there.

I think I find the bug in CSRF module.
If I understand correctly, the CSRF token is generated every 24h, and the valid period is also 24h.
So, if a user get a CSRF token at time t, then they starts writing comment at t+23:59, and submits at t+24:01, they will meet this problem.
If it is the case, there could be a simple fix to generate the CSRF token every minute (or every 10 minutes).

I think I find the bug in CSRF module.
If I understand correctly, the CSRF token is generated every 24h, and the valid period is also 24h.
So, if a user get a CSRF token at time t, then they starts writing comment at t+23:59, and submits at t+24:01, they will meet this problem.
If it is the case, there could be a simple fix to generate the CSRF token every minute (or every 10 minutes).

Where could you find it's 24h?

About: "Where could you find it's 24h?"
Two timeout durations in csrf.go and xsrf.go, one is for cookie timeout, one is for token validation timeout, they are both 24h

The PR to fix the bug:

https://github.com/go-gitea/gitea/pull/19337


Auto convert full <-> compact fc

Codecov Report
Base: 49.68% // Head: 49.65% // Decreases project coverage by -0.02% :warning:

Coverage data is based on head (5aadb0e) compared to base (c1f2e17).
Patch coverage: 25.92% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #238      +/-   ##
===========================================
- Coverage    49.68%   49.65%   -0.03%
===========================================
  Files          115      115
  Lines        18162    18181      +19
===========================================
+ Hits          9023     9027       +4
- Misses        9139     9154      +15

Impacted Files
Coverage Δ

phonopy/cui/phonopy_script.py
0.00% <0.00%> (ø)

phonopy/cui/load_helper.py
52.54% <30.00%> (-1.03%)
:arrow_down:

phonopy/harmonic/force_constants.py
63.63% <36.36%> (-1.25%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Replace ImmutableMap with Map interface in ViewRenderer interface

The original change was using the concrete ImmutableMap<K, V> implementation from Google Guava instead of the generic Map<K, V> interface which allows the use of other map implementations.

LGTM


Disable cache of HTML

My gulp file https://github.com/openSUSE/chameleon/blob/master/gulpfile.js
When enabling livereload, the browser still cache HTML. So it looks like not live reload at all.
Can you add some HTTP header to disable caching when using live reload?

It would be nice to have this feature

bump


Azure Files Data Lake Sample Issue

Section link1, link2

Reason:
This name may only contain lowercase letters, numbers, and hyphens.
Suggestion:
Update to newfilesystem.
@xirzec, @kyle-patterson, @dw511214992 for notification.

Thanks for reporting this to us. I will fix it.

This issue has been fixed.


Request for confirmation of a flow in the Wallet

I've been asked to check with the BC Wallet team to confirm the following.
If I'm a verifier and I request a presentation based on a revocable credential, but I explicitly DON'T request the revocation status (e.g., I don't include any revocation interval in the presentation request), does the BC Wallet collect revocation data from the ledger in preparing the presentation, and does it provide a non-revocation proof?
I realize as I write this that I can probably check this in the Traction Sandbox in very short order, so I may answer this myself :-).
Thanks

Working on it...almost done.

Hmmm... a new problem.  When I send the Presentation Request without revocation, everything works. When I add revocation at the attribute or presentation request level, I get an error in the wallet about an invalid URL.  Here is an example, non-working request -- removing the "," and "non_revoked" item works fine.
I'm guessing it is the URL in the credential definition from Traction -- investigating.
{
  "nonce": "1234567890",
  "name": "proof-request",
  "version": "1.0",
  "requested_attributes": {
    "studentInfo": {
      "names": [
        "given_names",
        "family_name"
      ],
      "restrictions": [
        {
          "schema_name": "student id"
        }
      ],
      "non_revoked": {
        "from":<PHONE_NUMBER>,
        "to":<PHONE_NUMBER>
      }
    }
  },
  "requested_predicates": {
    "not_expired": {
      "name": "expiry_dateint",
      "p_type": ">=",
      "p_value": 20230527,
      "restrictions": [
        {
          "schema_name": "student id"
        }
      ]
    }
  }
}

Confirmed that there is no non-revocation proof included in the presentation if the verifier does not ask for it.  Yay!
Along the way, ran into an issue with revocation, where the revocation interval was "too soon".  Eventually it worked, but strange that it took so long.  I tried a time in the future and that didn't work.  I queried the time the RevReg was created and added a bit of time to that, but that didn't work.  Looks like it needed to be 10 minutes after?  Weird...and not good.  Not sure what to do about that.


Do Not Restart App After Each Test

Are you requesting a feature or reporting a bug?
Bug
What is the current behavior?
After each test, it would restart the app from the beginning.  Can we have a continuous flow of events?  It would not make sense to have multiple assertions in a test because that would not be descriptive.
What is the expected behavior?
App will not restart after each test
How would you reproduce the current behavior (if this is a bug)?
Have multiples test and run the tests
Provide the test code and the tested page URL (if applicable)
Tested page URL:
Test code

Specify your

operating system: Windows 7
testcafe version: most current version
node.js version: most current veresion

Hi @simonatorw ,
Thanks for the proposal. Take a look at the #1770 issue. We've discussed it there. We will add comments about any progress there.


DlInfiniteScroll

I added 2 small components that allow us to detect scrolling either to the top or to the bottom of a list. we can listen to these events from outside and manipulate the data accordingly (add more elements, remove from the top once a certain threshold is reached etc.). I've added all this scroll logic in a new demo file called DlInfiniteScrollDemo with both a list and a table, but this can be changed to anything else, since the only functionality that's inherent to the new components is detecting when either the bottom or the top has been reached.

@SorinOpt This looks incredible ! fast and responsive and doesnt keep too many elements in view than needed
I would allow customizing the sliding-window-size.
also i found issue when scrolling back up it doesnt load back the upper window and keeps the last previously loaded by the lower scroll.

Added a new prop to the scroll components called "containerRef", this should be the scroll wrapper of the elements (the one with overflow scroll/auto). If not provided the viewport will be used


[analyze] fix const lints

Description
New lints for these started showing up on unrelated PRs, seems valid to fix.

Will land on red once analysis + framework tests pass


Running?

How do we run the file once we create it?

I covered this in the docs:
https://docs.google.com/document/d/1zh6w54efiQVnsy3F5DeVzOfAJO8UNi0CaRKeYGWocNg

What OS are you using for development?

If it's Mac or Linux the method described in the docs should work

Mac

Yep, it's in the docs

K


Use define_tree macro to define AST

This PR uses the define_tree! macro to define the AST and generate visitors/walkers for it. This shaves off a lot of code and makes AST changes much easier :)

Will tackle comments in next pr


throw dedicated exception if user selects wrong verification code

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@f9f25da). Click here to learn what that means.
The diff coverage is 87.50%.

@@            Coverage Diff            @@
##             master      #43   +/-   ##
=========================================
  Coverage          ?   91.15%
  Complexity        ?      461
=========================================
  Files             ?       51
  Lines             ?     1108
  Branches          ?       54
=========================================
  Hits              ?     1010
  Misses            ?       84
  Partials          ?       14

Impacted Files
Coverage Δ
Complexity Δ

...va/ee/sk/smartid/AuthenticationRequestBuilder.java
98.90% <ø> (ø)
32.00 <0.00> (?)

...in/java/ee/sk/smartid/SignatureRequestBuilder.java
97.26% <ø> (ø)
27.00 <0.00> (?)

...n/java/ee/sk/smartid/rest/SessionStatusPoller.java
84.61% <ø> (ø)
8.00 <0.00> (?)

...main/java/ee/sk/smartid/SmartIdRequestBuilder.java
94.68% <85.71%> (ø)
57.00 <0.00> (?)

...on/UserSelectedWrongVerificationCodeException.java
100.00% <100.00%> (ø)
1.00 <1.00> (?)

.../java/ee/sk/smartid/rest/dao/SessionSignature.java
100.00% <0.00%> (ø)
5.00% <0.00%> (?%)

...smartid/exception/ClientNotSupportedException.java
100.00% <0.00%> (ø)
1.00% <0.00%> (?%)

src/main/java/ee/sk/smartid/CertificateParser.java
88.88% <0.00%> (ø)
2.00% <0.00%> (?%)

...martid/exception/CertificateNotFoundException.java
100.00% <0.00%> (ø)
1.00% <0.00%> (?%)

.../java/ee/sk/smartid/rest/dao/NationalIdentity.java
100.00% <0.00%> (ø)
7.00% <0.00%> (?%)

... and 46 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 f9f25da...3e944cb. Read the comment docs.


Think what statistics of price by time and shop are useful to users

Interesting to take all products + current price; such that the price is below certain mark related to the mean. For example, 50% the mean price. Sort of like offers.