Simplify lemmatizing code

The code can be simplified to be more readable.
The prefix search is also moved upward (no incidence on performance for the concerned languages).

Codecov Report

Merging #70 (025a50f) into main (43627a1) will increase coverage by 0.29%.
The diff coverage is 100.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main      #70      +/-   ##
==========================================
+ Coverage   96.35%   96.64%   +0.29%
==========================================
  Files          16       16
  Lines         494      507      +13
==========================================
+ Hits          476      490      +14
+ Misses         18       17       -1

Impacted Files
Coverage Δ

simplemma/lemmatizer.py
98.67% <100.00%> (+0.66%)
:arrow_up:

simplemma/rules/__init__.py
100.00% <100.00%> (ø)

simplemma/dictionary_pickler.py
92.10% <0.00%> (+0.21%)
:arrow_up:

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

I'd say the branch is ready to be merged, we can always keep on simplifying later. What do you think @juanjoDiaz?


add support for parsing HLS WebVTT X-TIMESTAMP-MAP tag

Adding support for parsing HLS WebVTT X-TIMESTAMP-MAP tag.
for more details see: https://tools.ietf.org/html/rfc8216#section-3.5
This PR keeps full backward compatibility. It adds a new structure TimestampMap to store the timestamp map, a new parser HlsWebVTTParser to parse webvtt payload that may or may not have  X-TIMESTAMP-MAP tag and a new HlsWebVTT class to tie everything together:
vtt = HlsWebVTT.read('my_hls_subtitle_segment.vtt')
vtt.captions
vtt.timestamp_map.local
vtt.timestamp_map.mpegts

@glut23 would love your feedback

Hi @omerholz apologies for replying this late. I am thinking that we could incorporate this parsing functionality as part of the WebVTT class, so the user can parse a vtt file and read the HLS data if present. What do you think? Thanks for your contribution.

I'm game to place it there @glut23
I'll ping you once I get to it


bug: Unsupported method "eth_signtypeddata_v4" with WalletConnect & Trust Wallet

Is there an existing issue for this?

[X] I have searched the existing issues

Package Version
1.4.2
Current Behavior
When signing typed data connected via WalletConnect (Trust Wallet) an error is thrown.
Unsupported method "eth_signtypeddata_v4"

Expected Behavior
You can use eth_signtypeddata_v4
Steps To Reproduce
Try to use useSignTypedData
Link to Minimal Reproducible Example (StackBlitz, CodeSandbox, GitHub repo etc.)
https://github.com/niratodev/wagmi-walletconnect-trust-wallet-no-method
Anything else?
Apologies if Wagmi is not the source of the issue. I have searched and cannot pinpoint the source, so I am starting here. All indications point to:

eth_signtypeddata_v4 is supported
Wagmi creates the provider and includes the optional methods

Hi, this issue is related to WalletConnect namespaces, this happens when you use only one chain, in the configuration you can try as workaround something like
const chains = [mainnet, mainnet]

const connector = new WalletConnectConnector({
  chains,
  options: {
    projectId: import.meta.env.VITE_WC_PROJECT_ID,
  },
});

Placing it directly in the WallletConnectConnector and not through the configureChains function.
This will be fixed once we go full optional namespaces.

No freakin way. How did you figure that out?

Hi, i'm having same issue but multiple chains already passed ([mainnet, bsc, okc, polygon, fantom]). So any other ideas how to fix that?
"@wagmi/core": "^1.4.12"

@TheJuze with which wallet? Can you share repro steps?

@TheJuze with which wallet? Can you share repro steps?

Trust wallet. Repro steps:

Connect to WC with TrustWallet
Change network to mainnet
call signTypedData
get error Unsupported method "eth_signtypeddata_v4"


Error: Cannot find module "./components/api-authorization/Login" in React app with authentication in ASP.NET Core 3 Preview 3

Describe the bug
Another error occurs as soon as you start an app created using the React app template with authentication.
To Reproduce

Follow the steps in issue #8281
Fix that error by changing = to : in ApiAuthorizationConstants.js
See another error:

×
Error: Cannot find module "./components/api-authorization/Login"
▼ 13 stack frames were expanded.
./src/components/api-authorization/ApiAuthorizationRoutes.js
https://localhost:44315/static/js/bundle.js:53166:7
__webpack_require__
C:/W ork/Play/ReactTest1/ClientApp/webpack/bootstrap 43633f0e2b726d97cc14:678
fn
C:/W ork/Play/ReactTest1/ClientApp/webpack/bootstrap 43633f0e2b726d97cc14:88
./src/App.js
https://localhost:44315/static/js/bundle.js:51925:111
__webpack_require__
C:/W ork/Play/ReactTest1/ClientApp/webpack/bootstrap 43633f0e2b726d97cc14:678
fn
C:/W ork/Play/ReactTest1/ClientApp/webpack/bootstrap 43633f0e2b726d97cc14:88
./src/index.js
https://localhost:44315/static/js/bundle.js:54708:63
__webpack_require__
C:/W ork/Play/ReactTest1/ClientApp/webpack/bootstrap 43633f0e2b726d97cc14:678
fn
C:/W ork/Play/ReactTest1/ClientApp/webpack/bootstrap 43633f0e2b726d97cc14:88
0
https://localhost:44315/static/js/bundle.js:54860:18
__webpack_require__
C:/W ork/Play/ReactTest1/ClientApp/webpack/bootstrap 43633f0e2b726d97cc14:678
(anonymous function)
C:/W ork/Play/ReactTest1/ClientApp/webpack/bootstrap 43633f0e2b726d97cc14:724
(anonymous function)
https://localhost:44315/static/js/bundle.js:728:10

Expected behavior
No error

@javiercn

@javiercn, can you please look into this, as this seems to be related to the new SPA templates area.

Is there a known workaround for this? It may well be very simple, but I'm completely new to React (and to ASP.NET Core, for that matter).

To fix this error  change the content of the ApiAuthorizationRoutes.js file
from
import { Login } from './components/api-authorization/login'
import { Logout } from './components/api-authorization/Logout'
to
import { Login } from './Login'
import { Logout } from './Logout'
And change the content of ApiAuthorizationConstants.js file
from
ApiAuthorizationPrefix = prefix,
to
ApiAuthorizationPrefix: prefix,
@mkArtakMSFT @javiercn

Thanks, that works! ESLint also complains about missing semicolons on those lines, by the way.

This is a known issue. Take a look at the list of known issues for more details:
https://github.com/dotnet/core/blob/master/release-notes/3.0/preview/3.0.0-preview-known-issues.md

This is fixed now


set-ios-bundle-identifier 1.0.2

Fixed info.plist path in quotes to allow spaced file path values, thanks!

Awesome, thank for the update/fix!


Regenerate GAPICs with updated documentation

Propagate changes from https://github.com/googleapis/toolkit/pull/1361

Test failures are coming from GAX, and are caused by retry settings being removed for streaming methods. Will need to wait for a GAX release that includes this PR: https://github.com/googleapis/gax-php/pull/74

All changes in this refresh were included in https://github.com/GoogleCloudPlatform/google-cloud-php/pull/512


Server set up Window seems supersized

