validation fails when block-list input is undefined

Type of issue
Bug Report
Description
We would like to use this feature, but somehow we are not able to make it run even if we simply follow the example in the readme, the integration https://github.com/Lightning-AI/lightning/pull/17484 and the error:
with:
    issue-form: {
    "bug_description": "test",
    "versions": "ver: 1.6.x",
    "how_to_reproduce_the_bug": "",
    "error_messages_and_logs": "```\r\n# Error messages and logs here please\r\n```",
    "environment": "\r\n  Current environment\n\n```\r\n#- Lightning Component (e.g. Trainer, LightningModule, LightningApp, LightningWork, LightningFlow):\r\n#- PyTorch Lightning Version (e.g., 1.5.0):\r\n#- Lightning App Version (e.g., 0.5.2):\r\n#- PyTorch Version (e.g., 2.0):\r\n#- Python version (e.g., [3](https://github.com/Lightning-AI/lightning/actions/runs/4822458653/jobs/8589717538#step:4:3).[9](https://github.com/Lightning-AI/lightning/actions/runs/4822458653/jobs/8589717538#step:4:9)):\r\n#- OS (e.g., Linux):\r\n#- CUDA/cuDNN version:\r\n#- GPU models and configuration:\r\n#- How you installed Lightning(`conda`, `pip`, source):\r\n#- Running environment of LightningApp (e.g. local, cloud):\r\n```\n\n",
    "more_info": ""
  }
    section: versions
    token: ***
Error: , versions, undefined | , versions, undefined
Error: undefined, undefined,  | , versions, undefined
Error: An instance of Labeler has failed the validation:
 - property _inputs._blockList has failed the following constraints: minLength

The failing run is https://github.com/Lightning-AI/lightning/actions/runs/4822458653/jobs/8589717538
Also, it is confusing as the step is :green_circle: even if it fails inside
Describe the solution you'd like
No response

seems that the issue comes with multiple: true

Hi,
Thank you for reporting this issue. I'm sorry advanced-issue-labeler doesn't work for you on the first try.
I did some debugging on my fork -  https://github.com/jamacku/lightning/issues

Error: An instance of Labeler has failed the validation:
  - property _inputs._blockList has failed the following constraints: minLength

It seems that the validation of the block-list input is incorrect. Your issue can be workaround by setting block-list input to some value
- name: Set labels based on severity field
        uses: redhat-plumbers-in-action/advanced-issue-labeler@v2
        with:
          issue-form: ${{ steps.issue-parser.outputs.jsonString }}
          section: versions
          block-list: |  # <-- this value needs to be set (workaround)
            None
          token: ${{ secrets.GITHUB_TOKEN }}

Error: , versions, undefined | , versions, undefined
Error: undefined, undefined,  | , versions, undefined

The rest of the errors can be ignored, I plan to use a new validation library that should be more flexible and reliable than the current one.

UPDATE: with multiple also . is problematic character

The character . should not be an issue. The only unsupported character is ,.
I'm sorry that you have encountered these issues, I'll try to fix them ASAP and improve logging.

I was playing with block-list inside the advanced-issue-labeler.yml so it did not fail but also did not add any labels...
see my debugging in https://github.com/Borda/lightning/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc before I'll nude this working fork

I have tried the following setup:
1_bug_report.yaml
- type: dropdown
    id: versions
    attributes:
      label: What version are you seeing the problem on?
      description: select all version where you have experienced this issue
      multiple: true
      options:
        - "v1.6.x"
        - "v1.7.x"
        - "v1.8.x"
        - "v1.9.x"
        - "v2.0.x"
        - "master"
    validations:
      required: true

advanced-issue-labeler.yml
policy:
  - section:
    - id: ['versions']
      block-list: []
      label:
        - name: "ver: 1.6.x"
          keys: ['v1.6.x']
        - name: "ver: 1.7.x"
          keys: ['v1.7.x']
        - name: "ver: 1.8.x"
          keys: ['v1.8.x']
        - name: "ver: 1.9.x"
          keys: ['v1.9.x']
        - name: "ver: 2.0.x"
          keys: ['v2.0.x']
        - name: "ver: 2.1.x"
          keys: ['master']

labeler-issue.yml
name: Label Issues
on:
  issues:
    types: [opened, edited]

permissions:
  contents: read

jobs:
  label-component:
    runs-on: ubuntu-latest

    permissions:
      # required for all workflows
      issues: write

      # only required for workflows in private repositories
      actions: read
      contents: read

    steps:
      - uses: actions/checkout@v3

      - name: Parse issue form
        uses: stefanbuck/github-issue-parser@v3
        id: issue-parser
        with:
          template-path: .github/ISSUE_TEMPLATE/1_bug_report.yaml

      - name: Set labels based on severity field
        uses: redhat-plumbers-in-action/advanced-issue-labeler@v2
        with:
          issue-form: ${{ steps.issue-parser.outputs.jsonString }}
          section: versions
          token: ${{ secrets.GITHUB_TOKEN }}

https://github.com/jamacku/lightning/issues/5

It labeled issues correctly. In the advanced-issue-labeler.yml config file, the property block-list is required. It would make sense to make it optional, but for now, it is required. You have to use block-list: []

@Borda Issue with block-list should be fixed in the latest version (v2.0.5). If your issue continues, you can reopen this issue or open a new one.

seems to be working, just still curious, what is the remaining error:
Error: undefined, undefined,  | undefined, undefined, undefined
https://github.com/Borda/lightning/actions/runs/4872720466/jobs/8691304772

seems to be working, just still curious, what is the remaining error: Error: undefined, undefined, | undefined, undefined, undefined https://github.com/Borda/lightning/actions/runs/4872720466/jobs/8691304772

It is from a forgotten debug log, but I fixed it a long time ago. Unfortunately, due to a broken release workflow, the v2 tag wasn't updated to use the latest version of advanced-issue-labeler. This should be addressed by:

#224

Thank you for letting me know. I test this Action usually against main or my development branch, so I didn't notice this issue.


Change properties of Modal

Consider following scenario:
const SomeComponent: FC = () => {
	const {
		dispatchFileAction,
		files
	} = useFile()
	return (
	    <button
		    onClick={ (): void => {
			    Reoverlay.showModal(FileBrowserModal, {
				    files,
				    onFolderOpen: (file): void => {
					    void dispatchFileAction({
						    payload: file.key,
						    type: EFileAction.openDirectory
					    })
				    }
			    })
		    } }
		    type="button"
	    >
		    Toggle File Browser
	    </button>
	)
}

How would I correctly update properties of the used modal FileBrowserModal?
Would be a static method like Reoverlay.updateProps feasable?

@InsOpDe That sounds like a good idea, but you can actually access files in FileBrowserModal component itself. You don't need to pass it as props I'm saying...

Thanks for your reply.
That might work for this particular scenario, but it is no solution you can apply to all problems


Add native transformations to skip one or more characters at the beginning or end of a text

It should be possible to use the following native transformations:

text-to-skip-first-chars(int)
text-to-skip-last-chars(int)

If the text length is less or equal to the count of characters to skip then the result is an (empty) text.

Beta available at https://ci.appveyor.com/project/Seddryck/nbi/builds/27972895/artifacts or 1.21.0-beta0221


Short tutorial for Array methods in JS

URL(s)

Request type

[ * ] New documentation
[ ] Correction or update

Details

Hi, i just made a short document of the popular and most used array methods in JS. You can add it in the MDN docs, if you like it.
Array methods.pdf
Let me know if you like me to add something, or it needs correction.
Thanks.

Thanks for sharing. I don't think we want to put this on MDN — we already have this information on site, albeit it in a different form/structure.


Use keyword arguments in Location super init call

Change the Location constructor to call its super constructor using keyword arguments. This change makes it possible to instantiate a custom location that extends both Location and CustomIdentified.
Closes #414

import sbol3
class CustomLocationClass(sbol3.Location, sbol3.CustomIdentified):
def init(self, sequence=sbol3.Sequence('my_seq', elements='atcg'),
*, type_uri=PYSBOL3_CUSTOM_LOCATION, identity=None'):
         self.foo_int = sbol3.IntProperty(PYSBOL3_CUSTOM_INT,
                                     0, math.inf)

//Calling the class
custom_loc = CustomLocationClass()
Tried this and it worked. I removed the super as it is not that necessary and supplied eyword argments to init


Update: CozyCloud.CozyDrive version 3.28.1

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

WTF, I just finished the manifest one minute ago. Just saw this as the latest PR when I went to create my PR.

WTF, I just finished the manifest one minute ago. Just saw this as the latest PR when I went to create my PR.

Huhu, just refreshed my RSS feed after 3 hours and noticed the update C:
Just setup every package with a GitHub release url to my RSS feed so gonna be first to spot the release now :o

This is actually an extremely smart approach!

Very, unless the RSS reader can only hold 30% of the links and you notice it after you're done🤦♂


Add confirmation dialog before deleting a link

Is your feature request related to a problem? Please describe.
Right now the created links are deleted as soon as "Delete" is clicked, this is not ideal
Describe the solution you'd like
Add a confirmation dialog which first asks the user if they want to delete the link or not

Hey, I'd like to do it. Assign it please.

I would like to add this confirmation dialog, can you please assign it to me?

Oh I think I am 1 minute late to this. @i-aryan  just posted a comment when I was writing.

Hey @i-aryan please go ahead

@haseeb1009 there are a few more issues present, please have a look at them too :)

