animation style "fade" and "fade_in_slide_out" problem

Hi, I keep getting the warning along the lines of  "opacity changes require termguicolor to be set, set termguicolor or change the animation style" every time i launch nvim. I  copied over the default config as provided in the readme, but changed the animation style to "fade". All of the other animations worked great without giving me the error except for "fade" and "fade_in_slide_out". I'm using wezterm and have set  termguicolor = true. I'm not sure if I'm missing anything? Also if you don't mind whats your color theme? it looks great. Also great plugin!
MacOS w Zsh
nvim = 0.7.2
  {
    background_colour = "Normal",
    fps = 30,
    icons = {
      DEBUG = "",
      ERROR = "",
      INFO = "",
      TRACE = "✎",
      WARN = ""
    },
    level = 2,
    minimum_width = 50,
    render = "default",
    stages = "fade_in_slide_out", <- fade gives me warning
    timeout = 5000
  }

The code for checking if termuicolors is set is very simple (https://github.com/rcarriga/nvim-notify/blob/master/lua/notify/config/init.lua#L171) so I'm not sure how it could be going wrong.
Are you sure termguicolors is set correctly? How are you setting it?

Also my colour scheme is my own https://github.com/rcarriga/dotfiles/blob/master/.config/nvim/lua/colors.lua :smile:

very sorry for the late reply! I am setting it using vim.opt and wezterm comes with true color support by default i believe. Looking at the termguicolor check it might be i just couldn't set it up properly 😅

Interestingly enough I still see this exception when setting up notify default options: namely
require("notify").setup({
    stages = "fade_in_slide_out"
})

returns the aforementioned exception; however, if I explicitly pass stages = "fade_in_slide_out" to a notify call, the error disappears.
I am on
Kernel:     Darwin 21.6.0
OS:         macOS 12.5.1 Monterey
Shell:      /bin/zsh

if needed.

however, if I explicitly pass stages = "fade_in_slide_out" to a notify call, the error disappears.
I'm not sure what you mean by this, there is no stages argument for a notification.

Please verify that :echo &termguicolors prints 1 after seeing the warning and if so open a separate issue. I won't be able to track closed issues

however, if I explicitly pass stages = "fade_in_slide_out" to a notify call, the error disappears.

I'm not sure what you mean by this, there is no stages argument for a notification.

Isn't this the stages argument? It is also referenced in the README and it does accept values when passed.

Yes that's for the setup function, you said you passed it to a notify call i.e. require("notify")(...). Again please open a separate issue, I won't be tracking this

Yes that's for the setup function, you said you passed it to a notify call i.e. require("notify")(...).

Yes, that's my point, you can pass the option to a notify call directly, and that works by overriding the defaults: I thought I would provide this bit of info that can be useful for you if you want to further debug it :).
I will be opening a separate issue and prepare a minimally reproducible example.


Revoke Reasons Pop Up

name: Revoke Reasons Pop Up
about: Pop up that includes a list of revocation reasons including others
Summary
Simple form or pop-up after the revocation button is clicked
This adds a separate pop-up component that contains an entire form.
This pull request is strictly related to the JIRA ticket HYP-142 or parts of it.

Motivation
To make sure the React GUI is as close as possible to the Figma design.

Describe alternatives you've considered
To have everything into one component

Additional context
OriginalFigmaScrShot

FirstSection
ExampleReasonsAttachmentJSOBblob
{
	"dataError":{"discrepancies":false,"incorrect":true,"missing":false},
	"certMis":{"incorrect":false,"unverified":false,"claims":false},
	"nonCompliance":{"violation":false,"repeated":false},
	"otherReason":"other"
}

WithConfirmButtons

Some slightly ugly UI elements:
This needs to be properly formatted within a box

and the blue box around the black X - both should be white or more obvious, and try to resize so you don't do a quarter-scroll down to have to see the whole form

Some slightly ugly UI elements:
This needs to be properly formatted within a box
and the blue box around the black X - both should be white or more obvious, and try to resize header so you don't do a quarter-scroll down to have to see the whole form

Done


Tweak sqlcmd best practices

The current best practice recommends -X.  -X1 is even safer.
Added section on correctness to best practices.  Feedback welcome.

@jzabroski : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@jzabroski : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@markingmyname : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@markingmyname : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@jzabroski, thanks for the contribution.
Made a small edit to your contribution.
approved.
#sign-off

@jzabroski, thanks for the contribution.
Made a small edit to your contribution.
approved.
#sign-off

@ktoliver : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@ktoliver : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Fastlane very slow

New Issue Checklist

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

Issue Description
Fastlane suddenly is very slow and uses 100% CPU. I've tried uninstalling and reinstalling fastlane, no luck. It used to work fine, I didn't update fastlane or any gem recently I think (I did update after the issue occurred of course)
Complete output when running fastlane, including the stack trace and command used
➜  ~  time fastlane -v
fastlane 1.91.0
fastlane -v  210.40s user 1.80s system 98% cpu 3:35.40 total

if I kill the command (ctrl-C), I get this stacktrace:
➜  ~  time fastlane -v
^C/Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/stub_specification.rb:138:in `name': Interrupt
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/dependency.rb:274:in `block in matching_specs'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/dependency.rb:273:in `each'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/dependency.rb:273:in `find_all'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/dependency.rb:273:in `matching_specs'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/dependency.rb:295:in `to_specs'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2438:in `block in traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2437:in `each'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2437:in `traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2440:in `block (2 levels) in traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2438:in `each'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2438:in `block in traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2437:in `each'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2437:in `traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2440:in `block (2 levels) in traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2438:in `each'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2438:in `block in traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2437:in `each'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2437:in `traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2440:in `block (2 levels) in traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2438:in `each'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2438:in `block in traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2437:in `each'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2437:in `traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2440:in `block (2 levels) in traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2438:in `each'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2438:in `block in traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2437:in `each'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2437:in `traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2440:in `block (2 levels) in traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2438:in `each'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2438:in `block in traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2437:in `each'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2437:in `traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2440:in `block (2 levels) in traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2438:in `each'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2438:in `block in traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2437:in `each'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2437:in `traverse'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:961:in `block in find_in_unresolved_tree'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:959:in `reverse_each'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:959:in `find_in_unresolved_tree'
	from /Users/thomas/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:87:in `require'
	from /Users/thomas/.rvm/gems/ruby-2.2.3/gems/fastlane-1.91.0/lib/fastlane/actions/actions_helper.rb:66:in `block in load_default_actions'
	from /Users/thomas/.rvm/gems/ruby-2.2.3/gems/fastlane-1.91.0/lib/fastlane/actions/actions_helper.rb:65:in `each'
	from /Users/thomas/.rvm/gems/ruby-2.2.3/gems/fastlane-1.91.0/lib/fastlane/actions/actions_helper.rb:65:in `load_default_actions'
	from /Users/thomas/.rvm/gems/ruby-2.2.3/gems/fastlane-1.91.0/lib/fastlane.rb:27:in `load_actions'
	from /Users/thomas/.rvm/gems/ruby-2.2.3/gems/fastlane-1.91.0/lib/fastlane/commands_generator.rb:12:in `start'
	from /Users/thomas/.rvm/gems/ruby-2.2.3/gems/fastlane-1.91.0/lib/fastlane/cli_tools_distributor.rb:47:in `take_off'
	from /Users/thomas/.rvm/gems/ruby-2.2.3/gems/fastlane-1.91.0/bin/fastlane:5:in `<top (required)>'
	from /Users/thomas/.rvm/gems/ruby-2.2.3/bin/fastlane:23:in `load'
	from /Users/thomas/.rvm/gems/ruby-2.2.3/bin/fastlane:23:in `<main>'
	from /Users/thomas/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `eval'
	from /Users/thomas/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `<main>'

Configuration Files
Does not apply here I believe. I get the issue while running fastlane -v in a random directory
Environment
fastlane version (run fastlane -v):
Do you use bundler to execute fastlane (i.e. bundle exec fastlane)?
No
Do you use a Ruby environment manager (e.g. chruby, rbenv, rvm)?
I use rvm

Did you try this:
[sudo] gem cleanup

@KrauseFx thanks it worked! And thanks for a great project overall

Yeah 🚀


Error when using helper function from setup-test.js in Ember CLI 2.12.3

When using the helper function https://github.com/ciena-blueplanet/ember-test-utils/blob/265973b92d856615dee92e5ec2368b1170b5111f/addon-test-support/setup-test.js#L154 from setup-test.js in an add-on running Ember CLI 2.12.3 the following error is thrown:
Error: You attempted to access "compute" on a factory manager created by container#factoryFor. "compute" is not a member of a factory manager."
    at Object.get (assets/vendor.js:17119:21)
    at Object.options.subject (assets/test-support.js:37466:21)
    at Context.context.(anonymous function) [as subject] (assets/test-support.js:36892:39)
    at Context.<anonymous> (assets/tests.js:2828:22)
    at assets/test-support.js:37633:25
    at Backburner.run (assets/vendor.js:16438:23)
    at Object.run (assets/vendor.js:38436:27)
    at Context.<anonymous> (assets/test-support.js:37631:24)
    at invoke (assets/test-support.js:22185:21)
    at Context.asyncFn (assets/test-support.js:22170:11)

@notmessenger can provide a failing example

Notes anyone can ask me about
  https://github.com/emberjs/data/commit/0ab7698fffe3c4b51646bb1b72207685c95c78fb

  _modelFactoryFor(modelName) {
    heimdall.increment(modelFor);
    let factory = this._modelClassCache[modelName];

    if (!factory) {
      factory = this.modelFactoryFor(modelName);

      if (!factory) {
        //Support looking up mixins as base types for polymorphic relationships
        factory = this._modelForMixin(modelName);
      }
      if (!factory) {
        throw new EmberError(`No model was found for '${modelName}'`);
      }

      // interopt with the future
      let klass = getOwner(this).factoryFor ? factory.class : factory;

      assert(`'${inspect(klass)}' does not appear to be an ember-data model`, klass.isModel);

      // TODO: deprecate this
      klass.modelName = klass.modelName || modelName;

      this._modelClassCache[modelName] = factory;
    }

    return factory;
  },

https://github.com/ember-intl/ember-intl/commit/4cf6669791f661856199cae4293caa0d5028ad83

-    const Klass = owner.factoryFor('model:ember-intl-translation') || Translation;    +    let Klass;
 -    const ModelKlass = Klass.extend();     +    if (owner.hasRegistration('model:ember-intl-translation')) {

 +      Klass = owner.factoryFor('model:ember-intl-translation').class;
 +    } else {
 +      Klass = Translation;
 +    }

 +    const ModelKlass = Klass.extend();

https://github.com/scoutforpets/ember-fullcalendar/pull/44/files
https://github.com/scoutforpets/ember-fullcalendar/issues/43

-    const applicationConfig = getOwner(this)._lookupFactory('config:environment');
+    const applicationConfig = getOwner(this).resolveRegistration('config:environment');


fix logic error

Every instance of:
yield return new WaitWhile(() => Player.m_localPlayer == null && Player.m_localPlayer.m_sleeping);
is wrong and should instead be:
yield return new WaitWhile(() => Player.m_localPlayer == null || Player.m_localPlayer.m_sleeping);

fixed in 3.0.1


⚠ AGEG website (redirect) has degraded performance

In 213bb0a, AGEG website (redirect) (https://ageg.ca/) experienced degraded performance:

HTTP code: 200
Response time: 4316 ms

Resolved: AGEG website (redirect) performance has improved in 62ee22a.


pass data from release file template to values file template

Is there a way to pass data from releases to the values templates in a release?
The idea is, I have an array in my .Values that I would like to range and then use the data for that instance of the array:
The array:
api:
  instances:
    - name: bob
       option: one

releases:
{{- range .Values.api.instances }}
  - name: api
    namespace: {{ .name }}
    chart: my/api
    values:
      - api.yaml.gotmpl
{{ end }}

so I would like api.yaml.gotmpl to have access to ..

Not solved? How can I do it, as I dynamically creating releases

yeah, so I have this but without using value files outside of the release file. Everything is in the release file. Not the best but it works.


Look into auto updates

Need to see if this works

I believe that you wrote this issue as a remainder to yourself as it references nothing I could test

Yes I did

Tried this out (by changing the version of package.json to something older than the current version on github), running gulp run dist  (which builds the installer to the dist/monterey folder) and then running the installer. It found the newer version, downloaded it and said in a toastr message that the update would be installed as soon as the program exited. after closing and opening monterey again it showed the new version
will document this as part of https://github.com/monterey-framework/monterey/issues/138

That is a major deal


Add Bio.Restriction.Enzyme.cuts?/1

Pretty straight forward what this would do. Ideally parameter types would be String.t(), %DnaStrand{}, and DnaDoubleStrand.

See: bio-ex/bio_ex_restriction#2


Automated Smart Replies using ML kit in Android

Automated Smart Replies using ML kit in Android
Proposed article introduction
Smart Replies are contextually one-touch responses that help the user to reply to an incoming text message (or email) efficiently and effortlessly. Smart Replies have been highly successful across several Google products including Gmail, Inbox and Allo. The Smart Reply model is targeted towards text chat use cases. It has a completely different architecture from its cloud-based counterparts, and is built specifically for memory constraints devices such as phones.
For a learner looking do develop an application with smart and automated replies, this tutorial will fit him/her well.  The tutorial will expound more on firebase ML rather than using Tensor Flow lite.
Key takeaways

What are smart Replies
What are the benefits of Smart reply in chat application
How Firebase ML kit works with Tensor Flow lite
Step by step implementation of Smart Replies in android

Article quality
Unlike other blog posts, my article will first provide an overview of how smart replies is done using Tensorflow through training models. This will narrow down to using Firebase ML kit illustrating how Tensorflow models can be used in Firebase ML kit.
References
https://developers.google.com/ml-kit/

Thank you for submitting your topic. @robert-muriithi
After some careful consideration, it struck us that this topic may be a bit over-saturated throughout other blog sites and official documentation.
We believe this is the best way for students to build a great portfolio (for potential employers) is by building what does not exist and what can provide the most value.
Please feel free to suggest an alternate topic to explore. 🚀


Cherry pick fix bazel 0.20

Bazel 0.20 fixes into release 1.17.1

Cherry-pick two commits from grpc/grpc#17363
Does not cherry-pick the merge commit from which was merged with f8696b5136108fd2d46e553fdd550e1be6ba2677

This closes #17445

@grpc-google-owners any chance to get the bazel-0.20 fixes from @nicolasnoble  into a versioned release of gRPC?

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 2,020,503      Total (=)      2,020,503

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
11,175,634      Total (>)     11,175,628

 No significant differences in binary sizes


bug: npm create checkly does not recognize existing project

Node.js version
18
NPM version
8
@checkly/cli version
4.0.8
Steps to reproduce

Run npm create checkly in a folder that already has a package.json

What is expected?
It should recognize that there is a package.json and use a different installation branch, prompting the user to set up checkly for an existing project.
What is actually happening?
it does not recognize it and prompts creating a brand new one.
-rw-r--r--@ 1 timnolet  staff   239B May 31 17:13 package-lock.json
-rw-r--r--@ 1 timnolet  staff   222B May 31 17:13 package.json
timnolet@MacBook-Pro-van-Tim playwright-multi-step-test % npm create checkly
 checkly  v4.0.8 Build and Run Synthetics That Scale

Hi Tim Nolet! Let's get you started on your monitoring as code journey!

? Where do you want to create your new project? › purple-parrotfish

Any additional comments?
This is 9999% due to wrong usage of process.cwd() in https://github.com/checkly/checkly-cli/blob/62891ff0ec3102896b8467ed58159aaf7c353d63/packages/create-cli/src/utils/package.ts#L12

@tnolet @maxigimenez , I wasn't able to reproduce the issue. I tried it using Linux and Windows:

@nahuelon I tried on a MacOS / Darwin and it doesn't work for me

@nahuelon are you working on a fix for this? Otherwise, ping me and I can help, it might be related to this change https://github.com/checkly/checkly-cli/pull/713, the original version was working fine, but then was reported that in some cases package.json wasn't detected, so move to use process.cwd

We seem to happen only on my machine, I started to crowd source some reports with folks with the same config:

MacOS / Darwin
Using fnm as Node.js version manager.

A simple script to test this is:

create an simple node project:
mkdir my-test
cd my-test
npm init
npm i -S axios

And then install the Checkly CLI using:
npm create checkly
It SHOULD prompt you that you already have a package.json and ask you if you want to use the current project. But, on my machine it somehow cannot read the package.json.

This was fixed by using NPM 9 and Nodejs 18.


Unable to fully generate PDF file, getting reference errors generating PDF outline

I am trying to generate a PDF using the attached adoc file (inside the ZIP). The file generates both HTML and PDF output normally (I have attached those copies for reference), but when using the web-pdf generator instead I get a number of errors output (see the log file, this is just the screen output).
The PDF and HTML files names with webpdftest are the output from the same source. The PDF file is about 75 pages instead of the 140 or so it should be (and the TOC has everything as page 0 with no links), and the HTML is also very short compared to what it should be.
The errors generated all seem to be about inforrece anchor links, but I don't see any problems when I generate the files using the more traditional asciidoctor programs.
Any help would be appreciated.
web-pdf-test.zip
This is being run from the released version for Windows (being run through Powershell).

This is a know issue with Paged.js. When the Paged.js engine cannot layout an element it will skip it (i.e. truncate the document). That's the reason why some pages are missing and as a result some sections (section are missing from the table of content (more specifically section title references).
At some point, we might try to use another engine called https://github.com/vivliostyle/vivliostyle.js. Maybe it will give us better result.
If you can create a small reproduction case, I encourage you to report this issue at https://gitlab.coko.foundation/pagedjs/pagedjs/

At some point, we might try to use another engine called https://github.com/vivliostyle/vivliostyle.js. Maybe it will give us better result.

I'm looking into Vivliostyle because I ran into some limitations with Paged.js as well.
For what it's worth I quickly ran the document through asciidoctor, asciidoctor-web-pdf and vivliostyle to get a general feel of their flow. At least it produces a ~140 page document. Obviously it needs a lot of tweaks for the style to look good.

adoc -> asciidoctor -> vivliostyle: cpp_dsc_v1-vivliostyle.pdf
adoc -> asciidoctor-web-pdf (paged.js removed) -> vivliostyle:: cpp_dsc_v1_webpdf_pagedjs_removed_vivliostyle.pdf
adoc -> asciidoctor-web-pdf (paged.js removed): cpp_dsc_v1_webpdf_pagedjs_removed.pdf

Are there any serious plans or a vision on how Vivliostyle would fit into asciidoctor-web-pdf or the Asciidoctor ecosystem as a whole?

Do I understand it correctly, that anchors in general do not work? Is there a workaround other than using vivliostyle?
I would like to generate a document in order to be able to modify the css. But if I cannot create a document at all then it's not worth the effort and I have to stick to asciidoctor-pdf.

Do I understand it correctly, that anchors in general do not work? Is there a workaround other than using vivliostyle?
I would like to generate a document in order to be able to modify the css. But if I cannot create a document at all then it's not worth the effort and I have to stick to asciidoctor-pdf.

It's not really anchors but rather missing contents. Paged.js will skip elements (i,e., contents) when it cannot figure out how to make them fit into a page.

Just saw issue https://github.com/ggrossetie/asciidoctor-web-pdf/issues/267 and this is related. So it's my table that ruins the PDF creation

Tables are notoriously difficult to gracefully chunk into multiple pages because they have a rigid/strict layout. It gets worse when the table contains images or colspans/rowspans.


Feature Request (from Google Groups): DATE handling

I took the liberty to create a feature request out of this discussion: https://groups.google.com/forum/?fromgroups=#!topic/arangodb/3Wt4c44mc0I
Excerpt:
2) ArangoDB Server provides date handling functionality.
a) As date is a special type, I believe it could be handled that way. This can be provided by defining attributes in a collection as of special type 'date'. This could look like this:
db.myCollection.defineAttributeType('my.attribute', 'date');
// This would for example set the nested attribute 'attribute' as a date field.

