deck: 1.39.6 -> 1.40.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/Kong/deck/releases.
meta.description for deck is: Configuration management and drift detection tool for Kong
meta.homepage for deck is: https://github.com/Kong/deck
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.40.1 with grep in /nix/store/jaa6wylz3276ijznw4ik0gi9wrvkchis-deck-1.40.1
found 1.40.1 in filename of file in /nix/store/jaa6wylz3276ijznw4ik0gi9wrvkchis-deck-1.40.1

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

deck

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/jaa6wylz3276ijznw4ik0gi9wrvkchis-deck-1.40.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A deck https://github.com/r-ryantm/nixpkgs/archive/36c91ba5d090923d6696eaef1a3581e14cab415e.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/36c91ba5d090923d6696eaef1a3581e14cab415e#deck

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/jaa6wylz3276ijznw4ik0gi9wrvkchis-deck-1.40.1
ls -la /nix/store/jaa6wylz3276ijznw4ik0gi9wrvkchis-deck-1.40.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

deck

Maintainer pings
cc @liyangau for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

@NixOS/nixpkgs-merge-bot merge


Update Adrian's PPP

Codecov Report

Merging #279 (5199b19) into master (5eda094) will decrease coverage by 0.04%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master     #279      +/-   ##
============================================
- Coverage     60.73%   60.68%   -0.05%
  Complexity      613      613
============================================
  Files           112      112
  Lines          2440     2442       +2
  Branches        300      300
============================================
  Hits           1482     1482
- Misses          851      853       +2
  Partials        107      107

Impacted Files
Coverage Δ

...du/address/logic/commands/FilterByDateCommand.java
0.00% <ø> (ø)

.../seedu/address/logic/commands/FindTaskCommand.java
0.00% <ø> (ø)

...u/address/logic/parser/FilterByDateTimeParser.java
0.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 5eda094...5199b19. Read the comment docs.


Including extra dependencies

Hello,
is it possible to include extra dependencies while uploading solutions through CLI client?
In this case I did the Acronym exercise locally using strings-extra (and it works just fine), but I have not found a way  to include the extra dependency also during compilation in the exercism system.
I have tried uploading the spago.dhall and even the sources of releveant package from .spago but no success so far. (I remember that in the Haskell track it was possible to get the extra dependencies by uploading a cabal file together with the sources.)
To give some more information, the compilation ends with this error message:
purs compile: No files found using pattern: .spago/strings-extra/v3.0.1/src/**/*.purs Error found: in module Acronym   Module Data.String.Extra was not found.   Make sure the source file exists, and that it has been provided as an input to the compiler. See https://github.com/purescript/documentation/blob/master/errors/ModuleNotFound.md for more information, or to contribute content related to this error. [error] Failed to build.
So, the question is: is there a way to include the extra dependencies? And if not, is there anything I can do to help with this issue?
Thanks,
Tom