@monizb  Right now almost all issues are already assigned. I will check when any new issue is opened.


Coq 8.19 and VST 2.14

It seems that _CoqProject is missing:
# coq_makefile -f _CoqProject -o CoqMakefile
# Error: _CoqProject: No such file or directory.

I think that coq-certigraph.opam needs updates to match the new makefile and the new Coq version.


Formatting is not preserved in imports renamed with =>

If I have the following imports (formatted with spaces.inImportCurlyBraces = true in scalafmt, which adds spaces within the curly braces), and if they are already correctly organized:
import bar.{ Bar => Baz }
import foo.{ Foo1, Foo2 }

then organize-imports preserves the formatting of the second line, but not the first line (the spaces within the curly braces are removed):
import bar.{Bar => Baz}
import foo.{ Foo1, Foo2 }

I have only noticed this in lines where an import is renamed using the => syntax.
This is not a problem in my opinion for formatting code (we just run organize-imports first, and then scalafmt, which makes sense anyway) ; but it's an issue when checking already formatted code with the -check option, since it detects a difference.
I tested with the following configuration:
OrganizeImports {
  coalesceToWildcardImportThreshold = 50
  expandRelative = false
  groupExplicitlyImportedImplicitsSeparately = false
  groupedImports = Merge
  groups = ["re:javax?\\.", "scala.", "*", "my.app.package"]
  importSelectorsOrder = SymbolsFirst
  importsOrder = SymbolsFirst
  removeUnused = true
}

Hey @guilgaly, thanks for reporting! I tried the following diff but failed to reproduce this issue:
diff --git a/input/src/main/scala/fix/FormatPreserving.scala b/input/src/main/scala/fix/FormatPreserving.scala
new file mode 100644
index 0000000..fe8de14
--- /dev/null
+++ b/input/src/main/scala/fix/FormatPreserving.scala
@@ -0,0 +1,19 @@
+/*
+rules = [OrganizeImports]
+OrganizeImports {
+  coalesceToWildcardImportThreshold = 50
+  expandRelative = false
+  groupExplicitlyImportedImplicitsSeparately = false
+  groupedImports = Merge
+  groups = ["re:javax?\\.", "scala.", "*", "my.app.package"]
+  importSelectorsOrder = SymbolsFirst
+  importsOrder = SymbolsFirst
+  removeUnused = true
+}
+ */
+
+package fix
+
+import java.lang.{ Long => JLong }
+
+object FormatPreserving
diff --git a/output/src/main/scala/fix/FormatPreserving.scala b/output/src/main/scala/fix/FormatPreserving.scala
new file mode 100644
index 0000000..687b140
--- /dev/null
+++ b/output/src/main/scala/fix/FormatPreserving.scala
@@ -0,0 +1,5 @@
+package fix
+
+import java.lang.{ Long => JLong }
+
+object FormatPreserving

If your project is open-source, could you please let me know where the repo is? If not, could you please help to provide a repro?

Sadly it's not an open source project, and I'm not sure what might cause the differece, but I'm going to try to come up with a repro.

I have minimized one example from my project here: https://github.com/guilgaly/repro-organize-imports
Running sbt scalafixAll shows the change on line 10 of the file MyController.scala when I test it.

Thanks, @guilgaly! I reproduced this issue with the following diff:
diff --git a/input/src/main/scala/fix/FormatPreserving.scala b/input/src/main/scala/fix/FormatPreserving.scala
new file mode 100644
index 0000000..56f7fc1
--- /dev/null
+++ b/input/src/main/scala/fix/FormatPreserving.scala
@@ -0,0 +1,12 @@
+/*
+rules = [OrganizeImports]
+OrganizeImports.groupedImports = Merge
+ */
+
+package fix
+
+import fix.MergeImports.FormatPreserving.g1.{ a, b }
+import fix.MergeImports.FormatPreserving.g2._
+import fix.MergeImports.FormatPreserving.g2.{ d => D }
+
+object FormatPreserving
diff --git a/output/src/main/scala/fix/FormatPreserving.scala b/output/src/main/scala/fix/FormatPreserving.scala
new file mode 100644
index 0000000..15f69fc
--- /dev/null
+++ b/output/src/main/scala/fix/FormatPreserving.scala
@@ -0,0 +1,7 @@
+package fix
+
+import fix.MergeImports.FormatPreserving.g1.{ a, b }
+import fix.MergeImports.FormatPreserving.g2._
+import fix.MergeImports.FormatPreserving.g2.{ d => D }
+
+object FormatPreserving
diff --git a/shared/src/main/scala/fix/MergeImports.scala b/shared/src/main/scala/fix/MergeImports.scala
index 5aad18b..16d26fa 100644
--- a/shared/src/main/scala/fix/MergeImports.scala
+++ b/shared/src/main/scala/fix/MergeImports.scala
@@ -45,4 +45,16 @@ object MergeImports {
     object b
     object c
   }
+
+  object FormatPreserving {
+    object g1 {
+      object a
+      object b
+    }
+
+    object g2 {
+      object c
+      object d
+    }
+  }
 }

Test failure output:
###########> Diff       <###########

===========RuleSuite 1s
=> Obtained
===========

package fix

import fix.MergeImports.FormatPreserving.g1.{ a, b }
import fix.MergeImports.FormatPreserving.g2._
import fix.MergeImports.FormatPreserving.g2.{d => D}

object FormatPreserving

=======
=> Diff
=======
--- obtained
+++ expected
@@ -4,3 +4,3 @@
 import fix.MergeImports.FormatPreserving.g2._
-import fix.MergeImports.FormatPreserving.g2.{d => D}
+import fix.MergeImports.FormatPreserving.g2.{ d => D }

@guilgaly, PR #128 and #129 should have fixed this issue. Please give the 0.4.3+11-29aba3eb-SNAPSHOT snapshot release a try and let me know whether it works for you.

@guilgaly, at least it works for your repro repo :)