... for a nested document attribute inside a list, it could be:
db.myCollection.defineAttributeType('my[*].attribute', 'date');
  // This would for example set the nested attribute 'attribute' as a date field. ```

... or for a list that would contain dates:
db.myCollection.defineAttributeType('my[*]', 'date');
  // This would for example set the contents of a list as a date field

... mixing both could also be possible. So one could have a list of direct values and nested ones:
 {"my":[{"attribute":"2012-11-30T22:24:32.43Z"}, "2012-11-30T22:24:32.43Z"]}

b) The user would pass datetime strings like { "my":{"attribute":"2012-11-30T22:24:32.43Z"}} or maybe other formats like  { "my":{"attribute":"2012-11-30"}}... etc
  Internally, ArangoDB would convert and store those as timestamps.
  Knowing that it's a date field, it would automatically convert the datetime strings to timestamps for storing.

  That way, no special JSON handling is required by either the server or the client.
  Error handling: if the datetime string would have invalid data, the operation should be rejected.

c) With those would of course come some datetime functions to query (AQL)
Simple queries  would probably not need anything special, as they are limited anyway.
AQL queries:
DATE_MATH ("{mathcommand like add || subtract}", {date field to operate on, or a value}, {the modifying value , or a string like INTERVAL 1 WEEK'} );
 // Function to do math on a field or value

DATE_CURRENT (); Gets current date on server.

...maybe  more, that I haven't thought of just yet. But you get the idea :)
What do you think?

Would supporting BSON as storage type be beneficial here? That format supports defining date fields as well as binary (Issue #107) in addition to other types which might be beneficial such as 32/64bit integers, 64bit floating point (Issue #555) and regular expressions.
I imagine getting BSON to work with the v8 engine might be tricky, since it supports more things than the javascript language itself does.

Any update on this ?

This discussion looks a bit rusty, and I'm not sure when the DATE_*() functions became available in AQL. I have the feeling though that they didn't exist when this discussion started.
There's no DATE_ADD(), but the following should work:
// to UTC, not sure if DATE_ISO8601() would be equally fast...
LET date = DATE_TIMESTAMP("2015-10-24 18:30+0200")

LET Y = DATE_YEAR(date)
LET M = DATE_MONTH(date)
LET D = DATE_DAY(date)
LET h = DATE_HOUR(date)
LET m = DATE_MINUTE(date)
LET s = DATE_SECOND(date)
LET ms = DATE_MILLISECOND(date)

RETURN {
    date: DATE_ISO8601(date),
    "date+3_days": DATE_ISO8601(Y, M, D+3, h, m, s, ms)
}

This is basically how it's done in JavaScript AFAIK (.setDay(.getDay()+2))), e.g. by moment.js timezone.
Note that the client is responsible for either sending the correct UTC timestamp, or an ISO 8601 string with the correct timezone offset included. When the client moves from DST to regular time, then that's a shift of -1 to the offset (Germany: GMT+2 to GMT+1). If this isn't done by the client, then the calculated UTC time will be off by 1 hour. It's probably better to use UTC time in the first place on both sides. new Date().toISOString() in JavaScript returns an ISO 8601 string in Zulu (=UTC+0 / GMT+0 / world-) time anyway - granted the time and timezone offset is correctly set up on the client's machine.

WIP patch for extra date functions:
https://gist.github.com/CoDEmanX/1c7bfd266ad70da2d641
LET date = DATE_NOW()

RETURN {
    dayOfYear: DATE_DAYOFYEAR(date),
    weekDate: DATE_ISOWEEK(date),
    firstApril: DATE_CALC("2015-03-31", "day", 1),
    xmas2011: DATE_CALC("2015-12-24", "years", -4)
}
/* [
  {
    "dayOfYear": 242,
    "weekDate": 35,
    "firstApril": "2015-04-01T00:00:00.000Z",
    "xmas2011": "2011-12-24T00:00:00.000Z"
  }
] */

There's a bug I can't seem to figure out: if I pass DATE_CALC() the result of another data function, such as DATE_NOW(), then an empty object {} is returned. It works fine for date strings and numbers however.

Figured it out, my DATE_CALC() needs to explicitly return an ISO string, not a date object.
LET date = DATE_NOW()

RETURN {
    dayOfYear: DATE_DAYOFYEAR(date),
    weekDate: DATE_ISOWEEK(date),
    dayAfterTomorrow: DATE_CALC(date, "days", 2),
    lastDayFeb2015: DATE_CALC(DATE_CALC("2015-02", "month", 1), "day", -1),
    lastDayFeb2016: DATE_CALC(DATE_CALC("2016-02", "month", 1), "day", -1),
    xmasFourYearsAgo: DATE_CALC(DATE_TIMESTAMP(DATE_YEAR(date), 12, 24), "years", -4),
    leapyear: DATE_LEAPYEAR(date),
    leapyear2016: DATE_LEAPYEAR("2016")
}
/* [
  {
    "dayOfYear": 242,
    "weekDate": 35,
    "dayAfterTomorrow": "2015-08-31T15:17:52.397Z",
    "lastDayFeb2015": "2015-02-28T00:00:00.000Z",
    "lastDayFeb2016": "2016-02-29T00:00:00.000Z",
    "xmasFourYearsAgo": "2011-12-24T00:00:00.000Z",
    "leapyear": false,
    "leapyear2016": true
  }
] */

Here's a patch including unit tests (did not actually run them...), documentation and syntax highlighting in aardvark (app.js.gz / app.min.js.gz need to be rebuilt):
https://gist.github.com/CoDEmanX/9a0f61d02a8ecbb127f4
Not sure what to do about DATE_DIFF()... in MySQL, the number of days between the dates is returned. Only the date part is considered (i.e. time is ignores). I'm not sure what MySQL returns for DATEDIFF("2014-12-31T23:59:59.999Z", "2015-01-01T00:00:00.000Z"), it's oly 1ms but on two different days (UTC+0). Does/should it return 1, 0 or 1/864e5? A possible AQL solution would be:
LET date1 = "2014-12-31T23:59:59.999Z"
LET date2 = "2015-01-01T00:00:00.000Z"
LET t1 = DATE_TIMESTAMP(DATE_YEAR(date1), DATE_MONTH(date1), DATE_DAY(date1))
LET t2 = DATE_TIMESTAMP(DATE_YEAR(date2), DATE_MONTH(date2), DATE_DAY(date2))
RETURN {diff: (t1 - t2) / 864e5} // {"diff": -1}

Would be easy to make a shortcut for this, if it's really the way it should work. I can also think of a fancier version that takes an additional parameter to specify the target unit (years, months, days, hours, ...). And perhaps an additional parameter to control whether fractions shall be returned or not. It would be easy to achieve a query like "true if difference between A and B is < 24 hours" with both of the latter: DATE_DIFF(A, B, "hours", true) < 24 (or "days" and < 1).

@CoDEmanX : is the patch still WiP? If yes, please take your time and let us know when/if you want us to merge it. Thanks for the work!

Yes, I would consider it WIP and I'd like to hear some thoughts about the code.
I already improved DATE_CALC() locally to use a dictionary lookup to determine the getters and setters for the given time unit (which I renamed to interval). That should be faster than the current switch monster, and is definitely shortly in terms of code length. It's slightly harder to follow though, because the lookup object is at the beginning of the file and I later reference the getter and setter names like m[1] - which is a bit cryptic. Destructuring would massively improve the readability. Will update as destructuring assignment becomes available in V8.
Furthermore, I added DATE_QUARTER(), a straightforward calculation but still handy. I also took a shot at the described DATE_DIFF(), but I'm having trouble with the overall design. Some quick tests showed unexpected results, which may or may not be caused by the fact that JS ignores leap seconds . I also found some hints about timezone trouble if you are +/- 12 hours ahead or behind UTC and do not know yet if it applies if Date.UTC is used. DATE_DIFF("2015-05-06", DATE_CALC("2014-05-06", "day", -1), "years") and similar calculations should eventually return the "age", 1 year in the example, regardless of timezone, DST and leap years. If that is possible without handling leap seconds, I'm not so sure.

I think leap seconds need to be ignored because the underlying JS operations don't support them.
And if they're entirely ignored by all functions that handle dates, I think they shouldn't cause further problems in calculations.
Directly referring to a leap second date value would then need to be considered an invalid date, as suggested by the following JS:
> new Date("2015-06-30T23:59:59Z").toISOString(); /* regular date */
2015-06-30T23:59:59.000Z
> new Date("2015-06-30T23:59:60Z").toISOString(); /* leap second date */
JavaScript exception: RangeError: Invalid time value
!new Date("2015-06-30T23:59:60Z").toISOString();
!                                 ^
stacktrace: RangeError: Invalid time value
  at Date.toISOString (native)
  at <shell command>:1:34

Apart from that, all date functions should work with UTC internally, and also assume UTC if no timezone is specified. I think your functions all do this. I think then they should be reasonably safe to use for UTC at least. My assumption is that this should work with other timeszones too, provided the JS Date implementation handles them correctly. I am not aware of any issues with +/12 hours timezones, but I haven't searched for this yet. Is there any specific issue?
I would leave the ISO 8601 periods for later, in order to make the changes more manageable (diff becomes smaller).

Huh, I didn't know it would reject the second 60 in a string. It does accept it if the constructor is called with numbers, but will actually overflow to minutes - so that it's not referring to the leap second. We should be safe indeed.
I also believe that it should work with other timezones, because MAKE_DATE() creates UTC Date objects with Zulu time and thus it should be impossible to run into trouble as long as setUTC*() and getUTC*() are used, and toISOString() returned if needed (Zulu-time time string).
The trouble with timezones like Brazil seems to originate from rounding a date difference. The 12 hours offset places it exactly on UTC noontime (12:00). The rounding may go in the wrong direction it seems, leading to off-by-one errors. But this might be a matter of picking the right rounding function (ceil, floor, round). I need to check again if they used 12:00:00+1200 or 00:00:00+1200.

When it comes to date differences, I really don't know what users expect under certain conditions. MySQL's DATEDIFF() ignores the time portion and returns the number of days.
If we want to let the user specify the desired time unit however, should all greater units be taken into account up to the specified one, and the rest ignored? Like, if diff in minutes is requested, should the seconds and milliseconds of both input dates be ignored? 2014-03-02 16:17:18.987
Ignoring them would lead to integer results, and decimal fractions otherwise. Such fractions are problematic if months or years are requested as output time unit, because it can't be easily calculated:

Time unit
equivalent
in milliseconds

1 second
1000 ms
1000ms

1 minute
60 seconds (JS doesn't care about leap seconds)
60,000

1 hour
60 minutes
3,600,000

1 day
24 hours (no 23/25h days in UTC time)
86,400,000

1 week
7 days
604,800,000

1 month
28, 29, 30 or 31 days!
from 2,419,200,000 to 2,678,400,000

1 year
365 or 366 days
from 31,536,000,000 to 31,622,400,000

Using average ms per month / year would certainly give unexpected results, because +1 year and 2 days may still be <1 year depending on the date. I'm not sure yet if there's an easy way in JS to safely determine month/year diff with fractions, but I doubt it. One would probably need to handle the individual date components and accumulate the ms per months depending on which month it is and if it's a leap year.
Furthermore, a user might expect the dates 2015-01-01 and 2016-01-01 to have a difference of 1 year (think age calculation). That's not correct IMO, because the year isn't complete if it's the same day. It only is, if the first date has time 00:00:00 and the second 24:00:00 - which is effectively the next day. This could be pointed out in the documentation however ("add one day / 24 hours if...").
Adding or subtracting ISO durations from a given date shouldn't be as problematic, because a point in time is known and changes are applied in relation to that time natively by JS (+1 month is +28..31 days, so a month as expected and not a fixed amount of days such as 30).

Nice work! @CoDEmanX :)
Could you elaborate on how 2015-01-01 + 1 year makes 2016-01-02? I can't see that making sense semantically or mathematically.

2015-01-01 + 1 year needs to be 2016-01-01 and 2016-01-01 -1 year 2015-01-01 of course. DATE_CALC() should already do that. But that's Date + Duration.
What I mean is the expected result of DATE_DIFF(Date1, Date2, "years") if the input is 2016-01-01 and 2015-01-01 respectively. Is the difference a year? I say no, because the year isn't complete. It has 365 (366) days, with the last day included. Hence, the 24 hours of the last day are also included. If you start at 2015-01-01 (which is 00:00:00.000) and go to 2016-01-01 (also 00:00:00.000), then 86,399,999 ms are missing of that last day to complete the year, no? The day ends the moment 2016-01-01 23:59:59.999 is over to 24:00:00.000, which is 2016-01-02 00:00:00.000 - or am I overthinking this?

I thought it was more appropriate to continue the discussion as comments to your patch. Maybe a separate issue would be even better for keeping history though? This issue seems to deal more with types, validation and formatters than just date functions.

@CoDEmanX : to summarize the latest concerns regarding DATE_DIFF(), is the problem that the unit year has does not correspond to a fixed number of days or seconds? I.e. how many days a year has depends on whether the date range in question contains leap years or not.
The same would be true for months, e.g. for DATE_DIFF("2014-02-28", "2014-03-28", "months"): is the expected result the value 1 (because one calendar month elapsed) or 0.9xx because a month is 30.x days on average?
MySQL's DATEDIFF will elegantly ignore all these issues it only returns days (which always have the same length, at least when leap seconds are ignored) and does not take into account the time part. Maybe it's worth getting as simple as that in AQL, too.

A solar year is 365.2422 days, making an average solar month 365.2422 / 12 = 30,43685 days. Using those numbers to calculate the diff would ensure not accumulating errors if the span is very long between the dates, but comparisons between short spans (especially around february) would have a significant margin of error. Does this method have to be accurate however? If I wanted to get accurate measures I would not use month or year as a units, and if this is over engineered for accuracy and I just ROUND() it anyway the accuracy would cost me cpu time.
If mimicking MySQL's DATEDIFF, you would also need something like their TIMEDIFF for more precise data.
Also, MySQL are doing date1 - date2 instead of date2 - date1. I would prefer the more standardized and intuitive date2 - date1.

@jsteemann: I could make it accept days..ms as output time unit only, but I would like to allow for months and years too, because I see a demand for that (especially age calculation).
@friday: there should be a way that isn't too cpu-intense and still be accurate. It's just some brainwork to figure it out. I also prefer date2 - date1, because you get negative values too easily the other way around and it's probably not what you want (I don't want to return an absolute number either).

moment.js seems to be doing it correctly from what I can tell:
Test: codepen.io
If this proves to be correct, the entire library could either be added, or the essential parts be taken out and integarted directly into ArangoDB (it's MIT-licensed).

@CoDEmanX : :+1: for date2 - date1.
moment.js may be a solution. Does it have any dependencies? By the way, the codepen test linked above only produces NaN values in my Firefox 40.0.3.

It has a lot dev dependencies, but no runtime dependencies it seems.
I fixed the pen for Firefox, it didn't like timezone offsets (trailing Zs) if no hours and minutes are given - which is a bit odd. I'm now creating moment objects in UTC time explicitly, to exclude DST changes.
Another question that came up when I looked at the code of AQL_LIKE: there's a Regex cache, that is apparently never cleared. Doesn't it mean that if a user runs thousands of different like queries, that the server will use more and more memory for the cache without ever releasing it? Isn't that a problem if the arangod runs for a year straight?
I wonder if ES6 weaksets will help. The GC would be allowed to get rid of cache entries, but will it do so eventually, or rather early? If it cleaned the cache shortly after its creation, then it would render the cache useless...

I tried to make an equivalent to moments diff(). Unless you need anything else from moment.js, perhaps my example can be used as a starting point? https://gist.github.com/CoDEmanX/1c7bfd266ad70da2d641#gistcomment-1566640

Good work @friday! Looks good to me.
moment.js has a lot of nice features, but I don't think we really need them server-side. While it may seem good to have a .humanize() for durations in AQL to output something like 3 years, 14 days, it doesn't really belong on the server. A JS client can easily use moment.js to do that and reduce the load of the server.
And it's not really useful anyway to send pretty-printed data around - see StackOverflow for example: post dates are nicely formatted, but lack precision. You can hover them though to reveal the actual timestamp for a precise point in time if you really care to know. My points: it gives more options to the client if the "raw" date is transmitted.
The only advantage I see in having a full moment.js on the server is that date formatting becomes client independent. If you use Python for instance, then you can't use moment.js and need to find a replacement. If there's no good replacement, then you'll have to come up with your implementation - which is not all that trivial as we saw.

@jsteemann: We could use your input in our discussion, first post contains a summary:
https://github.com/CoDEmanX/ArangoDB/issues/1#issue-105221498
It doesn't need to be a code review yet, it's rather about how things should work.

I will close this issue now, as with ArangoDB 2.7 the following AQL date functions have been added. Quoting from the CHANGELOG:

DATE_DAYOFYEAR(date): Returns the day of year number of date.
The return values range from 1 to 365, or 366 in a leap year respectively.

DATE_ISOWEEK(date): Returns the ISO week date of date.
The return values range from 1 to 53. Monday is considered the first day of the week.
There are no fractional weeks, thus the last days in December may belong to the first
week of the next year, and the first days in January may be part of the previous year's
last week.

DATE_LEAPYEAR(date): Returns whether the year of date is a leap year.

DATE_QUARTER(date): Returns the quarter of the given date (1-based):

1: January, February, March
2: April, May, June
3: July, August, September
4: October, November, December

DATE_DAYS_IN_MONTH(date): Returns the number of days in date's month (28..31).

DATE_ADD(date, amount, unit): Adds amount given in unit to date and
returns the calculated date.
unit can be either of the following to specify the time unit to add or
subtract (case-insensitive):

y, year, years
m, month, months
w, week, weeks
d, day, days
h, hour, hours
i, minute, minutes
s, second, seconds
f, millisecond, milliseconds

amount is the number of units to add (positive value) or subtract
(negative value).

DATE_SUBTRACT(date, amount, unit): Subtracts amount given in unit from
date and returns the calculated date.
It works the same as DATE_ADD(), except that it subtracts. It is equivalent
to calling DATE_ADD() with a negative amount, except that DATE_SUBTRACT()
can also subtract ISO durations. Note that negative ISO durations are not
supported (i.e. starting with -P, like -P1Y).

DATE_DIFF(date1, date2, unit, asFloat): Calculate the difference
between two dates in given time unit, optionally with decimal places.
Returns a negative value if date1 is greater than date2.

DATE_COMPARE(date1, date2, unitRangeStart, unitRangeEnd): Compare two
partial dates and return true if they match, false otherwise. The parts to
compare are defined by a range of time units.
The full range is: years, months, days, hours, minutes, seconds, milliseconds.
Pass the unit to start from as unitRangeStart, and the unit to end with as
unitRangeEnd. All units in between will be compared. Leave out unitRangeEnd
to only compare unitRangeStart.

DATE_FORMAT(date, format): Format a date according to the given format string.
It supports the following placeholders (case-insensitive):

%t: timestamp
%z: ISO date (0000-00-00T00:00:00.000Z)
%w: day of week (0..6)
%y: year (0000..9999)
%m: month (01..12)
%d: day (01..31)
%h: hour (00..23)
%i: minute (00..59)
%s: second (00..59)
%f: millisecond (000..999)
%x: day of year (001..366)
%k: ISO week date (01..53)
%l: leap year (0 or 1)
%q: quarter (1..4)
%a: days in month (28..31)
%n: English name of month (January..December)
%o: abbreviated English name of month (Jan..Dec)
%e: English name of weekday (Sunday..Saturday)
%g: abbreviated English name of weekday (Sun..Sat)
%%: literal %

The format options of DATE_FORMAT() are actually outdated, up-to-date list in the docs.

I copied those from the 2.7 CHANGELOG, and the list from 2.7 indeed deviates from the one in devel.
I'll update the list in 2.7, as the devel list seems to be the up-to-date one. Thanks for the note.

Looks like something went wrong with my PR https://github.com/arangodb/arangodb/pull/1489/files
but no one complained so far plus it's correct in the docs :+1:

@CoDEmanX : so are you saying everyhing's ok and the current codebase is as it should be?

Yeah, everything's tidied up.

thx for the confirmation


ABC323 and ARC166 problems are not showing

ABC323 and ARC166 rows are shown on problem list, but there are no problems shown on these rows. The difficulty of the problems can still be accessed by User Submission menu, however.

Looks like it resolved. Thank you for your reporting.


Expose preferences as subjects?

Basically the same reasoning as #7 but we wouldn't need two overloads.

Quick non-subject approach: https://github.com/JakeWharton/NotRxAndroid/pull/9


ingress: add a new annotation for dedicated LoadBalancerClass

This adds a way to configure the LoadBalancerClass on dedicated LB created by the operator, via an annotation on the ingress
Added a new annotation `ingress.cilium.io/loadbalancer-class` to control the `LoadBalancerClass` of a dedicated LB via the ingress.

/test

thanks! Any idea why it's failing the doc check ? (Can't seem to access the logs, and it works locally)

I don't understand what happened in this job, I don't see any logs either. I've rerun the job :woman_shrugging:
I see you added a commit with a test fix, can you squash it together with the previous commit and force push? So that the git history on main is cleaner.

In general, adding new Ingress annotations should have an issue first to discuss if adding an annotation is the right solution. We would prefer not to end up with 118 annotations available on Ingress like other implementations, so we try to be picky about what we add.
I think in this case, it makes sense because it's only in the dedicated use case, so we can do it this time. But please, in the future, open an issue first to discuss?

@youngnick

But please, in the future, open an issue first to discuss?

Yes of course! As I has already written the code I figured we could discuss in the PR directly! But noted for next time, thanks!
And I added a few tests as well!

/test

/test

/test

@Sh4d1, I think there are some problems with the code, the prechecks and lints are failing. I think the approach is fine, but the CI will need to pass before anything can be merged. I'd also encourage you to run make golangci-lint and check your editor for problems.

@youngnick fixed! Some signature changes in the test pkg between the writing and now!

/test

of course == on pointers works :sweat_smile: should be the last fix hopefully

/test

/test

Hey @Sh4d1, it seems that in the meantime commit ed65b5d changed the signature of newIngressReconciler function which you're using in the tests. Could you rebase with the main branch and update accordingly?

@lambdanis done!

/test

@lambdanis Is everything good to merge, except the flaky tests ?

/test


Is it planned to add a Python version?

I'm closing this issue because I'm not planning on doing this myself. However, if someone else does that, I'm happy to link to it from the README. Just send me a PR with the link.


Add iina-beta v1.0.0-beta1

After making all changes to the cask:

[X] brew cask audit --download {{cask_file}} is error-free.
[X] brew cask style --fix {{cask_file}} reports no offenses.
[X] The commit message includes the cask’s name and version.

Additionally, if adding a new cask:

[X] Named the cask according to the [token reference].
[X] brew cask install {{cask_file}} worked successfully.
[X] brew cask uninstall {{cask_file}} worked successfully.
[X] Checked there are no [open pull requests] for the same cask.
[X] Checked the cask was not already refused in [closed issues].
[X] Checked the cask is submitted to [the correct repo].

Missing .rb


Generalize 'and' and 'or' operators

It would be useful to be able to overload and and or for Maybe, Either, and other monadic types:
var x = maybeA() and maybeB() and maybeC(); // short-circuit maybe chaining (aka ">>=")
var y = maybeA() or maybeB(); // maybe alternation (aka "mplus")
var z = maybeA() or 0; // maybe unpack with default

Could the variadic-op set-up be used for and  &  or . . .?

I'm not sure. I'd like the short-circuit behavior to be inherent in the way and and or desugar, perhaps by having the right-hand side desugar as a lambda.


13-1b

Compared to CLRS2e, the procedure should accept the new node z. Also, explicitly states that we have Copy-Node proceudre.


Unify AST rule name

For #4277.

Codecov Report

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

@@            Coverage Diff            @@
##             master    #4331   +/-   ##
=========================================
  Coverage     54.22%   54.22%
  Complexity      352      352
=========================================
  Files          1045     1045
  Lines         19216    19216
  Branches       3531     3531
=========================================
  Hits          10419    10419
  Misses         8142     8142
  Partials        655      655

Impacted Files
Coverage Δ
Complexity Δ

...e/sql/parser/visitor/impl/SQLServerDDLVisitor.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...phere/sql/parser/visitor/impl/SQL92DDLVisitor.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...ngsphere/sql/parser/visitor/PostgreSQLVisitor.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...e/sql/parser/visitor/impl/SQLServerDCLVisitor.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...phere/sql/parser/visitor/impl/MySQLDALVisitor.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...phere/sql/parser/visitor/impl/SQL92DCLVisitor.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...hardingsphere/sql/parser/visitor/MySQLVisitor.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...here/sql/parser/visitor/impl/OracleDDLVisitor.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

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 c648d82...e8bdaa9. Read the comment docs.

Pull Request Test Coverage Report for Build 9581

0 of 38 (0.0%)  changed or added relevant lines in 8 files are covered.
4 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.005%) to 57.681%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

shardingsphere-sql-parser/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/visitor/impl/MySQLDALVisitor.java
0
1
0.0%

shardingsphere-sql-parser/shardingsphere-sql-parser-sql92/src/main/java/org/apache/shardingsphere/sql/parser/visitor/impl/SQL92DCLVisitor.java
0
1
0.0%

shardingsphere-sql-parser/shardingsphere-sql-parser-sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/visitor/impl/SQLServerDDLVisitor.java
0
1
0.0%

shardingsphere-sql-parser/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/visitor/MySQLVisitor.java
0
2
0.0%

shardingsphere-sql-parser/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/visitor/impl/OracleDDLVisitor.java
0
2
0.0%

shardingsphere-sql-parser/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/visitor/PostgreSQLVisitor.java
0
2
0.0%

shardingsphere-sql-parser/shardingsphere-sql-parser-sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/visitor/impl/SQLServerDCLVisitor.java
0
14
0.0%

shardingsphere-sql-parser/shardingsphere-sql-parser-sql92/src/main/java/org/apache/shardingsphere/sql/parser/visitor/impl/SQL92DDLVisitor.java
0
15
0.0%

Files with Coverage Reduction
New Missed Lines
%

shardingsphere-sql-parser/shardingsphere-sql-parser-sql92/src/main/java/org/apache/shardingsphere/sql/parser/visitor/impl/SQL92DDLVisitor.java
1
0%

sharding-orchestration/sharding-orchestration-core/src/main/java/org/apache/shardingsphere/orchestration/internal/util/IpUtils.java
3
76.0%

Totals

Change from base Build 866:
-0.005%

Covered Lines:
11084

Relevant Lines:
19216

💛  - Coveralls


Use a single installer-gather.sh for bip, non-bip, pre-pivot and post-pivot with Control Plane gather

As discussed in the bootstrap-in-place PR comments

obsolete


Support Dynamic Prompts Extension

I've longed for the ability to use Dynamic Prompts with a small text overlay. Dynamic Prompts can create hundreds of images because of the combonotorical nature of the propmpts.

Can you give me a mockup of how you expect this to look like exactly?


[Bug]submit flink job with "-s" option

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
dolphinScheduler 2.0.1-release
flink 1.11.2
when i set option parameter with "-s ${flink checkpoint path}" ,then i run the workInstance,  the error log "get xxxx.jar:No such file or directory" appeared. But when i remove the option parameter, job is successfully done!
What you expected to happen
when i set option parameter with "-s ${flink checkpoint path}" ,the job success.
How to reproduce
dolphinScheduler [2.0.1-release]
flink [1.11.2]
Make a Flink Workflow Definition ,the option parameter with "-s hdfs://ns/${path to checkpoint}",then run the Workflow Definition.
Anything else
No response
Version
2.0.1
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

problem have been solved


TypeScript support

I see this package is written in TypeScript but importing it in a TypeScript project doesn't get me any type declarations. There is also no @types/header-generator companion package available. Would it be possible to export typings inside the package?

Thanks! Look forward to it.


Manifest.json bug

Hi all,
There is a bug in the generated app manifest.json file. There is an object "localizationInfo" with a child array object "additionalLanguages". The file paths of each additional language don't resolve when trying to upload the manifest to the Teams App store.

Hi @Hennericho ,
Thanks for raising the query. There was a issue related to localization previously  but it got fixed recently. Please take the latest code and fill the values in the manifest file  then upload it. It will work as expected.


add --sharingStatus to Get-PnPFlow [FEATURE]

Is your feature request related to a problem? Please describe.
My flows environment does not allow for me to create flows. Others create the flows and then they are shared with me. When using  Get-PnPFlow  to retrieve a list of flows, there are no flows returned; however, if I use the PnP CLI command 'm365 flow list' with the same environment and specify --sharingStatus 'all' then a list of my shared flows is returned.
Describe the solution you'd like
Add the option for --sharingStatus to the Get-PnPFlow command.
Describe alternatives you've considered
Currently using the PnP Powershell commands. Could add in also the PnP CLI command but this would require authenticating twice. The PnP CLI authentication requires these steps "To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code XXXXXXXXX to authenticate."

@kunj-sangani or @siddharth-vaghasia - you guys wanna have try this ? No pressure 😊

Yes sure I will have a look at this
Thanks Gautam

From: Gautam Sheth @.>
Sent: Friday, July 21, 2023 3:45 PM
To: pnp/powershell @.>
Cc: Kunj Balkrishna Sangani @.>; Mention @.>
Subject: Re: [pnp/powershell] add --sharingStatus to Get-PnPFlow [FEATURE] (Issue #3275)
@kunj-sanganihttps://github.com/kunj-sangani or @siddharth-vaghasiahttps://github.com/siddharth-vaghasia - you guys wanna have try this ? No pressure 😊
—
Reply to this email directly, view it on GitHubhttps://github.com/pnp/powershell/issues/3275#issuecomment-1645346346, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGEAYF2PR4GUPKMY6Y7RMKTXRJJCJANCNFSM6AAAAAA2NGVBZA.
You are receiving this because you were mentioned.Message ID: @.***>

Hello @gautamdsheth,
I would like to add IncludeSolutionCloudFlow property as boolean. Please share your insights.
Thanks,
Nishkalank Bezawada


use GHA caching for integration tests

The new native GHA based docker build cache is a lot faster than the "old" one. We've been using it in the unit tests for a while now, this PR adds it to the integration tests GHA.

actually getting errors. not sure if github is having issues, or this GHA cache in buildkit is having a bug. converted to draft for now.

@valentijnscholten could you add a link to the GHA cache in the PR description?


build: include packages in a safer, more-standard way

Description:
The standard way for setup.py to include Python packages is:
setup(..., packages=find_packages(exclude=[...]), ...)

which will ensure that every package (including sub-packages) in a Python project will be included in the built wheel, unless explicitly excluded.
Up until this point, though, we've been achieving this in a different, very strange way:
setup(..., packages=["<root_package>"], include_package_data=True, ...)

which normally would only include the root packages (for example, blockstore but not blockstore.apps), except for the fact that we explicitly include Python packages in MANIFEST.in:
recursive-include <root_package> ... *.jpeg *.svg *.py

Review:
@regisb can you take a look? and can you fact-check my commit message? Tbh, I don't fully understand the difference between find_packages() and the MANIFEST.in kludge we've been doing.

This has an issue, which is fixed by https://github.com/openedx/edx-cookiecutters/pull/258


Fix test output

In this PR we clean up the test output generated when building :server.
Most of the pruned output represents some kind of an expected behavior, e.g. negative test cases.
Though some of it was an actual sign of a problem. Those problems are now fixed (with an exception of #853).

@armiol, @alexander-yevsyukov, PTAL.

@alexander-yevsyukov, PTAL again.


Imprecise lane changing conditions

Hi Apollo team, thanks for creating this great project! I recently analyze the lane changing logic in Apollo and I found that the lane changing condition here is not precise. It will also consider vehicles not in both targeted lane and original lane. As a result, even a following vehicle or a vehicle driving on other lanes can affect lane changing behavior.
System information

OS Platform and Distribution (e.g., Linux Ubuntu 18.04): 18.04 LTS
Apollo installed from (source or binary): source
Apollo version (3.5, 5.0, 5.5, 6.0): 5.0
Output of apollo.sh config if on master branch: master

Steps to reproduce the issue:

Please use bullet points and include as much details as possible:

When checking the lateral position of each obstacle, the code uses an overly-large threshold (kLateralShift = 2.5m https://github.com/ApolloAuto/apollo/blob/master/modules/planning/tasks/deciders/lane_change_decider/lane_change_decider.cc#L302). As a result, the vehicles on the two adjacent lanes will not be skipped. And if the longitudinal position requirements are all satisfied, it will be considered as a blocking obstacle for this lane changing action.

Hi, I am wondering whether someone will follow up on this issue. Thanks!

In fact, I didn’t understand your question. Don’t you need to consider the cars in the adjacent lane when changing lanes?
The general lane width is 3.5m, the general vehicle width is 2m, and the maximum width does not exceed 2.5m. What do you think is the problem?


Split LDS optimization

Furthering #1214's development, this patch boosts performance when DepthULdsDivisor > 1, meaning during accumulation loop you want to split the data intended for writing into LDS by a factor of DepthULdsDivisor

Schedule load instructions in the unroll loop earlier
Improves performance in higher occupancy kernel via s_setpro in appropriate places
Extends support for int8/fp32c/fp64
Fix kernel generation when DepthULdsDivisor = 4

rocblas-test on gfx908 passed

@imcarsonliao please get this peer-reviewed.  Thanks.

CI errors seem to be associated with hw or runtime. Merging.
...
0,0/27,2/19,Contraction_mn_Amijkn_Bmlnk_Cijkl_Dijkl,"(5,3,32,16,120,8)",Cijkl_Amijkn_Bmlnk_S_MT64x128x4_SN_ASEM4_GSU1_K1_PBD0_PSD1,PASSED,862.834,17.0897,,0.00732422,0.5,64,0.234375,0.125,0.5,0.5,86400,30720,35,852,960,945,0,1,2021-06-25 06:21:20.010009
0,0/27,3/19,Contraction_mn_Amijkn_Bmlnk_Cijkl_Dijkl,"(5,3,32,16,120,8)",Cijkl_Amijkn_Bmlnk_S_MT64x128x4_SN_ASEM4_GSU1_K1_PBD1_PSD1,PASSED,863.13,17.0839,,0.00732422,0.125,64,0.9375,0.125,0.125,0.5,86400,30720,35,852,960,945,0,1,2021-06-25 06:21:20.014947
Exception occurred: Error 400(hipErrorInvalidHandle) /tmp/.tensile-tox/py36/lib/python3.6/site-packages/Tensile/Source/client/source/BenchmarkTimer.cpp:213:
hipEventElapsedTime( &enqTime, startEvents->at(i).front(), stopEvents->at(i).back())
hipErrorInvalidHandle


added graph theory course

What does this PR do?
added graph theory course by WilliamFiset
For resources
Description
Why is this valuable (or not)?

one of the best well-visualized and summarized graph courses.

How do we know it's really free?

It's a youtube playlist with a GitHub repo containing all the material and source code.

For book lists, is it a book? For course lists, is it a course? etc.

It's a course.

Checklist:

[x] Read our contributing guidelines.
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction).
[x] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

Done changes


Clarify ASGI support

There is conflicting documentation around supporting ASGI.
For example, https://github.com/elastic/apm-agent-python/blob/63fbeb971e40bf3d967b345e4217085335d28b5b/CHANGELOG.asciidoc#bug-fixes-6 and https://github.com/elastic/apm-agent-python/blob/c04c634aca50cffdb6b6c174a30629b0749193cb/docs/supported-technologies.asciidoc#django
The ASGI issues with Django appear to be resolved https://github.com/elastic/apm-agent-python/search?q=asgi&type=issues

@thenewguy great find!
One thing I'd like to clarify before we declare that we're actually supporting ASGI is if the agent works correctly with async views. I'm not sure if we'll track the execution context correctly across async-to-sync boundaries (e.g. when doing ORM queries in an async view).


Move all the collections into the same database

I'm not sure to remember why I decided to have several mongo databases in prod, but it does not seem to be useful. We could move everything into the same database.

not easy to do, though, to transfer the jobs to the other database without losing or repeating jobs... Not sure if we should do it, as it's a pain and it's not really important


Parsing error for step definition written in Java

👓 What did you see?
I have below step defined in my steps file:
@Given("I have a menu item with name \"([^\"]+)\" and price (\\d+)")
The \ before " is required by Java but the language server should only see ". Also, when I run the tests everything is well, so it's not an issue with the definition of the step or the feature file. However, the language server gives the below exception and the step is not recognized in the feature file:
[Error - 5:03:40 PM] * Step Definition errors: Error: This Cucumber Expression has a problem at column 31:
I have a menu item with name "([^"]+)" and price (\d+)
^
Only the characters '{', '}', '(', ')', '', '/' and whitespace can be escaped.
If you did mean to use an '' you can use '\' to escape it
at RT (c:\Users\dstanciu.vscode\extensions\cucumberopen.cucumber-official-1.5.1\out\extension.js:67:79988)
at d (c:\Users\dstanciu.vscode\extensions\cucumberopen.cucumber-official-1.5.1\out\extension.js:84:501)
at c:\Users\dstanciu.vscode\extensions\cucumberopen.cucumber-official-1.5.1\out\extension.js:84:702
at Array.forEach ()
at ac.tokenize (c:\Users\dstanciu.vscode\extensions\cucumberopen.cucumber-official-1.5.1\out\extension.js:84:636)
at uc.parse (c:\Users\dstanciu.vscode\extensions\cucumberopen.cucumber-official-1.5.1\out\extension.js:84:2357)
at new ji (c:\Users\dstanciu.vscode\extensions\cucumberopen.cucumber-official-1.5.1\out\extension.js:84:5199)
at ga.createExpression (c:\Users\dstanciu.vscode\extensions\cucumberopen.cucumber-official-1.5.1\out\extension.js:84:11717)
at c:\Users\dstanciu.vscode\extensions\cucumberopen.cucumber-official-1.5.1\out\extension.js:427:748
at $f.eachStepDefinitionExpression (c:\Users\dstanciu.vscode\extensions\cucumberopen.cucumber-official-1.5.1\out\extension.js:424:1769)
at Wf.build (c:\Users\dstanciu.vscode\extensions\cucumberopen.cucumber-official-1.5.1\out\extension.js:427:695)
at Sc. (c:\Users\dstanciu.vscode\extensions\cucumberopen.cucumber-official-1.5.1\out\extension.js:433:19176)
at Generator.next ()
at u (c:\Users\dstanciu.vscode\extensions\cucumberopen.cucumber-official-1.5.1\out\extension.js:433:11215)
at process.processTicksAndRejections (node:internal/process/task_queues:96:5)
✅ What did you expect to see?
The step definition would be parsed without error.
📦 Which tool/library version are you using?
I am running VSCode with cucumber extension 1,5,1 as seen also in the stack trace.
🔬 How could we reproduce it?
Steps to reproduce the behavior:

Install VSCode with Cucumber extension version '1.5.1'
Create a Java based Cucumber project, with one feature and one step definition. Use " in the step definition to allow " characters
Create a features file using that step.
The step is not recognized and the 'Cucumber Server Language' output window shows the exception mentioned above.

Hi @DanielSCy thanks for reporting this. It sounds like we need to handle escapes better in unescapeString: https://github.com/cucumber/language-service/blob/3bfbad6c7e323bc917f231519b6e78b82b655d88/src/language/javaLanguage.ts#L126
Currently it's only escaping \\ back to \, but it should handle all Java String escapes.
A test for this should be added to https://github.com/cucumber/language-service/blob/main/test/language/javaLanguage.test.ts
We might take inspiration from https://github.com/iamakulov/unescape-js (I don't want to depend on the library which is unlikely to be maintained).
There are also some more details about this in this SO post
Would you be able to help with a pull request with this @DanielSCy?


Helps to stop 504 errors

As I can tell at the moment this helps to stop 504 errors, but I will keep an eye on this and tweak if/when needed.

I need to test this. Also needs formatting fixes.

@c9dd mind reviewing and responding to the feedback on the PR?

@c9dd are you able to review and respond to the feedback on this PR?

Resolves #29.

@c9dd note that we're archiving WP Local Docker in favor of the newer WP Local Docker v2, so please update to the v2 version and we can discuss any further issues you see in its respective repo.  Thanks!


Rotate key should maintain the keyID

The new KMS generates a new keyID when rotating a key. Change this behaviour to keep the old keyID when rotating keys to prevent old keys from not being found in the KMS.

The keyID must change when rotating a key since the new keyID will be the JWK thumbprint of the public key. This issue will become stale when #2041 is closed.


Show description against FCDAs in GOOSE/SV subscription editors

Is your feature request related to a problem? Please describe.
As a user of OpenSCD I'm aware that not all IEDs have very semantic data models. Some make extensive use of GGIO or have an LNodeType which encodes internal device variables.
When these are used in e.g. a GOOSE message they may not have a useful, intuitive meaning.
However against the DAI attribute or the DA inside the DOType or the BDA inside the DAType all are allowed within IEC 61850-6 Ed 2.1 to have a desc attribute.
In some IEDs this may be user editable.
Use of this in the subscription editors would allow more intuitive descriptions to be given if the data model is fixed.
Describe the solution you'd like

Display the DAI desc value if present against an FCDA. The SCL for the DAI referenced by teh FCDA would be something like: <LN lnType="GGIO_BS64" prefix="PSV" lnClass="GGIO" inst="1">
 	<DOI name="Ind01">
 		<DAI esel:datasrc="db:PSV01" name="stVal" desc="Trip Circuit Breaker" />
 	</DOI>
 	<DOI name="Ind02">
 		<DAI esel:datasrc="db:PSV02" name="stVal" />
 	</DOI>
 	<DOI name="Ind03">
 		<DAI esel:datasrc="db:PSV03" name="stVal" />
 	</DOI>
 	<DOI name="Ind04">
 		<DAI esel:datasrc="db:PSV04" name="stVal" />
 	</DOI>

If not present, lookup the FCDA in the DataTypeTemplates section and use the description there if available.

It would be possible only to implement 1 to meet my initial needs but doing both would be a complete solution.
Effectively this allows a human readable enrichment simply to the desc field on the ExtRef element which we already display.
Requirements
Display of the DAI description in the subscription plugins.
I'd be happy for this initially only to be later-binding for SV and GOOSE.
Ultimately this could be all subscription plugins and it would be good to see this wherever we generate datasets.
Suggestions for a specific user interaction
This would allow a display, something like this in the subscriber later binding plugin:

If this proposal is accepted after refinement, I'm happy to do a PR for implementation.
It is much more common to have DO descriptions than DA descriptions. Perhaps both are required?

Will do DOI description and DAI description and fallback to templates


using "c" tags namespace instead of "fabric"

most fabric mods use "c" tags namespace but not "fabric".
only tool types use "fabric" namespace.

Issue #1 will be resolved by this one (I keep it because it is more encompassing).

Issue #23 will be resolved by this one (I keep it because it is more encompassing).

Use https://github.com/AlphaMode/ForgeTags would be great.


Parse the empty tuple type

Hello :octocat:
PS: large diff because of generated files. Files with unloaded diffs don't need reviewing, they were generated from Quint.g4.
Closes https://github.com/informalsystems/quint/issues/1420. In https://github.com/informalsystems/quint/pull/1406, we added parsing for the empty tuple value, but not for the type. This PR adds parsing for the empty tuple type.
A note on the grammar change: I couldn't just update the existing tuple type rule to parse 0+ types because of cases like (int), which we want to be parsed as int and not as a tuple of 1 type. So basically we can parse tuples of size 0 or 2+, but not 1.

[X] Tests added for any new code
[x] Documentation added for any new functionality
[x] Entries added to the respective CHANGELOG.md for any new functionality
[ ] Feature table on README.md updated for any listed functionality

just one comment: should the testFixtures maybe be formatted before being pushed to the repo? The diff is rather useless because it's just one large line, if they were formatted nicely the diff would be much more targeted and understandable

Good idea! I was actually thinking last week about using a proper snapshot library, since I saw how practical they are after implementing those tests in rust you reviewed for the other project. With the insta tool I used for rust, it's easy to review the diffs both locally (i.e. accept or reject a diff via interactive CLI) and in GitHub. I think that would be ideal here. My current process is: I usually understand what the diff is about from the test errors that were happen before I re-generate the fixtures, which are better formatted. If it is not clear, I generate the fixtures either way, than manually format them and look at the formatted diff.
We used to have them formatted, but that resulted in really big diffs, while now it is always only one line per file. I think it is a price worth paying, and we should bring them back.


Docker baremetal launch

Docker baremetal launch . Endpoints can be both swamp master IP or VM IP.

@morpheyesh @rajthilakmca Let us review the megamd code today. It was designed modular, but as time passes, our original design choices may start to show wild hair. :)