Oh, now I noticed, that there is already issue with this topic (https://github.com/exercism/purescript/issues/186#issue-882345492).  I am going to ask there. I am sorry for the unnecessary issue.:(

Thanks for sharing your experience @tomasurbanec and apologies for the late reply. This is valuable feedback as we've been trying to make a decision on this exact issue.
It is indeed the case that you currently cannot add any additional dependencies. The test runner runs in a sandbox and doesn't even have Internet connectivity meaning we can't install anything. We currently work with a fixed set of dependencies and if anything is missing we may add it to the default set.
You can solve the Acronym exercise without the use of strings-extra. Maybe we should make this a bit more clear before people start on the exercise that we currently have a limited set of dependencies. It's a bit of a bummer to complete the exercise locally and then realize it can't be accepted because we can't test it properly without the dependencies used.
I'm really curious how the Haskell track is able to install additional dependencies...
Anyway I'll continue this discussion on #186.

@emiel perhaps those are bundled in the solution. In JS/TS we also don't allow any dependencies, but technically you could "vendor bundle" them into your solution, and that would work. Does purescript have that option?


backup.JobsClient#List API fails with JSON unmarshalling error

Bug Report

import path of package: github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2021-01-01/backup
SDK version: v58.0.0+incompatible
Go version: go version go1.21.1 darwin/arm64

While making the API call of Recovery service Backup List by providing the required input param, it is failing by throwing an error Error: backup.JobsClient#List: Failure responding to request: StatusCode=200 -- Original Error: Error occurred unmarshalling JSON - Error = 'json: cannot unmarshal number into Go struct field JobResourceList.value of type backup.JobSupportedAction'
I want to get the result instead of any error.
Make the Recovery service Backup List API call by providing the required input
Anything we should know about your environment: N/A

Thanks you @jhendrixMSFT, for your quick assist I will give it a try with latest version of SDK, and let you know.

@jhendrixMSFT, I can confirm that, the API seems to be working fine with latest version of SDK, Thanks you!


How do you get the values of changed entries for ObservableCollection?

I'm using 1.x of ReactiveKit (which I absolutely, love, by the way). I keep running into the same issue, and I'm not really certain if I'm doing something wrong:
Basically, when an ObservableCollection<Dictionary<String,String>> changes, is it possible to get the key and value of the deleted entries within the observer's callback closure? It seems that in order to detect these, I'd need to keep the previous version of the dictionary around. What am I doing wrong?
Also asked on StackOverflow:
http://stackoverflow.com/questions/37228625/reactivekit-how-do-you-get-the-values-of-changed-entries-for-observablecollecti
Thanks again for the amazing library. It's really powerful, and meshes really well with Swift's type system!

I guess zipPrevious is one (elegant) way to do this?

@srdanrasic was kind enough to explain how to do this on StackOverflow, here: http://stackoverflow.com/a/37229126/32238


cmake subdir tests in drone

Nice. This means we have the "Run CMake install tests" but not the "Run CMake subdir tests" right?

@alandefreitas the only difference between the tests you mentioned is the presence of "-DBOOST_CI_INSTALL_TEST=ON", which is boost-ci specific.   Since the new test here doesn't have "install" or BOOST_CI_INSTALL_TEST, it corresponds more to "cmake subdir tests" rather than "cmake install tests".
The way to run a "cmake install test" is to specifiy "--target install".   That is configured on another test already.

Thanks! I'll replicate the other test then :)

@alandefreitas a good example of cmake tests could be pdimov's github actions such as https://github.com/boostorg/core/blame/develop/.github/workflows/ci.yml

Drone is building on pushes to these branches.
{ "branch": [ "master", "develop", "drone*", "bugfix/*", "feature/*", "fix/*", "pr/*" ] }

Set the branch to "feature/something" to trigger a build.
In the past it has been building different branches: https://drone.cpp.al/alandefreitas/url


ViewUI migration build got max call stack exceeded error

Version
3.2.26
Reproduction link
jsfiddle.net/pqmaxg8w/4/
Steps to reproduce

config project (written with vue2 before) under migration build guide
the project use ViewUI as its dependency

What is expected?
After following the migration guide, there should be no error.
What is actually happening?
Got max call stack exceeded error.

I found the error was raised in file Button.vue.
And in this line,  it was meant to  resolve to be a normal button, unfortunately, it resolved to self unexpectedly.
The reason was the the difference between resolveAssets(vue3) and  resolveAssets(vue2).
In vue 2, there was no special handle for dynamic compnent to resolve to be itself, but vue 3 did. That was where this error came from.
For some UI lib like ViewUI,  which did not use prefix for their component name, their user will be stuck by this kind of error in the way of migration build.
So I guess it's better if vue3 could keep consistent with vue2 in this point.

Vue 3's resolving logic self-resolves if the component's name option matches. That's the intended behavior. ViewUI should add a prefix to the name option to all components that have overlapping name with native HTML elements.

sorry to comment under a closed issue, but If I want to continue to use the migration build, is there a possible workaround for this case ?@yyx990803


I need the code working in python2.7, but it can't work, can this code work in python2.7?

This code may be ported to python 2.7. Right now it uses some python 3 features, such as print, class, dict syntax.

Hope, it helped.


Add SwiftInfo to hmap/vfs rules to suppress module map generation

Ran aquery to verify; the only change on SwiftCompile is to remove all the -Xcc -fmodule-map-file=... lines for the hmap and vfs files.
Fixes #538.

@dierksen nice - thanks for fixing this 🙇 !


Dcwither/update node to lts

Summary:
This should fix issues with building on node version 14.x.  I've also updated the workflows to run on 10,12,14 instead of 8,10,12.
Test Plan:
Local:

install node 14.5.0
reinstall dependencies
npm start

CI: run it

Hm.. I just tried this out but it fails 😢

@lesliecodes can you share the failure? Was it the arg types one, or a node-sass one? For node sass you need to uninstall all the dependencies again.

It works! I did have to remove all the old /node_modules


unzip the ripped version

So as a ripped-out version of unzip we basically need to support everything that it does: https://linux.die.net/man/1/unzip
The following options need to be implemented:

[ ] TODO

I agree that we should support all the flags that zip supports currently, there are still some behaviors that I thing we may change, like:
If the first password fails the header check on some file, unzip will prompt for another password, and so on until all files are extracted. If a password is not known, entering a null password (that is, just a carriage return or ''Enter'') is taken as a signal to skip all further prompting. Only unencrypted files in the archive(s) will thereafter be extracted. (In fact, that's not quite true; older versions of zip(1L) and zipcloak(1L) allowed null passwords, so unzip checks each encrypted file to see if the null password works. This may result in ''false positives'' and extraction errors, as noted above.)

Until what point do we want to keep compatibility with older versions?


NoMethodError: undefined method `<' for nil:NilClass

--- TEMPLATE END ----------------------------------------------------------------
Unfortunately, an unexpected error occurred, and Bundler cannot continue.
First, try this link to see if there are any existing issue reports for this error:
https://github.com/bundler/bundler/search?q=undefined+method+`<'+for+nil+NilClass&type=Issues
If there aren't any reports for this error yet, please create copy and paste the report template above into a new issue. Don't forget to anonymize any private data! The new issue form is located at:
https://github.com/bundler/bundler/issues/new

Please share the entire issue report

Closing due to lack of response.


Skip non-recognized kwargs in interact

[x] Fixes https://github.com/pyviz/panel/issues/165

Codecov Report

Merging #168 into master will not change coverage.
The diff coverage is 0%.

@@           Coverage Diff           @@
##           master     #168   +/-   ##
=======================================
  Coverage   90.07%   90.07%
=======================================
  Files          30       30
  Lines        4696     4696
=======================================
  Hits         4230     4230
  Misses        466      466

Impacted Files
Coverage Δ

panel/interact.py
71.87% <0%> (ø)
: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 1b92299...7953ece. Read the comment docs.


Simple Game AI

Add a simple AI to play the game against. Provide different difficulty options.

Note: use miniMax Algorithm with different depths for difficulty levels


Added one point in instructions.

Added a logo for the game.

@AanjaneyaSinghDhoni Closed due to inactivity, please feel free to look at other issues in the future.


No one is interested in any examples...

...so why should anybody writing documentation include them?

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

ID: b195d006-dff9-0a63-7008-3f50887c3be9
Version Independent ID: a2f8a231-97e4-6f69-7100-93e19171ecb5
Content: HttpClient.DefaultRequestHeaders Property (Windows.Web.Http) - Windows UWP applications
Content Source: https://cpubwin.visualstudio.com/DefaultCollection/windows-uwp/_git/winrt-api-build?path=%2fwinrt-api-build%2fwindows.web.http.httpclient.yml&version=GBlive&_a=contents
Product: uwp
Technology: winrt-reference
Git Login: stevewhims
Microsoft Alias: stwhi

Hi, @andifandrich, can you tell me more about your feedback, please? A large number of customers have expressed an interest in code examples, and so we do try to provide a decent volume of code examples across the Windows content sets from Win32 to Windows Runtime. The opening paragraph of this topic takes the reader to code examples.
Please let me know if you're proposing changes to the content, and what those would be. I'll leave this issue open for a while.
Thanks!
~Steve

Hi Steve,
I'd have never thought that anyone is interested in my comment, so I very much appreciate your answer.
We developers are always looking for code samples and see them a s an essential part of documentation. In this case I searched for DefaultRequestHeaders because I wanted to know how to add some. I was very disappointed, because this is nowhere mentioned on the page. I then followed the link to the class documentation of HttpRequestHeaderCollection and there are plenty of examples. I would suggest to just copy them over.
Cheers
Andi

Thanks, @andifandrich. It can be expensive and error-prone to maintain multiple copies of the same content (code or otherwise). So, where possible, I like to keep a single copy of code (in the conceptual content), and link to that from elsewhere. You also found code in a related API ref topic, so that was good. It looks like the links are working as intended here, but I'll bear this thread in mind in future when I'm improving our code, how and where we factor it to, and how we link.
I'll go ahead and close the issue now.
Thanks!
Steve


Porting CC 10 Maze Generator

This PR is a work in progress
Preview: https://deploy-preview-498--codingtrain.netlify.app/challenges/10-dfs-maze-generator

Looking good! Exciting to see all the parts in one!


Update 5-6-⿻-voting.md

This branch is conflicted probably because of an out-of-date name.  Please resubmit...fine to do when you wake up tomorrow.

I just resubmitted. Kindly let me know if it works.
On Mon, Mar 18, 2024 at 2:23 AM Glen Weyl @.***> wrote:

This branch is conflicted probably because of an out-of-date name. Please
resubmit...fine to do when you wake up tomorrow.
—
Reply to this email directly, view it on GitHub
https://github.com/pluralitybook/plurality/pull/648#issuecomment-2002713834,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BFUSKJPPGIOSMTL4WEZSXCTYYY6XVAVCNFSM6AAAAABE2PBIRCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBSG4YTGOBTGQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Omoaholo Omoakhalen
Principal Consultant,
Remake Africa
+234 (0)<PHONE_NUMBER>
@.*** @.**>

Merged!

Research Lead, Plural Technology Collaboratoryhttps://aka.ms/plural, Research Special Projects

Collaboratehttps://github.com/pluralitybook/plurality with Digital Minister Audrey Tang, myself and dozens around the world to tell the story of Pluralityhttps://www.plurality.net/

From: Omoaholo Omoakhalen @.>
Sent: Monday, March 18, 2024 2:20 AM
To: pluralitybook/plurality @.>
Cc: Glen Weyl @.>; State change @.>
Subject: Re: [pluralitybook/plurality] Update 5-6-⿻-voting.md (PR #648)
I just resubmitted. Kindly let me know if it works.
On Mon, Mar 18, 2024 at 2:23 AM Glen Weyl @.***> wrote:

This branch is conflicted probably because of an out-of-date name. Please
resubmit...fine to do when you wake up tomorrow.
—
Reply to this email directly, view it on GitHub
https://github.com/pluralitybook/plurality/pull/648#issuecomment-2002713834,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BFUSKJPPGIOSMTL4WEZSXCTYYY6XVAVCNFSM6AAAAABE2PBIRCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBSG4YTGOBTGQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Omoaholo Omoakhalen
Principal Consultant,
Remake Africa
+234 (0)<PHONE_NUMBER>
@.*** @.**>
—
Reply to this email directly, view it on GitHubhttps://github.com/pluralitybook/plurality/pull/648#issuecomment-2003297572, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABIRKSFBINYCV2BJFEOO3ZTYY2WV3AVCNFSM6AAAAABE2PBIRCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBTGI4TONJXGI.
You are receiving this because you modified the open/close state.Message ID: @.***>


Using RGB values w/ no hue breaks saturation picker.

Passing in a value like {r: 100, g:100, b:100} Will not allow you to use the saturation input to select colors. Because oldHue starts as undefined, and the if statement in helpers/color.js sets the hue to that undefined value:
  toState: function toState(data, oldHue) {
    var color = tinycolor(data);
    var hsl = color.toHsl();
    var hsv = color.toHsv();

    if (hsl.s === 0) {
      hsl.h = oldHue;
      hsv.h = oldHue;
  }

    return {
      hsl: hsl,
      hex: color.toHex(),
      rgb: color.toRgb(),
      hsv: hsv,
      oldHue: data.h || oldHue || hsl.h
    };
  }

Ah. So this should probably fall back to 0 if the old hue is not defined? The only reason I have it tracking the old hue is because the color library I am using converts everything to RGB first and if you drag saturation over to the far left it would lose whatever hue you were at and it would switch to red (0).
if (hsl.s === 0) {
  hsl.h = oldHue || 0;
  hsv.h = oldHue || 0;
}

That is definitely a way to fix it. I made a PR that sets this.state.oldHue in the constructor which should fix the problem. (which means it falls back to 250 currently). I don't have a strong opinion on which solution is better.

I maintain a react color picker component and have dealt with this issue myself. A rising tide lifts all boats, as they say, so I thought I would offer my solution.
I found the easiest way to fix is not to keep the old value in memory, but to separate your internal representation of the colour from the colour library's representation (in this case tinycolor).
So my state might look like this:
{
  color : {
    h : 0,
    s : 1,
    v : 1
    a : 0.5
  }
}

Whenever h, s, v, or a changes, update just that component of the color state, and use the color lib only to generate a value to pass to the onChange callback. See here: https://github.com/WickyNilliams/react-simple-colorpicker/blob/e17040872a695926ad7e6ee3aaca27ca161024d3/lib/components/ColorPicker.js#L112-L128
Also you must then check whether in componentWillReceiveProps if the new color coming in is different by comparing their rgb representation, and updating the internal state if they differ. See here https://github.com/WickyNilliams/react-simple-colorpicker/blob/e17040872a695926ad7e6ee3aaca27ca161024d3/lib/components/ColorPicker.js#L29-L33
This might sound complex, but it's actually really simple and works perfectly. Also pushes the use of the color lib to the edges of your component (input/output only)
Hopefully that makes sense and is useful :)

@rickyvetter This was temporarily fixed in<EMAIL_ADDRESS>but I will be implementing what @WickyNilliams suggested in 1.1.0 Thanks!

No problems. If you hit any issues with this approach, let me know, happy to help

While I'm here: I'll be releasing a colour lib which is just a collection of composable pure functions in the near future . Require just what you need, so footprint will be tiny. If that might be of interest (personally I really dislike tinycolor, and most color libs, for their awkward OO interfaces ) I'll file an issue when it's ready. If not, don't worry.

@WickyNilliams No way! That is exactly what I was looking for (and didnt want to roll my own), definitely on the same page as you with that! Are we talking few-weeks future or few-months future?

OK cool. Yeah I've found all the existing libs to be a disappointment. I just want functions!
 Basically I forked another well tested colour lib, removed all the extraneous stuff, broke into small modules etc, so not a whole lot of work. Just a case of some final clean up,  then release. So it will be some time next week I expect.

👏🙌

Hey @WickyNilliams, any update on the color library?

Excuse the delay. I've been busy, and I slightly (read: greatly) underestimated how much work was required to get the library up to scratch :) But! I will publish tomorrow.
I've tested locally against my color picker, and it works well. So hopefully it will be solid enough for use here too. If you find any issues or have suggestions for improving the API (I made a couple of decisions that i'm not 100% sure of), please let me know.
I will report back after publishing.

Sweet! Looking forward to using it and will send over issues / pull requests if I see anything!

Here you go https://github.com/wickynilliams/pure-color. pure-color on npm :)

Also i've updated my color picker to consume the library, if you'd like to see how I've used it. See this commit: https://github.com/WickyNilliams/react-simple-colorpicker/commit/4931077e6b166699feb8dc793218e01586d44d23


undoManager grouping

Currently, a MobX reaction is triggered when the output of the reference resolver changes. The callback function of this reaction (a) updates the set of back-references and (b) calls the onResolvedValueChange callback which is often used to detach the reference node when the reference cannot be resolved anymore.
I have a situation in which an action changes the state that leads to a change in back-references and/or detachment of the reference node, and I need those changes to be available within the action (immediately after the change that triggers those side-effects). Unfortunately, this is not possible at the moment because the MobX reaction listener is only called when the outermost transaction has completed. My initial thought was to use MobX observe instead of reaction because observe fires immediately when the observed observable is changed. However, when observe observes a computed value (like in this case this.maybeCurrent), internally MobX autorun is used which uses the same reaction implementation as reaction under the hood.
Can you think of any way to run the side-effects immediately within an action/transaction when the output of the reference resolver changes?
These are tests that demonstrate the behavior I would like to have:
const aRef = rootRef<A>("aRef", {
  onResolvedValueChange(ref, newValue, oldValue) {
    if (oldValue && !newValue) {
      detach(ref)
    }
  },
})

@model("A")
class A extends Model({}) {}

@model("Root")
class Root extends Model({ a: prop<A | undefined>(), aRefs: prop<Array<Ref<A>>>(() => []) }) {
  @modelAction
  setA(a: A | undefined) {
    this.a = a
  }

  @modelAction
  addRef() {
    expect(this.a).toBeDefined()
    this.aRefs.push(aRef(this.a!))
  }
}

test("backrefs are updated within an action", () => {
  const r = new Root({ a: new A({}) })

  runInAction(() => {
    expect(getRefsResolvingTo(r.a!, aRef).size).toBe(0)
    r.addRef()
    expect(getRefsResolvingTo(r.a!, aRef).size).toBe(1)
  })
})

test("onResolvedValueChange is called within an action", () => {
  const a = new A({})
  const r = new Root({ a, aRefs: [aRef(a)] })

  runInAction(() => {
    expect(r.a).toBeDefined()
    expect(r.aRefs).toHaveLength(1)
    r.setA(undefined)
    expect(r.a).toBeUndefined()
    expect(r.aRefs).toHaveLength(0)
  })
})

I have submitted a PR to MobX which makes observe fire eagerly when an observed computed value changes (https://github.com/mobxjs/mobx/pull/2802). Using observe with this new behavior instead of reaction should let the above tests pass.

It seems MobX is unwilling to maintain an eager reaction mechanism in addition to the existing one although I still think that having different behaviors for observe when observing state and computed values is inconsistent.

A possible solution is to introduce a computed value that retains only resolvable references, e.g.:
   @model("Root")
-  class Root extends Model({ a: prop<A | undefined>(), aRefs: prop<Array<Ref<A>>>(() => []) }) {
+  class Root extends Model({ a: prop<A | undefined>(), aRefsRaw: prop<Array<Ref<A>>>(() => []) }) {
+    @computed
+    get aRefs() {
+      return this.aRefsRaw.filter(aRef => !!aRef.maybeCurrent)
+    }
+
     @modelAction
     setA(a: A | undefined) {
       this.a = a
@@ -706,7 +711,7 @@ describe("ref reaction", () => {
     @modelAction
     addRef() {
       expect(this.a).toBeDefined()
-      this.aRefs.push(aRef(this.a!))
+      this.aRefsRaw.push(aRef(this.a!))
     }
   }

@@ -722,7 +727,7 @@ describe("ref reaction", () => {

   test("onResolvedValueChange is called within an action", () => {
     const a = new A({})
-    const r = new Root({ a, aRefs: [aRef(a)] })
+    const r = new Root({ a, aRefsRaw: [aRef(a)] })

     runInAction(() => {
       expect(r.a).toBeDefined()

It's not perfected though IMHO because the computed property requires knowledge about the onResolvedValueChange logic (in this case that the reference node is detached when it can't be resolved anymore which translates to filtering references in the computed property). Also, it doesn't scale as nicely to reference nodes in nested objects (i.e. reference nodes that are not top-level props of a model).

I have a situation in which an action changes the state that leads to a change in back-references and/or detachment of the reference node, and I need those changes to be available within the action (immediately after the change that triggers those side-effects).

Could you rewrite that as a non-action function that calls two model actions internally?
@modelAction
before() {
  // do whatever changes to the model that will change the back refs
}

@modelAction
after() {
  // do whatever changes to the model that will use the new back refs
}

doTheThing() {
  this.before()
  // here the back refs shoud be updated (as long as doTheThing is not actually called inside a mobx action
  this.after()
}

Unfortunately no because I need doTheThing to lead to a single undo step, but that currently requires doTheThing to be decorated with @modelAction. Perhaps if "action" and "undo grouping" were independent decorators, your suggestion could work. Composing actions would still require some care to make sure only methods that directly mutate state are decorated with @modelAction and methods that combine several action methods are only decorated with an "undo grouping" decorator. Do you see what I mean?

So if the undoManager had a way to group actions outside of it being a model action it would suffice?
If so, would the groups need to support async stuff, or just sync would be good enough?

Yes, I think that should suffice. Perhaps an API like this:
@undoGroup
doTheThing() {
  this.before()
  // here the back refs shoud be updated (as long as doTheThing is not actually called inside a mobx action
  this.after()
}

// AND

doTheThing() {
  undoGroup(() => {
    this.before()
    // here the back refs shoud be updated (as long as doTheThing is not actually called inside a mobx action
    this.after()
  })
}

Sync would be enough at least for my use case right now.

undoManager.withGroup is now out in 0.52.0
Let's hope that solves your issue :)

Looks great, thank you very much! I'll report back once I've confirmed that this solves my issue.

undoManager.withGroup solves my problem, but there is a minor side-effect: I now wrap only methods that directly change a model prop with @modelAction and all other/high-level methods (e.g. those that call several other methods) use a undoManager.withGroup block which means for every call to a @modelAction-decorated method, reactions will be triggered. That's what I needed for resolving back-references within an undo/redo group, but it also causes the UI to rerender more often. I think it's not a big problem, but I wanted to point it out.
What do you generally think about having reactions that fire immediately upon a change in state or a computed value? The MobX team didn't seem to like having this option and are even unhappy with observe which mobx-keystone uses for tweaking nodes. In my understanding, reaction was never intended to be used for triggering state changes, but I think its usage for reference resolution and calling onResolvedValueChange is completely valid, it would just be better if reaction fired immediately in that case. Do you agree?
If so, I've been thinking whether an immediate reaction could be achieved by using the fact that all nodes in the state tree are tweaked and patch events are emitted for all of them immediately. So whenever any tweaked node changes, updating the back-references and calling onResolvedValueChange would not be wrong, it would just be done too often, but this could be optimized perhaps. What do you think?

Closing in favor of https://github.com/xaviergonz/mobx-keystone/issues/233


Configurable Paths

I'd like to be able to specify the locations for the

build dir,
repo dir, and
versions dir

... ideally via the customize system.

I was wondering when somebody would ask about this. I have no objection to it, except it will take a little bit of work to make it work correctly with the bootstrap system.

Out of curiosity, what's your use case?

There are a few reasons this would make a difference for me, but the one that is front of mind is to
... It'd support moving from my manual submodule-based config to use-package + straight.
In general it's a blend of aesthetics with data separation (to isolate personal info from my emacs.d). If it helps to illustrate, I'd set the repo-dir to where my submodules already live, the build-dir to the dir I already have setup as an init.d style directory, and the versions-dir to the directory where I store entirely personal info, like my custom-file, which I like to use extensively.

Interesting. As I said, no objection here to supporting this directly. As a workaround, of course, you can simply symlink ~/.emacs.d/straight/repos, ~/.emacs.d/straight/build, etc. to your desired paths. I think that should work just as well.

This would be useful for me as well. My use case is the following: I have my init.el and every other config file that is not a package in a separate directory plus a make file that creates an .emacs.d/init.el if it doesn't exist with a single line loading the init.el from my other dir. That way I keep only my custom dir under version control and it remains clean of anything emacs creates automatically. If you implemented this enhancement I would be able to set the versions dir to be inside my custom dir instead of messing with symlinks

I hacked-up a basically working (though messy) example here, https://github.com/nickgarber/straight.el/commit/b3f7838c8afc4acc1cb167cd32dbd349a6ae88ef
@raxod502 Any advice on how to clean this up or generalize it into something that'd make for a decent PR?
Biggest surprise in this process - I anecdotally found that Github's caching system can take up to 30 minutes to reflect updates. This was inspired great head-scratching until properly understood.

Thanks. I'll take a look at this as soon as I have time (this may be a little while because I'm traveling to New York for the week). Why don't you go ahead and make it a pull request right away, so that the code review features work better? (We can always rebase it later to fix up the hacky parts.)
Also, yeah, I'm sorry on behalf of GitHub about the caching thing. That sucked to figure out when I was setting up the bootstrap installer the first time.

Agreed. However, unfortunately I don't have spare time at the moment to work on code changes; I can only debug issues and review pull requests. If you'd like to get this through faster, perhaps you can adopt the pull request https://github.com/raxod502/straight.el/pull/300 :)

This request was completed to my satisfaction with #404. If there are any other part of this that are required by others please enter a new request.
Thanks again for straight.el in general and for these changes in particular, @raxod502 !


Matchers

Matchers are a system of plugins that fire when a event is triggered until one returns true.

 Matchers


[Xcode 13.3.1] Xcode update inducing LLDB+Swift integration deadlock: Target::GetScratchTypeSystemForLanguage

Not sure this deadlock is specific to Bazel or rules_ios but putting this here because it's where I'm hitting the issue. When a swift compiler error pops e.g. fail to load some modules, LLDB deadlocks.
It appears to be waiting on __psynch_cvwait:
    +               8377 lldb::SBValue::GetSummary()  (in LLDB) + 316  [0x1101d9f2c]
    +                 8377 lldb_private::ValueObject::GetSummaryAsCString(lldb::LanguageType)  (in LLDB) + 140  [0x110284560]
    +                   8377 lldb_private::ValueObject::GetSummaryAsCString(lldb_private::TypeSummaryImpl*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, lldb_private::TypeSummaryOptions const&)  (in LLDB) + 192  [0x11028447c]
    +                     8377 lldb_private::CXXFunctionSummaryFormat::FormatObject(lldb_private::ValueObject*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, lldb_private::TypeSummaryOptions const&)  (in LLDB) + 112  [0x1102a87bc]
    +                       8377 lldb_private::formatters::swift::SwiftMetatype_SummaryProvider(lldb_private::ValueObject&, lldb_private::Stream&, lldb_private::TypeSummaryOptions const&)  (in LLDB) + 244  [0x110531a60]
    +                         8377 lldb_private::SwiftLanguageRuntimeImpl::GetMetadataPromise(unsigned long long, lldb_private::ValueObject&)  (in LLDB) + 56  [0x11056ee48]
    +                           8377 lldb_private::ValueObject::GetScratchSwiftASTContext()  (in LLDB) + 100  [0x1102871a4]
    +                             8377 lldb_private::Target::GetScratchSwiftASTContext(lldb_private::Status&, lldb_private::ExecutionContextScope&, bool)  (in LLDB) + 1452  [0x1103bc0c4]
    +                               8377 lldb_private::Target::GetScratchTypeSystemForLanguage(lldb::LanguageType, bool, char const*)  (in LLDB) + 868  [0x1103bad68]
    +                                 8377 std::__1::__shared_mutex_base::lock()  (in libc++.1.dylib) + 64  [0x1a3c7bda0]
    +                                   8377 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)  (in libc++.1.dylib) + 28  [0x1a3c79230]
    +                                     8377 _pthread_cond_wait  (in libsystem_pthread.dylib) + 1236  [0x1a3d2a83c]
    +                                       8377 __psynch_cvwait  (in libsystem_kernel.dylib) + 8  [0x1a3cf0290]

I'm running on Xcode 13.3.1 with --features apple.virtualize_frameworks and Debug+WMO settings with rules_ios. The entire IDE locks up for me including the LLDB repl, where I need to quit the simulator. After digging into it a bit, I initially suspected it's a symptom of buggy error handling code in LLDB in Xcode 13.3.1.  I'm able to bypass this deadlock by addressing module errors.

Worth looking at a spin dump from the machine when in that state?

What other info do you think would help folks fix this from from spin dump? The main issue I've encountered was the Xcode 13.3.1 bits of LLDB constantly deadlock after encountering a number of module errors. In other words, address the errors and it works. The ones I've found were from a corrupted ~/Library/Developer/DerivedData directory.
Also closing this out because Xcode 13.4 LLDB has this and other fixes, so would recommend using this better 🙇

https://github.com/apple/llvm-project/commit/998797eb278df52dd5334a030fe0c5a0d40adb0f <- JFYI  @kastiglione


Need documentation on how to use private image repository

Requirement - what kind of business use case are you trying to solve?
As a military installation, I want documentation on how to pull the images from new locations in the Jaeger Custom Resource instance
Problem - what in Jaeger blocks you from solving the requirement?
I cant find the place to put the spark, esIndexCleaner, esRollover, and esLookback images.  This seems to work except for those.
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: jaeger
spec:
  strategy: production
  storage:
    type: elasticsearch
    options:
      es:
        server-urls: http://elasticsearch-master.observability.svc:9200
  volumeMounts:
  - name: elastic-data
    mountPath: /usr/share/elasticsearch/data
  volumes:
  - name: elastic-data
    emptyDir: {}
  ingester:
    image: docker-proxy.nexus.<my internal domain>/jaegertracing/jaeger-ingester
  agent:
    image: docker-proxy.nexus.<my internal domain>/jaegertracing/jaeger-agent
  collector:
    image: docker-proxy.nexus.<my internal domain>/jaegertracing/jaeger-collector
  query:
    image: docker-proxy.nexus.<my internal domain>/jaegertracing/jaeger-query
  ingress:
    hosts:
      - jaeger.<my cluster>.<my internal domain>

# These do not work - need documentation how to specify these
  spark:
    image: docker-proxy.nexus.<my internal domain>/jaegertracing/spark-dependencies
  esIndexCleaner:
    image: docker-proxy.nexus.<my internal domain>/jaegertracing/jaeger-es-index-cleaner
  esRollover:
    image: docker-proxy.nexus.<my internal domain>/jaegertracing/jaeger-es-rollover
  esLookback:
    image: docker-proxy.nexus.<my internal domain>/jaegertracing/jaeger-es-rollover

Proposal - what do you suggest to solve the problem or improve the existing situation?
Please document the specification of the images in the CRD
Any open questions to address

We still do not have a doc with the full CRD options, your best source of information is the Go type for it, here:
https://github.com/jaegertracing/jaeger-operator/blob/b601fc5e46ac523ba1c244befe640508e8d866ea/pkg/apis/jaegertracing/v1/jaeger_types.go
And I see the image property for the options you listed:
https://github.com/jaegertracing/jaeger-operator/blob/b601fc5e46ac523ba1c244befe640508e8d866ea/pkg/apis/jaegertracing/v1/jaeger_types.go#L582-L596
https://github.com/jaegertracing/jaeger-operator/blob/b601fc5e46ac523ba1c244befe640508e8d866ea/pkg/apis/jaegertracing/v1/jaeger_types.go#L643-L645
https://github.com/jaegertracing/jaeger-operator/blob/b601fc5e46ac523ba1c244befe640508e8d866ea/pkg/apis/jaegertracing/v1/jaeger_types.go#L619-L633
The spec is a typical Docker spec: you might need to set the version, and optionally the SHA.

Very happy to hear the documentation is underway for the CRD options.
I read the specification and found my missing image specification under storage:
Here is what works:
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: jaeger
spec:
  strategy: production
  storage:
    type: elasticsearch
    options:
      es:
        server-urls: http://elasticsearch-master.observability.svc:9200
    spark:
      image: docker-proxy.nexus.<my-domain>/jaegertracing/spark-dependencies
    esIndexCleaner:
      image: docker-proxy.nexus.<my-domain>/jaegertracing/jaeger-es-index-cleaner
    esRollover:
      image: docker-proxy.nexus.<my-domain>/jaegertracing/jaeger-es-rollover
    esLookback:
      image: docker-proxy.nexus.<my-domain>/jaegertracing/jaeger-es-rollover
  volumeMounts:
  - name: elastic-data
    mountPath: /usr/share/elasticsearch/data
  volumes:
  - name: elastic-data
    emptyDir: {}
  allInOne:
    image: docker-proxy.nexus.<my-domain>/jaegertracing/all-in-one
  ingester:
    image: docker-proxy.nexus.<my-domain>/jaegertracing/jaeger-ingester
  agent:
    image: docker-proxy.nexus.<my-domain>/jaegertracing/jaeger-agent
  collector:
    image: docker-proxy.nexus.<my-domain>/jaegertracing/jaeger-collector
  query:
    image: docker-proxy.nexus.<my-domain>/jaegertracing/jaeger-query
  ingress:
    hosts:
      - jaeger.<my-cluster>.<my-domain>

@jimpete Update. It is storage.dependencies.image instead of storage.spark.image.


LaTeX language broken

The Error
At first, I had a similar error as issue #6543. I followed the instructions in issue 3092, and then this started to happen whenever I open a LaTeX file with Neovim.
E5108: Error executing lua: vim/_editor.lua:0: BufReadPost Autocommands for "*": Vim(append):Error executing lua callback: /usr/local/share/nvim/runtime/filetype.lua:21: Err
or executing lua: /usr/local/share/nvim/runtime/filetype.lua:22: BufReadPost Autocommands for "*"..FileType Autocommands for "*": Vim(append):tree-sitter CLI not found: `tre
e-sitter` is not executable!
stack traceback:
        [C]: in function 'nvim_cmd'
        /usr/local/share/nvim/runtime/filetype.lua:22: in function </usr/local/share/nvim/runtime/filetype.lua:21>
        [C]: in function 'nvim_buf_call'
        /usr/local/share/nvim/runtime/filetype.lua:21: in function </usr/local/share/nvim/runtime/filetype.lua:10>
        [C]: at 0x62483577a2bc
        [C]: in function 'pcall'
        ...t/nvim-tree.lua/lua/nvim-tree/actions/node/open-file.lua:334: in function 'open_in_new_window'
        ...t/nvim-tree.lua/lua/nvim-tree/actions/node/open-file.lua:383: in function 'fn'
        ...te/pack/packer/start/nvim-tree.lua/lua/nvim-tree/api.lua:177: in function 'edit'
        ...te/pack/packer/start/nvim-tree.lua/lua/nvim-tree/api.lua:189: in function 'fn'
        ...te/pack/packer/start/nvim-tree.lua/lua/nvim-tree/api.lua:65: in function <...te/pack/packer/start/nvim-tree.lua/lua/nvim-tree/api.lua:62>
stack traceback:
        [C]: in function 'nvim_buf_call'
        /usr/local/share/nvim/runtime/filetype.lua:21: in function </usr/local/share/nvim/runtime/filetype.lua:10>
        [C]: at 0x62483577a2bc
        [C]: in function 'pcall'
        ...t/nvim-tree.lua/lua/nvim-tree/actions/node/open-file.lua:334: in function 'open_in_new_window'
        ...t/nvim-tree.lua/lua/nvim-tree/actions/node/open-file.lua:383: in function 'fn'
        ...te/pack/packer/start/nvim-tree.lua/lua/nvim-tree/api.lua:177: in function 'edit'
        ...te/pack/packer/start/nvim-tree.lua/lua/nvim-tree/api.lua:189: in function 'fn'
        ...te/pack/packer/start/nvim-tree.lua/lua/nvim-tree/api.lua:65: in function <...te/pack/packer/start/nvim-tree.lua/lua/nvim-tree/api.lua:62>
stack traceback:
        [C]: in function 'nvim_exec2'
        vim/_editor.lua: in function 'cmd'
        ...e/pack/packer/start/nvim-tree.lua/lua/nvim-tree/view.lua:354: in function 'resize'
        ...t/nvim-tree.lua/lua/nvim-tree/actions/node/open-file.lua:390: in function 'fn'
        ...te/pack/packer/start/nvim-tree.lua/lua/nvim-tree/api.lua:177: in function 'edit'
        ...te/pack/packer/start/nvim-tree.lua/lua/nvim-tree/api.lua:189: in function 'fn'
        ...te/pack/packer/start/nvim-tree.lua/lua/nvim-tree/api.lua:65: in function <...te/pack/packer/start/nvim-tree.lua/lua/nvim-tree/api.lua:62>

It has been a while since I've worked with LaTeX (few months), so I don't know when it broke precisely.
Other file types are working as expected (C & Lua I've tested).
Checkhealth
Output of :checkhealth nvim-treesitter:

==============================================================================
nvim-treesitter: require("nvim-treesitter.health").check()

Installation ~
- WARNING `tree-sitter` executable not found (parser generator, only needed for :TSInstallFromGrammar, not required for :TSInstall)
- OK `node` found v18.17.1 (only needed for :TSInstallFromGrammar)
- OK `git` executable found.
- OK `cc` executable found. Selected from { vim.NIL, "cc", "gcc", "clang", "cl", "zig" }
  Version: cc (GCC) 14.1.1 20240522
- OK Neovim was compiled with tree-sitter runtime ABI version 14 (required >=13). Parsers must be compatible with runtime ABI.

Config File
Here is my Treesitter Config File:
local status_ok, configs = pcall(require, "nvim-treesitter.configs")
if not status_ok then
	return
end

require("nvim-treesitter.configs").setup({
	-- A list of parser names, or "all" (the five listed parsers should always be installed)
	ensure_installed = "all",

	-- Install parsers synchronously (only applied to `ensure_installed`)
	sync_install = false,

	-- Automatically install missing parsers when entering buffer
	-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
	auto_install = true,

	-- List of parsers to ignore installing (for "all")
	ignore_install = { "" },

	---- If you need to change the installation directory of the parsers (see -> Advanced Setup)
	-- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")!

	highlight = {
		enable = true,
		-- NOTE: these are the names of the parsers and not the filetype. (for example if you want to
		-- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is
		-- the name of the parser)
		-- list of language that will be disabled
		disable = { "" },
		-- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files

		-- Setting this to true will run `:h syntax` and tree-sitter at the same time.
		-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
		-- Using this option may slow down your editor, and you may see some duplicate highlights.
		-- Instead of true it can also be a list of languages
		additional_vim_regex_highlighting = false,
	},
	autopairs = {
		enable = true,
	},
	-- ts-context-commentstring plugin logic
	context_commentstring = {
		enable = true,
		enable_autocmd = false,
	},
})

This is not an issue with this parser; you need to install tree-sitter to be able to use nvim-treesitter.

This is not an issue with this parser; you need to install tree-sitter to be able to use nvim-treesitter.

I have it installed already.

Then make sure neovim can find it (tree-sitter must be in $PATH).

Installing the tree-sitter-clipackage solved it.
It was an odd behavior though because every other language was working fine except LaTeX, so I just assume it couldn't fine a parser for LaTeX.

P.S.: For reference: I'm using Artix Linux.

It was an odd behavior though because every other language was working fine except LaTeX

That was pure coincidence; this would have happened for any parser that -- like this one since a while back -- does not commit the generated parser to the repository. There's a handful of these tracked in nvim-treesitter, and it will become much more common in the future.


[network] Allow pulling network identity from secure storage

This PR is pretty straight forward:

Add a means to specify where the networking key is coming from (config or storage)
Actually enable pulling the keys from storage
Enable pulling peer id from storage
Update management smoke test to ensure proper end-to-end correctness, so awesome
Remove no noise transports from config
Make the default networking config valid by having a key / peer id
Updates the peer id config handling to match our hardening issue: https://github.com/libra/libra/issues/3985

The management smoke tests is the proof of correctness

:umbrella: The latest upstream changes (presumably f570d86ab852caa718d0c448a3aa5797fdfc7e59) made this pull request unmergeable. Please resolve the merge conflicts.

Realized that the identity in networking should be both key and id, so I'm updating this. Will push this to draft for now.

:umbrella: The latest upstream changes (presumably 0770fb478ead72c62939a61eb9ce489e3aa9e956) made this pull request unmergeable. Please resolve the merge conflicts.

@bors-libra r=zekun000
feel free to give comments for follow ups, landing this before I get more breaking issues...
this changes our config files

:pushpin: Commit 8b71835 has been approved by zekun000

:hourglass: Testing commit 8b71835640caa8f5e907f318bc299048bd36b680 with merge ae1137df8d858067a5f4e64fa7b67e33c6234b57...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: zekun000
Pushing ae1137df8d858067a5f4e64fa7b67e33c6234b57 to master...


Cleanup and remove serializer as dependency

Q
A

Is bugfix?
❌

New feature?
❌

Breaks BC?
✔

Fixed issues
-

Also it would be great to have readme updated.


KNL-1348 Split out ToolConfigurationService

This also adds generics to the service, but the actual logic is unchanged.

Looks correct to me .... +1

Same here looks good.


Just a small issue with email layouts

I found that the header table of the html emails didn't look right - the right hand cell was a different height in various email clients. The change I propose is as below, which corrects the issue (at least for me):
File:  TicketDesk/TicketDesk/TicketDesk.Web.Client/Views/Emails/Ticket.Html.cshtml
Propsed new lines  (76-84):

                       @Model.Ticket.Title

I'm going to propose a slightly different change to the layout to get rid of treating this as two rows.
The original structure was a hackish solution for a minor display issue in older version of outlook, but the more recent versions seem to handle this as a single row well enough.
If you could try it out and let me know though, I'd appreciate it:

                        @Model.Ticket.TicketStatus.GetDisplayName()

<EMAIL_ADDRESS>

                        @Model.Ticket.Title

Looks fine to me Stephen.

I appreciate you taking the time to look it over. I'll put together a new release as soon as I can wrap up work on a broadcast notification features.


Add pagination to admin/projects using Kaminari and its default configs

Adds the requested features for Issue #1627
Fixes #1627

Thanks @acuppy! I left a couple comments, if you can remove the extra kaminari line in the Gemfile and the kaminari config then I'll get this merged and shipped 🏂

Merged, thanks!

@andrew Updated.


getCMSCompositeValidator() is called on a singleton rather than the actual record in ModelAdmin.

Affected Version: 4.7.3
Description
Observed:
Any functionality in the getCMSCompositeValidator method that requires actual data to exist on the record fails, because this method is called on a singleton rather than the true record.
Expected:
Any functionality in the getCMSCompositeValidator method that requires actual data to exist on the record should work as expected - the method should be called on the actual record (otherwise it could just be a static method)
Steps to Reproduce
1: Create a subclass of DataObject and use some record value inside the getCMSCompositeValidator method, e.g.:
public function getCMSCompositeValidator(): CompositeValidator
{
    $validator = parent::getCMSCompositeValidator();
    if ($this->isInDB()) {
        die('this is not a singleton');
    }
    return $validator;
}

2: Create a subclass of ModelAdmin and with the class from step 1 in the $managed_models array.
3: Open the new admin section, and click the button to create a new record. The record-data-specific condition will not be met, so that code will not run.
Proposed solution:
Remove the below:
// Validation
if (singleton($this->modelClass)->hasMethod('getCMSCompositeValidator')) {
    $detailValidator = singleton($this->modelClass)->getCMSCompositeValidator();
    /** @var GridFieldDetailForm $detailform */
    $detailform = $config->getComponentByType(GridFieldDetailForm::class);
    $detailform->setValidator($detailValidator);
}

The GridFieldDetailForm already calls $this->setValidator($record->getCMSCompositeValidator()); if no validator has been previously set - and it uses the actual record rather than a singleton.

My current workaround for this is to override the `` method in the ModelAdmin subclass as follows:
protected function getGridFieldConfig(): GridFieldConfig
{
    $config = parent::getGridFieldConfig();
    // Replace the GridFieldDetailForm with one that has no validator.
    $detailform = $config->getComponentByType(GridFieldDetailForm::class);
    $config->removeComponent($detailform);
    $config->addComponent(new GridFieldDetailForm(null, $detailform->getShowPagination(), $detailform->getShowAdd()));
    return $config;
}

It's not necessarily clear to me this behaviour is problematic ... if anything, it looks pretty sensible.
When your ModelAdmin form object is being built, it might not have a record attached to it yet. But it will still need its validator.
The Validator's php method receives all your submitted form data. So you should be able to use the submitted data to implement contextual validation rules.
In this context, having a "stateless" getCMSCompositeValidator method makes sense. Could you detail your exact use case a bit more?

When your ModelAdmin form object is being built, it might not have a record attached to it yet. But it will still need its validator.

The GridFieldDetailForm::handleItem method will get the instance if it exists, or else create a singleton at that stage. This means that when there is an actual record to use, if you haven't forced a validator onto the GridFieldDetailForm, it will fetch it from the actual existing record. If it doesn't exist, then a singleton is created by the GridFieldDetailForm but only if one doesn't exist.
This precludes the necessity of doing this step in ModelAdmin and ensures that the validator is fetched from the actual instance whenever possible.

The Validator's php method receives all your submitted form data

Normally this is enough. I have a very unique situation however where I need to conditionally send a different set of validators inside the composite validator depending on whether the record has already been saved or not. I won't go into exactly why I need to do this, but the system should be flexible enough to handle this case.

In this context, having a "stateless" getCMSCompositeValidator method makes sense

If the intention is that the method should always be 'stateless' why not make it static? I'm of the opinion that any instance method on a DataObject should be able to take advantage of real record data whenever a record exists.


Client Allocation Request for: 上海华仓通信技术有限公司

Client Allocation Questions
Core Information

Name: 上海华仓通信技术有限公司
Website / Social Media: http://www.hctxcenter.com/
DataCap Requested: 5TiB
Addresses to be Notarized: f15zmoxslhdyohjvxnem3b2n7ypue6p2j7pwlfxmy
Notary Requested: ann-shin

Hi, Here are more information of us:
*Name: 上海华仓通信技术有限公司 Website:http://www.hctxcenter.com/
*History working on IPFS / Filecoin: No history yet.
*Type, size and source of the data we are looking to store on Filecoin: There are many real data of customers in huacang computer room. We will store the data in huacang server. These data belong to customers. The data forms include text, picture, audio, video and so on.
*The relationship with the data: This part of the data belongs to private data; we will sign a contract with the data owner and encrypt the data to ensure the legitimacy and security of the stored data.
*How we intend to store the data on Filecoin: We will store multiple copies (5-15 copies) of a piece of data and send them to different miners (at least 4 stable miners, which require at least 2-3pib of computing power)
Thanks!

Thank you for your application. Because of our account problem, you need to login plus.fil.org to apply again.


Fix visualizations with composite compartmens like: S_humans or S_birds

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 44 (0.0%)  changed or added relevant lines in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.02%) to 37.672%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/Kendrick/Visualization.class.st
0
44
0.0%

Files with Coverage Reduction
New Missed Lines
%

src/Kendrick/Visualization.class.st
1
0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.02%

Covered Lines:
5488

Relevant Lines:
14568

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 44 (0.0%)  changed or added relevant lines in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.02%) to 37.672%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/Kendrick/Visualization.class.st
0
44
0.0%

Files with Coverage Reduction
New Missed Lines
%

src/Kendrick/Visualization.class.st
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.02%

Covered Lines:
5488

Relevant Lines:
14568

💛  - Coveralls


The plugin flutter_tindercard_plus doesn't have a main class

I have the following error please help me to solve this I
The plugin flutter_tindercard_plus doesn't have a main class defined in /home/crazyshit/.pub-cache/hosted/pub.dev/flutter_tindercard_plus-0.0.2/android/src/main/java/com/flutter/tindercard/plus/flutter_tindercard_plus/FlutterTindercardPlusPlugin.java or /home/crazyshit/.pub-cache/hosted/pub.dev/flutter_tindercard_plus-0.0.2/android/src/main/kotlin/com/flutter/tindercard/plus/flutter_tindercard_plus/FlutterTindercardPlusPlugin.kt. This is likely to due to an incorrect androidPackage: com.flutter.tindercard.plus.flutter_tindercard_plus or mainClass entry in the plugin's pubspec.yaml.
If you are the author of this plugin, fix the androidPackage entry or move the main class to any of locations used above. Otherwise, please contact the author of this plugin and consider using a different plugin in the meanwhile.

i'm stuck here too

I have the same issue! Does anyone solve this issue?


Specify http API for quotas and limits

We're going to have a new API as part of the ciao API for setting and querying the limits.

API is specified.


Time marker headline text much too big

Time marker headline text font-size much too big! (screenshot 1). Adding this rule to the styles.scss file fixes it (screenshot 2).
h2.tl-headline.tl-headline-fadeout {
font-size: 12px!important;
}

@rezeau !important is a code smell. That rule should not be used unless there's no other way. Isn't there? And feel free to create a pull request instead of creating an issue.

Please disregard this issue report. It was due to a conflict with the H2 styling in the Drupal theme I was using for my tests!


Issue when running training

I am tyring to run the training code:
python3 pl_training.py --gpu 2 --tasks-config sample_data/tasks_config.json bert-base-uncased fos
But I keep getting the following error:

`python3 pl_training.py --gpu 2 --tasks-config sample_data/tasks_config.json bert-base-uncased fos
Global seed set to 42
dict_keys(['cite_pred', 'year_pred', 'mesh', 'fos', 'search', 's2and', 'cite_context', 'specter'])
Some weights of the model checkpoint at bert-base-uncased were not used when initializing BertModel: ['cls.predictions.decoder.weight', 'cls.predictions.transform.dense.bias', 'cls.predictions.bias', 'cls.predictions.transform.LayerNorm.bias', 'cls.seq_relationship.bias', 'cls.predictions.transform.dense.weight', 'cls.predictions.transform.LayerNorm.weight', 'cls.seq_relationship.weight']

This IS expected if you are initializing BertModel from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).
This IS NOT expected if you are initializing BertModel from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).
/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/pytorch_lightning/trainer/connectors/accelerator_connector.py:446: LightningDeprecationWarning: Setting Trainer(gpus=2) is deprecated in v1.7 and will be removed in v2.0. Please use Trainer(accelerator='gpu', devices=2) instead.
rank_zero_deprecation(
Using 16bit native Automatic Mixed Precision (AMP)
GPU available: True (cuda), used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
HPU available: False, using: 0 HPUs
Trainer(val_check_interval=1.0) was configured so validation will run at the end of the training epoch..
Global seed set to 42
Initializing distributed: GLOBAL_RANK: 0, MEMBER: 1/2
Global seed set to 42
dict_keys(['cite_pred', 'year_pred', 'mesh', 'fos', 'search', 's2and', 'cite_context', 'specter'])
Some weights of the model checkpoint at bert-base-uncased were not used when initializing BertModel: ['cls.predictions.transform.LayerNorm.bias', 'cls.predictions.bias', 'cls.predictions.transform.dense.weight', 'cls.predictions.transform.dense.bias', 'cls.seq_relationship.weight', 'cls.predictions.decoder.weight', 'cls.seq_relationship.bias', 'cls.predictions.transform.LayerNorm.weight']
This IS expected if you are initializing BertModel from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).
This IS NOT expected if you are initializing BertModel from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).
Global seed set to 42
Initializing distributed: GLOBAL_RANK: 1, MEMBER: 2/2
2023-05-05 12:55:09 | INFO | torch.distributed.distributed_c10d | Added key: store_based_barrier_key:1 to store for rank: 1
2023-05-05 12:55:09 | INFO | torch.distributed.distributed_c10d | Added key: store_based_barrier_key:1 to store for rank: 0
2023-05-05 12:55:09 | INFO | torch.distributed.distributed_c10d | Rank 0: Completed store-based barrier for key:store_based_barrier_key:1 with 2 nodes.

distributed_backend=nccl
All distributed processes registered. Starting with 2 processes
2023-05-05 12:55:09 | INFO | torch.distributed.distributed_c10d | Rank 1: Completed store-based barrier for key:store_based_barrier_key:1 with 2 nodes.
{'train': 'https://ai2-s2-research-public.s3.us-west-2.amazonaws.com/scirepeval/train/cite_count/train.jsonl', 'val': 'https://ai2-s2-research-public.s3.us-west-2.amazonaws.com/scirepeval/train/cite_count/val.jsonl', 'test': 'https://ai2-s2-research-public.s3.us-west-2.amazonaws.com/scirepeval/test/cite_count/meta.jsonl'}
{'train': 'https://ai2-s2-research-public.s3.us-west-2.amazonaws.com/scirepeval/train/cite_count/train.jsonl', 'val': 'https://ai2-s2-research-public.s3.us-west-2.amazonaws.com/scirepeval/train/cite_count/val.jsonl', 'test': 'https://ai2-s2-research-public.s3.us-west-2.amazonaws.com/scirepeval/test/cite_count/meta.jsonl'}
{'train': 'https://ai2-s2-research-public.s3.us-west-2.amazonaws.com/scirepeval/train/pub_year/train.jsonl', 'val': 'https://ai2-s2-research-public.s3.us-west-2.amazonaws.com/scirepeval/train/pub_year/val.jsonl', 'test': 'https://ai2-s2-research-public.s3.us-west-2.amazonaws.com/scirepeval/test/pub_year/meta.jsonl'}
{'train': 'https://ai2-s2-research-public.s3.us-west-2.amazonaws.com/scirepeval/train/pub_year/train.jsonl', 'val': 'https://ai2-s2-research-public.s3.us-west-2.amazonaws.com/scirepeval/train/pub_year/val.jsonl', 'test': 'https://ai2-s2-research-public.s3.us-west-2.amazonaws.com/scirepeval/test/pub_year/meta.jsonl'}
{'train': 'https://ai2-s2-research-public.s3.us-west-2.amazonaws.com/scirepeval/train/mesh_descriptors/train.jsonl', 'val': 'https://ai2-s2-research-public.s3.us-west-2.amazonaws.com/scirepeval/train/mesh_descriptors/val.jsonl', 'test': 'https://ai2-s2-research-public.s3.us-west-2.amazonaws.com/scirepeval/test/mesh_descriptors/meta.jsonl'}
{'train': 'https://ai2-s2-research-public.s3.us-west-2.amazonaws.com/scirepeval/train/mesh_descriptors/train.jsonl', 'val': 'https://ai2-s2-research-public.s3.us-west-2.amazonaws.com/scirepeval/train/mesh_descriptors/val.jsonl', 'test': 'https://ai2-s2-research-public.s3.us-west-2.amazonaws.com/scirepeval/test/mesh_descriptors/meta.jsonl'}
Traceback (most recent call last):
File "/home/8lp/scirepeval/training/pl_training.py", line 326, in
trainer.fit(model)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 696, in fit
self._call_and_handle_interrupt(
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 650, in _call_and_handle_interrupt
return trainer_fn(*args, **kwargs)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 737, in _fit_impl
results = self._run(model, ckpt_path=self.ckpt_path)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1107, in _run
self._call_setup_hook()  # allow user to setup lightning_module in accelerator environment
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1451, in _call_setup_hook
self._call_lightning_module_hook("setup", stage=fn)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1552, in _call_lightning_module_hook
output = fn(*args, **kwargs)
File "/home/8lp/scirepeval/training/pl_training.py", line 238, in setup
self.load_data("train")
File "/home/8lp/scirepeval/training/pl_training.py", line 216, in load_data
data = datasets.load_dataset(**data_src[0], split=data_src[1],streaming=True)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/load.py", line 1670, in load_dataset
builder_instance = load_dataset_builder(
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/load.py", line 1473, in load_dataset_builder
builder_instance: DatasetBuilder = builder_cls(
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/builder.py", line 1285, in init
super().init(*args, kwargs)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/builder.py", line 347, in init
self.info = DatasetInfo.from_directory(self._cache_dir)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/info.py", line 284, in from_directory
return cls.from_dict(dataset_info_dict)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/info.py", line 289, in from_dict
return cls({k: v for k, v in dataset_info_dict.items() if k in field_names})
File "", line 20, in init
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/info.py", line 145, in post_init
self.features = Features.from_dict(self.features)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/features/features.py", line 1597, in from_dict
obj = generate_from_dict(dic)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/features/features.py", line 1280, in generate_from_dict
return {key: generate_from_dict(value) for key, value in obj.items()}
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/features/features.py", line 1280, in
return {key: generate_from_dict(value) for key, value in obj.items()}
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/features/features.py", line 1284, in generate_from_dict
return Sequence(feature=generate_from_dict(obj["feature"]), length=obj["length"])
KeyError: 'length'
/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/pytorch_lightning/strategies/ddp.py:428: UserWarning: Error handling mechanism for deadlock detection is uninitialized. Skipping check.
rank_zero_warn("Error handling mechanism for deadlock detection is uninitialized. Skipping check.")
Traceback (most recent call last):
File "pl_training.py", line 326, in
trainer.fit(model)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 696, in fit
self._call_and_handle_interrupt(
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 648, in _call_and_handle_interrupt
return self.strategy.launcher.launch(trainer_fn, *args, trainer=self, **kwargs)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/pytorch_lightning/strategies/launchers/subprocess_script.py", line 93, in launch
return function(*args, **kwargs)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 737, in _fit_impl
results = self._run(model, ckpt_path=self.ckpt_path)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1107, in _run
self._call_setup_hook()  # allow user to setup lightning_module in accelerator environment
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1451, in _call_setup_hook
self._call_lightning_module_hook("setup", stage=fn)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1552, in _call_lightning_module_hook
output = fn(*args, **kwargs)
File "pl_training.py", line 238, in setup
self.load_data("train")
File "pl_training.py", line 216, in load_data
data = datasets.load_dataset(**data_src[0], split=data_src[1],streaming=True)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/load.py", line 1670, in load_dataset
builder_instance = load_dataset_builder(
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/load.py", line 1473, in load_dataset_builder
builder_instance: DatasetBuilder = builder_cls(
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/builder.py", line 1285, in init
super().init(*args, kwargs)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/builder.py", line 347, in init
self.info = DatasetInfo.from_directory(self._cache_dir)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/info.py", line 284, in from_directory
return cls.from_dict(dataset_info_dict)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/info.py", line 289, in from_dict
return cls({k: v for k, v in dataset_info_dict.items() if k in field_names})
File "", line 20, in init
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/info.py", line 145, in post_init
self.features = Features.from_dict(self.features)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/features/features.py", line 1597, in from_dict
obj = generate_from_dict(dic)
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/features/features.py", line 1280, in generate_from_dict
return {key: generate_from_dict(value) for key, value in obj.items()}
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/features/features.py", line 1280, in
return {key: generate_from_dict(value) for key, value in obj.items()}
File "/home/8lp/anaconda3/envs/scirepeval/lib/python3.8/site-packages/datasets/features/features.py", line 1284, in generate_from_dict
return Sequence(feature=generate_from_dict(obj["feature"]), length=obj["length"])
KeyError: 'length'`

Any idea on how to solve this? I thought it could be an error with datasets or pytorch lightning but I have the correct versions loaded

Hello,
I setup a fresh local copy of the repo and ran your command but unfortunately was not able to replicate the issue. Since the issue seems to be coming from the datasets library, maybe it's worth trying to load just the dataset in a notebook to see if you get the same error?
import datasets
#training/validation/eval metadata
dataset = datasets.load_dataset("allenai/scirepeval", "mesh_descriptors")


Introduce a new, single-line raw string literal (single-line here-string alternative)

Note: This idea was first proposed by @bergmeister and fleshed out by @lzybkr in https://github.com/PowerShell/PowerShell/issues/2337#issuecomment-391152107, but only in the context of a proposal focused on something different (allowing indentation of the closing delimiter of here-strings).
Summary of the new feature/enhancement
To complement the existing raw / semi-raw, invariably multi-line here-string literals (@'<newline>...<newline>'@ /  @"<newline>...<newline>"@), it would be convenient  to have a single-line variant.
For lack of a better term I'll call the new variant a raw string literal.
For instance, here's how you could express verbatim string 6' 2":
# Note: leading and trailing whitespace inside the value will be ignored.

# single-quoted
@' 6' 2" '@

# double-quoted - as with double-quoted here-strings, string interpolation and `-escaping would work.
@" $feet' 2" "@

To avoid the need for escaping, allow a variable number of quotes in the delimiter to avoid the need for escaping; e.g.:
@'' using @' in here is now fine ''@

A use case that would benefit is wanting to pass a command line written for the native shell as-is to it (see also: #13068); e.g. (on Unix):
# WISHFUL THINKING
sh -c @' python -c 'print("hi")' | cat -n '@

Proposed technical implementation details (optional)
Backward compatibility assessment:
Since with the current here-string literals no (non-whitespace) characters are allowed on the same line after the opening delimiter, and given that trying to do that is currently a syntax error, this new string-literal variant is safe to introduce.
Disambiguation:
Anything that starts with @' or @" and is followed by non-whitespace characters on the same line is interpreted as the new raw string literal, requiring the closing delimiter to be on the same line.

Note: Conceivably, we could let the new variant span multiple lines as well, but it strikes me as conceptually cleaner to restrict the multi-line forms to the established here-string syntax.

Insignificant leading and trailing whitespace:
Ignoring whitespace surrounding the value serves two purposes:

It makes it easier to visually distinguish the delimiters from the enclosed value (e.g., @' 6' 2" '@ vs. @'6' 2"'@)
Since supporting a variable number of quotes in the delimiter is desirable (e.g., @'' @' is fine ''@), ignoring surrounding whitespace solves the problem of enclosed values starting or ending with a quote that would otherwise break the syntax (e.g., to embed verbatim 'hi, @''hi'@ wouldn't work syntactically, but @' 'hi '@ - with surrounding whitespace stripped on parsing - does.

Values that need surrounding whitespace to be significant:
In cases where you need the enclosed values start and/or end with whitespace, the following solutions are possible:

Use the double-quoted form, where `-escaping can be used to escape the spaces.

E.g., to get verbatim <space>a"b'<space>, you'd use @"` a"b'`<EMAIL_ADDRESS>

Alternatively, @TSlivede proposes considering only one leading/trailing space insignificant, in which case you merely need to add one extra space each to values with significant whitespace, in both the single- and double-quoted forms; e.g., @'<space>  a"b <space>'@ and @"<space> a"b<EMAIL_ADDRESS>However, a concern is that user may not expect that only a specific number (i.e., one) of spaces is insignificant; see below.

Alternatively, use the established multi-line here-string forms, where all whitespace is significant.

Thanks for creating an explicit issue for this!
Alternative suggestion regarding the removal of "Insignificant leading and trailing whitespace":
How about considering only a maximum of one leading space and one trailing space as "insignificant" and remove it?
This would still allow this:

It makes it easier to visually distinguish the delimiters from the enclosed value (e.g., @' 6' 2" '@ vs. @'6' 2"'@)
Since supporting a variable number of quotes in the delimiter is desirable (e.g., @'' @' is fine ''@), ignoring surrounding whitespace solves the problem of enclosed values starting or ending with a quote that would otherwise break the syntax (e.g., to embed verbatim 'hi, @''hi'@ wouldn't work syntactically, but @' 'hi '@ - with surrounding whitespace stripped on parsing - does.

And it would also improve "Values that need surrounding whitespace to be significant":
Just put one more space to the beginning and one more to the end.

Thanks, @TSlivede, I've folded your suggestion into the OP. I like it, but a slight concern is that the fact that the  behavior is tied to a specific number of spaces, i.e., exactly one, could be a bit obscure, and that people may be more used to any number of leading/trailing spaces being are insignificant, such as in inline code elements enclosed in ` in Markup.

people may be more used to any number of leading/trailing spaces being are insignificant

Yes you are right, the syntax I suggested might be very surprising to new users, maybe it's not such a good idea after all.
It could for example be especially problematic, if someone want's a string leading with e.g. 4 spaces. To test if spaces are preserved he enters @'    test string'@ (4 spaces) and powershell prints test string preceded by three spaces, which looks very similar to four leading spaces. That user would probably not notice the missing space and would now have a very subtle bug in his code...

Good points. I take it then that this would require at least the initial leading space to be escaped with `` ```?

@vexx32, yes, but note that the use of ` for escaping requires a switch to the double-quoted form, because in the single-quoted one the ` would be a literal. Using a single-quoted (invariably multi-line) here-string instead avoids that.

@mklement0 You may want to remove

Alternatively, @TSlivede proposes considering only one leading/trailing space insignificant, in which case you merely need to add one extra space each to values with significant whitespace, in both the single- and double-quoted forms; e.g., @'<space> a"b <space>'@ and @"<space> a"b<EMAIL_ADDRESS>

from your original post again. If you want to keep it, I'd suggest to "unindent" (I don't know if thats the correct term) that paragraph by one level, such that it is not a subpoint of "Use the double-quoted form, where `-escaping can be used to escape the spaces."
I'll delete this comment after you unindented or removed that paragraph (to keep the discussion clean), so you don't have to answer to this :-)

@TSlivede :) I've unindented the paragraph, and I've also added our (later) concern about the suggestion expressed therein.

Another alternative idea:
Allow only a maximum of three quotes in the delimiters and don't remove leading/trailing whitespace.
This way we would lose the visual advantage

It makes it easier to visually distinguish the delimiters from the enclosed value (e.g., @' 6' 2" '@ vs. @'6' 2"'@)

(@' 6' 2" '@ and @'6' 2"'@ would not be equivalent)
But we would gain an easy option for leading or trailing significant whitespace.
Leading quotes would also be easy: As only a maximum of three quotes are considered part of the string delimiter, the fourth quote would be a literal quote.
e.g., to embed verbatim 'hi one could use @''''hi'''@
As with my previous suggestion the behavior is tied to a specific number of quotes (not spaces in this case 😉). But three quotes is something users might already have seen for here strings: python, kotlin, scala, groovy,

Addition to that suggestion: To allow embedding literal '''@ maybe allow multiple (unlimited?) @ symbols in the string delimiters. E.g.:
@@'some string containing >>>'@<<< delimited with multiple @-symbols'@@


core is not a function

I am getting following error and not sure how to fix
core is not a function
toHTML@http://localhost:3001/static/js/bundle.js:1070:52
Here is a bit from my package.json
"dependencies": {
"@bbob/core": "^3.0.2",
"@bbob/html": "^3.0.2",
"@bbob/preset-html5": "^3.0.2",
"react": "^18.2.0",
what I am importing
import bbobHTML from '@bbob/html'
import presetHTML5 from '@bbob/preset-html5'

How i am using it   "roadEncounters.events"  is a json array objects

                {roadEncounters.events.map(function (event) {
                    return (

{event.name}

{event.flavor}

{bbobHTML(event.details, presetHTML5())}

                    )
                })}

Hi, can you please provide vite or webpack config, or maybe link to repo with minimal example that represents this problem?

I tried to use this library in my SvelteKit project now, and I get a very similar error for my code.
/src/routes/+page.svelte

	{bbobHTML(`[i]Text[/i]`, presetHTML5())}

TypeError: __vite_ssr_import_2__.default is not a function
    at /Users/peter/projects/bbob-import-error/src/routes/+page.svelte:9:38
    at Object.$$render (/Users/peter/projects/bbob-import-error/node_modules/svelte/src/runtime/internal/ssr.js:156:16)
    at Object.default (/Users/peter/projects/bbob-import-error/.svelte-kit/generated/root.svelte:45:41)
    at /Users/peter/projects/bbob-import-error/node_modules/@sveltejs/kit/src/runtime/components/layout.svelte:5:41
    at Object.$$render (/Users/peter/projects/bbob-import-error/node_modules/svelte/src/runtime/internal/ssr.js:156:16)
    at /Users/peter/projects/bbob-import-error/.svelte-kit/generated/root.svelte:44:40
    at $$render (/Users/peter/projects/bbob-import-error/node_modules/svelte/src/runtime/internal/ssr.js:156:16)
    at Object.render (/Users/peter/projects/bbob-import-error/node_modules/svelte/src/runtime/internal/ssr.js:164:17)
    at Module.render_response (/Users/peter/projects/bbob-import-error/node_modules/@sveltejs/kit/src/runtime/server/page/render.js:171:29)
    at async Module.render_page (/Users/peter/projects/bbob-import-error/node_modules/@sveltejs/kit/src/runtime/server/page/index.js:286:10)

I created a new fresh SvelteKit project and tried to use this library there, but still the same error. The project and reproducible instructions are available at https://github.com/PeppeL-G/bbob-import-error.
I tried to search for a solution and found a guy who had a similar problem with another library, and someone pointed out that the problem was that that library didn't had type set to module in the package.json file in the library. I'm not good at CommonJS VS EcmaScript when it comes to npm packages, so maybe it's not relevant, but thought I could mention it ^^

Good. Thanks!

@PeppeL-G
I checked https://github.com/PeppeL-G/bbob-import-error repo.
Currently @bbob don't support type: module
I think you can fix this problem if remove type: module support to commonjs

You can use https://esm.sh/ to wrap this package and enable esm support, also tune vite config to support imports from https

Thanks for looking into this, @JiLiZART.
If I understand you correct, you are basically saying that the usage examples in the README file are wrong? Because they show that it should be used as an ECMAScript module?

Usages in examples assumes that you have babel/swc/typescript transpiler configured

Gosh, this CommonJS modules VS ECMAScript modules drives me crazy xD
In an ECMAScript module executed by Node.js, I've noticed that the following works:
import bbobHTML from '@bbob/html'
import presetHTML5 from '@bbob/preset-html5'

console.log(`Hello`, bbobHTML.default(`[i]Text[/i]`, presetHTML5.default()))

This workaround in Node.js (with adding .default) is needed and works because @bbob/html and @bbob/preset-html5 have been transpiled from TypeScript to CommonJS modules, correct? And this works in the Node.js world because Node.js supports interoperability between CommonJS modules and ECMAScript modules? (though I'm surprised that I need to add .default, but maybe that's simply how it is)
But the same workaround does not work in web browsers, because web browsers don't have this interoperability, but only support ECMAScript modules?
SvelteKit, which in turn uses Vite, does support TypeScript, which @bbob/html and @bbob/preset-html5 are implemented in. Can I somehow import the TypeScript modules from @bbob/html and @bbob/preset-html5 in my own app, instead of importing the transpiled CommonJS modules?

Deploying ESM versions of this packages not possible. Cause it requires type: module in package.json thats breaks all commonjs behaviors. So to solve support of ESM requires publish separate ESM package or break BC for this packages.

Deploying ESM versions of this packages not possible. Cause it requires type: module in package.json thats breaks all commonjs behaviors. So to solve support of ESM requires publish separate ESM package or break BC for this packages.

Can we just rename the ESM file output to .mjs instead of .js? And then add back the corresponding package.json entry, so we need to fix the es path import as well...

It's currently not possible ship CommonJS and ESM at the same time.

It's currently not possible ship CommonJS and ESM at the same time.

You can, if you change the extension to .mjs extension, and CommonJS to .cjs extension and let node handle the rest.


String with Kanji not recognized as Japanese/only partial romajization

When the input string is mixed Kanji/Hiragana/Katakana, it is not recognized as Japanese, and the transformation to Romaji leaves the Kanji characters:
var wanakana = require('wanakana');

console.log(wanakana.toRomaji('感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高！', { passRomaji: true }));
console.log(wanakana.isJapanese('感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高！'));
console.log(wanakana.isJapanese('泣き虫。！〜２￥ｚｅｎｋａｋｕ'))

outputs
感ji取retara手wo繋gou,重narunoha人生norain and remiria最高!
false
true

console.log(wanakana.toRomaji('感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高！', { passRomaji: true }));

passRomaji is for use with converting to kana, it has no affect in toRomaji.
http://wanakana.com/docs/global.html#toHiragana
Kanji characters are not converted to romaji because their reading is contextual, which is outside the scope of Wanakana.
You can see an explanation and possible approaches to handle this here:
https://github.com/WaniKani/WanaKana/issues/81
console.log(wanakana.isJapanese('感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高！'));

This string has English in it (and) so it's not all Japanese. This should result in false.
console.log(wanakana.isJapanese('泣き虫。！〜２￥ｚｅｎｋａｋｕ'))

This string has zenkaku (full-width latin characters) which we allow to pass since Japanese texts that reference English names are still in a Japanese format. IE: NHK news. Any normal latin characters will result in false as seen in the previous call with "and".
If it helps, compare normal English with zenkaku chars below:
zenkaku
ｚｅｎｋａｋｕ
Does this information help answer your questions?

I get input where names are apparently commonly in Kanji. The solutions listed in #81 won't work for my context as they depend on external executables (I've added a comment to #81).
Thanks for the feedback in any case. I'll try to hack around kuroshiro.


xd-2972: ensure eclipse metadata files are correct java level

Ensures the source/target are set to 1.7 for created metadata. Without this the eclipse gradle plugin will set them to the level of the JDK you are running the gradle command on...

LGTM, verified the eclipse metadata file .settings/org.eclipse.jdt.core.prefs under the sub projects have the correct java level and could import the projects into STS. Rebased and merged as  273086177f70e8569dddb3fd712d73a3c970298e. Also pushed to 1.1.x 8f45d55e99ea5e9def942bab5c0e88924f3728f7.


Sync Carousels: aria-describedby has no matching id

short description of the bug / issue, provide more detail below.

If you sync two carousels, the aria-describedby attribute of the slides of the 'main' carousel without the dots will never find a corresponding 'id'.
====================================================================
Steps to reproduce the problem
Check the synced carousel here: http://kenwheeler.github.io/slick/

Inspect the aria-describedby attribute of the first carousel
There is nowhere an id that matches with the attributes value because the second sync carousel has its own instance and so generates a different numeration

====================================================================
What is the expected behaviour?

If there is no corresponding id, don't print the aria-describedby attribute.
Or print out the correct id in the thumbnails that match to the aria-described attributes.

More Details

Which browsers/versions does it happen on?
Chrome
Which jQuery/Slick version are you using?
1.6

I just tested master, it's fixed there.

A fiddle with 1.6.0
Inspect the elements, you will see: aria-describedby="slick-slide00" ...
http://jsfiddle.net/jackblackCH/coxbbe9s/2/

Should be fixed in new release. Thanks!


Failed on build mac OSX 10.12 - 'mutex' file not found

/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -g -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/local/include -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/re2.cpp -o build/temp.macosx-10.6-intel-2.7/src/re2.o -std=c++11 In file included from src/re2.cpp:202: /usr/local/include/re2/re2.h:186:10: fatal error: 'mutex' file not found #include <mutex>          ^ 1 error generated. error: command '/usr/bin/clang' failed with exit status 1

actually, I did meet this problem before, but finally , I try to install re3 which is the new version of re2. It worked. And everything is going fine now.
after you install the re3, the process of importing this library is the same
like:
> import re2

The re2 , what we're going to install , is the version 0.2.22 and the re3 is the version 0.2.23.
Hopefully, this will help you!

Not on a mac - osx 10.13.5
$ pip3 install re3
Collecting re3
Could not find a version that satisfies the requirement re3 (from versions: )
No matching distribution found for re3
Works with python2, not with python3.


errors for duplicate declaration when double versions of the same package is installed

Hi,
this is and issue I had a few times upgrading aurelia packages during the preview time, but I think may a problem even in production, because looks like that frameworks like aurelia and angular 2 are going to add .d.ts files inside the packages.
the problem is that upgrading the standard set of aurelia packages, I can have another additional package that still references an older version of some standard packages, as aurelia-templating and so on.
At runtime I don't see any problem, because module loaders can handle multiple versions of the package, but there is the problem that inside the project you have two versions of the same .d.ts file almost identical.
How can I handle this?

the package should not expose a loose .d.ts, it should be a module, modules do not conflict with each other, i.e. no "duplicate declaration" errors. can you elaborate on the details a bit?

I found this with aurelia packages during the preview: the<EMAIL_ADDRESS>package contains aurelia-framework.d.ts that contains inside declare module 'aurelia-framework' ....
During the preview I had this situation:

before the preview I have, for example<EMAIL_ADDRESS>that contains aurelia-templating.d.ts .
after the update of packages I have<EMAIL_ADDRESS>that contains aurelia-templating.d.ts
If in addition to the framework packages I have installed other compoents that depends on the previous build and are not still updated, it may happen that I find installed both 0.17 and 0.18 versions of the templating package, and each of them contains a version of aurelia-templating.d.ts.

The module can handle this and serves the correct version of the module, but typescript find both the d.ts files and start to give errors of duplicate declaration.
I explained the situation?

i think the Aurelia package should not include these .d.ts files. these files pollute the global namespace, and adding them this way causes conflicts. see this wiki page for more details: https://github.com/Microsoft/TypeScript/wiki/Typings-for-npm-packages
i would say it should be a module, just like what typescript typings are see: https://github.com/Microsoft/TypeScript/blob/master/lib/typescript.d.ts#L2192

Hmm... I supposed this answer, just surprised because at the moment aurelia and angular 2 teams are using this approach, but I don't know if they'll do the same at rtm.
I'll try to get in touch with some member via gitter to understand a little better the situation.

the files they include declare a module, the problem is that in this situation we have due files that describe the same module, causing conflicts.
I spoke with a few people using gitter (I don't know if part of the core team): the issue is known and accepted, and their answer is to remove the duplication source manually.
Remembering a few posts read in the past I suppose this is considered a minor drawback compared to the advantage of having .d.ts files up, running and aligned with the library in a single step.
thinking of is I suppose that in the future this could be a problem: for example, angular include a version of rxjs that could be different from the latest one I obtain installing directly the package, and both angular and rxjs let to export the observable object.
In this scenario you can easily export two different versions of observable in the same source, possibly with differences in the .d.ts creating problems using the same .d.ts with the same definition, but honestly at the moment I don't think is a common scenario

This area has admittedly been lacking documentation and a coherent strategy. we are currently working on this. issue https://github.com/Microsoft/TypeScript/issues/6438 tracks better documentation here.


Preview links

@rdunk —
When inside the CMS you can view, in preview mode, an unpublished piece of content. You're taken to a URL and can view the page. However, when this link is sent to someone else, the page returns a 404 error.
Case in point: the unpublished Podium article. It can be previewed but the link doesn't work once set. Can we keep this "preview" link available for all users who have it? This will be very handy in terms of facilitating workflows.
The current publishing state is as follows:

We believe we've had the ability to do this previously. Can you shed some light on this issue?

@chrismplus I'm not sure I follow this one. If a page is published and hidden, you should be able to share the preview "View" tab URL with anyone, as long as it includes the preview parameter in the URL? The current Podium article I can see is both hidden and unpublished, which means currently nobody will be able to preview it.

@rdunk — yes—I've had to unpublish it to hide it from the Podium and Issue landing pages. If just "hidden" is checked, the article lists on these pages.
When the article was in "Hidden" mode—the page was not viewable for preview—a 404 error appeared instead of the actual page.

Hmm, both sound incorrect, I'll try and find out why this is happening.

Thanks @rdunk — as illustrated there are two issues here:

Being unable to send preview links to people.
'Hiding' the article doesn't seem to work at the moment—it lists on Podium/Issue landing pages regardless of its status.

With regards to point 2, had the hidden article been previously manually added to the "Recent Articles" list in the CMS? I've added an additional check so this shouldn't matter in future, but I imagine that's what the problem was.
With regards to preview links, I can't seem to replicate these not working properly at all. Provided they have the required "password" parameter at the end of the URL (i.e. copied exactly as the link appears when navigating from the View tab), they should work as intended for hidden, published pages.

Thanks, @rdunk —
unable to replicate preview link issue. Closing.


Test displaying a static photo

Get a URL for a public photo
Try send it to the default media web receiver

Also check out this library:
https://github.com/infil00p/FlickrChromeCast


No preview while using cutter.

When I use the cutter, there is no preview just empty background, with the cutter menu and no image at all.
The error log says this - File does not exist: /opt/google/gehttpd/htdocs/t2.kmdatabaseversion, referer: http://<IP_ADDRESS>/cutter/index.html?server=t2.kmdatabaseversion=1

Looks like we missed this one. In recent releases the cutter has been working correctly, so I'm going to close this. If you're still having problems you can reopen this issue, create a new one, or ask on Slack.