Brief Description:  The server set up window seems larger than normal. This causes issues with not being able to see the Save button at the bottom since one can not 'scroll' to them.
Operating System (OS and version):  Ubuntu 16.04
OpenBazaar version (shown on About OpenBazaar page in menu):
Hardware:  VirtualBox
Reproducible (Always / Almost Always / Sometimes / Rarely / Couldn't Reproduce):  Always
Steps to reproduce:

Start the client in a 800x600 window
cringe
ctrl-w

Observed Behavior:
I haven't compared the size to the window once initial set up is complete but it seems larger.
Button is off window, can't scroll to it.
Expected Behavior:
I need my button!
Additional info (links, images, etc go here):
See below.

The minimum size of our app is 1024 X 700, so it's not going to work well if you're limited to 800 X 600. Can you configure your VirtualBox so that the window can be enlarged?

I had just noticed it seemed bigger, probably me. Thanks for the size info. I was looking in to a kiosk environment. But there is kinda a lot of padding in that window you must admit...

I don't think we're going to reduce the minimum size of the app in version 1, we'll probably add a more responsive design for v2.


m coloring problem by backtracking

m coloring
In this there is a undirected graph and a number m, determine if the graph can be colored with at most m colors such that no two adjacent vertices of the graph are colored with the same color.
Please assign this issue to me

I have created the pr .Please review and merge it


What is SessionID?

Hello! What is sessionId here? I can't find it on dialogflow console, only token

You generate it within the application, I use the 'uuid' package to generate one.


DO_WHILE task is shown as a single box on new UI

Describe the bug
Since new UI is out, it does not show DO_WHILE task list, it is just a single box. Before it was expanded and DO_WHILE task list was shown.
Details
Conductor version: 3.4.1
Workflow definition:
{
  "name": "WaitTest",
  "description": "",
  "ownerApp": "test",
  "ownerEmail"<EMAIL_ADDRESS>  "schemaVersion": 2,
  "version": 2,
  "tasks": [
{
      "name": "LoopTask",
      "taskReferenceName": "LoopTask0",
      "type": "DO_WHILE",
      "inputParameters": {
        "value": "Success"
      },
      "loopCondition": "if ( $.value == $.wait_test.response.body.result) { false; } else { true; }",
      "loopOver": [
        {
            "name": "wait_test",
            "taskReferenceName": "wait_test_ref",
            "type": "WAIT"
        }
      ]
    }
  ]
}

To Reproduce
Steps to reproduce the behavior:

submit workflow definition
observe workflow on new UI

Expected behavior
LoopTask shows it's internal task list
Screenshots

Hi @astelmashenko , I see there is a fix for this. loop ui. Can you please check whether this is included in 3.4.1 or not?

@manan164 , nope, if you look at #1824 fix, it is for old UI, it is included into v2.29.0. Now there is new UI implementation without that fix, unfortunately.

A implementation of the visualization of DO_WHILE is in the works. @boney9 can provide more details.

I'll submit a PR for this by this week. Thanks for pointing this out @peterlau

DO_WHILE task visualization is available in 3.8.1 and greater..


Add YapAnimator.

Project URL
https://github.com/yapstudios/YapAnimator/
Description
YapAnimator is a fast and friendly physics-based animation system. It was built with ease-of-use in mind, keeping you sane and your designer very, very happy. All animations are interruptible, include completion blocks, and allow you to apply forces to them (e.g. adding the velocity from a gesture in a transition).
Why it should be included to awesome-ios
YapAnimator is insanely easy to use and makes beautiful animations. There are other physics-based animation systems out there (e.g. UIKit's spring animations, Facebook's Pop), but they still require writing too much code, bookkeeping, and hand-holding for our taste. YapAnimator represents a distilled n-th iteration of code that we've been using in our own apps for years. We find it invaluable in our day-to-day lives and believe it will make a wonderful addition to awesome-ios.
Checklist

[x] Only one project/change is in this pull request
[x] Addition in chronological order (bottom of category)
[x] Supports iOS 9 / tvOS 10 or later
[x] Supports Swift 3 or later
[x] Has a commit from less than 2 years ago
[x] Has a clear README in English

          1 Error

:no_entry_sign:
Found 3 link issues

Link issues by awesome_bot

Line
Status
Link

2240
301
https://github.com/zwaldowski/BlocksKit redirects tohttps://github.com/BlocksKit/BlocksKit

2576
500
https://code.facebook.com/ios/

2629
Error
http://swiftsandbox.io  getaddrinfo: Name or service not known

  Generated by :no_entry_sign: Danger

Hey @emoryalimam, thanks for contrinuting 👍


Change the friends page UI to have 3 friends in a row

Steps to reproduce

Go to My friends page

Expected behaviour
Change the number of elements in a row from 2 to 3.

Taking this up.


Feature request: Pydantic V2

Pydantic has officially released Pydantic v2, it would be great if this code generator can emit Pydantic V2 code.
https://github.com/pydantic/pydantic/releases/tag/v2.0.2
Duplicates #130

Thank you for the heads up, I'm already working on it.
related to #165


fix(s2n-quic-xdp): correct tokio feature dependency

Description of changes:
We are currently unable to publish to crates.io because s2n-quic-xdp can't be published. This is because s2n-quic-xdp depends on the net feature, but we forgot to specify that in the Cargo.toml.
Call-outs:
We don't have a check for this in CI, and I'm not entirely sure how we'd write one.
cargo package would generally be the way to check this, but it will fail anytime we do a version bump (and possibly in more cases, haven't thought through the edge cases) because it will fail with an error like the following
   Packaging s2n-quic-tls v0.22.0 (/home/ubuntu/workspace/s2n-quic/quic/s2n-quic-tls)
   Verifying s2n-quic-tls v0.22.0 (/home/ubuntu/workspace/s2n-quic/quic/s2n-quic-tls)
    Updating crates.io index
error: failed to verify package tarball

Caused by:
  failed to select a version for the requirement `s2n-quic-crypto = "=0.22.0"`
  candidate versions found which didn't match: 0.21.0, 0.20.0, 0.19.0, ...
  location searched: crates.io index
  required by package `s2n-quic-tls v0.22.0 (/home/ubuntu/workspace/s2n-quic/target/package/s2n-quic-tls-0.22.0)`

It can't find the correct crate versions, because we haven't published them yet.
We did add an individual build check in our CI but that seems to be too permissive
https://github.com/aws/s2n-quic/blob/8f3f0589a906208ba5baf5a147813581dd27b4a2/.github/workflows/ci.yml#L372-L399
I think the problem is related to feature-resolution with dev-dependencies, but haven't had time to fully dig into this. This PR would at least unblock our publishing (I think), but if we want to block on a CI check happy to prioritize that.
Testing:
This was verified with the following command
cargo package --manifest-path tools/xdp/s2n-quic-xdp/Cargo.toml

This failed before the change, and now succeeds.
We don't have a CI check for this unfortunately.
Is this a refactor change? If so, how have you proved that the intended behavior hasn't changed? -->
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

For that workflow we should probably be doing a cargo publish --dry-run to avoid any workspace-specific configuration.

Here are some issues with context
https://github.com/rust-lang/cargo/issues/1796


Party Candidates Page

Props for @joaomoleiro  🙌

@nancruz and @jagoncalves14 I'm going to close this but please review this two commits:

https://github.com/Politica-Para-Todos/comentAR/pull/130/commits/bc753a3121a7c8224ab65396f5c7fd5c329a41fb
https://github.com/Politica-Para-Todos/comentAR/pull/130/commits/b04a552bd7e17fc240917d2778630afb18643012

@nancruz @jagoncalves14 I'm going to merge. But please review these set of commits


CARTESI_FEATURE_DISABLE_CLAIMER is a bad name

📚 Context
CARTESI_FEATURE_DISABLE_CLAIMER is somewhat of a bad name.
Specially taken into consideration the EXPERIMENTAL_SUNODO variables.
✔ Solution
We should either rename the variable or clarify in the configuration documentation
that it serves as to enable a reader-only mode.
📈 Subtasks

[ ] Evaluate whether we could either merge the CLAIMER and SUNODO_VALIDATOR together or better clarify their usade
[ ] Implement changes
[ ] Update docs

@endersonmaia 's suggestion that I agree with:

I don't remember where/when, but I did suggest about normalizing the names to bool _DISABLED and _ENABLED suffixes to imply state instead of ENABLE and DISABLEimplying action.
We use both and it may confuse.
CARTESI_FEATURE_DISABLE_CLAIMER
CARTESI_EXPERIMENTAL_SUNODO_VALIDATOR_ENABLED

@endersonmaia 's suggestion that I agree with:

I don't remember where/when, but I did suggest about normalizing the names to bool _DISABLED and _ENABLED suffixes to imply state instead of ENABLE and DISABLE implying action.
We use both and it may confuse.
CARTESI_FEATURE_DISABLECLAIMER
CARTESI_EXPERIMENTAL_SUNODO_VALIDATORENABLED

Created  #427 for the normalization

To be covered at #539


Can't generate when using middleware to check user agent.

Hi,
When I use this (same as in the middleware example in the docs)....
export default function (context) {
  context.userAgent = process.server ? context.req.headers['user-agent'] : navigator.userAgent
}

... and then nuxt generate, the generation fails with this error:
 Error: ENOENT: no such file or directory, lstat 'C:\Program Files (x86)\Ampps\www\2\dist\index.html'
    at Error (native)
  errno: -4058,
  code: 'ENOENT',
  syscall: 'lstat',
  path: 'C:\\Program Files (x86)\\Ampps\\www\\2\\dist\\index.html' }

Why is this and how can I fix it? My full middleware function looks like this
export default function (context) {
  context.userAgent = process.server ? context.req.headers['user-agent'] : navigator.userAgent
  context.isMoble = /mobile/i.test(context.userAgent)
  context.store.commit('setMobile', context.isMobile)
}

I also tried this: https://github.com/awronski/nuxtjs-examples/blob/master/mobile-desktop-with-store/store/index.js with the same result.

nuxt generate outputs a set of static HTML files, you can't use middlewares in this mode.


Possible bug on client cli (fetch)

Hi , i have an error occurring while attempting to fetch the exercise previous solution saved on the server (via --fetch). I got :
Fatal error: exception Ezjsonm.Parse_error(870828711, "JSON.of_buffer illegal literal (tle)")
the command :
 learn-ocaml-client --fetch --token=UT4-4LS-UOS-1OT --id=demo --server=http://localhost:8080 ~/Documentos/irit/learn-ocaml/demo.ml
the exercise repository
Thank you for your help,

The error was solved  i don't know how, i just restart the app.


Migrate PHP website_docs back to this repo

PHP part of #833
[x] Update PHP submodule - #1155, somewhat of a formality since website_docs hasn't been updated since our last update of the submodule.
[x] Make PHP pages local, and remove repo-link front-matter override - #1156
[x] Drop website_docs - https://github.com/open-telemetry/opentelemetry-php/pull/585

Related:

https://github.com/open-telemetry/opentelemetry-php/issues/423#issuecomment-1042389408
https://github.com/open-telemetry/opentelemetry-php/issues/405

/cc @bobstrecansky @cartermp @austinlparker

@chalin this can be closed no?

If I look at #833, I see that there's a related task left to complete (which maybe should be mentioned here?):

That might be why this is still open. But the web docs folder has been moved, so I agree with you, let's close this.


WIP: Feature/add technical indicators - Adds technical indicator data functions

This PR is focused on closing https://github.com/zackurben/alphavantage/issues/17
While introducing the technical indicator data endpoints, this introduces breaking changes. To address breaking changes, I've bumped the major version and updated all the tests.
This will remain a WIP until all technical indicators are implemented, tested, and supported by util.polish().

Coverage remained the same at 100.0% when pulling 7d0fa58b2463dd8395735f0a261903f468a5c6a3 on feature/add-technical-indicators into<PHONE_NUMBER>d0ce27ad4f8914a88378695c61a2ed on master.

Coverage remained the same at 100.0% when pulling 7d0fa58b2463dd8395735f0a261903f468a5c6a3 on feature/add-technical-indicators into<PHONE_NUMBER>d0ce27ad4f8914a88378695c61a2ed on master.

Coverage remained the same at 100.0% when pulling 7d0fa58b2463dd8395735f0a261903f468a5c6a3 on feature/add-technical-indicators into<PHONE_NUMBER>d0ce27ad4f8914a88378695c61a2ed on master.

@cmallory check this initial PR out and let me know what you think about the changes to util.url().
Looking at the API endpoints for technical data, I realized how varied the parameters are. To combat this issue, I've updated the util.url to accept an array of parameters:value pairs. This way, each data endpoint will include its specific parameters to dynamically build the query.
As a POC, I've implemented the first endpoint, SMA.

Coverage remained the same at 100.0% when pulling 853b6c89a50a5a6159a6798b6f6d5885c9140868 on feature/add-technical-indicators into<PHONE_NUMBER>d0ce27ad4f8914a88378695c61a2ed on master.

Coverage remained the same at 100.0% when pulling 853b6c89a50a5a6159a6798b6f6d5885c9140868 on feature/add-technical-indicators into<PHONE_NUMBER>d0ce27ad4f8914a88378695c61a2ed on master.

@cmallory I'm going to make issue tickets to outline which functions need to be implemented, then I'll merge this as the new base. Once some more (or all) indicators are merged, I'll do a npm publish for 1.0.0

Coverage remained the same at 100.0% when pulling 3023eb227d0ed427891763c6943137de2f566d83 on feature/add-technical-indicators into<PHONE_NUMBER>d0ce27ad4f8914a88378695c61a2ed on master.

Coverage remained the same at 100.0% when pulling 3023eb227d0ed427891763c6943137de2f566d83 on feature/add-technical-indicators into<PHONE_NUMBER>d0ce27ad4f8914a88378695c61a2ed on master.

Coverage remained the same at 100.0% when pulling 3023eb227d0ed427891763c6943137de2f566d83 on feature/add-technical-indicators into<PHONE_NUMBER>d0ce27ad4f8914a88378695c61a2ed on master.

Coverage remained the same at 100.0% when pulling 3023eb227d0ed427891763c6943137de2f566d83 on feature/add-technical-indicators into<PHONE_NUMBER>d0ce27ad4f8914a88378695c61a2ed on master.

@cmallory last update - as it turns out, the majority of the technical indicators are duplicates, with a few one off implementations. To further reduce the work required to add the indicators, I've added a more generic function generator which you can provide the function parameters in an map (much cleaner!). So basically, most of the indicators will be the exact same, or with a few different parameters.
With this change, most of the work for adding all of the indicators will be in the single (simple) test for each sdk function thats added (see test/technical.js).
I'm not going to even finish the issues, because it will be easier to just implement the indicators from top to bottom. I'm going to merge this now, but not publish the next version because I bumped a major. Feel free to make a pr with new technical indicators (all or some) and then I can add the remaining. Or if you don't have time, I can probably wrap up the rest before Sunday. LMK how you want to proceed :+1:


package.json no longer recognized

Apparently the old name for package.json is no longer recognized.
The No package found in current working directory. error isn't really helpful.

Seems to work fine. I've added a test case: https://travis-ci.org/D-Programming-Language/dub/jobs/73792581#L585
I haven't had issues with some of my older packages that still have package.json either.
We should have a look at the error message, though. Can you see if there is anything useful in the --vverbose log output?

Now it works again, sorry for the noise, no idea what went wrong.


[untested] fix: use dist files instead of bin to configure secret

Proposed changes

Changing the secret causes the following error:
internal/modules/cjs/loader.js:583
    throw err;
    ^

Error: Cannot find module '/home/ark/ark-core/packages/core/bin/ark'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
    at Function.Module._load (internal/modules/cjs/loader.js:507:25)
    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
    at startup (internal/bootstrap/node.js:282:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)

Changes are based on 762f809
Types of changes

[x] Bugfix (non-breaking change which fixes an issue)

Checklist

[x] I have read the CONTRIBUTING documentation

https://github.com/ArkEcosystem/core-commander/pull/100/commits/8e63fc8278a6fa822b877eb3d6df3e979d920ccc


Add support to register FunctionCallToSpecialForm

Register all the FunctionCallToSpecialForm by exec::registerFunctionCallToSpecialForms(), downstream project should register them first, and can implement their own FunctionCallToSpecialForm.
For example, Spark function named_struct which is row_constructor in Presto need to be registered in spark folder.

Can you help review this PR? Thanks! @mbasmanova

In the description you mentioned row_constructor as an example.  Today it's not registered as a normal special form, but rather a Vector Function with special handling hard coded in the TypeResolver to work around the fact the type isn't statically available.
Do you plan on registering row_constructor as a proper special form in a later change?

Would it make sense to call registerFunctionCallToSpecialForms() in registerGeneralFunctions in velox/functions/prestosql/registration/GeneralFunctionsRegistration.cpp ?  As well as registerFunctions in velox/functions/sparksql/Register.cpp.
Presto and Spark already register some special forms/pseudo-special forms (e.g. row_constructor, in) in these functions, so it's consistent.
This will also help keep this change from breaking a lot of existing use cases, e.g. you won't have to update quite so many tests adding the call to registerFunctionCallToSpecialForms().

In the description you mentioned row_constructor as an example. Today it's not registered as a normal special form, but rather a Vector Function with special handling hard coded in the TypeResolver to work around the fact the type isn't statically available.
Do you plan on registering row_constructor as a proper special form in a later change?

Yes, in a separate PR or this PR?

Would it make sense to call registerFunctionCallToSpecialForms() in registerGeneralFunctions in velox/functions/prestosql/registration/GeneralFunctionsRegistration.cpp ? As well as registerFunctions in velox/functions/sparksql/Register.cpp.
Presto and Spark already register some special forms/pseudo-special forms (e.g. row_constructor, in) in these functions, so it's consistent.
This will also help keep this change from breaking a lot of existing use cases, e.g. you won't have to update quite so many tests adding the call to registerFunctionCallToSpecialForms().

That's a good idea, I will change as you suggest.

In the description you mentioned row_constructor as an example. Today it's not registered as a normal special form, but rather a Vector Function with special handling hard coded in the TypeResolver to work around the fact the type isn't statically available.
Do you plan on registering row_constructor as a proper special form in a later change?

Can you help review this PR? Maybe we can merge this one first. https://github.com/facebookincubator/velox/pull/5866 @kevinwilfong

In the description you mentioned row_constructor as an example. Today it's not registered as a normal special form, but rather a Vector Function with special handling hard coded in the TypeResolver to work around the fact the type isn't statically available.
Do you plan on registering row_constructor as a proper special form in a later change?

Yes, in a separate PR or this PR? I would suggest to do that in a separate PR, I will register row_constructor and named_struct

Sounds good, thank you!

Fixed all the comments. Thanks for your kindly review, can we merge it? @kevinwilfong

Can we merge it? Thanks! @kevinwilfong

Would you help review this PR? @laithsakka

Would you help review this PR again, thanks!

Both, @kevinwilfong and @laithsakka are on vacation. @laithsakka is back tomorrow. @kevinwilfong is back in about a week.

Can we merge it? @kevinwilfong Thanks!

Do you have further comments? @kevinwilfong

Could you help merge it? @kevinwilfong

Can you help merge this one? Thanks! @mbasmanova

Let me ping Kevin. CC: @kevinwilfong


Terminal does not display underscores

The actual file name is test_disk_space.sh . Makes it difficult to work with Python using the terminal as most people use snake_case...

VSCode Version: Code 1.19.0 (816be6780ca8bd0ab80314e11478c48c70d09383, 2017-12-14T09:56:48.842Z)
OS Version: Linux x64 4.13.5-100.fc25.x86_64
Extensions:

Extension
Author (truncated)
Version

vscode-docker
Pet
0.0.22

gitlab-ci-validator
cst
1.0.0

gitlab-ci-templates
jgs
0.3.0

python
ms-
0.9.1

vscode-todo-highlight
way
0.5.11

A duplicate of https://github.com/Microsoft/vscode/issues/40084 ?

Duplicate of #35901


Add multi-instance RPMsg and IPC Service

The aim of this PR is to provide a generic API for IPC communications.
IPC Service allow plugging in different transport backends.
In addition, a multi-instance PRMsg was created and used as a backend for the IPC Service.
Each instance is allocated a separate piece of shared memory.
Multiple instances provide independent message processing.
Each instance has its own work_q.
Sample of using both multi-instance RPMsg and IPC service for nrf5340 have been prepared.
To build an IPC Service or multi-instance RPMsg sample for nrf5340:
west build -b nrf5340dk_nrf5340_cpuapp
west build -b nrf5340dk_nrf5340_cpunet

Relates to #20419.

cc @kyberdin

The last remaining item I would like to address is specifying processor for given endpoint in ipc_service API. I described it in details during first review.

I've added a processor target ID in the IPC Service API. I dropped the idea of using additional structures so as not to obscure the interface.
Apart from that, I added endpoint registrations with the same priority to the same RPMsg instance (this applies to the Rpmsg backend).

@carlescufi @carlocaione Could you please do a review, or request someone to do it.


Localized string for userMessage (Technical Profile REST)

Hello,
I'm customizing the language for our sign in or sign up process in Azure B2C and I'm wondering how can I set the "userMessage" that I return from the REST call based on the language? Is there a way to customize it in the Custom Policy or the REST API needs to know the language to return the correct message in their response?
Thank you

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

ID: 986c1f85-07c7-ec91-d4fb-d5da5676c6f1
Version Independent ID: 98782e9a-7697-52a3-754c-e1c6527401bb
Content: Localization string IDs - Azure Active Directory B2C
Content Source: articles/active-directory-b2c/localization-string-ids.md
Service: active-directory
Sub-service: b2c
GitHub Login: @msmimart
Microsoft Alias: mimart

@henriquebelotto
Thanks for your feedback! We will investigate and update as appropriate.

We are about to provide more details how to localise the REST API response. Meanwhile, please check this sample https://docs.microsoft.com/en-us/azure/active-directory-b2c/claim-resolver-overview#restful-technical-profile.
To send the userLanguage, you first need to declare such a claim type. In the input claim, you use claim resolver to set the value of the claim.

closing the thread for now.


Update payment.py

added support to django-sho 0.11.x
added support to angular 2.0
(tested only in python 3.6)

The payment is now initiated by the server, not by the client. This changes the whole logic. Therefore this pull request doesn't fit anymore. Thanks anyway for your effort.


sonobuoy e2e --rerun-failed command runs the entire test suite

What steps did you take and what happened:

Ran a sonobuoy test that resulted in some failures.
Downloaded the results tarball using sonobuoy retrieve
Deleted the heptio-sonobuoy namespace
Used the following command to re-run the failed tests: sonobuoy e2e<PHONE_NUMBER>49_sonobuoy_85d03238-77c9-4c5e-8df7-6bf91e8d6a58.tar.gz --rerun-failed

This resulted in a new deployment of sonobuoy running all the conformance tests:
# k logs sonobuoy-e2e-job-7a7439fae526457d e2e
+ set +x
+ /usr/local/bin/ginkgo '--focus=\[Conformance\]' '--skip=Alpha|\[(Disruptive|Feature:[^\]]+|Flaky)\]' --noColor=true /usr/local/bin/e2e.test -- --disable-log-dump --repo-root=/kubernetes --provider=local --report-dir=/tmp/results --kubeconfig=
+ tee /tmp/results/e2e.log
I0703 18:57:36.596085      20 test_context.go:406] Using a temporary kubeconfig file from in-cluster config : /tmp/kubeconfig-979058637
I0703 18:57:36.596399      20 e2e.go:241] Starting e2e run "bb773da5-079d-4f0b-b354-c6083908bb43" on Ginkgo node 1
Running Suite: Kubernetes e2e suite
===================================
Random Seed:<PHONE_NUMBER> - Will randomize all specs
Will run 215 of 4411 specs