@morpheyesh @rajthilakmca Don't forget to write docs. Or else users can't install and use it. So do it now as opposed to at the end.


Gateway API: drop support for v1alpha2 APIs which have v1beta1 releases

Problem Statement
When Gateway API released v0.5.0 the new v1beta1 types were backwards compatible with their previous v1alpha2 counterparts so not much controller machinery had to be changed. This is not guaranteed to continue however, so the purpose of this task is to drop support for v1alpha2 entirely for GatewayClass, Gateway and HTTPRoute and establish that as the new baseline going forward so that we're not burdened with maintenance trying to further support alpha APIs when more stable beta versions exist.
Acceptance Criteria

[ ] v1alpha2.GatewayClass, v1alpha2.Gateway and v1alpha2.HTTPRoute support is dropped in favor of their v1beta1 counterparts to reduce maintenance burden.

won't fix - no obvious driver for this right now.


Make not found error more verbose (add name)

Overview
Make not found index/field error more verbose (contains name)
Pull request checklist

[X] I have read the contributing guide.
[X] I have agreed to the Contributor License Agreement.
[X] I have updated the documentation.
[X] I have resolved any merge conflicts.
[X] I have included tests that cover my changes.
[X] All new and existing tests pass.
[ ] Make sure PR title conforms to convention in CHANGELOG.md.
[ ] Add appropriate changelog label to PR (if applicable).