I can confirm that it also works on my real project. 👍
BTW, I had already tested this tool with a colleague, over the past few weeks, on another project (with different formatting rules, so it didn't show the same issue) and we've been super happy with it. 🙂

Thanks for the feedback, I'm closing this one and will prepare for the 0.4.4 release to include this fix.


[Bug]: argument passed to query.run() cannot be accessed by {{this.params.key}}

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Usually, you can write JS functions that call query run method like this:
query.run(params)

and then in the query, access the params by doing
{{this.params.keys}}

which is quite useful for performing validations and editing forms.
However, this stopped working few days ago after the recent update and most things are broken.
Steps To Reproduce

Create a Query for fetching data, e.g for a table
Create a widget that filter that data.
attach a JS function that calls the query.run() method with params
access the params within the query with {{this.params.keys}}
All Params Keys are undefined

Public Sample App
No response
Environment
Production
Issue video log
No response
Version
Appsmith Business v<IP_ADDRESS>

@obafemiolorungbon could you please share the piece of code from where you are calling query.run() ? Moreover if possible, I'd like to get access to your app and see the issue in action. Could you please reachout to our support team on<EMAIL_ADDRESS>Or on Discord?


feat(view): added filtering by brushing in temporal filter

Related issue
refer #250
Result
added filtering by brushing in temporal filter
TODO

remove date filter
add reset button

👍👍👍👍👍👍👍👍👍!


issues with require caching

we're doing something like this:
sqs_to_db_spec.js
describe('sqsToDb', () => {
  let DynamoDB, SQS;
  let sqsToDb;

  beforeEach(() => {
    const AWS = require('aws-sdk');
    DynamoDB = jasmine.createSpyObj('DynamoDB', ['putItem']);
    SQS = jasmine.createSpyObj('SQS', ['receiveMessage', 'deleteMessage']);

    spyOn(AWS, 'SQS').and.returnValue(SQS);

    spyOn(AWS, 'DynamoDB').and.returnValue(DynamoDB);

    delete require.cache[require.resolve('../../api/lambdas/sqs_to_db')]; // manually clear cache
    sqsToDb = require('../../api/lambdas/sqs_to_db').handler;
  });

  it('does thing', () => {
    // assertion
  });

  it('does other thing', () => {
    // other assertion
  });
)};

sqs_to_db.js
const AWS = require('aws-sdk');
const SQS = new AWS.SQS();
const DynamoDB = new AWS.DynamoDB();

exports.handler = () => {
  // do stuff
}

if we don't manually delete the cached sqs_to_db we get test pollution with our spies. we create a new spy in the beforeEach before the second it but sqs_to_db.js is never reloaded, so it continues to use the spy from the first it
we put some print messages in deleteRequireCache in gulp-jasmine/index.js and it looks like it's only trying to delete sqs_to_db_spec.js from the cache, but it's not cached

@atomanyih, @tmwoodson

There's 2 parts to this issue: The fact that the cache is not cleared of sqs_to_db and the test pollution.
Concerning the cache, I do not have the time to test my theory right away, but my guess is, since you import inside you before each, your library will not be cleared from the cache automatically by gulp-jasmine since there's no way to identify the dependency when we load the spec. It is only declared once the spec is already running. That's why you have to clear it manually.
Concerning the fact that your spies from the first test stay on the object, this is not due to gulp-jasmine or even jasmine, but it's simply a closure thing. Since your handler has a closure on both AWS, and subsequent requires of the same dependency without clearing the cache will return the original instance, you keep your reference on the original AWS import. A solution to this problem might be to add the AWS dependency either as a parameter to your handler, or as a self-invoking function, which would have the added benefit of letting you mock the AWS library more easily.
Hope this helps.

We'll have to look into it some more but we use the same spy pattern when testing in the browser (and headlessly w/ phantomjs) and have never had any problems with that kind of test pollution

@atomanyih Is this still an issue?

Closing for inactivity.


Is this project being maintained or has it been abandoned?

@fridays Would you be open to adding additional maintainers to this project?
For now, I am maintaining my own fork over at https://github.com/elliottsj/next-routes / https://www.npmjs.com/package/@elliottsj/next-routes. I don't like the idea of forcing whole the community to move to a fork though, so my intention is to keep this fork maintained until fridays/next-routes becomes maintained again, or @fridays can comment on the future of this package.
So far, I have addressed https://github.com/fridays/next-routes/issues/181 in my fork. Please create issues / pull requests on my fork if you'd like them addressed.

Thanks for setting that up @elliottsj! I may be opening a PR against your fork shortly.

gentle ping

also would like to know

Hi everybody, sorry for the delay and thank you for your patience. I just added @elliottsj as maintainer to the project.
Currently I'm unable to find the time this project deserves. Please let me know if I should add more people or whatever I can do to make it easy for you. Thanks

Thanks @fridays! In the coming days, I'm planning on merging the improvements in my fork back upstream. There are a lot of open issues & PRs in this repo, so I won't be able to get to all of them, but I'll try my best.
@fridays Would you like to continue to be in charge of publishing new versions to npm? If you like, I can take care of that too; my npm username is elliottsj: https://www.npmjs.com/~elliottsj

Ciao guys, so is this still matained?

Another inactive maintainer @elliottsj?

@elliottsj Where is your fork?

@elliottsj, why you are not merging your changes to here?

Sorry folks, I've been busy with work & life things, and I haven't had the time to dedicate to this project recently. I've under-delivered on my last message, and I apologize for that.
The PR to merge back upstream is here, and the next steps are to fix the build, then merge, publish version 3.0.0, disable Greenkeeper, and enable Renovate, as long as @fridays has no objections.
I can't promise that I'll be able to take this on in the near future, so it would be appreciated if someone else can step up.

@elliottsj thanx for explaining

Looking forward to seeing this updated again!

I couldn’t make it work neither with this repo nor @yolkai. so i basically copied the src/index.js to my project, add typings, made some small modifications, and using it now w/o problem.
You can check this gist.

Dynamic routes are now natively supported by Next.js, so next-routes is no longer necessary for most use cases.

next-routes is no longer necessary for the most simple use cases.

next-routes should have been in Next from the beginning but it was not. Next.js leaves us empty handed when we need a little more configuration with routing when we have constraints out of our control, like not having a server to render on.
Unfortunately, the new dynamic routes are far from being enough to ditch next-routes.

next-routes is no longer necessary for the most simple use cases.

next-routes should have been in Next from the beginning but it was not. Next.js leaves us empty handed when we need a little more configuration with routing when we have constraints out of our control, like not having a server to render on.
Unfortunately, the new dynamic routes are far from being enough to ditch next-routes.

I agree 😆. Personally, I prefer centralized routing declaration like next-routes to file path based routing.

I agree next-routes is not going anywhere (regex check are too much of a powerful feature for example).
It is worth noticing that the server(less) middleware RFC will probably solve 90% of the problem next-routes solve.

I agree that the new dynamic routing in NextJS 9 isn't sufficient for all cases. I'm building a bilingual site where the different locale versions of a URL need to point to the same file/path. That can't be done easily without something like next-routes.
Kind of depressing that this issue has been open for 9 months and there's still no commits in a year. This package has around 50k monthly npm downloads and growing.

I agree that next-routes is still useful for more complex use cases. Unfortunately neither @fridays nor myself have the resources to keep this project maintained at the moment, so a good way to get next-routes maintained again is for someone in the community who actively uses next-routes to volunteer to take over maintenance.

There's currently 30 PRs open on this project so it looks like there's no shortage of people willing to contribute and get involved. Many are from the same people. Might I suggest handing over control to one/some of them so some of the PRs and issues can make some progress?

@yolkai/next-routes looks like the most active fork.
https://www.npmjs.com/package/@yolkai/next-routes

The fork you linked has been archived @martpie: https://github.com/yolk-hq/next-routes#readme
There used to be a PR to merge it back, but it was closed. What's the reasoning here @elliottsj? Maybe this could be merged to make it easier for a future maintainer?
Sadly I don't have an active next project right now and also lost track over what's in core and what needs to be solved with third-party libraries, so I won't be able to maintain it properly. I hope to get back into it soon :)

Hey, Next.js Core Team member here! We'd be interested in taking over maintenance of this package if you'd be willing to grant myself access to the repo and npm.

Hi, that's great news! I just added you to the repo and npm.

@Timer any updates available 😄 ?

Hey, Next.js Core Team member here! We'd be interested in taking over maintenance of this package if you'd be willing to grant myself access to the repo and npm.

That's exciting, I'm pretty sure a lot of companies are using this package because of its way to structure app routes. My team for example are still on Next8 because of this. Please let us know what are your plans with next-routes! Thanks

Looking forward to the updates.

@Timer any news? Is this something is still worth to invest?


Fix link to GA

This fixes a broken link to the Google Analytics page I was seeing in Firefox and Chrome mobile.
I see there is a redirection file for Netlify but that only seems to work when you refresh the 404 page.

:grinning:


Release notes 1.45

Thanks for contributing to the Harness Developer Hub! Our code owners will review your submission.
Description
Release Notes 1.45
PR lifecycle
We aim to merge PRs within one week or less, but delays happen sometimes.
If your PR is open longer than two weeks without any human activity, please tag a code owner in a comment.
PRs must meet these requirements to be merged:

[ ] Successful preview build.
[ ] Code owner review.
[ ] No merge conflicts.
[ ] Release notes/new features docs: Feature/version released to at least one prod environment.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://66db510d4a655e90e3771ef4--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://66de5a34b00b1ba2e6d31e1f--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://66de5b09961e6392260dc1ab--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://66de5b6dccdd644cbbe7e531--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://66e0b7dc65f1551ebc80f355--harness-developer.netlify.app


Editor crashes when its visibility is controlled by a state variable

First of all, thank you for developing this component, I really enjoy working with it and appreciate how well designed it is.
I ran into a really weird issue today however, and I'm not sure if it is a bug in the editor, or if there is an issue with the way I set up my project. When I use a boolean to decide whether to render the editor or not, for example:
(Click here for a Vite project including a minimal reproducible example)
function App() {
  const [isOpen, setIsOpen] = useState(false);

  return (

      <button onClick={() => setIsOpen(!isOpen)}>
        Editor is {isOpen ? "open" : "closed"}
      </button>
      {isOpen && (
        <MDXEditor
          markdown="# Hello world"
          plugins={[
            toolbarPlugin({
              toolbarContents: () => (
                <>
                  <UndoRedo />{/* If you comment this out, the editor works */}
                </>
              ),
            }),
          ]}
        />
      )}

  );
}

As soon as the boolean is set to true, the editor crashes with this error message:
The above error occurred in one of your React components:

    at Lazy
    at span
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43038:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43015:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43107:13
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43038:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43015:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43107:13
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:45503:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:96009:11
    at Provider (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:42920:15)
    at Provider (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:42920:15)
    at $cf1ac5d9fe0e8206$export$badac9ada3a0bdf9 (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:45490:11)
    at $a093c7e1ec25a057$export$28c660c63b792dea (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:95921:11)
    at Provider (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:42920:15)
    at $a093c7e1ec25a057$export$f78649fb9ca566b8 (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:95883:11)
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:98786:56
    at button
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43107:13
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:47410:20
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:47581:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:47554:112
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43038:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43015:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43107:13
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43038:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43015:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43107:13
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43038:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43015:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:47057:13
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:47237:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:47651:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:47703:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:98840:88
    at div
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43107:13
    at Provider (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:42920:15)
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:47528:11
    at Provider (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:42920:15)
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:47460:18
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:47440:17
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:47687:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:98869:70
    at div
    at MultipleChoiceToggleGroup (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:98882:36)
    at UndoRedo (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:105207:46)
    at div
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43107:13
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43038:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43015:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43107:13
    at Provider (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:42920:15)
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:47138:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43038:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:43015:11
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:47044:13
    at Provider (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:42920:15)
    at CollectionProvider (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:47030:13)
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:47127:18
    at Provider (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:42920:15)
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:47612:11
    at Root (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:98849:25)
    at ToolbarWrapper (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:98960:48)
    at RichTextEditor (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:41447:119)
    at LexicalComposer2 (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:12270:7)
    at LexicalProvider (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:41423:26)
    at div
    at EditorRootElement (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:41480:28)
    at RealmPluginInitializer (http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:40633:3)
    at http://localhost:5173/node_modules/.vite/deps/@mdxeditor_editor.js?v=04fc59f7:41534:43
    at div
    at div
    at App (http://localhost:5173/src/App.tsx?t=1702199974688:28:31)

Consider adding an error boundary to your tree to customize error handling behavior.
Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries.
logCapturedError @ react-dom.development.js:18687
update.callback @ react-dom.development.js:18720
callCallback @ react-dom.development.js:13923
commitUpdateQueue @ react-dom.development.js:13944
commitLayoutEffectOnFiber @ react-dom.development.js:23391
commitLayoutMountEffects_complete @ react-dom.development.js:24688
commitLayoutEffects_begin @ react-dom.development.js:24674
commitLayoutEffects @ react-dom.development.js:24612
commitRootImpl @ react-dom.development.js:26823
commitRoot @ react-dom.development.js:26682
performSyncWorkOnRoot @ react-dom.development.js:26117
flushSyncCallbacks @ react-dom.development.js:12042
(anonymous) @ react-dom.development.js:25651

An obvious workaround is to use CSS to hide it:
<MDXEditor
  className={isOpen ? "" : "closed"}
  markdown="Hello world"
  plugins={[
    toolbarPlugin({
      toolbarContents: () => (
        <>
          <UndoRedo />
        </>
      ),
    }),
  ]}
/>

For the time being, this works, but if the editor is embedded deep inside a part of the component hierarchy that is rendered conditionally, it breaks, so I have to pay attention not to use conditionals anywhere up to the root component if there is an editor somewhere in a branch, which is less than ideal.
If there's any more information I can provide or any way I can help in resolving this, please let me know.

I also had that issue; I added a suspense as the parent of the MXEditor component, and it resolved. Something like this:
import { Suspense, useState } from 'react'
import { Editor } from './Editor'

function App() {
  const [isOpenEditor, setOpenEditor] = useState(false)

  return (
    <>
      <button onClick={() => setOpenEditor(!isOpenEditor)}>Open editor</button>
      { isOpenEditor
      ? (
          <Suspense fallback={
Loading
}>
            <Editor />
          </Suspense>
        )
      :
Nothing

      }
    </>
  )
}

I will take a look at that, there's something incorrect with the Editor's Lazy usage.

Hi @petyosi also having a similar issue here. We are rendering the editor conditionally only for admins and is getting a weird error in 1.9.0. Error message below when attempting to copy and paste a paragraph within the editor: MDXEditor.js:43 Uncaught TypeError: lexical.$INTERNAL_isPointSelection is not a function

@fredachang - I'm not sure if this is the same problem, but it might be related.

I also had that issue; I added a suspense as the parent of the MXEditor component, and it resolved. Something like this:
          <Suspense fallback={
Loading
}>
            <Editor />
          </Suspense>

@AlessandrohL I can confirm this works, thank you for the suggestion!

@fredachang - I'm not sure if this is the same problem, but it might be related.

Perhaps not. I tried the Suspense suggestion & it didnt work for me unfortunately.

@fredachang - check the lexical versions in your project, might be something there... I see a new release, which I need to take a look at.

@petyosi thanks for this suggestion. I can confirm the issue is gone after upgrading to 0.12.5. This was due to importing lexical directly for the catch-all plugin.
However with the upgrade to latest lexical, lists & links plugin may need to be updated as clicking the button triggers no markdown update.

@balazsbotond I added suspense at the right place, so you don't have to. Thank you very much for the convenient reproduction.

@petyosi and thank you for the super fast fix! I've just installed the latest version, and the problem is gone.


100.0k message limit in channels

In the Channel panel the unread message number wont raise above 100.0k. It stays like this since 2 days.

somehow the channel was inactive for ~2 days... nvm

That's a funny one! :)


v3 spec: no compression?

It looks like an array does not necessarily have a compressor ("An array may be associated with a compressor").
How is it encoded in the array metadata? If it is specified by the absence of a compressor key, the spec should be explicit about it.

Maybe we can have the following in the array metadata:
    "compressor": {
        "codec": "https://purl.org/zarr/spec/codec/binary/1.0",
        "configuration": {}
    },

Based on discussion, we decided to simply not have a compressor key if the data is not compressed.

Closed by #94


[Bug Report] ReferenceError: _Message is not defined in jest tests

Element UI version
2.10.1
OS/Browsers version
Mac High Sierra
Vue version
2.6.10
Reproduction Link
https://jsfiddle.com
Steps to reproduce

create a vue component with  import { Message } from 'element-ui';
Call Message.info('test') inside the vue component
Create a jest test, that directly interacts with code that calls Message.info('test')
Run jest tests

What is Expected?
import { Message } from 'element-ui' works without issues during my testing. Or being able to do a simple manual mock of 'element-ui'.
What is actually happening?
I get a ReferenceError: _Message is not defined error. It happens either in tests or inside the actual vue file. That is not a case for any other node modules. I tried doing all kinds of mocks (manual mock, automatic mock, I tried to spy on it...) but I was unable to get that to work.
I would be fine not using mocks, but simple imports don't work either inside the vue file itself, so my tests just fail.

You need to fix webpack loaders.
On-demand import from element-ui requires additional configuration: https://element.eleme.io/#/en-US/component/quickstart#on-demand

You need to fix webpack loaders.
@wacky6 Its only not working in testing. I have imports working normally when running the app, as I used cli to install it.

testing environment usually has saperate loader/env configuration.

Double checking the docs, I am modifying babel config to have on-demand importing:
module.exports = {
  presets: [
    '@vue/app',
  ],
  plugins: [
    [
      'component',
      {
        libraryName: 'element-ui',
        styleLibraryName: 'theme-chalk',
      },
    ],
  ],
};

Is this not a global configuration, that will be applied to all environments? Do I have to just specify the same configuration for all environments manually (I'd think not)? Can you perhaps provide an example of correct configuration @wacky6?

Which configuration is used depends on the particular testing framework / configuration you are using. I can not give exact advice on this, just a hint on where to look at.

It would be great to see a working example, I've tried all the various Jest configuration options (for example I thought it might have been transformIgnorePatterns option), looked into Babel as well as Webpack... I've been trying to fix this for weeks now, which is why I am here out of desperation.

Still banging my head against this issue, I've tried numerous things, also made a StackOverflow question with some more details: https://stackoverflow.com/questions/57639448/elementui-tests-throw-referenceerror-message-is-not-defined
Would love to hear from anyone who uses on-demand loading and Jest testing

You can use the test environment in babel to use different config file

You can use the test environment in babel to use a different config file

That is not really the answer to this issue, as it's not just about specifying the plugin configuration for test env. For everyone out there who would ever encounter the same issue (and avoid trying to debug this for days as I did), this is what actually had to be done:

Update your babel.config.js

module.exports = {
  presets: [
    '@vue/app',
  ],
  plugins: [
    [
      'component',
      {
        libraryName: 'element-ui',
        styleLibraryName: 'theme-chalk',
      },
    ],
  ],
  "env": { "test": { "plugins": ["transform-es2015-modules-commonjs", "dynamic-import-node"] } }
};

Possibly remove transformIgnorePatterns from your jest.config.js (you probably could just add an exception, pointing at element-ui

This is what I had to do specifically when using Vue CLI. There is some specific Babel configuration in there, as it uses babel-preset-app. You can dive into it to understand the intricacies of it.
So thanks @wacky6 for pointing me in the right direction, although it still took days and another person to help find the solution. I think having some testing documentation in Element UI would really help people out...

Here is my full jest.config.js, just for reference:
module.exports = {
  moduleFileExtensions: [
    'js',
    'jsx',
    'json',
    'vue',
  ],
  transform: {
    '^.+\\.vue$': 'vue-jest',
    '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub',
    '^.+\\.(js|jsx)?$': 'babel-jest',
  },
  moduleNameMapper: {
    '^@/(.*)$': '<rootDir>/src/$1',
    '^.+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub',
  },
  snapshotSerializers: [
    'jest-serializer-vue',
  ],
  testMatch: [
    '**/tests/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)',
  ],
  testURL: 'http://localhost/',
  watchPlugins: [
    'jest-watch-typeahead/filename',
    'jest-watch-typeahead/testname',
  ],
  collectCoverage: true,
  coverageReporters: ['lcov', 'text-summary'],
};

Ran into a similar issue, however, the solution above did not work for me. Was wondering if anyone has come across another solution that worked?
Prerequisite: using vue test utils to install Jest: https://vue-test-utils.vuejs.org/installation/#using-vue-test-utils-with-jest-recommended
Steps to replicate error:
Step 1:
Create a component TestComponent.vue:
<template>
  <div>
    <el-button
      data-test="button"
      @click="count++"
    >
      Count: {{ count }}
    </el-button>
  </div>
</template>

<script>
import { Button } from 'element-ui';

export default {
  name: 'TestComponent',
  components: {
    [Button.name]: Button,
  },
  data() {
    return {
      count: 0,
    };
  },
};
</script>

Step 2:
Then run the unit testtestComponent.spec.js with yarn test:unit testComponent:
import { mount } from '@vue/test-utils';
import TestComponent from<EMAIL_ADDRESS>
describe('Test Component', () => {
  test('component renders', () => {
    const wrapper = mount(TestComponent);

    expect(wrapper.exists()).toBe(true);
  });
});

Step 3:
The unit test fails with the error message: ReferenceError: _Button is not defined
Temp Solution:
If I change how the component is registered:
[Button.name]: Button -> "el-button": Button
Then the unit test works as expected.
Question:
I can do this as an alternative solution, but I'd rather not retroactively update all component imports. Does anyone have suggestions on configuring Jest unit tests to work with element-ui components?
Also, why is this error happening? I searched the element-ui repo and _Button is only defined in the scss, so I assume this is a styling issue with Jest.


Unix composability

This is still a long ways off, however:
Server (<IP_ADDRESS>)
ncat -l 5000 | secure-channel --authorized=~/.sckeys
Client
echo "hello world" | secure-channel --key~/.mysckey | ncat <IP_ADDRESS> 5000
Would be an awesome way to compose this.
Obviously a handshake would occur, and the eventual result is the server prints the text "hello world" to the console.
KISS secure channels.

The main point is extracting the encryption/decryption to a different layer.
You'll probably still want to include authorization verification in the underlying applications, whatever they are.

Yeah this would be neat, but unfortunately there isn't a really nice way to create servers in bash.
I guess that it was originally designed to be a work processor (hence all the programs that work with streams of text)
Actually piping this to netcat wouldn't work, because this needs to send data both ways.
The best thing you could do would be to pass in a command that secure-channel would call to create a connection, and it would then hold both the stdin and stdout.

more like:
echo 'hello world' | secure-channel --keys ... --connect 'netcat ...'

You could use a single named pipe

true. what about if you passed the named pipe to the command and it could detect that it's a fifo and not a command?
that named pipe thing is good, but you'd also need a way to get the plaintext in and out - that is also duplex.
So actually you have 4 stdio streams. plainin, plainout, cipherin, cipherout. I think passing in the fifo/cmd would be the easiest way to do that.

True.  I'll get back to you.  Haha.

I can't see this being very simple if you need to negotiate keys.
For an a symmetric cipher... definitely,  but there already tools for that.
The asymmetry is what makes this non simple.


Create a "concatenated Dockerfile" for customers to use

Some customers are confused by our labyrinth of image inheritance, justfiles, etc.
To avoid the leaky abstraction, we should output a "concatenated Dockerfile" for folks to use
Fyi @samcofer

Doing this as part of our CI/CD pipeline would save a variety of customers the work of trying to reconstruct our Dockerfiles from pieces and make it easier to point customers to a file they can use locally as a fork of our docker products. Ideally, this would make it easy for offline customer or customers who need to use a local container repo to fork our builds.


Add noplayground annotation to guide snippets

None of them can be run in the playground

From https://rust-lang.github.io/mdBook/format/mdbook.html#rust-playground it looks like we may be able to do this globally in the book.toml configuration, I wonder if that's preferable?

Yes, I think so. Added it and it works as expected.

No need for a CHANGELOG entry for a guide-only change; I've added the CI-skip-changelog label, please remove the newsfragment.

Done


Update several *-FileShareAccess docs: mention that SMB share and file system security is adjusted

PR Summary
Update:

Block-FileShareAccess.md
Grant-FileShareAccess.md
Revoke-FileShareAccess.md
Unblock-FileShareAccess.md

Mention that security descriptors of the SMB share and the underlying file system folder are adjusted by these commands.
Add links to corresponding *-SmbShareAccess commands.
PR Checklist

[x] Descriptive Title: This PR's title is a synopsis of the changes it proposes.
[x] Summary: This PR's summary describes the scope and intent of the change.
[x] Contributor's Guide: I have read the contributors guide.
[x] Style: This PR adheres to the style guide.

@microsoft-github-policy-service agree

@DavisNT

@scanum I have rebased this PR.
Is there anything else I should do?

Hi @tiburd hope all is well. Could you please help with this PR? Thanks!

@scanum, @tiburd, @get-itips Is there anything I can help with to get this PR reviewed and merged?

@get-itips
Hi Andres,
Please review this PR, then @ mention me after you approve.
Thank you!

@scanum, @tiburd, @get-itips Is there anything I can help with to get this PR reviewed and merged?

@DavisNT
Hi Davis,
Thank you for @ mentioning us.
There is nothing more for you to do at this time.
When Andres reviews this pull request, he may have changes for you to approve or make.
After he approves, I'll merge the pull request.
Thanks!

I think @JasonGerend should be included as reviewer as it is the designated author of these articles

I think @JasonGerend should be included as reviewer as it is the designated author of these articles

@tiburd Can you please check @get-itips's answer?

@JasonGerend Is there anything I can help with to get this PR reviewed and merged?

@JasonGerend Could it be possible to review these changes?

@JasonGerend, @get-itips, @tiburd Could it be possible to review these changes?

@JasonGerend, Could it be possible for you to do the review?
CC: @get-itips, @tiburd

@tiburd Looks like this is waiting for @JasonGerend's review more than 7 months already.
Is there anything I can do to help?

@tiburd, @get-itips, @JasonGerend Is there anything I can do to help this PR getting reviewed and merged?

@tiburd, @get-itips, @JasonGerend Could it be possible to review this PR?
If I need to rebase it, please let me know!


Catching error on susbcribing to a non existing destination?

Hello,
I'm using the latest version of the library (4.0.8) and I'm trying to find a way to "catch" the error when subscribing to a non existing destination:

client.subscribe('foobar')

Since 'foobar' does not exist as a real stomp destination on the server, stompjs unsubscribes from all already subscribed (and working) subscriptions.
When I try to subscribe to a non existing destination, I'd like stompjs to just throw some kind of catchable error but keep the connection and the working subscriptions alive.
Is this possible? Am I doing something wrong?
Thank you.

The STOMP standards specify that on any ERROR, the broker is supposed to send an ERROR frame and close the connection.
So, a complaint broker is likely to follow this and close the connection if there is an error during subscription because destination does not exist. Actual behavior may vary by the specific broker in use.
So, check the log output and see if after attempting to subscribe non existent destination, if it drops the connection and reconnects.

Sorry Deepak,
We had a reactive chain defined that effectively closed the connection on error. It's not a StompJS issue.
I close the issue.


0.25 and reanimated 2

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
Even latest expo is still using Reanimated 2.
So after installing moti 0.25.1 the app crashes
TypeError: undefined is not a function
node modules/moti/src/core/use-motify.ts
...

This errors make it impossible to use latest library with expo.
Is there way to make it work?
Otherwise please update the installation docs to reflect it.
Expected Behavior
Should not crash
Steps To Reproduce

Install latest expo
use reanimated version which expo supports (npx expo install --check)
build and run the app

Versions
- Moti: 0.25.1
- Reanimated: 2.14.4
- React Native:0.71.7
- Expo:48.0.15

Screenshots

Reproduction
asdf

I'm facing a similar issue as well, and app was built via create-react-app. It started occurring once I upgraded my React Native to 0.71.7, moti version 0.25.1 and reanimated version 3.1.0. Reinstalled these packages and cleared cache but the error came back.
Error Message
ReanimatedError: undefined is not a function, js engine: reanimated
Source
File location: src/core/use-motify.ts
const sequenceValue = stepAnimation(         stepValue,         stepConfig as any,         (completed = false, maybeValue) => {           callback(completed, maybeValue, {             attemptedSequenceValue: stepValue,           })           if (stepOnDidAnimate) {             runOnJS(stepOnDidAnimate)(completed, maybeValue, {               attemptedSequenceItemValue: stepValue,               attemptedSequenceArray: maybeValue,             })           }         }       )

looking into this

it's odd because the file does exist
https://github.com/nandorojo/moti/blob/master/packages/moti/src/core/use-motify.ts

i think i have an idea, can you share the code you used that broke it?

Can you guys provide a minimal reproduction for me to look at

Can you guys provide a minimal reproduction for me to look at

Sure thing, here's an example where the error occurred.
return (
  <MotiView
    from={{ translateY: 50 }}
    animate={{ translateY: 0 }}
    style={styles.container}
    transition={{
      type: 'timing',
      duration: 500,
      easing: Easing.inOut(Easing.linear),
    }}
  >
    <View>
        //other contents
    </View>
  </MotiView>
)

I inherited an older codebase and was in the process of upgrading everything, but nothing seems out of the ordinary to me. Meanwhile I'll try out the latest version to see if it works.

@nandorojo unfortunately the issue still persist on 0.25.3. Here's a minimal repro: https://github.com/d4rky-pl/moti-bug
I could confirm the issue happening on both iOS (Simulator) and Android (real device), same stack trace as the original reporter.

thanks for sharing that, i'll try to address it when i have some time. should be somewhat easy to debug

@nandorojo I believe this is a Hermes bug.
The offending change is in this line:
sequenceArray.forEach((step) => {

which replaced previous
 for (const step of sequenceArray) {

From my debugging it seems that animation argument passed to getSequenceArray is no longer visible inside the function passed to forEach. If you assign it to a temporary variable though, that variable works properly (scoping issue?):
const getSequenceArray = (
  sequenceKey: string,
  sequenceArray: SequenceItem<any>[],
  delayMs: number | undefined,
  config: object,
  animation: (...props: any) => any,
  callback: (
    completed: boolean | undefined,
    value: any | undefined,
    info: {
      attemptedSequenceValue: any
    }
  ) => void
) => {
  'worklet'

  const temporaryAnimationConst = animation
  console.log('temporaryAnimationConst', temporaryAnimationConst)
  console.log('animation', animation)

  const sequence: any[] = []

  sequenceArray.forEach((step) => {
    console.log('temporaryAnimationConst inside forEach', temporaryAnimationConst)
    console.log('animation inside forEach', animation)

This results in:
 LOG  temporaryAnimationConst [Function hostFunction]
 LOG  animation [Function hostFunction]
 LOG  temporaryAnimationConst inside forEach [Function hostFunction]
 LOG  animation inside forEach undefined

I'm afraid I don't have enough experience with either Hermes nor reanimated worklets to figure out why is this happening and if there should be a follow-up bug report to either of the libraries

interesting…what if you add ‘worklet’ inside of the each function? sounds like a reanimated worklet quirk

@nandorojo doesn't solve the problem 🥲
Until you have time to figure out exactly why this is exploding, this patch solves the issue for me and I couldn't find any negative side effects:
diff --git a/node_modules/moti/src/core/use-motify.ts b/node_modules/moti/src/core/use-motify.ts
index 0b0680c..a95c5ae 100644
--- a/node_modules/moti/src/core/use-motify.ts
+++ b/node_modules/moti/src/core/use-motify.ts
@@ -244,7 +244,7 @@ const getSequenceArray = (

   const sequence: any[] = []

-  sequenceArray.forEach((step) => {
+  for (const step of sequenceArray) {
     const shouldPush =
       typeof step === 'object'
         ? step && step?.value != null && step?.value !== false
@@ -302,7 +302,7 @@ const getSequenceArray = (
         sequence.push(sequenceValue)
       }
     }
-  })
+  }

   return sequence
 }

funny enough, i changed that line to solve hermes issues that previously arose with for (const. if that fixes it, feel free to PR

@nandorojo do you have a link or any reference to the previous issue? I can see if I can confirm that the patch above doesn't introduce a regression

see 0.22 release notes. however, these changes didn’t do anything in the getSequenceArray function I believe. so it’s probably save to revert the changes there.
https://github.com/nandorojo/moti/releases/tag/v0.22.0


Reduce the cost of bpf_tail_call overhead

Description
Move saving tail_call_state into the ebpf_state store outside of the inner loop of a program dispatch.
Testing
CI/CD
Documentation
No.
Installation
No.

Need to investigate the assert.


Can't use a FlexEntity as the "kwargs" part of a call

e.g.
>>> (lambda **args: args)(**FlexEntity(foo=1, bar=2))
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: attribute of type 'NoneType' is not callable

The solution is to implement the keys() method:
>>> FlexEntity.keys = (lambda e: [key for key, value in e.iteritems()])
>>> (lambda **args: args)(**FlexEntity(foo=1, bar=2))
{'foo': 1, 'bar': 2}

Interesting. I guess I never considered that you could make ** work for other classes. I just assumed it only worked with dict.


How is --capture_output supposed to work?

New Issue Checklist

[X] Updated fastlane to the latest version
[X] I have read the Contribution Guidelines

Issue Description
I run fastlane from shell session established over SSH. When I use command line option --capture_output it does nothing. No output is generated on STDOUT nor STDERR nor any file with markdown is created.
Complete output when running fastlane, including the stack trace and command used

You can use: --capture_output as the last commandline argument to get that collected for you

FASTLANE_PASSWORD=blabla fastlane --verbose alfa --capture_output

Environment
Please run fastlane env and copy the output below. This will help us help you :+1:
If you used --capture_output option please remove this block - as it is already included there.
✅ fastlane environment ✅
Stack

Key
Value

OS
10.11.6

Ruby
2.3.1

Bundler?
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
7.3.1

Git
git version 2.7.4 (Apple Git-66)

Installation Source
/Users/admin/.rbenv/versions/2.3.1/bin/fastlane

Host
Mac OS X 10.11.6 (15G1004)

Ruby Lib Dir
/Users/admin/.rbenv/versions/2.3.1/lib

OpenSSL Version
OpenSSL 1.0.2j  26 Sep 2016

fastlane files:
`./fastlane/Fastfile`
# Customise this file, documentation can be found here:
# https://github.com/fastlane/fastlane/tree/master/fastlane/docs
# All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md
# can also be listed using the `fastlane actions` command

# Change the syntax highlighting to Ruby
# All lines starting with a # are ignored when running `fastlane`

# If you want to automatically update fastlane if a new version is available:
# update_fastlane

# This is the minimum version number required.
# Update this, if you use features of a newer version
fastlane_version "1.106.2"

default_platform :ios

platform :ios do
  before_all do
    # ENV["SLACK_URL"] = "https://hooks.slack.com/services/..."
    # cocoapods

  end

##### Lane: TEST ########################
  desc "Runs all the tests"
  lane :test do
    scan
  end

##### Lane: BETAAPPLE ########################
  desc "Submit a new Beta Build to Apple TestFlight"
  desc "This will also make sure the profile is up to date"
  lane :betaapple do
    # match(type: "appstore") # more information: https://codesigning.guide
    gym # Build your app - more options available
    pilot

    # sh "your_script.sh"
    # You can also use other beta testing services here (run `fastlane actions`)
  end

##### Lane: RELEASE ########################
  desc "Deploy a new version to the App Store"
  lane :release do
    # match(type: "appstore")
    # snapshot
    gym # Build your app - more options available
    deliver(force: true)
    # frameit
  end

##### Lane: ALFA ########################
desc "Alfa Test fastlane"
lane :alfa do

  keychain_name = "ci-grocerkey"

  output = create_keychain(
    name: keychain_name,
    default_keychain: true,
    unlock: true,
    timeout: false,
    password: SecureRandom.base64
  )
  puts "Output of create_keychain action is: #{output}"

  # Import Apple's root CA certificate
  import_certificate(
    certificate_path: "Provisioning/AppleComputerRootCertificate.cer",
    keychain_name: keychain_name
  )

  # provision devices from file Provisioning/devices to Apple developer portal; optimistic provisioning applies
  register_devices(
    devices_file: "Provisioning/devices"
  )
end

##### Lane: BETA ########################
desc "Submit a new Beta build to Hockey App"
lane :beta do

  keychain_name = "ci-grocerkey"

  create_keychain(
    name: keychain_name,
    default_keychain: true,
    unlock: true,
    timeout: 3600,
    lock_when_sleeps: true,
    password: SecureRandom.base64
  )

  # Import distribution certificate
  import_certificate(
    certificate_path: "fastlane/Certificates/distribution.p12",
    certificate_password: ENV["KEY_PASSWORD"],
    keychain_name: keychain_name
  )

  # Provision devices from file Provisioning/devices to Apple developer portal; optimistic provisioning applies
  register_devices(
    devices_file: "Provisioning/devices"
  )

  # Fetch provisioning profile
  sigh(
    adhoc: true,
    username<EMAIL_ADDRESS>    team_id: "XA8U8K5RRK",
    provisioning_name: "CI Example Ad Hoc",
    cert_id: "2T3HB2838A"
  )

  increment_build_number(build_number: number_of_commits)

  # Build
  gym(
    configuration: "Ad Hoc",
    sdk: "iphoneos9.2",
    clean: true,
    include_bitcode: false,
    include_symbols: true,
    use_legacy_build_api: true,
    export_method: "enterprise"
  )

  # Push to Hockey
  hockey(
    api_token: ENV["HOCKEY_API_TOKEN"],
    public_identifier: ENV["HOCKEY_APP_ID"],
    notify: '0',
    status: '2',
    notes: last_git_commit[:message] + "n(Uploaded automatically via fastlane)"
  )

  delete_keychain(
    name: keychain_name
  )

end

  after_all do |lane|
    # This block is called, only if the executed lane was successful

    # slack(
    #   message: "Successfully deployed new App Update."
    # )
  end

  error do |lane, exception|
    # slack(
    #   message: exception.message,
    #   success: false
    # )
  end
end

# More information about multiple platforms in fastlane: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
# All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md

# fastlane reports which actions are used
# No personal data is recorded. Learn more at https://github.com/fastlane/enhancer

`./fastlane/Appfile`
app_identifier "com.grocerkey.shopperapp" # The bundle identifier of your app
apple_id<EMAIL_ADDRESS># Your Apple email address

team_id "U5CS3T9JSF"  # Developer Portal Team ID

# you can even provide different app identifiers, Apple IDs and team names per lane:
# More information: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Appfile.md

fastlane gems

Gem
Version
Update-Status

credentials_manager
0.16.2
✅ Up-To-Date

spaceship
0.37.0
✅ Up-To-Date

fastlane_core
0.53.0
✅ Up-To-Date

deliver
1.15.0
✅ Up-To-Date

snapshot
1.16.3
✅ Up-To-Date

frameit
3.0.0
✅ Up-To-Date

pem
1.4.0
✅ Up-To-Date

cert
1.4.3
✅ Up-To-Date

sigh
1.11.2
✅ Up-To-Date

produce
1.3.0
✅ Up-To-Date

gym
1.12.0
✅ Up-To-Date

pilot
1.12.0
✅ Up-To-Date

scan
0.14.1
✅ Up-To-Date

supply
0.7.1
✅ Up-To-Date

match
0.10.0
✅ Up-To-Date

screengrab
0.5.5
✅ Up-To-Date

fastlane
1.107.0
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

did_you_mean
1.0.2

highline
1.7.8

commander
4.4.0

terminal-table
1.4.5

json
1.8.3

multipart-post
2.0.0

faraday
0.9.2

faraday_middleware
0.10.0

dotenv
2.1.1

net-ssh
3.2.0

net-sftp
2.1.2

plist
3.1.0

security
0.1.3

krausefx-shenzhen
0.14.10

slack-notifier
1.5.1

CFPropertyList
2.3.3

claide
1.0.1

colored
1.2

nanaimo
0.2.2

xcodeproj
1.4.1

rouge
1.11.1

xcpretty
0.2.4

terminal-notifier
1.7.1

public_suffix
2.0.3

addressable
2.5.0

credentials_manager
0.16.2

multi_xml
0.5.5

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20161021

http-cookie
1.0.3

faraday-cookie_jar
0.0.6

fastimage
1.6.8

xcode-install
2.0.8

word_wrap
1.0.0

multi_json
1.12.1

babosa
1.0.2

excon
0.54.0

rubyzip
1.1.7

gh_inspector
1.0.2

fastlane_core
0.53.0

bundler
1.13.6

mini_magick
4.5.1

xcpretty-travis-formatter
0.0.4

uber
0.0.15

representable
2.3.0

retriable
2.1.0

mime-types-data
3.2016.0521

mime-types
3.1

hurley
0.2

little-plugger
1.1.4

logging
2.1.0

jwt
1.5.6

memoist
0.15.0

os
0.9.6

signet
0.7.3

googleauth
0.5.1

httpclient
<IP_ADDRESS>

google-api-client
0.9.19

i18n
0.7.0

thread_safe
0.3.5

tzinfo
1.2.2

minitest
5.9.1

activesupport
<IP_ADDRESS>

io-console
0.4.6

generated on: 2016-11-06

Looking for related GitHub issues on fastlane/fastlane...
➡  invalid byte sequence in US-ASCII
https://github.com/fastlane/fastlane/issues/2253 [closed] 2 💬
6 weeks ago
➡  invalid byte sequence in US-ASCII
https://github.com/fastlane/fastlane/issues/2389 [closed] 2 💬
6 weeks ago
➡  invalid byte sequence in US-ASCII (ArgumentError)
https://github.com/fastlane/fastlane/issues/227 [closed] 20 💬
14 Sep 2016
and 16 more at: https://github.com/fastlane/fastlane/search?q=invalid byte sequence in US-ASCII&type=Issues&utf8=✓
/Users/admin/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/highline-1.7.8/lib/highline.rb:730:in gsub': [!] invalid byte sequence in US-ASCII (ArgumentError)         from /Users/admin/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/highline-1.7.8/lib/highline.rb:730:in format_statement'
from /Users/admin/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/highline-1.7.8/lib/highline.rb:621:in say'         from /Users/admin/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/highline-1.7.8/lib/highline.rb:261:in ask'
from /Users/admin/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/highline-1.7.8/lib/highline.rb:227:in agree'         from /Users/admin/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/fastlane_core-0.53.0/lib/fastlane_core/ui/implementations/shell.rb:98:in confirm'
from /Users/admin/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/fastlane_core-0.53.0/lib/fastlane_core/ui/ui.rb:14:in method_missing'         from /Users/admin/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/fastlane-1.107.0/lib/fastlane/environment_printer.rb:6:in output'
from /Users/admin/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/fastlane-1.107.0/lib/fastlane/commands_generator.rb:252:in block (2 levels) in run'         from /Users/admin/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/commander-4.4.0/lib/commander/command.rb:178:in call'
from /Users/admin/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/commander-4.4.0/lib/commander/command.rb:153:in run'         from /Users/admin/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/commander-4.4.0/lib/commander/runner.rb:444:in run_active_command'
from /Users/admin/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/fastlane_core-0.53.0/lib/fastlane_core/ui/fastlane_runner.rb:38:in run!'         from /Users/admin/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/commander-4.4.0/lib/commander/delegates.rb:15:in run!'
from /Users/admin/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/fastlane-1.107.0/lib/fastlane/commands_generator.rb:257:in run'         from /Users/admin/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/fastlane-1.107.0/lib/fastlane/commands_generator.rb:31:in start'
from /Users/admin/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/fastlane-1.107.0/lib/fastlane/cli_tools_distributor.rb:58:in take_off'         from /Users/admin/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/fastlane-1.107.0/bin/fastlane:5:in <top (required)>'
from /Users/admin/.rbenv/versions/2.3.1/bin/fastlane:22:in load'         from /Users/admin/.rbenv/versions/2.3.1/bin/fastlane:22:in '

the capture_output should basically capture all the output produced by fastlane - so you can get a easy copy paste-able - markdown - for easier trouble -shooting.
sadly, and i applogize, there is right now  a error in the release fastlane gem as - it lacks of https://github.com/fastlane/fastlane/blob/master/fastlane_core/lib/fastlane_core/helper.rb#L29 this function, it should be availaible when there is a new version of fastlane_core avalaible?
@KrauseFx  can you bump/release fastlane_core?

@hjanuschka Thanks for response. Will the output of --capture_output go to a file or clipboard only or depends on terminal (tty versus X11) ?

the behaviour is the same as - fastlane env - the only difference is - that capture output also includes the full stdout/stderr of the run command
you can try it.
on interactive terminals (only on osx) it will ask you for putting it into pasteboard, otherwise it just prints it to the terminal.
--
Helmut Januschka
Sent with Airmail
Am 6. November 2016 um 11:50:15, GoodMirek (notifications@github.com(mailto:notifications@github.com)) schrieb:

@hjanuschka(https://github.com/hjanuschka) Thanks for response. Will the output of --capture_output go to a file or clipboard only or depends on terminal (tty versus X11) ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub(https://github.com/fastlane/fastlane/issues/6879#issuecomment-258673155), or mute the thread(https://github.com/notifications/unsubscribe-auth/ACwftozhDT9AaR5HKVDBsYQ7wTXA26HOks5q7bDngaJpZM4Kqgw5).

Thanks. I will definitely try it once it works for me.


Rdi 53 zenodo transform

Helpful background context
JPAL records don't require any parsing of identifiers for the source_link so I don't think a JPAL subclass is necessary at this point but let me know if you think differently.
How can a reviewer manually see the effects of these changes?
Apologies for continuing to stall this discussion, let's discuss when we reengage with the project
What are the relevant tickets?
https://mitlibraries.atlassian.net/browse/RDI-53
Developer

[x] All new ENV is documented in README
[x] Stakeholder approval has been confirmed (or is not needed)

Code Reviewer

[ ] The commit message is clear and follows our guidelines
(not just this pull request message)
[ ] There are appropriate tests covering any new functionality
[ ] The documentation has been updated or is unnecessary
[ ] The changes have been verified
[ ] New dependencies are appropriate or there were no changes

Includes new or updated dependencies?
NO

Good call on the fixtures, I fleshed out the all_fields fixture and removed the redundant ones


fix: Move starting curly brace to correct place

A misplaced curly brace caused all commit messages to be enclosed in curlies, this is now fixed

Thanks @davidolrik , I'll close this as it's a duplicate of #4


Trust in Canisters - Complete Immutability

In https://internetcomputer.org/docs/current/concepts/trust-in-canisters/
It may be worthwhile to add a caveat about Complete Immutability as is not complete immutability in the event the NNS decides to take action.
E.g.  The Taggr discussion.
For consideration.

#1260 would like to change that


[WIP] Improvements/expanding wallet test coverage

@keichiri I've added [WIP] tag to title, please remove it after conflicts with master will be resolved.

@Artemkaaas please take a look at this PR. Can we cherry-pick some commits and improve current tests?

In scope of https://jira.hyperledger.org/browse/IS-1028 PR should be re-opened or replaced by new one


git.credentials: implement full fill/approve/reject workflow

Adds higher level git.credentials API equivalent to git-credentials

scmrepo clients should use Credential.fill/approve/reject rather than using Helper.get/store/erase directly (as described in https://git-scm.com/docs/git-credential#_typical_use_of_git_credential)
Microsoft's GCM now fully supported

Currently only used in dulwich backend for HTTP clients
Credentials that are successfully filled by helper backend will be approved/stored upon a successful request

Closes #215

Codecov Report
Patch coverage: 46.49% and project coverage change: -1.64 :warning:

Comparison is base (64a8926) 82.41% compared to head (a93a244) 80.78%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #216      +/-   ##
==========================================
- Coverage   82.41%   80.78%   -1.64%
==========================================
  Files          25       25
  Lines        3572     3643      +71
  Branches      626      641      +15
==========================================
- Hits         2944     2943       -1
- Misses        531      588      +57
- Partials       97      112      +15

Impacted Files
Coverage Δ

src/scmrepo/git/credentials.py
38.00% <44.44%> (+10.94%)
:arrow_up:

src/scmrepo/git/backend/dulwich/client.py
68.18% <60.00%> (+5.68%)
:arrow_up:

... and 6 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

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

Thanks @pmrowla! Does it have any impact on prompting/interactive auth? Previously, I don't think we supported it at all, but AFAIK git credential fill may prompt users if there are no credentials found. Does it mean that dulwich HTTP git clients will prompt for missing credentials?

Thanks @pmrowla! Does it have any impact on prompting/interactive auth? Previously, I don't think we supported it at all, but AFAIK git credential fill may prompt users if there are no credentials found. Does it mean that dulwich HTTP git clients will prompt for missing credentials?

If the credential manager requires interactive input then yes. With microsoft's standard GCM it opens a browser window for http logins. This was already the scmrepo behavior prior to this patch though (since the original credential helper support was added).
The difference was that we did not actually save the credentials afterwards, so users would be prompted every time we did a git operation that required auth, whereas now they are prompted on the first call and then we save the credentials in GCM, the same way that CLI git handles it.

Sorry @pmrowla, I think I was conflating the credential helpers with the default git behavior for requesting credentials. That is really only useful initially, but this is one place where CLI Git doesn't fail and DVC does. What do you think about supporting something like this?

We could support interactive prompting but it's probably not a quick fix since dulwich doesn't have native auth callback support yet. The intended workflow is that git should try an unauthenticated request (without using any credential helper or prompting) and then if it fails it should retry with helpers and/or prompting.
The current behavior in scmrepo is that we try credential helpers first if they exist. Technically this means we load GCM credentials even for a request that would not require it, like cloning a public repo, but in practice this isn't really an issue for the credential helper case. For the interactive CLI prompt it does make a difference, since with the current behavior we would have to prompt the user before making every request (since whatever the user enters via the interactive prompt is not saved).
We can implement this in scmrepo and then patch it into dulwich later, but it probably won't be a quick/small change.

What do you think about falling back to Git CLI when an auth error is raised?

@dberenbaum I would prefer that we just put the time into implementing it instead of using the CLI fallback


feat: add test 7 to amb project

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Releated to #41323

This makes a lot more sense now.

Just going to close this for now until there is a better way to test.


Fails to fetch internetarchive/openlibrary

Might as well be a problem on their side, would be nice if someone could figure out what it is.

Can you give more details? We don't know that app('s repo)

I'm sorry just realize their whole translation effort is pretty dad right now so I'll ask again if they actually decide to implement multi language support again.


support for non-public attributes

We are building a data model based on our reslang.  In some cases, the data model for an object needs attributes that we don't want external clients to access through the API.  The attributes might be used for on-call or internal support.  They seem important to the model, but we don't have a way to include them in reslang without exposing them publicly.
Suggest a private modifier to document an attribute in the data model (reslang) without affecting the public API.
This brief description lacks sufficient nuance.  For example, we might want access to the data controlled by client permissions or identity.  For example, if the client is the on-call person or technical services, we might want to enable access.  An external customer might have no access at all.
Need some work to determine the actual enhancement here, but happy to discuss further.

@j-q-arnold Hi Jim, could you give us a few more details on the use case for non public attributes ?

Discussion with @bvivio :

I think there are still some things that are relevant:

In our API we don't expose the batches that we have to perform behind the scenes when processing groups of segments (for instance, we have to batch by audience based on current limitations of the system). But as an OC task it might be super useful to be able to backfill a specific batch (similar to an SSA backfill we sometimes perform today). We wouldn't want to publicly expose the resources we use to control the batching behind the scenes (e.g. DataPool, SegmentDeliveryDigest), but those resources are useful to operate on as an OC.
We currently expose Refresher Service Request IDs in our interface, but it really has no purpose for clients. It's basically only used so that our Segment Delivery UI and OW Dashboard can be linked together conveniently, and for convenience for OC engineers so we don't need to run manual DB queries to connect a SegemntDeliveryAttempt to a specific Refresher request.

With CAC, we can have strict permissioning on resources so that only our internal service accounts can interact with certain resources, which is nice. But the resources would still be part of the public-facing API and so clients could see those endpoints and the documentation. They just would get back FORBIDDEN errors when trying to actual call the endpoints.

I'm not sure if there is actually a good solution for some sort of private modifier...like would there be separate client/server generated code/stubs for private and public clients?


Weight values of MM fonts

Noto Sans Khmer has a weight axis in the fvar table ranging from 26 to 190 with a default value of 90.
The OT spec says that for the wght axis, "Values must be in the range 1 to 1000. Values can be interpreted in direct comparison to values for usWeightClass (in the 'OS/2' table), or the CSS font-weight property."
Peter Constable says "That's a font with width ranging from super-extra-thin to extra-extra-light."

Yeah I have to fix that...

@simoncozens, thanks for the report. Closing this bug because it’s actually not a problem with the font sources; they already contain the needed information. Instead, we have a problem with the build pipeline; see https://github.com/googlei18n/fontmake/issues/167 for details.


Fix conflicting File name and Promise resolve issue

Summary of the Bug:
The serializeFile function does not return a Promise, but in the handleFileInput function, you are treating it as if it does by pushing its result into the promises array and using Promise.all(promises) to wait for all the promises to resolve.
As a result, promises is an array of undefined values, and Promise.all(promises) resolves immediately, before the FileReader has completed reading the files. This means that handleFileInput resolves the promise before the files array is populated with the file contents, leading to unexpected behavior.
Solution:
Modify the serializeFile function to return a Promise that resolves when the file is read and processed. This way, handleFileInput can correctly wait for all files to be processed before resolving.
Refactor:
Since handleFileInput is already returning a promise and is designed to work with the promises from serializeFile, you can simplify the code by removing the unnecessary wrapping new Promise in handleFileInput.
removed the resolve and reject from handleFileInput since these are now being thrown in the serializeFile function
Generic improvements:

added types to a types.d.ts file
replaced File naming with ServerFile and ClientFile so that it doesnt conflict with the already existing File Class.

Summary by Sourcery
Fix the issue where serializeFile did not return a Promise, causing handleFileInput to resolve prematurely. Refactor the code to simplify promise handling and introduce type definitions for ServerFile and ClientFile to prevent naming conflicts.
Bug Fixes:

Modify the serializeFile function to return a Promise, ensuring handleFileInput correctly waits for all files to be processed before resolving.

Enhancements:

Refactor handleFileInput to remove unnecessary promise wrapping, simplifying the code.

Chores:

Add types for ServerFile and ClientFile in a new types.d.ts file to avoid conflicts with the existing File class.

Thank you, if there is anything else please let me know.

actually I was wondering if you have any experience with implementing Multipart Data Object upload since the current implementation uses Base64, I had a structure in mind to implement them both on file-storage.nuxt.space but I don't have enough time to properly implement it and test it since this is a breaking update that will be released on 0.3.0. If you don't have time for it I would like to get a reliable source to learn about it's implementations and best practices properly

Hey, I'm not sure what you are asking. I like the JSON upload since I can now add more complex JSON schema and send them directly to Nuxt without setting up the whole logic myself.
if you want to use the multipart data object just to upload files, then I don't think it is that important to read into it too much since nuxt already has their way of handling Multipart Data with the readMultipartFormData function.
Try to think more about the problem you want to solve and give other developers the chance to make use of it. They will eventually come to ask for advice or suggest new features. Also, they will be able to present their use case in a more clear way in which you can learn how to better improve the DX of your module.


define pseudo properties

Is it possible to define pseudo properties (getterMethods and setterMethods) in sequelize-typescript?

@fareshan This should do the job

as I needed a property without creating a column, i solved my issue by setting type DataType.VIRTUAL:
  @Column(DataType.VIRTUAL)   get amount(): number {     ...   }

@fareshan so if this is solved for you, can we close this issue then?

@RobinBuschmann yes, i close it


Can't register - MacOS

After entering a password for atuin register I get:
Error: builder error: The Trust Settings Record was corrupted.
Caused by:
The Trust Settings Record was corrupted.
Location:
/private/tmp/atuin-20230416-6391-1u26z52/atuin-14.0.1/atuin-client/src/api_client.rs:47:16
any suggestions for things to try?

Yikes. I think something is messed up with your local mac certificate keychain. Probs some corrupt or expired certs in there - worth checking

i went in to Keychain Access and deleted a bunch of expired certs - but I don't see anything that indicates corruption.  No change in atuin register -  any hints how to debug which certificate might be an issue?

I found this, which sort of pointed me at any untrusted certs in the keychain access:
https://github.com/cloudflare/wrangler-legacy/issues/1656
I found one for an old firewall we had at work which must have had a self-signed CA -  i deleted it, and all worked.   Strange!


Feature/s2 index equals

added MultiPoint constructor (incl. tests & docu)
added AQL GEO_EQUALS function (incl. test & docu)

@hkernbach Are two polygons considered equal if they are congruent, but the points are in different order?

@Simran-B
  // Return true if two polygons have exactly the same loops.  The loops must
  // appear in the same order, and corresponding loops must have the same
  // linear vertex ordering (i.e., cyclic rotations are not allowed).

@hkernbach Would be nice to have this in our documentation, although I'm not sure if explaining loops goes too far.