What did you expect to happen:
Sonobuoy should only run the tests that failed.

Seems to have been broken quite a while: https://github.com/heptio/sonobuoy/pull/315/files
Personally, I've never used this command, sorry for the problem. Should be an easy fix (we just need to set the skip/focus and there is a helper method for that already).

I also noticed this behavior as well. It'd be great if it could be fixed!


Request audit for PCI DSS compliancy

Will this software be compliant with the GDPR (General Data Protection Regulation) in May 2018?

Also, please ensure software is compliant with DPRK regulations.

I heard Experience and Target already deployed years ago so it must be certified.

Updates please, this is crucial for compliance.


YLE (Finland) as new indexer or support to pass through to downloader

Checklist

[X] I'm reporting a new site support request
[X] I've verified that I'm running yt-dlp version 2022.01.21. (update instructions)
[X] I've checked that all provided URLs are alive and playable in a browser
[X] I've checked that none of provided URLs violate any copyrights or contain any DRM to the best of my knowledge
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and am willing to share it if required

Region
Finland
Example URLs
https://areena.yle.fi/1-4371942
Description
It would be good if support could be provided OR support given to the existing yle-dl application (https://aajanki.github.io/yle-dl/index-en.html) as a passthrough.
First I confirm it does not work with yt-dlp:
% yt-dlp --downloader yle-dl https://areena.yle.fi/1-4371942
[generic] 1-4371942: Requesting header
WARNING: [generic] Falling back on generic information extractor.
[generic] 1-4371942: Downloading webpage
[generic] 1-4371942: Extracting information
ERROR: Unsupported URL: https://areena.yle.fi/1-4371942

Then I confirm the pass through is not supported (to be fair, the documentation does not claim it is supported).
yt-dlp --downloader yle-dl https://areena.yle.fi/1-4371942
[generic] 1-4371942: Requesting header
WARNING: [generic] Falling back on generic information extractor.
[generic] 1-4371942: Downloading webpage
[generic] 1-4371942: Extracting information
ERROR: Unsupported URL: https://areena.yle.fi/1-4371942

Then I confirm the yle-dl can download the file
% yle-dl https://areena.yle.fi/1-4371942
yle-dl 20210917: Download media files from Yle Areena and Elävä Arkisto
Copyright (C) 2009-2021 Antti Ajanki<EMAIL_ADDRESS>license: GPLv3

Output file: Modernit miehet: Pouchit: S01E02-2019-01-06T00:01.mkv
[webvtt @ 0x7f91e6008200] Dropping 94 duplicated subtitle events
frame=35882 fps=1815 q=-1.0 Lsize=  703971kB time=00:23:55.31 bitrate=4017.9kbits/s speed=72.6x
Stream saved to Modernit miehet: Pouchit: S01E02-2019-01-06T00:01.mkv

Then the metadata (I don't understand...)
yle-dl https://areena.yle.fi/1-4371942 --showmetadata
[
  {
    "program_id": "1-4371942",
    "webpage": "https://areena.yle.fi/1-4371942",
    "title": "Modernit miehet: Pouchit: S01E02-2019-01-06T00:01",
    "description": "Kausi 1, 2/12. Pete saa tarpeekseen Pihlan ja Tuomaksen suhteesta. Jarkko pelk\u00e4\u00e4 paljastuvansa \u00f6isin ajavaksi taksikuskiksi. Husqvarna TS 242 ruohonleikkuri lunastaa Tuomaksen miehuuden takaisin. (U)",
    "filename": "Modernit miehet: Pouchit: S01E02-2019-01-06T00:01.mkv",
    "flavors": [
      {
        "media_type": "video",
        "height": 176,
        "width": 320,
        "bitrate": 130,
        "backends": [
          "ffmpeg"
        ],
        "url": "https://cdnsecakmi.kaltura.com/p/1955031/sp/195503100/playManifest/entryId/0_a3tjk92c/flavorId/1_h1mzm3k2/format/applehttp/protocol/https/a.m3u8?uiConfId=43362851&referrer=aHR0cHM6Ly9hcmVlbmEueWxlLmZpLzEtNDM3MTk0Mg==&playSessionId=11111111-1111-1111-1111-111111111111&clientTag=html5:v0.39.4"
      },
      {
        "media_type": "video",
        "height": 360,
        "width": 640,
        "bitrate": 466,
        "backends": [
          "ffmpeg",
          "wget"
        ],
        "url": "https://cdnsecakmi.kaltura.com/p/1955031/sp/195503100/playManifest/entryId/0_a3tjk92c/flavorId/1_v6f2yuyi/format/applehttp/protocol/https/a.m3u8?uiConfId=43362851&referrer=aHR0cHM6Ly9hcmVlbmEueWxlLmZpLzEtNDM3MTk0Mg==&playSessionId=11111111-1111-1111-1111-111111111111&clientTag=html5:v0.39.4"
      },
      {
        "media_type": "video",
        "height": 360,
        "width": 640,
        "bitrate": 665,
        "backends": [
          "ffmpeg",
          "wget"
        ],
        "url": "https://cdnsecakmi.kaltura.com/p/1955031/sp/195503100/playManifest/entryId/0_a3tjk92c/flavorId/1_nk6e8tm7/format/applehttp/protocol/https/a.m3u8?uiConfId=43362851&referrer=aHR0cHM6Ly9hcmVlbmEueWxlLmZpLzEtNDM3MTk0Mg==&playSessionId=11111111-1111-1111-1111-111111111111&clientTag=html5:v0.39.4"
      },
      {
        "media_type": "video",
        "height": 360,
        "width": 640,
        "bitrate": 940,
        "backends": [
          "ffmpeg",
          "wget"
        ],
        "url": "https://cdnsecakmi.kaltura.com/p/1955031/sp/195503100/playManifest/entryId/0_a3tjk92c/flavorId/1_wc1a4ocw/format/applehttp/protocol/https/a.m3u8?uiConfId=43362851&referrer=aHR0cHM6Ly9hcmVlbmEueWxlLmZpLzEtNDM3MTk0Mg==&playSessionId=11111111-1111-1111-1111-111111111111&clientTag=html5:v0.39.4"
      },
      {
        "media_type": "video",
        "height": 720,
        "width": 1280,
        "bitrate": 1445,
        "backends": [
          "ffmpeg",
          "wget"
        ],
        "url": "https://cdnsecakmi.kaltura.com/p/1955031/sp/195503100/playManifest/entryId/0_a3tjk92c/flavorId/1_7djfui4l/format/applehttp/protocol/https/a.m3u8?uiConfId=43362851&referrer=aHR0cHM6Ly9hcmVlbmEueWxlLmZpLzEtNDM3MTk0Mg==&playSessionId=11111111-1111-1111-1111-111111111111&clientTag=html5:v0.39.4"
      },
      {
        "media_type": "video",
        "height": 720,
        "width": 1280,
        "bitrate": 2565,
        "backends": [
          "ffmpeg",
          "wget"
        ],
        "url": "https://cdnsecakmi.kaltura.com/p/1955031/sp/195503100/playManifest/entryId/0_a3tjk92c/flavorId/1_q9fq5doj/format/applehttp/protocol/https/a.m3u8?uiConfId=43362851&referrer=aHR0cHM6Ly9hcmVlbmEueWxlLmZpLzEtNDM3MTk0Mg==&playSessionId=11111111-1111-1111-1111-111111111111&clientTag=html5:v0.39.4"
      },
      {
        "media_type": "video",
        "height": 1080,
        "width": 1920,
        "bitrate": 4019,
        "backends": [
          "ffmpeg",
          "wget"
        ],
        "url": "https://cdnsecakmi.kaltura.com/p/1955031/sp/195503100/playManifest/entryId/0_a3tjk92c/flavorId/1_s3dr9u33/format/applehttp/protocol/https/a.m3u8?uiConfId=43362851&referrer=aHR0cHM6Ly9hcmVlbmEueWxlLmZpLzEtNDM3MTk0Mg==&playSessionId=11111111-1111-1111-1111-111111111111&clientTag=html5:v0.39.4"
      }
    ],
    "duration_seconds": 1435,
    "embedded_subtitles": [
      {
        "language": "fin",
        "category": "ohjelmatekstitys"
      }
    ],
    "subtitles": [
      {
        "language": "fin",
        "url": "https://cdnapi-legacy.kaltura.com/api_v3/index.php/service/caption_captionAsset/action/serve/captionAssetId/1_6cggt9b7/ks/NzZlMjZmYjYxYjIzMTdjZDhlNDA4YTVlYTFkMWNjNjk1NDJjODMyZXwxOTU1MDMxOzE5NTUwMzE7MTY0MzMwNzk1ODswOzE1MDIzO292cEB5bGUuZmk7ZG93bmxvYWQ6MF9hM3RqazkyYw==",
        "category": "ohjelmatekstitys"
      }
    ],
    "region": "World",
    "publish_timestamp": "2019-01-06T00:01:00+02:00"

Verbose log
yt-dlp https://areena.yle.fi/1-4371942 -vU
[debug] Command-line config: ['https://areena.yle.fi/1-4371942', '-vU']
[debug] System config "/etc/yt-dlp.conf": ['--download-archive', '/volumes/appdata/YT_Downloader/Config/downloaded.txt', '--restrict-filenames', '--prefer-ffmpeg', '--merge-output-format', 'mkv', '--cookies=/volumes/appdata/YT_Downloader/Config/cookiex.txt', '--format-sort', '+res', '--sponsorblock-remove', 'sponsor,selfpromo,interaction']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, err utf-8, pref UTF-8
[debug] yt-dlp version 2022.01.21 [f20d607b0]
[debug] Python version 3.9.5 (CPython 64bit) - macOS-10.15.7-x86_64-i386-64bit
[debug] exe versions: ffmpeg 4.4.1 (setts), ffprobe 4.4.1, rtmpdump 2.4
[debug] Optional libraries: Cryptodome, mutagen, sqlite, websockets
[debug] Proxy map: {}
[debug] Loading archive file '/volumes/appdata/YT_Downloader/Config/downloaded.txt'
Latest version: 2022.01.21, Current version: 2022.01.21
yt-dlp is up to date (2022.01.21)
[debug] [generic] Extracting URL: https://areena.yle.fi/1-4371942
[generic] 1-4371942: Requesting header
WARNING: [generic] Falling back on generic information extractor.
[generic] 1-4371942: Downloading webpage
[generic] 1-4371942: Extracting information
[debug] Looking for video embeds
ERROR: Unsupported URL: https://areena.yle.fi/1-4371942
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/yt_dlp/YoutubeDL.py", line 1367, in wrapper
    return func(self, *args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/yt_dlp/YoutubeDL.py", line 1437, in __extract_info
    ie_result = ie.extract(url)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/yt_dlp/extractor/common.py", line 612, in extract
    ie_result = self._real_extract(url)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/yt_dlp/extractor/generic.py", line 3966, in _real_extract
    raise UnsupportedError(url)

After submitting and looking at the metadata, I tried as a whim one of the addresses found and yt-dlp at least would grab that.
yt-dlp "https://cdnsecakmi.kaltura.com/p/1955031/sp/195503100/playManifest/entryId/0_a3tjk92c/flavorId/1_v6f2yuyi/format/applehttp/protocol/https/a.m3u8?uiConfId=43362851&referrer=aHR0cHM6Ly9hcmVlbmEueWxlLmZpLzEtNDM3MTk0Mg==&playSessionId=11111111-1111-1111-1111-111111111111&clientTag=html5:v0.39.4"
[generic] a.m3u8?uiConfId=43362851&referrer=aHR0cHM6Ly9hcmVlbmEueWxlLmZpLzEtNDM3MTk0Mg==&playSessionId=11111111-1111-1111-1111-111111111111&clientTag=html5:v0.39: Requesting header
[redirect] Following redirect to https://ylekaodamd.akamaized.net/s/fhls/p/1955031/sp/195503100/serveFlavor/entryId/0_a3tjk92c/v/1,1/ev/15/flavorId/1_v6f2yuyi,/ev/15/flavorId/1_6cggt9b7,/name/a.mp4/index.m3u8.urlset/master.m3u8?__hdnea__=st=1643286491~exp=1643300891~acl=/s/fhls/p/1955031/sp/195503100/serveFlavor/entryId/0_a3tjk92c/v/1*~hmac=fe07c8e474caf6f2910436d1f416748e8205797af7f1b09c499d09dd2c4f73b0
[generic] 1*~hmac=fe07c8e474caf6f2910436d1f416748e8205797af7f1b09c499d09dd2c4f73b0: Requesting header
[generic] 1*~hmac=fe07c8e474caf6f2910436d1f416748e8205797af7f1b09c499d09dd2c4f73b0: Downloading m3u8 information
[SponsorBlock] SponsorBlock is not supported for Generic
[info] 1*~hmac=fe07c8e474caf6f2910436d1f416748e8205797af7f1b09c499d09dd2c4f73b0: Downloading 1 format(s): 460
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 147
[download] Destination: master-[1_~hmac=fe07c8e474caf6f2910436d1f416748e8205797af7f1b09c499d09dd2c4f73b0].mp4
[download] 100% of 86.26MiB in 00:31
[FixupM3u8] Fixing MPEG-TS in MP4 container of "master-[1_~hmac=fe07c8e474caf6f2910436d1f416748e8205797af7f1b09c499d09dd2c4f73b0].mp4"
[ModifyChapters] SponsorBlock information is unavailable

For devs:

Make a GET request to https://player.api.yle.fi/v1/preview/<id in url>.json?app_id=player_static_prod&app_key=8930d72170e48303cf5f3867780d549b.

This returns useful metadata about the video
Seems like the app_id and app_key are the only required parameters. Probably fine to hard-code.

Since this is a Kaltura video, you want to pass handling off to the Kaltura extractor.

i.e. pass a url result with a url like kaltura:<partner id>:<kaltura video id>, but with metadata from above response.
the kaltura video id is under data->ongoing_demand->kaltura->id in the above response
the partner id is 1955031. Probably fine to hard-code, but if you want to it shows up in the manifest_url in the above response.


Consumeable color palette

It would be useful if we could get the color palette so we could use consistent color when overriding highlight group.
For example, in tokyonight.nvim, we can do something like this
local colors = require("tokyonight.colors").setup({})
local utils = requires("tokyonight.util")

aplugin.background = colors.bg_dark
aplugin.my_error = util.brighten(colors.red1, 0.3)

Hey, sorry for the late reply.
Can you please check if rewrite branch completely satisfies this feature request?
doom-one.nvim color palettes are now located at doom-one.colors in a table that is returned with two keys named dark and light respectively and you can doom-one.colors.get_palette(background) to get only the table with the desired background style colors.
Regarding to utility functions to lighten/darken or mix colors, that is already available in doom-one.utils.
Cheers

Hey, sorry for the late reply.

No problem

Can you please check if rewrite branch completely satisfies this feature request?

Yes, the rewrite branch looks good.
What kind of bugs do you mean that you use global variable instead? Compared to option table which feels cleaner, and it doesn't pollute the global variable (IMO off course).

Can you please check if rewrite branch completely satisfies this feature request?

Yes, the rewrite branch looks good.

Cool, I'll finish the light variant tweaks and plugins integrations to merge it. Thank you!

What kind of bugs do you mean that you use global variable instead? Compared to option table which feels cleaner, and it doesn't pollute the global variable (IMO off course).

#17 is a great example, I didn't really find another clean way to fix this behavior (tried to read other colorschemes source code with a setup function to understand what I was doing wrong but it was like black magic to me haha).


DOC: fix napoleon, render sphinx docs right

pvlib python pull request guidelines
Thank you for your contribution to pvlib python! You may delete all of these instructions except for the list below.
You may submit a pull request with your code at any stage of completion.
The following items must be addressed before the code can be merged. Please don't hesitate to ask for help if you're unsure of how to accomplish any of the items below:

[x] Closes issue #690
[x] I am familiar with the contributing guidelines.
[x] Fully tested. Added and/or modified tests to ensure correct behavior for all reasonable inputs. Tests (usually) must pass on the TravisCI and Appveyor testing services.
[ ] Updates entries to docs/sphinx/source/api.rst for API changes.
[ ] Adds description and name entries in the appropriate docs/sphinx/source/whatsnew file for all changes.
[x] Code quality and style is sufficient. Passes LGTM and SticklerCI checks.
[x] New code is fully documented. Includes sphinx/numpydoc compliant docstrings and comments in the code where necessary.
[x] Pull request is nearly complete and ready for detailed review.

Brief description of the problem and proposed solution (if not already fully described in the issue linked to above):

add napoleon extension to sphinx source conf.py
fix see also in solar_zenith_analytical

Thanks Mark. My understanding is that we should use either the napoleon extension or the numpydoc extension, but not both. I googled around a bit for pros/cons of napoleon with numpydoc formatting vs. just using numpydoc. I didn't find anything conclusive. It seems that switching from numpydoc to napoleon is trivial for some projects and difficult for others. We'd need to thoroughly check the build to make sure that all pages render correctly.

new docs as rendered are here

Overall, I prefer the napoleon formatting. I also like that it links to the allowed types. I wonder if there's a way to link to custom definitions for "numeric" and "array-like" (not required here, just thinking).
I've listed a handful of issues below. Many of these are also issues in the numpydoc build, but the differences in formatting have made them breaking issues instead of nice to have fixes.

Location.get_solarposition param kwargs
new line needed after return type in solar_zenith_analytical
Location.get_clearsky kwargs spec is not sensible with napoleon. It's just poorly formatted with numpydoc. See PVSystem.get_irradiance for working kwargs spec.
sapm returns section
SingleAxisTracker params not rendered right.
ModelChain.prepare_inputs Assigns attributes list spilling to next line makes the section too confusing. Move it to notes?
bifacial parameters not rendered

Things that are entirely broken in both and not required here:

SingleAxisTracker.singleaxis

[x] Location.get_solarposition param kwargs
just needed a newline and tab after kwargs

[x] new line needed after return type in solar_zenith_analytical

FYI: this is the expected rtype behavior for sphinx, setting napoleon_use_rtype = False changes this to:

[ ] Location.get_clearsky kwargs spec is not sensible with napoleon.
Just needs newline and tab after kwargs

[ ] sapm returns section
How do you want this to look? Separating rtype is the default Sphinx expected. I'll try napoleon_use_rtype = False maybe it looks better:

[ ] SingleAxisTracker params not rendered right.
It was missing the Parameters heading before the arguments list

[ ] ModelChain.prepare_inputs Assigns attributes list spilling to next line makes the section too confusing. Move it to notes?

[ ] bifacial parameters not rendered

[ ] SingleAxisTracker.singleaxis

FYI: this is the expected rtype behavior for sphinx, setting napoleon_use_rtype = False changes this to:

ah, I prefer the behavior when set to False. Your preference?

It appears that the __init__ method has always been listed in the documentation, see v0.6.0, but I can't figure out how to get rid of it, things I've tried, but failed:

get rid of numpydoc extensions
set numpydoc directive numpydoc_show_class_members to false
set napoleon_include_init_with_doc to false
set napoleon_include_special_with_doc to false
set napoleon_include_private_with_doc to false
delete source/generated folder
hard cache reset the browser
add extra newline after Parameters section
I give up :(

napolean directives I did not use:
# napoleon_google_docstring = False
# napoleon_use_param = False
# napoleon_use_ivar = True
# napoleon_include_init_with_doc = False
# napoleon_include_private_with_doc = False
# napoleon_include_special_with_doc = False

Make sure to reset browser cache before checking rendered docs


Stub out cacheKeyData for now

This is not used for anything at the moment. Also, it inadvertently causes
keyserver signed responses to be leaked into the localStorage context of Yahoo
mail.
Fix #5

CLA is valid!


Set LastWriteTime of files extracted from zip

I have this strange deja vu that this is a change that we talked about doing way back and somehow ended up not doing, but I can't remember why.
I think one concern is that zip files don't have concept of time zone, and that without knowing the time zone it was created it in, you can't reliably infer their true UTC time.
Still, on the surface it would seem fairly harmless.

Well you could argue that it's better than nothing! :-)

Yes, I agree. Unless there was something else that came up that I'm not remembering. Anyway, let's give this a try and see what blows up :)


npm run start doesn't work

Cloned the repo from GitHub
did npm i, which was successful
npm run startfailed with

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './dist/system.min.js' is not defined by "exports"
OS: MacOs 12.1
Node: 17.5.0
Changes: None
Stacktrace:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './dist/system.min.js' is not defined by "exports" in /Users/stephanmakowski/Arbeit/Projects/Fore/node_modules/systemjs/package.json
at new NodeError (node:internal/errors:371:5)
at throwExportsNotFound (node:internal/modules/esm/resolve:429:9)
at packageExportsResolve (node:internal/modules/esm/resolve:705:3)
at resolveExports (node:internal/modules/cjs/loader:482:36)
at Function.Module._findPath (node:internal/modules/cjs/loader:522:31)
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27)
at Function.resolve (node:internal/modules/cjs/helpers:108:19)
at Object. (/Users/stephanmakowski/Arbeit/Projects/Fore/node_modules/es-dev-server/dist/utils/inject-polyfills-loader.js:25:27)
at Module._compile (node:internal/modules/cjs/loader:1097:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1151:10) {
code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}

npm update did the trick


soc: stm32l0: force DBGMCU Sleep/Stop/Standby bits to 0

soc: stm32l0: force DBGMCU Sleep/Stop/Standby bits to 0
Enabling DBGMCU bits Sleep/Stop/Standby on STM32L0
causes Hardfault. See #37119
As a workaround, force those bits to 0

Finally, it appears that, similarly to #38561,
enabling DMA clock  fixes issues linked to DBGMCU bits .
This PR is abandoned to the profit of a completely different approach  #38681 which is less restrictive.


Define what happens if range's third argument is given 0

Python throws an error

It should just be an empty list


implement specialized fm-index for murphy10

contact @esiragusa about it.

moved to seqan/lambda#8


[BUG] - Cardano-cli builds erroneous collateral output for multiple occurrences of collateral inputs

Internal/External
External   otherwise.
Area
Plutus    Related to Plutus Scripts (Alonzo).
Other   Any other topic (Delegation, Ranking, ...).
Summary
When adding collateral inputs multiple times, the cardano-cli builds an erroneous transaction with too much collateral output (the sum of the collateral inputs).
This is especially problematic as for example the default behaviour of the cardano clusterlib for multiple script invocations with the same collateral is mentioning it several times in the built transaction.
Steps to reproduce
Steps to reproduce the behavior:
Building the following transaction
cardano-cli query protocol-parameters --mainnet --out-file pparams.json
cardano-cli transaction build \
--tx-in 298e94029f7d360e3758c455594b8192c2399a6cb1177800c0650f0ad211ec41\#0 \
--tx-in-script-file cancel_contract.plutus \
--tx-in-datum-file datum.txt \
--tx-in-redeemer-file redeemer.txt \
--tx-in-collateral dd9cf832fc8a8bf15f56484584bf2b247a6a3374cc9686f38af058953e66ab89\#0 \
--tx-in 298e94029f7d360e3758c455594b8192c2399a6cb1177800c0650f0ad211ec41\#1 \
--tx-in-script-file cancel_contract.plutus \
--tx-in-datum-file datum.txt \
--tx-in-redeemer-file redeemer.txt \
--tx-in-collateral dd9cf832fc8a8bf15f56484584bf2b247a6a3374cc9686f38af058953e66ab89\#0 \
--required-signer payment_hosk.skey \
--change-address addr1vx5tzxy5ue4l4xqpdgz9gcyv67rzlnlcd96e3cpazlut0lcdcy8wv \
--out-file tx.body \
--babbage-era \
--protocol-params-file pparams.json \
--mainnet
cardano-cli transaction view --tx-body-file tx.body

Produces the following output
auxiliary scripts: null
certificates: null
collateral inputs:
- dd9cf832fc8a8bf15f56484584bf2b247a6a3374cc9686f38af058953e66ab89#0
era: Babbage
fee: 203654 Lovelace
inputs:
- 298e94029f7d360e3758c455594b8192c2399a6cb1177800c0650f0ad211ec41#0
- 298e94029f7d360e3758c455594b8192c2399a6cb1177800c0650f0ad211ec41#1
metadata: null
mint: null
outputs:
- address: addr1vx5tzxy5ue4l4xqpdgz9gcyv67rzlnlcd96e3cpazlut0lcdcy8wv
  address era: Shelley
  amount:
    lovelace: 2796346
  datum: null
  network: Mainnet
  payment credential key hash: a8b11894e66bfa98016a0454608cd7862fcff8697598e03d17f8b7ff
  reference script: null
  stake reference: null
reference inputs: []
required signers (payment key hashes needed for scripts):
- ee7f0b86d6bebb19dd0a07ecd6b16d7ac67913a18a255e808284970b
return collateral:
  address: addr1vx5tzxy5ue4l4xqpdgz9gcyv67rzlnlcd96e3cpazlut0lcdcy8wv
  address era: Shelley
  amount:
    lovelace: 12753115
  datum: null
  network: Mainnet
  payment credential key hash: a8b11894e66bfa98016a0454608cd7862fcff8697598e03d17f8b7ff
  reference script: null
  stake reference: null
total collateral: 305481
update proposal: null
validity range:
  lower bound: null
  upper bound: null
withdrawals: null
witnesses:
- key: VKey (VerKeyEd25519DSIGN "c55f249d1c2c2204ef1195e48a0cc3a4fa0dcfba7084d478e7f65de9321f6650")
  signature: SignedDSIGN (SigEd25519DSIGN "ab4f91234658443d5769bffbc826d7c72506f380fae150c78ea6b11ca52d9aade6d26b29bac9d1749defbed86f5d5a31e6be39aa4bfdc0629577af2e5207ca02")

Clearly, there is only one collateral in put (with around 6 ADA), being mentioned twice when building the transaction.
However the computed collateral output is 12 ADA.
Expected behavior
The cli should detect that the collateral is mentioned several times and filter out duplicates.
The same procedure as above does NOT produce errors on cardano-cli version 1.35.3 and before.
System info (please complete the following information):

OS Name: [e.g. Ubuntu] Ubuntu
OS Version [e.g. 20.04] 20.04
Node version (output of cardano-node --version)

cardano-cli 1.35.4 - linux-x86_64 - ghc-8.10
git rev ebc7be471b30e5931b35f9bbc236d21c375b91bb

CLI version  (output of cardano-cli --version)

cardano-cli 1.35.4 - linux-x86_64 - ghc-8.10
git rev 950c4e222086fed5ca53564e642434ce9307b0b9

In general I don't quite understand why there is a collateral output being built in the first place without explicitly asking for it. There does not appear to be an option to turn this bevior off.

@mkoura This might also be something that the clusterlib directly addresses by filtering out duplicates when building transactions.

@nielstron Thanks for suggestion, I created https://github.com/input-output-hk/cardano-clusterlib-py/pull/156 for filtering out duplicate collaterals in clusterlib (so it can be used with node releases that don't have this change).

Great, thanks!


Fix billing requirements (sample-metadata -> metamist)

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

:exclamation: No coverage uploaded for pull request base (main@b5e19d6). Click here to learn what that means.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #167   +/-   ##
=======================================
  Coverage        ?   88.04%
=======================================
  Files           ?        4
  Lines           ?      393
  Branches        ?        0
=======================================
  Hits            ?      346
  Misses          ?       47
  Partials        ?        0

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Navigation not always highlighting the active router

It work on /  as well when navigating from there.

However when directly loading a non index page (eg /projects) with js enabled the active path is not highlighted.

Investigated this, appears to be a bug of either reach router, or its gatsby implementation

fixed by reverting PR to highlight navigation based on routes


See Invisibility should auto set range

At least, for the effect provided by the spell, See Invisibility is "For the duration, you see [invisible] creatures and objects as if they were visible, and you can see into the Ethereal Plane. Ethereal creatures and objects appear ghostly and translucent."
The range of See Invisibility (at least for the purposes of this spell) therefore should be the higher of the token's Light Perception and Darkvision range, plus perhaps any other vision mode that grants "visibility" of things.
In practice, since most tokens have infinite Light Perception range (in concept and in v5e settings), then See Invisibility should have the same range.  But the range box in the token config does not allow it.  (You can of course just put in a really large number, but that feels imprecise.)
Ideally, the See Invisibility range would just be defaulted to the max value of Light Perception and any other "visibility" modes, which IMO includes at least Darkvision.

Sigh.  As always you're way ahead of me.  I had an override that I had put in because my spell didn't have the right effect on it, and somehow thought that was what v5e was doing once I added the effect.  My bad!


OTAR045 -Tractability: Agree on and write data specification for project data

Data specification required for pipeline processing, API integration, and front-end implementation

[ ] Define required pipeline changes

[ ] Define required API changes

[x] Define required frontend change

Completing the data specification document is in progress. Draft of JSON schema required for visualisations to be completed and agreed by Friday 7 September 2018.


Helper F# functions to do sums with matrices

added mapCols, mapRows, sumColsBy and sumRowsBy to Matrix F# module (for symmetry with sumBy from the List, Array and Seq modules)

Thanks!

I added unit tests for that, it's the following commit (https://github.com/ovatsus/mathnet-numerics/commit/dc5939a0bf9c6b508fbe0f4cb5fcc9fa92fb4d9f), please merge that too


First Version of Lore

Here we present the first version of the Stickian Lore. This is just an initial draft.

Proposal for your summary, worked from your topic points:

Many, many years ago, the Rubberian people were defeated at the Great War of the Rubberhand. Across the now Rubberfree land all stick-realms achieved life in peace, focused on prosperity and growth. However, not all kingdoms prospered together. King Ladstick, the III,  was falling to despair. As the main general of the united realms, hero in the war, and decorated as the strongest general, he was left to rule a barren kingdom ravaged by the war. As he saw the coward neighbour kingdoms prosper from his kingdom's sacrifice, his jealousy increased. Instead of ruling his own kingdom he retreated into his inner chambers and plotter revenge. The land got poorer and the disparities bigger, people were left without ruler, as King Ladstick did not exercise the law.
One day, the king, now called by many King Madstick, ventured into the Forest of The Thousand Sticks, in a quest to find the dark wizard whom he thought could be the answer to his plan. The king knew the wizard would heed his call, as the wizard was in debt to the Ladstick family, but the risk of his request stroke fear in his heart nonetheless. He steeled his resolve as this would be done for the benefit of the kingdom, or so he thought...
The wizard, in vain, attempted to warn the king about the dangers of the request, but the king could see no other way out at this point. An army of undead, built from the rubber remains of the Great War, was the final demand. And so, with the spirit of the Mythical Eraser, the dark wizard travelled to the Rubberian graveyard, where no stickman would ever go, and managed to breath a second life to the Rubberian people raising a fearsome army that could conquer the world. These undead warriors, pink in skin, meant terror to every stickman, and they were an army ready for battle.
In a resentful rage, the Madstick drove his newly found army to his prospering neighbouring countries, and the first stickities were conquered. However, when you dance with death, you're just inviting it sooner to your house... One night, the king saw in his dreams Rubber Isho, the XVI, the last emperor of the Rubberian people, casually saying while slowly erasing Madstick's existance:
"How nice, a second chance to erase this stickmen of existence"
and he never woke up again...
And so the kingdom fell, with the terrorizing Rubberian undead, advancing in crushing waves, destroying the life of peaceful stickmen. As a last resistance for the stickmen, the last colonies held strong in the cardinal points of the world, fighting bravely to survive! Under YOUR rule, will they be able to thrive?
Will you help them reach victory, or will you fall into misery? The choice is yours.

Possible spoiler if this thread is accepted
We could also have some twists like:
* The mage was controlling the undead rubber king in the end
* The start of the rubber war was the stickmen repressing the rubber people (peaceful rubbers) for being different
+weird stuff+

Although I like this summary as a version 0, I believe that the concept of the Madking vanishing could have some extra work, or should work differently... Maybe the wizard was half-rubber, half-stickman and wanted to get his revenge?

In a resentful rage, the Madstick drove his newly found army to his prospering neighbouring countries, and the first stickities were conquered. However, when you dance with death, you're just inviting it sooner to your house... One night, the king saw in his dreams Rubber Isho, the XVI, the last emperor of the Rubberian people, casually saying while slowly erasing Madstick's existence:
"How nice, a second chance to erase these stickmen of existence"
and he never woke up again...

I would redo this by following one of the two ideas below:

"In a resentful rage and thirst for power, the Madstick drove his newly found army to his prospering neighbouring countries, and the first stick-cities were conquered. He was becoming unstoppable, however, his greed was blind to the wizard's warnings... The more he controlled his soldiers, the more his power was getting drained, hence he was becoming weaker and weaker. One day, he became so weak that he fainted, prepared to give up his soul to his army. At this point, the undead army joined forces to bring the king, their god, back from the dead, but he wouldn't be the same... He was full of dark power. He was no longer the Madstick King... He rose as the undead Madking, ruthless and stronger than he ever was."
"In a resentful rage and thirst for power, the Madstick drove his newly found army to his prospering neighbouring countries, and the first stick-cities were conquered. He was becoming unstoppable, however, he was blind to the wizard's warnings... His reckless greed led him to raise from the dead the once-loved Rubber Isho, the XVI, the last emperor of the Rubberian people. This undead rubber emperor wanted his revenge, and the Madstick king was on his way. So, the Rubber Isho mercilessly slew the Madstick king in front of all the undead army, and claimed his crown as the undead emperor."

If you have other ideas for possible endings, feel free to share them!

Both seem pretty cool! I'd be leaning to 2.


oData V4 Deferred operation binding - filtering issue

Hi team,
I think there is an issue with filtering when using deferred operation binding. Unfortunatelly, the ODataContextBinding does not have a filter method, so the only way to apply filter criteria seems to be to use the changeParameters method and to add a string-based filter.

According to the API documentation, the changeParameters method should refresh the binding, but this does not happen. You have to refresh the binding manually, which unfortunatelly doesn't really work reliably.
I case you want to have Live Search enabled, this is how we tried to implement it:

Calling changeParameters does not trigger a refresh of the binding, so we call it manually.
The result is very strange... the result from the server is as expected, but the re-binding of the list sometimes happens, sometimes not...

It would be nice to have an option to add an array of filters to the Deferred Operation Binding, like it exists for the ListBinding. Otherwise, how would you apply more complex filter criteria like e.g. from a ViewSettingsDialog? Another side effext is that applying the filter as described above leads to the filter being case sensitive, which is not what we have expected.
And the refresh method should reliably refresh the bound controls after refreshing the binding. :-)
If there is a more handy way of applying filter criteria, then it is missing in the documentation.

Hello @wurst0815 !
Thanks for reporting about your experience with OData V4. We really appreciate such feedback.
"Another side effext is that applying the filter as described above leads to the filter being case sensitive, which is not what we have expected." Isn't this actually the expected behavior according to the OData spec? You can use "<IP_ADDRESS>.8 tolower" from OData Version 4.0. Part 2: URL Conventions if you like.
You are right that there is no "filter" method for context bindings, as they were not intended to return a collection. But given the way we have implemented operation bindings, your suggestion absolutely makes sense. We have to consider this.
For everything else, we first have to look into the details. Stay tuned ;-)
Best regards,
Thomas

We will follow-up on what we think is a bug with changeParameters() and refresh() via internal reference CPOUI5UISERVICESV3-947.
The suggestion to allow filtering for operation bindings is tracked via internal reference CPOUI5UISERVICESV3-948 with kind of low priority.

Having the option to use bound actions, action imports and function imports is very important to us as this is a very elegant (and often the only) way to support complex requirements. The implementation in UI5 is kind of hard to follow as it is (mis?)using the context binding concept. Wouldn't it be much cleaner and easier to follow to implement that kind of binding in a separate way and call it what it really does, e.g. operation binding?
And the option to add complex filters to an operation binding is a must have imho, so very sad to see that this gets only low priority :-(

Hello @wurst0815 !
In UI5, every binding is either a property, context, or list binding. I guess we did not have in mind that operation bindings can return collections, or at least we did not put enough focus on that aspect. If the return value is just a single instance, I think context binding works OK.
Do you think you would benefit from an implementation that allows operations also in ODataListBinding? Can you please tell us more about how you are using operation bindings? E.g. do you need the "deferred" feature because parameter values need to be computed, or is it important to control the point in time of execution? Maybe you prefer automatic execution... Any insight is appreciated.
Best regards,
Thomas

Hello @wurst0815 !
We are still analyzing your issue, but in case you got some spare time and feel desperate enough to experiment, maybe it helps to call execute() instead of refresh()?
Best regards,
Thomas

Hi Thomas,
same result for execute and refresh.

Data is being reloaded from the server correctly, but the list control is only bound occasionally.

Our current workaround is to grab the data, create a JSON model out of it and bind this JSON model to the list. Which leads to the filter being case insensitive, that was another issue I've reported in this thread but is caused by the workaround, so not really an oData issue.

Not very elegant... but working.

Hi Thomas,
the terms used in UI5 are very confusing. At least for us.
AFAIK an odata function can return either a value of a primitive data type, a single entity or an collection of entities. And the bindings in UI5 represent these return types.

PropertyBinding for primitive types
ContextBinding for a single entity
ListBinding for a collection of entities

At least this was my understanding so far.
But now when it comes to operation bindings, according to the documentation https://help.sap.com/doc/saphelp_nw75/7.5.5/en-US/5d/e13cf4dd1f4a3480f7e2eaaee3f5b8/frameset.htm you
have to use a method called getObjectBinding, which does NOT return an instance of an ObjectBinding as the name implies, but an instance of ContextBinding instead. And this for all
controls that use an odata operation as data source, no matter if the underlying odata operation returns a primitive value, an entity or a collection of entities. This is confusing.
I would expect that the getObjectBinding method returns a Property Binding for functions returning primitive types, a Context Binding for functions returning a single entity
and a ListBinding for functions returning a collection of entities. I mean, it is all in the metadata. And I would expect to be able to easily add a complex filter to the Binding before execution.
An option to use operations in ListBindings is very appreciated. When the data structure is very complex, it is much easier to create an sql view on the server side rather then doing
x expand and y select operations with odata to get the same result. Or when you are in the need of doing something like distincting values before returning them to the client, which
is AFAIK still not supported in odata. This assumed, in combination with input parameters needed for a function to work, makes it necessary for us to be able to control the execution
of the function call manually. So we have to rely on Deferred Operation Bindings to work properly.

A number of bugs in this area have been identified and fixed for rel-1.52:

https://github.com/SAP/openui5/commit/cc4e6fb84f3d44b4b18b1649d1fb8674e591a8c8
https://github.com/SAP/openui5/commit/d752960f29abe91b015468cd41027d0f127b2f93
https://github.com/SAP/openui5/commit/e5e5459b880dc4ad6ebad24fdbd542d4fc3df4e8

Any enhancements discussed above are still open.


breaks scope

i have an array variable declared outside of my function and my function pushes on to that array except only inside of the function outside of the function the variable is empty. Anyone know why?
connection.query(returnBranchNames, function(error, results) {
	if (error) throw error
	results.forEach(function(elm) {
		branchName.push(elm.branch_name);
	})
})

Hi @davidbdeath sorry you are having trouble. That is a general Node.js / JavaScript question, unrelated to this module. You can read more about this in the Node.js guide https://nodejs.org/en/docs/guides/blocking-vs-non-blocking/

Hi @dougwilson thanks for the quick response. I'm a little bit of a noob. I'm confused why it will output to console.log and push onto the variable locally inside the function but doesn't push onto it globally even though it's the same variable. I read the link but it's still a bit fuzzy. Do i need to create an async function? If you're too busy to explain I wont keep asking. My prof is good at mysql but not so much with javascript.

Hi @davidbdeath no problem. The issue is that with non-blocking operations that are common in Node.js (typically styled as a "callback"), the code does not run linear top-to-bottom -- the code inside the callback will run at a later time. So thus in the example like
console.log(1)
conn.query('SELECT 1', function () { // this is a callback
  console.log(2)
})
console.log(3)

The output will be 1, then 3, then 2. So if you declare a variable at 1, then manipulate it at 2, at 3, you won't see the value, since 3 ran before you did the manipulation, even though reading the file top-to-bottom looks like it may happen before.


Set up Zenodo for Shapely

This task is to set up Zenodo for Shapely, to generate DOI for releases. Additional metadata in a .zenodo.json should be included. Also, we may need to discuss some general criteria on who should be included as authors. See, for example, GDAL or PROJ.
Originally posted by @mwtoews in https://github.com/shapely/shapely/pull/1378#discussion_r862535396

For pygeos, we didn't have such a .zenodo.json file. I suppose that is used to control the list of authors and description etc, if not using the default autogenerated list

Learning more about this process, no extra files are needed (althought #1455 helps). The only main thing that is required is that Zenodo needs to be configured.
@sgillies if you want Zenodo to do this (archive releases with a DOI), you'll need to authorize and enable this repo with these steps. If you are a sceptic, you can do this with their sandbox version which mostly works, but generates fake DOIs. The mysterious thing that I find about Zenodo is that you can't delete or remove these after their published, except to email Zenodo about request. Also, you may decline to complete this task without offending anyone!

@mwtoews I'm okay with Zenodo. However, at https://zenodo.org/account/settings/github/, I don't see shapely/shapely in my list. I'm involved with a lot of repos, I wonder if I've exceeded some Zenodo limit?

Have you checked this step? I pressed a "request access" button, perhaps you might have been pushed a notification for it.

@mwtoews I accepted. I was unable to do anything like requesting access from Zenodo, which made me suspect that paging of repositories on the Zenodo side wasn't working.

@sgillies try checking https://zenodo.org/account/settings/github/ again, as a "sync" may have taken longer. Do you see "shapely/shapely" in the list of Repositories yet? If so, flip the switch to "ON".

Done. Sorry for the delay @mwtoews !

Thanks! We'll see what happens with the upcoming 2.0 beta.


Referencing assets in CSS

Is it possible to reference other assets such as images and fonts in CSS? In the asset pipeline you'd normally do image-url("image.png"), but from my understanding that is handled by sass-rails and requires an scss file.
Is there a recommended way for doing this through cssbundling-rails and the asset pipeline?
Thanks for your work on this gem!

Are you using PostCSS to process your CSS? If so, can https://github.com/postcss/postcss-url solve your use case?

I try to add a postprocessor to replace asset path:
class AssetUrlProcessor
  def self.call(input)
    context = input[:environment].context_class.new(input)

    data = input[:data].gsub(/url\((.+?)\)/) do |match|
      path = context.asset_path($1)
      "url(#{path})"
    end

    { data: data }
  end
end

Sprockets.register_postprocessor 'text/css', AssetUrlProcessor

Need an official solution.

Yes, we need an official solution to this. That asset url processor looks in the ballpark. Here's the one from sassy-rails: https://github.com/sass/sassc-rails/blob/master/lib/sassc/rails/functions.rb

I have a bit different "ask" for official solution. but I guess still related to this. How to reference and "import" assets from npm packages (in my case font-awesome). Here is how to do it in Phoenix/esbuild/sass https://gist.github.com/ks2211/75af6cddc051f5e261a29fc25eed5789
It would be wonderful some official solution for Rails 7/cssbuilding-rails

I try to add a postprocessor to replace asset path:
class AssetUrlProcessor
  def self.call(input)
    # don't know why, copy from other processor
    context = input[:environment].context_class.new(input)

    data = input[:data].gsub(/url\((.+?)\)/) do |match|
      path = context.asset_path($1)
      "url(#{path})"
    end

    { data: data }
  end
end

Sprockets.register_postprocessor 'text/css', AssetUrlProcessor

It works for me. Need an official solution.

This works great, just ran into this.

Updating to better handle asset URLs that contain quotes or if they use a data URI / full URL so that we do not attempt to overwrite with a wrong value.
Thanks for the starting point @chloerei
config/initializers/assets.rb
class AssetUrlProcessor
  def self.call(input)
    # don't know why, copy from other processor
    context = input[:environment].context_class.new(input)
    data = input[:data].gsub(/url\(["']?(.+?)["']?\)/i) do |match|
      if $1 !~ /(data:|http)/i
        path = context.asset_path($1)
        "url(#{path})"
      else
        "url(#{match})"
      end
    end

    { data: data }
  end
end

Sprockets.register_postprocessor 'text/css', AssetUrlProcessor

Thanks for the feedback everyone. I ended up going with a post processor that uses asset-url() so that it doesn't conflict with other urls such as in node modules.
# config/initializers/asset_url_processor.rb
class AssetUrlProcessor
  def self.call(input)
    context = input[:environment].context_class.new(input)
    data = input[:data].gsub(/asset\-url\(["']?(.+?)["']?\)/) do |_match|
      "url(#{context.asset_path($1)})"
    end
    {data: data}
  end
end

Sprockets.register_postprocessor "text/css", AssetUrlProcessor

Keep in mind this only handles assets that are managed by sprockets. If we have other external assets that need to be included (such as within node modules), we could use postcss-url as @rmacklin mentioned. I'd probably configure it to output directly to public/assets so that it bypasses sprockets.

Looks like Propshaft might be the official solution to this, although it seems to use an asset-path CSS function which mimics sprockets and @ryanb 's solution. However looking at @chloerei 's solution with minor improvements, I do like the idea that you could take a theme or library etc.. drop its assets into your assets_path and it just fixes everything without having to edit the CSS files to insert the asset-path calls, inevitably you always miss one.
This would make drop in updates of themes, libraries, or icon fonts much simpler by just copying files into folders under config.assets.paths I would assume we could just add path's from node_modules here as well.

@stevestmartin thanks for pointing out Propshaft. I replied to your issue there: https://github.com/rails/propshaft/issues/1

I think I'm running into this problem with FontAwesome. I've got a Rails 6.x app, and I switched from Webpacker to cssbundling-rails and jsbundling-rails. Everything is working great locally as far as I can tell. Compilation is SUPER fast, and there's a LOT less JavaScript involved in the entire process.
I pushed to Heroku, and it seems the font URLs aren't being rewritten. Not a problem, this application isn't live yet, so I get to play with the new and shiny with limited consequences.
Will Propshaft be the right solution for Rails 6.x apps? I see it's locked to Rails 7 right now.

@Petercopter if the fonts are working in development but not production, they might not be included in the precompile. Try running rails assets:precompile and see if they are in the public/assets directory. If not, add them to the app/assets/config/manifest.js file similar to the images.
If they are included, you might need a post processor to remap the url, similar to the ones mentioned earlier.

I don't know why, but after that my saas compilation is breaking:
in this case it's in the bootstrap.scss
SassC::SyntaxError: Error: Invalid CSS after "...svg xmlns='http": expected expression (e.g. 1px, bold), was "://www.w3.org/2000/"
        on line 2350:66 of stdin
>> ('assets/data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBo
   ------------------------------------------^

.form-check-input:checked[type=radio] {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e");
}

@jcoyne thanks, I'll update it.

Solved via https://github.com/rails/sprockets-rails/pull/476. Thanks @jcoyne 🙏

@Petercopter were you able to get font awesome deploying correctly to Heroku? If yes, what did you use in your manifest.js?

@MrHubble Yes! I added this to my manifest.js
//= link_tree ../../../node_modules/@fortawesome/fontawesome-free/webfonts

@MrHubble Yes! I added this to my manifest.js
//= link_tree ../../../node_modules/@fortawesome/fontawesome-free/webfonts

Not directly related to the topic at hand, but what did you do to get the webfonts in dev?
I tried working with postcss-url to rebase the path in the generated application.css, but it works in neither env.

MrHubble Yes! I added this to my manifest.js
//= link_tree ../../../node_modules/@fortawesome/fontawesome-free/webfonts

@Petercopter Not directly related to the topic at hand, but what did you do to get the webfonts in dev?
I tried working with postcss-url to rebase the path in the generated application.css, but it works in neither env.

MrHubble Yes! I added this to my manifest.js
//= link_tree ../../../node_modules/@fortawesome/fontawesome-free/webfonts

@Petercopter Not directly related to the topic at hand, but what did you do to get the webfonts in dev? I tried working with postcss-url to rebase the path in the generated application.css, but it works in neither env.

@itsyoshio - I added the following to config/initializers/assets.rb and that fixed up the dev side.
Rails.application.config.assets.paths << Rails.root.join("node_modules/@fortawesome/fontawesome-free/webfonts")
For context, this was in addition to

adding the link_tree command above in app/assets/config/manifest.js
removing gem "sassc-rails" from Gemfile since cssbundling-rails can use node_modules/.bin/sass. The sass npm module is required by the bootstrap npm module. I use yarn to install - Thanks to https://dev.to/kolide/how-to-migrate-a-rails-6-app-from-sass-rails-to-cssbundling-rails-4l41 for that clean up
added the following to app/assets/stylesheets/application.bootstrap.scss thanks to https://fontawesome.com/docs/web/use-with/scss (after checking what css was being compiled to determine fa-font-path and added regular and v4-shims after looking in the folder)

$fa-font-path: '/assets';
@import '@fortawesome/fontawesome-free/scss/fontawesome';
@import '@fortawesome/fontawesome-free/scss/brands';
@import '@fortawesome/fontawesome-free/scss/solid';
@import '@fortawesome/fontawesome-free/scss/regular';
@import '@fortawesome/fontawesome-free/scss/v4-shims';

My testing is with development and checking puiblic/assets after bin/rake tmp:clear assets:clobber assets:precompile
FYI, my package.json looks like:
{
  "name": "app",
  "private": "true",
  "dependencies": {
    "@fortawesome/fontawesome-free": "^6.1.0",
    "@hotwired/stimulus": "^3.0.1",
    "@hotwired/turbo-rails": "^7.1.1",
    "@popperjs/core": "^2.11.4",
    "bootstrap": "^5.1.3",
    "bootstrap-icons": "^1.8.1",
    "esbuild": "^0.14.27",
    "sass": "^1.49.9"
  },
  "scripts": {
    "build:css": "sass ./app/assets/stylesheets/application.bootstrap.scss ./app/assets/builds/application.css --no-source-map --load-path=node_modules",
    "build": "esbuild app/javascript/*.* --bundle --sourcemap --outdir=app/assets/builds"
  }
}

and my Procfile.dev has the following (I also have Procfile.watch that excludes web for running seperately whilst debugging under rubymine):
web: bin/rails server -p 3040 -b <IP_ADDRESS>
js: yarn build --watch
css: yarn build:css --watch

I'm still unclear as to how this works in practice. I have a file in app/assets/images, and I'm referencing it in my sass like so:
background: #fff url("image.png") repeat-x;

But my image is 404ing. Is there a step I'm missing here?

cssbundling + import maps has made my deployment about a million times less complex  but trying to come up with a better workflow for a similar issue. For context, i need to explain how i serve rails requests.

All requests start at CloudFront, SSL termination completes here
CloudFront then routes the request to any number of origins with separate request/response behaviors

Any path matching /assets*, requests are routed to S3 origin, with its own caching behavior.  The request path is the exact key path of the bucket
Specialty paths like robots.txt apple-app-site-association are handled directly at the edge
Paths matching /cable ALB(80) -> EC2(8080) -> anycable
All other request are sent to ALB(80) -> EC2(80) -> nginx -> puma.

So that means in my rails configuration there is no separate CDN configuration, it's entirely host agnostic. A request with /assets has a different origin and cache setup than /api
The entire production frontend deploy
# deploy.sh
bin/rails assets:precompile
aws s3 sync public/assets s3://app-www/assets --storage-class INTELLIGENT_TIERING --cache-control max-age=31536000

// app/assets/config/manifest.js

//= link_tree ../images
//= link_tree ../../javascript .js
//= link_tree ../../../vendor/javascript .js

//= link_tree ../builds
//= link favicon/browserconfig.xml
//= link foo.pdf

app/assets/stylesheets/application.sass.scss
// app/assets/stylesheets/application.sass.scss

// this is scss in node_modules, yarn:build:css handles this fine
// and application.css in ../build is ready for sprockets
@import 'bootstrap/scss/bootstrap';

// app/assets/stylesheets/coderay.css
// A relative boring plain old css file. yarn:build:css handles this fine, BUT
// this is already valid css, and compiled 'as is', but sprockets knows nothing about
// this asset. I could declare a //= link in manifest but will have no digest knowledge
@import 'coderay.css';

package.json
{
  "name": "app",
  "private": "true",
  "dependencies": {
    "bootstrap": "^5.1.3",
    "sass": "^1.50.1"
  },
  "scripts": {
    "build:css": "sass ./app/assets/stylesheets/application.sass.scss ./app/assets/builds/application.css --no-source-map --load-path=node_modules"
  }
}

I was thinking of maybe modifying my deploy by creating something like vendor/static  and adding aws s3 sync vendor/static s3://app-www/assets/static, basically hiding it from sprockets, as the "wysiwyg never-digested folder".  Obvious drawbacks: no tag helpers allowed for these assets, and figuring out how to serve locally.
<link href="/assets/static/big_annoying_never_modified.min.css" media="screen" rel="stylesheet" />

@font-face {
  font-family: "annoying-font";
  src: url("/assets/static/annoying.eot");
}

For my case, does any pre/post-processing make sense at all? I can already completely offload these steps. Instead of wasting my CPU cycles, cloudfront can handle the gzip/brotli, and for digesting, i have full control over request/response to the origin with accurate etags. It's not like the past where i'm serving  both rails and assets acting as the origin behind old school CDN, fumbling my way through nginx cache control headers.
TDLR: Can I just turn off digesting, and just use known relative paths, with or without tag helpers, for the rest of my life?

*And by not worry, I mean, wouldn't it be totally reasonable to have cloudfront just hit the origin and query application.css/js for status after 30 seconds (or zero, who cares)  and just let it do what it does best vs brute forcing a miss?

@ianheggie Thanks for your set up help. Works great for me in development, but once pushed to Heroku I get errors in my logs like: ActionController::RoutingError (No route matches [GET] "/assets/fa-solid-900.ttf"): I actually get this for any 3rd party assets I try to load in production, other than scss files.
Any ideas on why this might be?
My set up is the same as yours, other than my css script:
"build:css": "sass ./app/assets/stylesheets/application.sass.scss ./app/assets/builds/application.css --no-source-map --load-path=node_modules"

@GregSmith92
You might be in the same situation as I was. I see you're trying to use font-awesome.
In my case I use Propshaft, but the following wouldn't be different from Sprocket
config/initializers/assets.rb
Rails.application.config.assets.excluded_paths += [Rails.root.join('app/assets/stylesheets'), Rails.root.join('app/javascript')]

# Add additional assets to the asset load path.
Rails.application.config.assets.paths << Rails.root.join('node_modules/@fortawesome/fontawesome-free/webfonts')

application.css.scss
$fa-font-path: '';
@import '@fortawesome/fontawesome-free/scss/fontawesome';
@import '@fortawesome/fontawesome-free/scss/regular';
@import '@fortawesome/fontawesome-free/scss/solid';

@deepj
Using $fa-font-path: ''; does not work for me in development.
Both $fa-font-path: '/assets/@fortawesome/fontawesome-free/webfonts'; and $fa-font-path: '/assets'; do work in development, but neither in production.
I don't understand why!! In both environments the assets are in the right place:
Dir.entries("public/assets/@fortawesome/fontawesome-free/webfonts")
=>
["fa-solid-900-a0cc38b88839387e4451bb1ebdd9ecd821b2df0f7fcd5b26df75630f4171ee32.ttf.gz",
 "fa-brands-400-d6e9a2e4cad853a5a88711678db47de7456f36b30923f8350f55c41434809ba8.ttf.gz",
 "fa-v4compatibility-8351eb008a6fa9eca28be682c28af28e47d9d668e34128fb789072aa90d5c2e7.ttf",
 "fa-solid-900-addc97d14257b43232b89194f73bd3b862007d5eedcb4569362b8f26356d8db3.woff2",
 "fa-v4compatibility-8dc02461354e5f9713549bb76c84c6aa45a23c728534a8ce658a66a045f1cb76.woff2",
 "fa-brands-400-d6e9a2e4cad853a5a88711678db47de7456f36b30923f8350f55c41434809ba8.ttf",
 "fa-regular-400-79a39b18a5524be800ab200fbedebf7f737a316f01b874fe42b005fda10a6f11.ttf.gz",
 "fa-brands-400-e624f952dec1ac1e2673205a87513cab83c4a0d187b08528a5ff0c36d9b1e090.woff2",
 "fa-regular-400-6919b47939790fc2ab662fd09b22907c53f32d9a817eed0782e2fb3e7af24b5b.woff2",
 "..",
 "fa-v4compatibility-8351eb008a6fa9eca28be682c28af28e47d9d668e34128fb789072aa90d5c2e7.ttf.gz",
 "fa-regular-400-79a39b18a5524be800ab200fbedebf7f737a316f01b874fe42b005fda10a6f11.ttf",
 "fa-solid-900-a0cc38b88839387e4451bb1ebdd9ecd821b2df0f7fcd5b26df75630f4171ee32.ttf",
 "."]

Incase someone stumbles upon this, I removed all fontawesome bootstrap refrences from application.scss, manifest.js and config/assets.rb and instead added import "@fortawesome/fontawesome-free/js/all" to my application.js and it now works fine in both environemnts. I'm sure there is a solution for just using scss but I couldn't find it.

To fix fontawesome problem:
config/initializers/assets.rb
Rails.application.config.assets.paths << Rails.root.join('node_modules/@fortawesome/fontawesome-free/webfonts')

application.css.scss
$fa-font-path: ".";

@import<EMAIL_ADDRESS>@import<EMAIL_ADDRESS>

note: The solution that was brought into rails was to automatically pick up url references in your SCSS files. As of Rails 7.0/7.1 with the recent versions of this gem, you should no longer be using asset-path or asset-url in your SCSS files, instead, just use url and the built-in helpers will convert them to the pipeline paths.
note that if you seem to not getting your url markers in your CSS, triple check that the file name in app/assets/images/ matches what you have in your CSS.

Thanks for the helpful hints above! I tried various combinations before finding something that works, so I'm sharing my setup when using FontAwesome as scss using cssbundling+propshaft:
app/assets/stylesheets/fontawesome.scss
$fa-font-path: ""; // or "."
@import "@fortawesome/fontawesome-free/scss/fontawesome";
@import "@fortawesome/fontawesome-free/scss/brands";
@import "@fortawesome/fontawesome-free/scss/solid";
@import "@fortawesome/fontawesome-free/scss/regular";

config/initializers/assets.rb
Rails.application.config.assets.version = "1.0"
Rails.application.config.assets.paths << Rails.root.join("node_modules/@fortawesome/fontawesome-free/webfonts")

I have no app/assets/config/manifest.js because it's only used by Sprockets, Propshaft doesn't care about this file.
package.json
"scripts": {
  "build": "esbuild app/javascript/*.* --bundle --sourcemap --format=esm --outdir=app/assets/builds --public-path=/assets",
  "build:css": "sass ./app/assets/stylesheets/:./app/assets/builds/ --no-source-map --load-path=node_modules"
}

I'm telling sass to compile the stylesheets folder (instead of specifying the stylesheet name) because I chose to generate application.css and fontawesome.css separately, since FontAwesome is bound to change much less often. The line is shorter and more flexible as well.
Gem versions:
rails: <IP_ADDRESS>
css-bundling: 1.4.0
js-bundling: 1.3.0
propshaft: 0.8.0

If you want to see what is generated, run bin/rails assets:clobber && bin/rails assets:precompile and examine the contents of the public/assets/ folder.
When you're happy with the results, run bin/rails assets:clobber otherwise the compiled assets will take precedence and you won't see the CSS and JS changes you make.


Add multi select, folder pick

This is an attempt to get multi select and folder picking working on all platforms. I've currently got the dialog showing properly on windows and linux. I haven't managed to get macos running on my machine, but based on the docs, I've given macos support a try.

cool, thanks for this, I'll take a look soon. :)

Can you rebase this on master (or merge master into this, if the rebase is tricky)? That should fix the test failure.


Search filter under customize schema for openldap doesn't work.

What kind of request is this (question/bug/enhancement/feature request):
bug
Steps to reproduce (least amount of steps as possible):
configure openldap on Rancher 2.x, go to customize schema, add a filter to the "Search Filter" and click save.
Result:
Clicking save will make it disappear.
Other details that may be helpful:
It seems as though the user search filter field isn't included in the API:
"userDisabledBitMask": 0,
"userLoginAttribute": "uid",
"userMemberAttribute": "memberOf",
"userNameAttribute": "cn",
"userObjectClass": "inetOrgPerson",
"userSearchAttribute": "uid|sn|givenName",
"userSearchBase": "dc=example,dc=com",

Only these messages show up in the logs when trying to add it:
2019/03/05 21:12:28 [DEBUG] Impersonating user user-b9p7h, groups [system:authenticated]
2019/03/05 21:12:28 [DEBUG] GET: 2.333876msauthconfigs
2019/03/05 21:12:28 [DEBUG] GET: 1.9112msauthconfigs
2019/03/05 21:12:28 [DEBUG] GET: 2.937752msauthconfigs
2019/03/05 21:12:28 [DEBUG] AuthConfigController calling handler authConfigController openldap

Dev tools in chrome also show the api endpoing returning a 200 for the request.
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI):
2.1.6

Installation option (single install/HA):
Either, I recreated in single, but the customer is on HA.

SearchFilter support was implemented for AD only https://github.com/rancher/rancher/issues/13656. We just have to extend it to include OpenLDAP.

Same as https://github.com/rancher/rancher/issues/19436

Tested with v2.3-head.
Enabled FreeIPA auth .  "Search Filter" field option is presented for User and Groups in "Customize Schema" section.
Users has the option to set these fields when FreeIPA auth is enabled. When the field is set , this filter gets applied to the list of users/groups that get searched when adding users to add members to cluster/projects.
The following tests were done:

User Search Filter
(memberOf=cn=davidgroup1,cn=groups,cn=accounts,dc=rmfreeipa,dc=do,dc=rancher,dc=space)
Multiple user search filter
(|((memberOf=cn=group1,cn=groups,cn=accounts,dc=rmfreeipa,dc=do,dc=rancher,dc=space)(memberOf=cn=group1,cn=groups,cn=accounts,dc=rmfreeipa,dc=do,dc=rancher,dc=space))
Single group search filter - (cn=group2)
Multiple group search filter
(|(cn=group1)(cn=group2))