Code review checklist
This is the checklist that the reviewer will follow while reviewing your pull request. You do not need to do anything with this checklist, but be aware of what the reviewer will be looking for.

[ ] Ensure that any changes to external docs have been included in this pull request.
[ ] If the changes require that minor/major versions need to be updated, tag the PR appropriately.
[ ] Ensure the new code is properly commented and follows Idiomatic Go.
[ ] Check that tests have been written and that they cover the new functionality.
[ ] Run tests and ensure they pass.
[ ] Build and run the code, performing any applicable integration testing.
[ ] Make sure PR title conforms to convention in CHANGELOG.md.
[ ] Make sure PR is tagged with appropriate changelog label.

this looks ok, but i think the tests need some adjustments


🍽 Add table directive

See #593

@fwkoch to support better error messages I had to include node in the directive/role data. This allows us to raise specific errors about the directive.
This includes errors about options, which now point directly to the line where the error occurred:

Cool, yeah this is great! Gives the run function more power (I don't think there's any drawback to that - for the most part, using validated options/args/body in the run function will be easier and preferable).
Hmm, you know, we also have the validate function which now gets the node as well... worth considering if separating run and validate is actually useful or if we should just keep the extra validation inside the run function as we do everywhere, including this PR. (And just delete validate entirely)

I was thinking that as well, the only place we are using validate is in list-table, might be overkill. I suppose there may be a reason to validate without transforming? If you think we should remove this .. can we open another PR to do it?
Going to get this one in! 🚀


[2.x] allow tagged table to be used with other tables than tag table

Description

For situations where you can create tags based on existing models other than the tag table, you will have to create pivot table for doing that. Taking into consideration that you can make this tagging relation with more than one model, therefore you will have to do more and more similar tables just to acheive that tagging functionality
For example: In case you using 5 models as tags, you will create 5 more tables and if this tagging will be needed for other models, hence it will produce a lot of tables
I think using the same Tagged table for doing this could be a good option.
Related Issues

Hey @YasienDwieb,
I am not too sure about this one. This feels like something that is more for the "related" table?
So you could add a "tags" which is a browser field and unify that?

Hey @YasienDwieb,
I had another brief look at this. It is missing a migration to make it available on existing sites.
Also, we needs to have a bit of doc's on this, but I feel since this is a new feature it should go straight into Twill 3.

Hey @haringsrob ,
Thanks you so much for your great efforts. There's a migration included which adds the needed fields to the tagged table
migrations/default/2020_02_09_000006_create_twill_default_tags_tables.php, please let me know if this is not what is needed.
Also, yeah, it would need some docs, I will work on that too.
Thank you

Hey @YasienDwieb,
That migration works fine for new Twill installations, however, for an existing Twill installation that will not work. So the changes you made to the table should move to a new migration file instead.

This will go into 3.x only, I will work on the update.


Handle null and boolean arguments in h helper

Right now when you use short form h('em', person.name) and person name is null, you get Uncaught TypeError: Cannot read property 'key' of null in vnode.js:2.
After this PR, h helper (called with 2 or 3 arguments) ignores null values and converts number and boolean values to strings.
This is to improve robustness of vnode helper and reduce need for null checks in client code.

This is intended to fix #162

Hello @valentin-nemcev. Thank you for the PR :+1:
The changes to h certainly seems like something that could be useful in situations where one might have data that is potentially null.
I don't fully understand the change to primitive though. When would you want to pass Snabbdom a boolean and have it show up in the DOM as true or false?

Thank you for the review!
The idea was to make it behave like a real DOM text node, if you set it's value to boolean or other primitive (by mistake or while debugging), it will convert it to string.

I, for one, don't like leniency in such a low level library as snabbdom.

I believe that this is not desired behavior. I'll close this. But if anyone disagrees, please comment or create an issue.


[TOML Config] claim-config.xml

Need the corresponding TOML configs following as it is referred in [1].
<Claim>
   <ClaimURI>http://wso2.org/claims/username</ClaimURI>
   <DisplayName>Username</DisplayName>
   <AttributeID>mail</AttributeID>
   <Description>Username</Description>
</Claim>

[1] https://is.docs.wso2.com/en/5.9.0/learn/logging-in-to-salesforce-with-integrated-windows-authentication/

This will not have a toml configuration as the claim-config.xml is a data file.


Fix assignment-approved --> rejected transition in ReqMgr2

Fixes #7153
Already tested in my VM. Yet, another patch... but eventually we'll refactor this class and make it solid, right @ticoann :-D

test this please

test this please

replaced by  #7163

replaced by  #7163


Packages requirements

I am very grateful to the authors for their hard work in remote sensing cloud detection research and for providing convenient public code. When using it, I found that the installation of the library actually has strict version dependencies. For example, fastai 2.7 and above are required packages for the CloudS2Mask library, but it seems that it cannot be installed in lower versions of python, which caused me to spend a lot of time testing conda, pip, and python versions. In the end, I found that python3.9 and above seem to be suitable. In addition, CloudS2Mask also forces the installation of pytorch and CUDA-related dependent libraries, which may destroy the built cuda and pytorch environment because different graphics card drivers and cuda use different pytorch versions. Therefore, I hope that the author can describe the requirements of the CloudS2Mask library in detail, and consider allowing users to install pytorch and other libraries suitable for local drivers by themselves.

您好！感谢您就安装问题提供详细的反馈。
我将更新 README 以包含以下内容：

所需的 Python 版本（>=3.9）
推荐的环境设置步骤，让安装过程更顺畅

关于 PyTorch 和 CUDA 依赖项 - 这些实际上由 FastAI 管理，这是我们库的核心要求。我们无法直接控制 FastAI 的依赖项管理。如果您有更好地处理此问题的建议，我绝对愿意听取！
感谢您提请我们注意这一点并帮助我们改进文档。

Thank you for your prompt reply. For the FASTAI package, there is indeed a dependency on a specific version. For this, I can only think of specifying the version of pytorch from the installation, for example, for CUDA11.3: pip install clouds2mask torch==1.12.0+cu113 torchvision==0.13.0+cu113 torchaudio==0.12.0 --extra-index-url https://download.pytorch.org/whl/cu113, or more securely reinstall the torch corresponding to the local CUDA version after clouds2mask. Of course, for users who use an earlier CUDA version, the local torch, torchvision, and torchaudio may not just meet the requirements of FASTAI>=2.7. From the official website, CUDA versions are generally suitable above 10.2 and 11.3. You can verify it and it is recommended that you provide a prompt for the CUDA version.

Hi! Thanks for your detailed feedback about the installation issues.
I'll update the README to include:

The required Python version (>=3.9)
Recommended environment setup steps to make the installation process smoother

Regarding the PyTorch and CUDA dependencies - these are actually managed by FastAI, which is a core requirement for our library. We don't have direct control over FastAI's dependency management. If you have suggestions for handling this better, I'm definitely open to hearing them!
Thanks for bringing this to our attention and helping us improve the documentation.

Thanks for your prompt reply. For the FASTAI package, there is indeed a dependency on a specific version. For this, I can only think of specifying the version of pytorch from the installation, for example, for CUDA11.3: pip install clouds2mask torch==1.12.0+cu113 torchvision==0.13.0+cu113 torchaudio==0.12.0 --extra-index-url https://download.pytorch.org/whl/cu113, or more securely reinstall the torch corresponding to the local CUDA version after clouds2mask. Of course, for users who use an earlier CUDA version, the local torch, torchvision, and torchaudio may not just meet the requirements of FASTAI>=2.7. From the official website, CUDA versions are generally suitable above 10.2 and 11.3. You can verify it and it is recommended that you provide a prompt for the CUDA version.

An additional suggestion is to prompt users to cite "Wright N, Duncan J M A, Callow J N, et al. CloudS2Mask: A novel deep learning approach for improved cloud and cloud shadow masking in Sentinel-2 imagery[J]. Remote Sensing of Environment, 2024, 306: 114122." when using CloudS2Mask or OmniCloudMask.

Thanks for your suggestions, for now I have added a link to the CloudS2Mask paper and citation details to the README.


feat: add metrics port to service and deployment spec of router helm chart

Motivation and Context
Created by: https://github.com/wundergraph/cosmo/issues/826
For prometheus scraping to work correctly, both the deployment spec and the service spec should expose the metrics port

Has been released as 0.3.4 ghcr.io/wundergraph/cosmo/helm-charts/router:0.3.4


[GWS] portal

Coverage increased (+0.2%) to 81.676% when pulling ae08ee2129a9639373c2e41f43ab023ba8f3e6f5 on tany:gws into 3251685bf881f03cd8dc36ba169807536c703626 on shirasagi:dev/gws.


Patch validation fail with one of required fields

Hi,
giving the following model JSON schema:
{
   "oneOf": [
      { "required": ["email"] },
      { "required": ["username"] }
   ],
   "properties": {
      "email": { "type": "string" },
      "password": { "type": "string" },
      "username": { "type": "string" }
   },
   "type": "object"
}

If we want to PATCH one instance of this model only with the password field, we have a validation error because one of the fields (email or username) is required. Patch operations ignores the required fields. Shouldn't the oneOf required fields be ignored as well?
Thank you!

Ha, I didn't know required could be set like that. Are you sure that's a supported syntax? If it is then yes, those should be ignored as well

This syntax is supported (example in ajv documentation https://github.com/epoberezkin/ajv#filtering-data)

Ok. Thanks for bringing this up. I'll get this fixed in the next patch version.

@koskimas, any plans for releasing 0.9.3 ?

@joaonice I released 0.9.3 today

@koskimas thanks!


Remove mina-sidecar from repo

Removing stale app mina-sidecar from repository

!ci-build-me

!ci-nightly-me

!approved-for-mainnet

!ci-build-me

!ci-build-me

!ci-nightly-me


Need to place upper limit on activation response object

As with other resources, this needs to be controlled and documented.  The idea would be that if a user action returns a result that is bigger than a threshold, then an error is flagged similar to exhausting other limits such as CPU limits.   @rabbah and I considered a 1MB limit as a reasonable starting point.

Documenting plan:

Response is sized by the invoker.

If it exceeds the system limit, the invoker will reject it.
If it is within the limits, it will be processed as usual.

When the invoker rejects an action response, it will do the following:

Construct an error response object with a message explaining the failure
1a: "Action result of X MB exceeds system limit of Y MB".
1b: The number of top level fields contained in the response (and how many are actually included in the partial response, see 2 below).

In addition, it will provide as a debugging aid a partial result that contains as many of the top level fields from the dictionary response into the error object.

As part of doing this work, I will also apply the same technique to reject large incoming payloads which currently get rejected a bit later in the pipeline than they should.

On 3.ii, also include the sizes of the fields so a user knows that the rejection was due to some particular field being too bug.

There is a trade off involving invoker performance vs user debugging info.
I would for starter implement 3.2 behind a configuration flag turned off by default that can be turn on in ansible then downstream/operator can choose if they want their invokers to suffer by always trying  parse/process the very large response into a json object into memory and the n inspecting the object to pick up fields to slim it down to fit the limit of 1mb
Iterating  over each field and check and try to come up with all the fields that summing them together will be close to 1mb and marking the fields that don't fit the 1mb with some value like null
If the debugging flag is off, I would just make invoker create and store the reason message and then the first 1MB of raw (no JSON) data string
Something like
{
message: "Action result of X MB exceeds system limit of Y MB"
payload:"{ a:1, b:"c", ...,  z:"hell" "
}
payload above will be 1mb worth of data and it will be truncated z was suppose to be hello :-)
basically invoker takes the payload text from the response of the action proxy checks against the limit for the exception and then takes the first 1mb and stores it straig without trying to parse into JSON and try to find what are the largest fields to nuke to come up with a small 1mb  JSON to store

Is the 1MB already a configuration setting in ansible that operator can in their production deployment?

Would make sense to optimized even more by making the action proxy for the runtimes check the the size of the result and check against limit?
That would save action proxy from
Parsing the large data into json
Sending a large payload over network to invoker
Action will convert the response into an error response with a payload of the first 1mb raw data
Still invoker would need to implement the check for docker actions which are black box, but the runtimes pre installed we would trust.

Commit https://github.com/openwhisk/openwhisk/commit/0a4ca55b29617ccf907f8b2db76db2fe97d47167 implements the variant suggest by @csantanapr - no attempt to parse the response in the invoker and instead return as many bytes as possible (up to the limit).
The limit is not deployment configurable yet - this is tied to how we configure the Kafka limit. Will open a separate issue to address the discrepancy between the stated limit and the message bus limit.

Will the limit of the response(or the request) be configurable in the future?
I'm trying to configure it now with checking Kafka limits. But it seems a little complex to adjust them.
Thanks for you reply!

it seems a little complex to adjust them

@kingzevin  I have the same problem and look forward to be configurable for the limit.   By the way, How do you adjust them .

I received the error from inover logs. The request included a message larger than the max message size the server will accept  .
so I modified kafka-pod.yaml in openwhisk-deploy-kube.
add max.request.size and KAFKA_MESSAGE_MAX_BYTES
containers:
      - name: kafka
        image: "{{- .Values.docker.registry.name -}}{{- .Values.kafka.imageName -}}:{{- .Values.kafka.imageTag -}}"
        imagePullPolicy: {{ .Values.kafka.imagePullPolicy | quote }}
        command: ["/bin/bash", "-c", "export KAFKA_BROKER_ID=`hostname | awk -F '-' '{print $NF}'`; echo 'max.request.size=5000000' >> /opt/kafka/config/producer.properties ; /usr/bin/start-kafka.sh"]
{{- if .Values.k8s.persistence.enabled }}
        volumeMounts:
        - mountPath: /kafka
          name: "{{ .Release.Name }}-kafka-pvc"
{{- end }}
        ports:
        - containerPort: {{ .Values.kafka.port }}
          name: kafka
        env:
        - name: "HOSTNAME_COMMAND"
          value: "hostname -f"
        - name: "KAFKA_ADVERTISED_PORT"
          value: "{{ .Values.kafka.port }}"
        - name: "KAFKA_PORT"
          value: "{{ .Values.kafka.port }}"
        - name: "KAFKA_LISTENER_SECURITY_PROTOCOL_MAP"
          value: "EXTERNAL:PLAINTEXT"
        - name: "KAFKA_LISTENERS"
          value: "EXTERNAL://:{{ .Values.kafka.port }}"
        - name: "KAFKA_ADVERTISED_LISTENERS"
          value: "EXTERNAL://_{HOSTNAME_COMMAND}:{{ .Values.kafka.port }}"
        - name: "KAFKA_INTER_BROKER_LISTENER_NAME"
          value: "EXTERNAL"
        - name: "KAFKA_MESSAGE_MAX_BYTES"
          value: "12000000"

But it is not working.

it seems a little complex to adjust them

@kingzevin I have the same problem and look forward to be configurable for the limit. By the way, How do you adjust them .

@kaivean I skipped and chose another store to store a large response, e.g. couchdb. Good luck!


Fix get_llama_config loading error.

Fix #107 KeyError when add new attr_rules.
Before:
config.attr_rules: {re.compile('.*self_attn$'): {'hidden_size': functools.partial(<function split_inner_dim at 0x7f38e434dfc0>, num_heads=64, world_size=2), 'num_heads': <function get_llama_config.<locals>.<lambda> at 0x7f39a9662200>}}

After fix key/value num_key_value_heads is added
config.attr_rules: {re.compile('.*self_attn$'): {'hidden_size': functools.partial(<function split_inner_dim at 0x7f38e434dfc0>, num_heads=64, world_size=2), 'num_heads': <function get_llama_config.<locals>.<lambda> at 0x7f39a9662200>, 'num_key_value_heads': functools.partial(<function split_num_heads at 0x7f38e434df30>, world_size=2)}}

What exactly did you fix here? Regular expressions are supposed to be uncompiled in config to be compiled later during model creation.

What exactly did you fix here? Regular expressions are supposed to be uncompiled in config to be compiled later during model creation.
hi
It failed to add new key/pair value for '.*self_attn$'
File "/root/anaconda3/envs/tt/lib/python3.10/site-packages/tensor_parallel/slicing_configs.py", line 403, in get_llama_config config.attr_rules[r".*self_attn$"]["num_key_value_heads"] = partial(split_num_heads, world_size=world_size) KeyError: '.*self_attn$' is having issue finding the key r".*self_attn$

use [re.compile(r".*self_attn$")] as the key it finds the dict and adding the new attribute to the config.

Also could you, please, modify pretrained_model.py like this:
def find_predefined_tensor_parallel_config(
    model_config: PretrainedConfig, device_ids: Optional[Sequence[torch.device]]
) -> Optional[Config]:
    device_ids = check_device_ids(device_ids)

    try:
        config_getter = PREDEFINED_CONFIGS[model_config.model_type]
    except KeyError:
        logger.warning(
            "Using automatic config: tensor parallel config not provided and no custom config registered for the model"
        )
        return None

    return config_getter(model_config, device_ids)

This would fix such false positives in tests.


randomForest dependency is not auto-installed

Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) :
  there is no package called ‘randomForest’
Calls: <Anonymous> ... loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart
Execution halted
ERROR: lazy loading failed for package ‘GAMBLR’
* removing ‘/Library/Frameworks/R.framework/Versions/4.2/Resources/library/GAMBLR’
* restoring previous ‘/Library/Frameworks/R.framework/Versions/4.2/Resources/library/GAMBLR’
Error in `(function (command = NULL, args = character(), error_on_status = TRUE, …`:
! System command 'R' failed
---
Exit status: 1
stdout & stderr: <printed>
---
Type .Last.error to see the more details.

This is now resolved in the PR #146 by adding it to the DESCRIPTION file


Only escalate with sudo if user requests it

Improvement for #760

I find it a little inconvenient for the user to type ethd -s each time.
A friendlier way might be to ask/check during the config stage, store the decision in the .env file, and then fetch the setting from that file on future calls.
I could try that approach, as long as you don't mind me doing source .env hehe!

Not a fan of source .env, it goes horribly wrong. What I've been doing is iterate through it with sed to get values.
Could be a thing where config detects whether sudo is needed: Yes if not on macOS and user ... let's say owner here because ethd itself could be run sudo during config ... is not part of docker group. A variant of the check at the bottom of config(), just reversed. And in that case ask the user whether they'd like auto-sudo.
The check at the bottom of config() would then also need to check whether to use auto-sudo, since that's another case where running the build after config is appropriate.

On further thought. I think escalating to sudo automatically is fine. Running docker commands does indicate the user wants to, well, run those. I am closing this. Thanks for the contributions!


prost-types: fix tests without default features

Only include tests using std if the feature is available. When running cargo test with --no-default-features there are a few failures due to the fact that std is missing.

I think you need to merge from master

@ema It this still relavant? I feel like the CI should find this error if it is still in master, right?

Closing, this issue affects 0.11.9 but is fixed in master.