Add SearchRequest/Response proto and schema proto

Description
Generate protobuf for SearchRequest, Response and related schemas from https://github.com/andrross/opensearch-api-specification/blob/main/spec/namespaces/_core.yaml using https://github.com/OpenAPITools/openapi-generator/tree/master.
Related Issues
Resolves #15190
Check List

[x] DSL coverage report - ~85.7%

[x] Response/Request Coverage - ~ 85%

Issue:

proto3 remove the optional/required, we need to figure out how to check if field/property is set.
proposal:
a) use optional.

with the optional keyword, proto3 generates code that allows you to check whether a field has been set, which can be useful for validating fields’ presence. requires 3.15+ version.

b)  use oneOf
c)  use customized wrapper

Gaps between https://opensearch.org/docs/latest/api-reference/search/ and https://github.com/andrross/opensearch-api-specification/tree/main.
a. Numeric type: number defined in specs but Integer in public docs. we might need to further specify numeric in api-specs / protobuf
b. Request body has bunch of new properties but not mentioned in https://opensearch.org/docs/latest/api-reference/search/.

We need to have criteria on muti-types as below.

e.g.  type:
        - boolean
        - 'null'
        - number
        - object
        - string
and
type: ['null', number, string]

in this PR, i use ... (open to any suggestions)
message MultiTypeValue{
  oneof value{
    GeneralNumber number = 1;
    string string_value = 2;
    bytes bytes_value = 3;
    bool bool_value = 4;
  }
}

there are many places defined with oneOf Object and Array of Object.
e.g

          knn:
                description: Defines the approximate kNN search to run.
                oneOf:
                  - $ref: '../schemas/_common.yaml#/components/schemas/KnnQuery'
                  - type: array
                    items:
                      $ref: '../schemas/_common.yaml#/components/schemas/KnnQuery'

In this PR, all consolidated to
- type: array
                    items:
                      $ref: '../schemas/_common.yaml#/components/schemas/XYZ'

openapi-generator Tooling

Does not recognize characters like ::, ‘@’
proto number doesn’t start from 1; only enum follow format from 1;
can not handle multiple property types.
incomplete handling on AllOf, it will have some missing properties.
It would generates individual protobuf files for each properties. Manually merge required. Esp, for DSL which has recursive definition, it cannot automatically combine the protobuf files into one.

Overall, openapi-generator can relative accurately generate 70% of probuf but manual validation and adjustment is required which is time-consuming based on this scale of API specs.
TODO: we need to further enhance the tooling to be able to support api-specs to protobuf translation.

@amberzsy
Couple of thoughts:

I think we want to generate these from the complete spec, not a partial namespace one, e.g. https://github.com/opensearch-project/opensearch-api-specification/releases/download/main-latest/opensearch-openapi.yaml (a release).
It might make sense to add the workflow that generates proto files as a pipeline in https://github.com/opensearch-project/opensearch-api-specification so that we can "release" them the same way as the complete spec.
IMO to merge to OpenSearch core we want to have a gradle task that pulls the latest spec and generates these files, or fetches them if we do (2).

WDYT?

yes, technically, we definitely should have this automated and have it as part of build process. i can maybe have simple version matchAll query and related schema to unblock on grpc poc and remove all the rest of proto def.

Probably best.

However, as i mentioned in description. there's some ambiguity for specs -> proto. which i think we need to align on certain criteria.

That's why I'd start automating it right away. We likely will need to incrementally fix the spec and the pipeline, add linters to avoid common mistakes in the spec that lead to something we can't convert, etc.

Another question is should we do feature development on top of https://github.com/OpenAPITools/openapi-generator (e.g have RFC and contribute) or we want to have it and develop new/similar in opensearch-build.

I personally don't have a preference. You could write a brand new converter in https://github.com/opensearch-project/opensearch-api-specification, we already parse the spec and do a lot of things to it.

Thanks @amberzsy!

proto3 remove the optional/required, we need to figure out how to check if field/property is set

Your suggestion of using optional makes sense to me.

Gaps between https://opensearch.org/docs/latest/api-reference/search/ and https://github.com/andrross/opensearch-api-specification/tree/main.

Ultimately the code in this repository that implements the API is the source of truth. If the documentation and the api spec do not agree, then whatever is actually implemented is correct. The goal is to make the api spec match what is actually implemented (this is an ongoing manual process to build it out), then add tests that verify and enforce the actual API matches the spec. The documentation is built out in separate manual process as well so its not surprising that there are subtle differences. The goal is to also be able to generate the API documentation from the specification as well, but we're not there yet.

We need to have criteria on muti-types as below.

A custom message type (MultiTypeValue) wrapping a oneof construct like you showed makes sense to me.

there are many places defined with oneOf Object and Array of Object.

This seems like a quirk of JSON? Like "field": "value" and "field": ["value"] are different JSON but both just represent a single value. I'm guessing we do this so that the brackets are not always required in JSON when sending a single value. It seems like we could flatten this to a single repeated field in protobuf, or else do a oneof wrapping a single value and a repeated value. I don't have a strong opinion here. We should probably pick the simplest approach.

sounds good. i'll update the pr for more grpc poc purpose (instead of proto defs) and we can have separate discussion for the proto/specs etc. I'll provide a doc with list of gaps and plans which will need opinion from you for clarification/alignment by end of tmr.

2. Gaps between https://opensearch.org/docs/latest/api-reference/search/ and https://github.com/andrross/opensearch-api-specification/tree/main.

The doc is incorrect/is missing information. We have https://github.com/opensearch-project/documentation-website/issues/7700 that we plan to take on soon.

a. Numeric type: number defined in specs but Integer in public docs. we might need to further specify numeric in api-specs / protobuf

If the spec needs changes, please contribute/open issues in https://github.com/opensearch-project/opensearch-api-specification.

b. Request body has bunch of new properties but not mentioned in https://opensearch.org/docs/latest/api-reference/search/.

See above.

This seems like a quirk of JSON? Like "field": "value" and "field": ["value"] are different JSON but both just represent a single value. I'm guessing we do this so that the brackets are not always required in JSON when sending a single value. It seems like we could flatten this to a single repeated field in protobuf, or else do a oneof wrapping a single value and a repeated value. I don't have a strong opinion here. We should probably pick the simplest approach.

probably go with single repeated field.


How to Set the SearchView Text?

I have set the SearchView hint text with no issues, but I want to set the SearchView Text programmatically, and I can't find any methods or examples on how to accomplish this.
How can I set the SearchView's Text?

posted a temporary hack at #53

I found it:
public void setQuery(CharSequence query, boolean submit)
public void setTextOnly(CharSequence text)


talk to devnet people

this thread is insightful about future improvements

That thread has already been addressed with minimal impact to performance. Both StarkWare and ShardLabs are looking into it now

Closing since its been addressed


fix(buildToRequest): double slash path

This PR fixes the problem of missing origin with double slash paths.
new URL("//foo.com", "https://example.com");
// => 'https://foo.com/'

Hello @aui, I'm not totally sure about this change. Ideally we want to respect URL constructor since that is the expected behavior by the specification:
new URL('//foo', 'http://localhost:53486')
URL {
  href: 'http://foo/',
  origin: 'http://foo',
  protocol: 'http:',
  username: '',
  password: '',
  host: 'foo',
  hostname: 'foo',
  port: '',
  pathname: '/',
  search: '',
  searchParams: URLSearchParams {},
  hash: ''
}

Can you explain how you got here? Why //foo.com is passed as relative URL?

@Kikobeats Sorry I didn't explain the question clearly.
A URL like https://example.com//foo/ will get a complete URL https://foo/ after being processed by buildToRequest.

Thanks for the clarification, it makes sense to me 🙂

@Kikobeats Thank you for handling this issue quickly!
I found that this problem may be widespread. For example, the urlpattern-polyfill package that edge-runtime depends on does not seem to handle the double slash problem correctly.
Specific problem description: https://github.com/kenchris/urlpattern-polyfill/issues/128
Issues with the urlpattern-polyfill package are beyond the content of the current PR, I'm commenting here just to document the relevance.


necessary updates

Just made the updates for Hacktoberfest 2023

made the changes please have a look at it

made the changes please have a look at it

Resolve the issues that were fixed.

Made the changes


validate users can have what scopes

I intend to store all the different type of users into one single table, with a column to indicate what are the role of these users.
I notice that for this oauth2, there's a scope parameter, which will define what route can be access based on the scope given.
however, how do I check whether the users can have this scope or not?
I tried an experiment:

and then after that...

clearly, this is very dangerous, since the users can impersonate as clients they shouldn't be able to and thus, access other routes.
So how do I prevent this?

Scopes and roles have nothing to do with each other. Scopes describes which data the client is going to be able to see and edit about the user.
Roles define what the user can do on the system. Since the client acts on user's behalf the client can only do what the user can do.
There are then some special kind of clients you can define which don't act on user's behalf but are able to modify the user's role.

so where do I actually enforce the role system and therefore, induce the scope from it?

After the access token is validated, you can retrieve the user associated to it. Once you've got the user you will be able to retrieve its role and act accordingly.


Support desktop mode for dapp require agent config like airdrop.manta.network

Normally, websites on mobile devices just need to scale down to see all content of a page. But some need to setup user agent to "desktop" to work correctly.
From issue #1338

This issue was fixed and built directly to upgrade_ui branch on 1.1.27 (299)

Version test: v1.1.27(299)
Device test: IP 11
Validation passed. (Zenlink, Manta)

Version test: v1.1.27(299)
Device test: IP 11
Validation passed. (Zenlink, Manta)


gjs: add profiler support

Description of changes
Necessary to be able to use Sysprof for profiling GJS apps such as GNOME Shell:
https://gitlab.gnome.org/GNOME/gjs/-/blob/105c0a44b16ee8b178ad9f6e880da33e9c6313e7/doc/Profiling.md
https://blogs.gnome.org/chergert/2020/03/15/how-to-use-sysprof-to-part-ii/

Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

Confirmed it works:
$ nix-build -A gjs
$ env GI_TYPELIB_PATH= nix-shell -I nixpkgs=$PWD -p gobject-introspection -p gtk3 -p sysprof --run fish
$ sysprof-cli --gjs --gtk -- result/bin/gjs ~/Projects/gjs/examples/gtk-application.js
$ sysprof capture.syscap


⚠ Bofrost.lu has degraded performance

In 49453be, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1812 ms

Resolved: Bofrost.lu performance has improved in bb078c5 after 1 hour, 36 minutes.


shotcut: 21.09.20 -> 23.11.29

Description of changes
Updates shotcut to the most recent version, 23.09.29, also making the switch from qmake to cmake, and from Qt5 to Qt6.

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

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

@eclairevoyant @woffs can you try again with this new commit? it seems that adding glib to mlt fixes this problem, at the very least it seems to work on my machine just fine

@eclairevoyant @woffs can you try again with this new commit? it seems that adding glib to mlt fixes this problem, at the very least it seems to work on my machine just fine

FAME!! :+1:

the mlt 7.22.0 PR got merged, so updated this pr to 23.11.29
shotcut seems to be working fine on my end (with no missing audio filters!), lmk if you find any issues

Result of nixpkgs-review pr 269444 run on x86_64-linux 1

13 packages built:

flowblade
hikounomizu
libsForQt5.kdenlive (plasma5Packages.kdenlive)
libsForQt5.mlt (plasma5Packages.mlt)
libsForQt5.mlt.dev (plasma5Packages.mlt.dev)
mlt
mlt.dev
python310Packages.mlt
python310Packages.mlt.dev
python311Packages.mlt
python311Packages.mlt.dev
shotcut
synfigstudio

Thanks!


Register deterministic tokenization for range objects

Currently our tokenization of range objects isn't deterministic. For example:
from dask.base import tokenize

for _ in range(3):
    print(tokenize(range(5)))

outputs:
d424666834140c08de99b23f85a7b60c
a3a1bdd9013db6364668f1d224d4cac6
13142f6359eb57df2fc8230942f1ece9

This PR adds a deterministic tokenization for range objects based on their start, stop, and step attributes. With the changes in this PR, the above snippet outputs a consistent hash:
3b69507db0ea8dfcb39cfce774a1df29
3b69507db0ea8dfcb39cfce774a1df29
3b69507db0ea8dfcb39cfce774a1df29

[ ] Tests added / passed
[x] Passes black dask / flake8 dask

For reference, the test failures on the AppVeyor are unrelated to the changes in this PR (xref #5948)

I'm not sure the same can be done for np.arange, since we're tokenizing the output of arange, which is a regular ndarray (IIUC).


Suggestion for README file (table of contents section)

For a better understanding you should change:
x)....
    i)...
    ii)...
    iii)...
    iv)...

in:
x)....
    a)...
    b)...
    c)...
    d)...

I don't add the roman numerals, that's how GitHub processes the Markdown.


Import PropTypes from react

Import PropTypes from react like in A component.

Coverage decreased (-0.9%) to 98.305% when pulling 32093b415ac44ccb288012ad4404ac1e9df05a32 on Lesuk:v3.0.0 into 2a9d090a51ea0509833bfbf546123cdb6c722eae on mxstbr:v3.0.0.

It appears that this change (for some unknown reason) decreases test coverage, which is not desireable. Any ideas how to fix that? (I like your style a lot more!)

No, I just saw the difference

Coverage decreased (-0.9%) to 98.305% when pulling e254faeeaf4d57f9ab38bc0e9e4e299a3e676f20 on Lesuk:v3.0.0 into 2a9d090a51ea0509833bfbf546123cdb6c722eae on mxstbr:v3.0.0.

I guess has to do with the fact that the prop types aren't covered in tests. You would have to test each components prop types like this:
instead of Button.propTypes try the following:
export const propTypes = {
   // prop types here...
};

Button.propTypes = propTypes;

Then in tests:
import { propTypes } from './index';

// ...
expect(renderedComponent.propTypes).toEqual(propTypes);

alternatively, proptypes can be destructured.... ie
import React from 'react'

const Img = ({ className, src, alt }) =>
  <img className={className} src={src} alt={alt} />

const { PropTypes: { string } } = React

Img.propTypes = {
  src: string.isRequired,
  alt: string.isRequired,
  className: string,
}

export default Img

allows clean namespace import of react and makes adding new props painless
can also be used for React.Component...
const { PropTypes: { string }, Component } = React

class Img extends Component {
  static propTypes = {
      src: string.isRequired,
      //...
  }
}

2 questions:

Doesn't this simply highlight the arbitrary nature of the coverage tests?
I like the cleanliness of the approach, but is it worth investing time in managing proptypes when Flow will inevitably replace them? If it is, isn't something like https://www.npmjs.com/package/babel-plugin-flow-react-proptypes a more forward-compatible approach?

Of course coverage is completely arbitrary, I was mostly kidding. Sorry for not merging this earlier, I got sidetracked with other things.
Would you mind resolving the conflicts @Lesuk and then I'll land this? I really like this pattern!

Realised I could just as well solve that tiny merge conflict myself. Thanks so much @Lesuk! :tada:


Select Python Interpreter Error

Issue Type: Bug
Whenever I am trying to run python code from the Play/Run button on the right side top it's showing me an error and telling me to choose a Python interpreter when I'm clicking on it it says current as of the path given in the user,setting.json. and not showing any python either, it even asking me to download python, but I have already installed it and mentioned it's path in the setting.json as well but when I'm running via the run code in terminal it's working, please fix this, otherwise, it will be really problematic to run further codes here.
Hope to see this fixed Really Soon.
Extension version: 2020.3.69010
VS Code version: Code 1.43.1 (fe22a9645b44368865c0ba92e2fb881ff1afce94, 2020-03-18T07:01:20.184Z)
OS version: Windows_NT x64 10.0.18363

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz (4 x 2712)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: enabledrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_off_okwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
11.89GB (5.43GB free)

Process Argv

Screen Reader
no

VM
0%

I am having a very similar problem. The python extension puts the warning icon in the lower left corner of the program with the message "Select Python Interpreter". I also get a pop-up dialog with an error message stating that "Python is not installed. Please download and install python before using the extension.  Source: Python (extension)". But python is installed, on the system path, in the vscode settings pythonPath variable. I can run python from within the vscode integrated terminal.
The correct path to the python interpreter actually shows up when I click on the warning message although it doesn't seem to be in effect.
Version: 1.44.1 (user setup)
Commit: a9f8623ec050e5f0b44cc8ce8204a1455884749f
Date: 2020-04-11T01:48:12.622Z
Electron: 7.1.11
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Windows_NT x64 10.0.18363

Python Version: python 3.8.2 64-bit installed from the python.org to c:\py38. Both c:\py38 and c:\py38\scripts are on the system path. The vscode pythonPath variable is set to c:\py38\python.exe.
Virtual Environments: none
Output from interpreterInfo.py:
{
"versionInfo": [  3, 8, 2,"final  ],
"sysPrefix": "C:\py38",
"version": "3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)]",
"is64Bit" :true
}

This looks similar to https://github.com/microsoft/vscode-python/issues/9576#issuecomment-576462590 . Can you share your logs, similar to the way they are shared in that comment?

This looks similar to #9576 (comment) . Can you share your logs, similar to the way they are shared in that comment?

-1586887757351.log

I am having the same issue, I've been working with it since february and everything was fine, suddenly yesterday started to give me some errors and today I have this issue that I don't know how to solve it.
I have two venv in the project to be used, also the conda... but anyone appears.

I also leave you here the output from python:
output.txt

I am facing exactly same problem, I think after install cumulative windows update of August 11, 2020-KB4569745 Cumulative Update for .NET Framework 3.5 and 4.8 for Windows 10 Version 2004 this problem was rise although code is working fine but it is so annoying.
I am using two environments from conda(virtual enve) and one installed in my system (base) and while running my code sometime it leads to error because of this.
Please help me out ASAP it will be great help.

Hey guys I found one solution  first i tried to disable the python extension but that didn't helped so tried to re-install it that worked for me.

Starting with the 2021.10.* we have a new discovery system that should work better in these scenarios. Please try it, and if you continue to run into issues, please file a bug with logs after setting "python.logging.level": "debug".


Pipeline resource trigger never fires and pipeline says "This pipeline has no specified resources" even though it does

I've created a new multi-stage pipeline called MyRelease with this as the first lines in the file:
resources:
  pipelines:
  - pipeline: MyTestPipeline
    source: MyTestPipeline-CI
    branch: users/myBranch
    trigger:
      branches:
        include:
          - users/myBranch

In this same branch I've defined a new build pipeline called MyTestPipeline-CI which produces a build artifact that should trigger the MyRelease pipeline above. I've set MyRelease's 'Default branch for manual and scheduled builds' in the pipeline settings to users/myBranch as well. However, when I create a new build from MyTestPipeline-CI it never triggers the MyRelease pipeline.
In attempting to debug what's going on I click 'Run pipeline' and then click Resources to see if my resource is even registering as something I could configure (let alone trigger) and I just see this:

which suggests something fundamentally wrong with my resources syntax. But if I change the value of source above to a pipeline that actually doesn't exist then I get a relatively clear error message that there's no resource matching that name. Likewise if I remove the branch value I get a pretty clear error message that MyTestPipeline-CI either doesn't exist or is inaccessible (since it's not in the repo's default branch). So clearly something is working looking up the difference between a valid and invalid pipeline resource and yet I can't get any actual functionality from it.
Am I missing something obvious?

@danquirk - Quite a few people are having this issue. There's another documentation issue logged for it here: https://github.com/MicrosoftDocs/azure-devops-docs/issues/7635
I've also just logged a support ticket for it so if I hear anything back from that I'll update here as well.

I had the same problem, any idea how to solve it?

@JordanReyesLeger a workaround that works is this: quote the branch names.
resources:
  pipelines:
  - pipeline: MyTestPipeline
    source: MyTestPipeline-CI
    branch: 'users/myBranch'
    trigger:
      branches:
        include:
          - 'users/myBranch'

My trigger works correctly in this case. It appears per the link above from @rink72 that the Resources UI screenshot is misleading as that functionality isn't actually supported yet even though the resource pipeline triggers can work.

Apologies for the inconvinience. We are fixing this issue on priority. With the next deployment, you will see the version picked up by default and you will also get the ability to manually pick any other version.

In order to consolidate to fewer feedback channels, we've moved suggestions and issue reporting to Developer Community. Sorry for the delay/confusion.

Hello, I'm still having errors with resources tab.
I have build pipeline and deploy pipeline.
I want developers to be able to choose which version of build pipeline to use during deployment, as this:
tag: $(resources.pipeline.build-ci.runID)
My resource description:
resources:
  pipelines:
  - pipeline: build-ci
    source: build-CI
    branch: 'master'

How can I do this?

@ashokirla  we've been testing this but still don't see the artifact option when running builds. Is this meant to be working now or are we doing something wrong?
Thanks

We just move to old Release pipelines and it works fine for us. I think it's not worth to spend time for YAML pipelines as they are still buggy all over the place. It's better to wait until they become stable.

Did anybody get this pipeline resource working? I am getting this error when I mention another pipeline in the resource
Pipeline Resource  Input Must be Valid

@azlam-abdulsalam , yeah it seems to be working for us now. That error seems related to syntax in your pipeline possibly. Can you paste the relevant parts and we might be able to help?

I have logged the issue here with details
https://developercommunity.visualstudio.com/content/problem/1103715/unable-to-use-pipeline-resources.html


Exceptions are not reported

By default, the app consumes exceptions without reporting. This makes it hard to see and debug errors.

Could you provide more details for this? Which app, and which exceptions? Generally, the SDK tries to guarantee that any exceptions bubbled up to user code are actionable. Even some host exceptions get forwarded to user code.


can-value throws exception when inside an empty scope

http://jsfiddle.net/xKc3H/380/
can.Component({

    tag: 'my-comp',

    scope: {
        text: 'Some text',
        canValue: false //if canValue is false/empty there is an error
    },

    template: '<input {{#canValue}}can-value="text"{{/canValue}}/>'

})

$('body').append(can.view.mustache('<my-comp/>')())

@whitecolor Could you verify this is still an issue? That fiddle doesn't show an error currently, tested with v2.0.0, 2.1.0 & 2.2.9

I couldn't reproduce as well. Closing this issue, please reopen if it still persists in minor.


Reduce memory usage of the MatchingWords structure

Pull Request
Related issue
Fixes (partially) https://github.com/meilisearch/meilisearch/issues/3115
What does this PR do?

Reduces the memory usage caused by the creation of a 10-word query tree by 20x.
This is done by deduplicating the MatchingWord values, which are heavy because of their inner DFA. The deduplication works by wrapping each MatchingWord in a reference-counted box and using a hash map to determine whether a  MatchingWord DFA already exists for a certain signature, or whether a new one needs to be built.

Avoid the worst-case scenario of creating a MatchingWord for extremely long words that cannot be indexed by milli.

Ho no! We should not merge new PRs on this main branch until we release v0.30.1 of Meilisearch and fix the current bugs!
Should we revert this PR on main @curquiza?


Testing

The lack of tests is pretty unprofessional and I should probably fix it.
Currently the issue is mostly that cffi blocks setattrs, so mock is broken on it.

 See rhtyd/ipmisim#3.


Search within data from custom publications not possible

How is it possible to search fields that are not part of the original collection?
I've tried you suggestion with the reywood:publish-composite and dburles:collection-helpers packages, and a pure server side solution with maximum:server-transform that returns some custom text fields within the publication.
No matter which approach the search doesn't work on this data fields.
Is there any way to manage this?

+1

Ran into this too.  Per the docs, there's two publications. One that gets the _ids and one that gets the actual docs. I think it's the publication that figures out which _ids to query that would have to be overridden. As the pub field only lets you override the publication that gets the actual documents.  This doesn't help with search, sort, and pagination on custom fields as it's already done by that point because it's passing you a set of _ids.


Remove "Coming Soon!" from Readme

acss.io is live!!!

CLA is valid!

Coverage remained the same at 100.0% when pulling 4f578d75a4c7981ec8e809b35cf5b5f5a3c0d46a on thierryk-patch-readme-cleanup into 5997828ab06a9a4ca8bef59e83830be7580537c8 on master.


First 2 bars overlap on region page

Moved from https://github.com/macarthur-lab/gnomad_browser/issues/68
Originally created by @konradjk on Mon, 20 Nov 2017 15:16:52 GMT

e.g. region/2-178390717-180995530 (variants binned plot)

The first bar is only partially visible in the graph.

This plot was removed in #257.


Unknown deploy error

Complite Deploy
1. aws configure
2. sls create --template aws-nodejs --path test-serverless
3. sls deploy -v

Error Deploy
1. aws configure
2. sls install -u https://github.com/serverless/serverless-graphql-apollo
3. yarn
4.<your-s3-bucket-name> => aojweoifjw-graphql-test
5. npm run deploy

0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'run', 'deploy' ]
2 info using<EMAIL_ADDRESS>3 info using<EMAIL_ADDRESS>4 verbose run-script [ 'predeploy', 'deploy', 'postdeploy' ]
5 info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>6 silly lifecycle<EMAIL_ADDRESS>no script for predeploy, continuing
7 info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>8 verbose lifecycle<EMAIL_ADDRESS>unsafe-perm in lifecycle true
9 verbose lifecycle<EMAIL_ADDRESS>PATH: /usr/local/lib/node_modules/npm/bin/node-gyp-bin:/Users/user/TempDeveloper/serverless-graphql-apollo/node_modules/.bin:/Applications/CMake.app/Contents/bin/:/Users/user/bin:/usr/local/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/CMake.app/Contents/bin/:/Users/user/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin
10 verbose lifecycle<EMAIL_ADDRESS>CWD: /Users/user/TempDeveloper/serverless-graphql-apollo
11 silly lifecycle<EMAIL_ADDRESS>Args: [ '-c', 'npm run deploy:api && npm run deploy:frontend' ]
12 silly lifecycle<EMAIL_ADDRESS>Returned: code: 1  signal: null
13 info lifecycle<EMAIL_ADDRESS>Failed to exec deploy script
14 verbose stack Error<EMAIL_ADDRESS>deploy: `npm run deploy:api && npm run deploy:frontend`
14 verbose stack Exit status 1
14 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:255:16)
14 verbose stack     at emitTwo (events.js:106:13)
14 verbose stack     at EventEmitter.emit (events.js:191:7)
14 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:40:14)
14 verbose stack     at emitTwo (events.js:106:13)
14 verbose stack     at ChildProcess.emit (events.js:191:7)
14 verbose stack     at maybeClose (internal/child_process.js:891:16)
14 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
15 verbose pkgid<EMAIL_ADDRESS>16 verbose cwd /Users/user/TempDeveloper/serverless-graphql-apollo
17 error Darwin 16.6.0
18 error argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "deploy"
19 error node v6.11.0
20 error npm  v3.10.10
21 error code ELIFECYCLE
22 error<EMAIL_ADDRESS>deploy: `npm run deploy:api && npm run deploy:frontend`
22 error Exit status 1
23 error Failed at the<EMAIL_ADDRESS>deploy script 'npm run deploy:api && npm run deploy:frontend'.
23 error Make sure you have the latest version of node.js and npm installed.
23 error If you do, this is most likely a problem with the serverless-graphql-apollo package,
23 error not with npm itself.
23 error Tell the author that this fails on your system:
23 error     npm run deploy:api && npm run deploy:frontend
23 error You can get information on how to open an issue for this project with:
23 error     npm bugs serverless-graphql-apollo
23 error Or if that isn't available, you can get their info via:
23 error     npm owner ls serverless-graphql-apollo
23 error There is likely additional logging output above.
24 verbose exit [ 1, true ]

fail
reboot
re create Access Keys
complite
only waitting 1~3hour and "npm run deploy"
i don't understand this effect

#1877

@dalghost these errors should go away now. Please try again.


Tight integration rebase

This is a WIP for the use of github.com/coredns/policy, the goal of which is to create a CoreDNS policy plugin that process policy request using a linked in version of Themis.

I thought about the option to have client local server too. But I'd rather call it "built-in" instead of integrated. And it doesn't need to be server (so server shouldn't be touched by the change). It should be just library integrated to client (so only pep changes are needed). In the case you can skip marshaling if user want to use PDP provided primitives to communicate with library. But you need to introduce specific marshalers for reflection part (which is main challenge and can be left for future).

@vasili-v , thanks for your review!

I thought about the option to have client local server too. But I'd rather call it "built-in" instead of integrated.

The original concept is that this allows the policy plugin to integrate PDP into CoreDNS. But, "built-in" works too!

And it doesn't need to be server (so server shouldn't be touched by the change). It should be just library integrated to client (so only pep changes are needed).

Sounds good. I'll give that a shot.

In the case you can skip marshaling if user want to use PDP provided primitives to communicate with library. But you need to introduce specific marshalers for reflection part (which is main challenge and can be left for future).

Yes! This has already been discussed. @rajansandeep will be implementing such improvements.

I thought about the option to have client local server too. But I'd rather call it "built-in" instead of integrated.

The original concept is that this allows the policy plugin to integrate PDP into CoreDNS. But, "built-in" works too!

I have renamed it to builtinClient.

And it doesn't need to be server (so server shouldn't be touched by the change). It should be just library integrated to client (so only pep changes are needed).

Sounds good. I'll give that a shot.

Revisiting the code, the reason why I utilized the Server object is that the plan is for the builtin PDP to still support, for example, the Control Endpoint to allow policies and contents being pushed from a PAP. Again, this is still very much a WIP.
So, for now, I've only renamed Integrated Server to Builtin Server.
Please let me know what you think.

Let me think of the control endpoint. It looks more like we need different servers for control and validate so you can embed control server without other stuff.


clarified the usage of the error class

As the subject says

Coverage remained the same at 63.439% when pulling 3ff4e491456c4cc826366c77caeea0a86d5031fa on 4mig4:master into 29d8667cc25f52b038af3e7b2bbe7d7b0943967d on Lua-cURL:master.

Coverage remained the same at 63.439% when pulling 3ff4e491456c4cc826366c77caeea0a86d5031fa on 4mig4:master into 29d8667cc25f52b038af3e7b2bbe7d7b0943967d on Lua-cURL:master.

This is not fully correct. You can use error class as Lua error for Lua>5.1.
Also, I think documentation should mentionthat for Lua 5.1 library rises string errors.


FEAT: Validate token using Firebase Admin

Half-Closes (https://github.com/mazipan/tanyaaja/issues/94)
Description
Tested some endpoints only 🤞🏻
HTTP Requests
-------------

GET   /api/private/user/by-uuid/***                   200 OK
PATCH /api/private/user/update                        200 OK
POST  /api/private/user/slug-checker/***              200 OK
GET   /api/private/question/by-uid/pagination/***     200 OK

Current Tasks

[x] Verify Id Token
[ ] Revoke Refresh Tokens on Session-Destroy ~It requires GOOGLE_APPLICATION_CREDENTIALS. Will be on separate PR.

I have check this PR and it works like charm 🚀


Emmet suggests input:Nan when input. is typed

Issue Type: Bug
write as html: "

Введите имя статьи:

"
while typing 'input.new...' we can see emmet help window with 'Nanew...'
VS Code version: Code 1.49.2 (e5e9e69aed6e1984f7499b7af85b3d05f9a6883a, 2020-09-24T16:29:41.983Z)
OS version: Windows_NT x64 10.0.15063

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz (4 x 3093)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: unavailable_offopengl: enabled_onprotected_video_decode: unavailable_offrasterization: unavailable_offskia_renderer: disabled_off_okvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
11.97GB (4.42GB free)

Process Argv
--crash-reporter-id f1ce2376-3e36-4bf1-9095-e04352135027

Screen Reader
no

VM
0%

Extensions (20)

Extension
Author (truncated)
Version

better-comments
aar
2.1.0

vscode-standardjs
che
1.3.0

jshint
dba
0.10.21

vscode-eslint
dba
2.1.8

jquerysnippets
don
0.0.1

xml
Dot
2.5.1

gitlens
eam
10.2.2

LogFileHighlighter
emi
2.9.0

vsc-material-theme
Equ
33.0.0

vsc-material-theme-icons
equ
1.2.0

prettier-vscode
esb
5.7.1

vscode-firefox-debug
fir
2.9.1

vscode-npm
fkn
3.3.0

vscode-gutter-preview
kis
0.26.2

vs-color-picker
lih
1.0.0

metago
met
4.2.0

MetaJump
met
1.1.1

MetaWord
met
1.2.1

debugger-for-chrome
msj
4.12.11

vscode-css-peek
pra
4.0.0

(1 theme extensions excluded)

Duplicate of #105697

Deduplicating since this only occurs in HTML files

@rzhao271 can you please give some clarity on this issue. I would like to contribute here.
I have a VS code setup with Version: 1.53.0 and I am not able to repro the Nan issue here

@abhiajju the issue is that if you type <style>input.</style> manually into an HTML file, after typing input. you'll notice input: .; is suggested. That suggestion should not happen, because we're not in an actual CSS body.

I see this:

Is that the issue still?

Not exactly, but I'll reopen it still.


Could not connect to Pocketbase

Describe the bug

Grimoire instance webpage shows Could not connect to Pocketbase on https://grimoire.mydomain.de/pb. Is it running?.
Browser's dev console shows 404 in health check (GET https://grimoire.mydomain.de/internal/pb/api/health [HTTP/2 404  295ms])

To Reproduce
Steps to reproduce the behavior:

Setup docker container with traefik reverse proxy (similar to #68 ) with pocketbae host label set to "traefik.http.routers.pocketbase.rule=Host(grimoire.mydomain.de) && PathPrefix(/pb/)".
Set PUBLIC_POCKETBASE_URL=https://grimoire.mydomain.de/pb
Start docker container and goto https://grimoire.mydomain.de
Error on webpage and dev console is shown

Expected behavior
Webpage shoul dbe reachable without errors.
Also I'm confused why the health check url contains internal/?
Additional context
This issue might be related to #68 and #97, but I didn't want to "hijack" these issues. Feel free to close this as duplicate if I should continue in one of them :)

Hello @v1r0x!
The latest version contains multiple fixes, one related to this exact issue, please check https://github.com/goniszewski/grimoire/releases/tag/v0.3.5!

Also I'm confused why the health check url contains internal/?

A: This is Grimoire's proxy path that is proxied internally to the default Pocketbase instance. Thus, we can keep all the API calls in the app itself and not via an external connection.
I'll keep this issue open and wait for your confirmation if it's fixed for you in the latest version!

Hello @goniszewski
Thanks for your fast reply. I already tried that version after it came out :wink:
Maybe I did something wrong with my setup? I'm far from an expert in docker or traefik :grinning:
Here's my docker-compose.yml
version: '3.7'
services:
  pocketbase:
    image: spectado/pocketbase:0.22.10
    container_name: grimoire-pocketbase
    restart: unless-stopped
    ports:
      - '8090:80'
    volumes:
      - pb_data:/pb_data
      - pb_migrations:/pb_migrations/
    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:80/api/health || exit 1
      interval: 5s
      timeout: 5s
      retries: 5
    env_file: .env
    depends_on:
      - grimoire
    networks:
      - proxy
    labels:
      - "traefik.enable=true"
      # PocketBase
      - "traefik.http.routers.pocketbase.entrypoints=http"
      - "traefik.http.routers.pocketbase.rule=Host(`grimoire.mydomain.de`) && PathPrefix(`/pb/`)"
      - "traefik.http.middlewares.pocketbase.stripprefix.prefixes=/pb"
      - "traefik.http.middlewares.pocketbase-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.pocketbase.middlewares=pocketbase"
      - "traefik.http.routers.pocketbase.middlewares=pocketbase-https-redirect"
      - "traefik.http.routers.pocketbase-secure.entrypoints=https"
      - "traefik.http.routers.pocketbase-secure.rule=Host(`grimoire.mydomain.de`) && PathPrefix(`/pb/`)"
      - "traefik.http.routers.pocketbase-secure.tls=true"
      - "traefik.http.routers.pocketbase-secure.tls.certresolver=http"
      - "traefik.http.routers.pocketbase-secure.service=pocketbase"
      - "traefik.http.services.pocketbase.loadbalancer.server.port=80"
      - "traefik.docker.network=proxy"
  grimoire:
    image: goniszewski/grimoire:latest
    container_name: grimoire
    restart: unless-stopped
    env_file: .env
    volumes:
      - pb_migrations:/app/pb_migrations/
    build:
      context: .
      dockerfile: Dockerfile
    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:$PORT/api/health || exit 1
      interval: 5s
      timeout: 5s
      retries: 5
    ports:
      - '$PORT:$PORT'
    networks:
      - proxy
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.grimoire.entrypoints=http"
      - "traefik.http.routers.grimoire.rule=Host(`grimoire.mydomain.de`)"
      - "traefik.http.middlewares.grimoire-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.grimoire.middlewares=grimoire-https-redirect"
      - "traefik.http.routers.grimoire-secure.entrypoints=https"
      - "traefik.http.routers.grimoire-secure.rule=Host(`grimoire.mydomain.de`)"
      - "traefik.http.routers.grimoire-secure.tls=true"
      - "traefik.http.routers.grimoire-secure.tls.certresolver=http"
      - "traefik.http.routers.grimoire-secure.service=grimoire"
      - "traefik.http.services.grimoire.loadbalancer.server.port=5173"
      - "traefik.docker.network=proxy"

networks:
  proxy:
    external: true
volumes:
  pb_data:
  pb_migrations:

and .env
# Set it if you're using external PocketBase installation (default: http://pocketbase)
PUBLIC_POCKETBASE_URL=https://grimoire.mydomain.de/pb
<EMAIL_ADDRESS>ROOT_ADMIN_PASSWORD=password
PUBLIC_ORIGIN=https://grimoire.mydomain.de
PUBLIC_HTTPS_ONLY=true
PORT=5173
PUBLIC_SIGNUP_DISABLED=true

I've checked again the configuration you've provided. I do not have a single suspect, but rather a couple of ideas, so please bear with me:

Did you check this configuration while using PUBLIC_POCKETBASE_URL without any value after =? It should then default to http://pocketbase
Are you able to get to the app container and check related logs? The internal proxy may be to blame, and if it's true, then we can possibly have some logs to further investigate
And there's the Origin, aka PUBLIC_ORIGIN env that, if not matching request's origin, can lead to CORS errors

Sorry I kept you waiting for so long!

Sorry I kept you waiting for so long!

No problem at all! :heart: Really appreciate your help!
Is there a specific log file inside the container? docker-compose logs doesn't log much. (couldn't find anything related to internal log files)

I left PUBLIC_POCKETBASE_URL empty and now the initial error is gone! :tada:
BUT
When trying to add a new user and I click on "Sign up" nothing happens in the browser, but in the JS console/docker logs I get this error:
grimoire             | {
grimoire             |   invalid: true,
grimoire             |   settings: {
grimoire             |     code: 'validation_json_size_limit',
grimoire             |     message: 'The maximum allowed JSON size is 0 bytes.'
grimoire             |   }
grimoire             | }

What value do you have in your .env for BODY_SIZE_LIMIT?

I didn't set anything, but I tried to set it to the value from your Dockerfile. Still the same error with 0 bytes

Strange. Looks more like a proxy issue that is not directly related to the app itself.

Ok, thanks for the info. Then I'll dig into traefik to find my problem. Should I keep this issue open? Feel free to close it :) I'll add a new comment when I fixed my problem

It's OK to left it open. I hope you will stumble upon a solution to this problem and share it with us!

Something is clearly wrong here with ENV variables in general or PUBLIC_POCKETBASE_URL specifically.
After adding some debug to all places where this is used (config.ts, server.ts, lib/utils/pb.ts), this is what is seen and used at those places.
With the following .env file:
PUBLIC_POCKETBASE_URL=http://<IP_ADDRESS>:8090
<EMAIL_ADDRESS>ROOT_ADMIN_PASSWORD=changeme
PUBLIC_ORIGIN=http://localhost:5173
PUBLIC_HTTPS_ONLY=
PORT=5173
PUBLIC_SIGNUP_DISABLED=false

Env as seen from https://github.com/goniszewski/grimoire/blob/65427281c0874546101af88713393e6c8607e00a/src/lib/config.ts#L6
is:
 ~ config.ts env: {
  PUBLIC_HTTPS_ONLY: '',
  PUBLIC_ORIGIN: 'http://localhost:5173',
  PUBLIC_POCKETBASE_URL: 'http://<IP_ADDRESS>:8090',
  PUBLIC_SIGNUP_DISABLED: 'false'
}

so correctly so far.
but then immediately below (https://github.com/goniszewski/grimoire/blob/65427281c0874546101af88713393e6c8607e00a/src/lib/config.ts#L9), config object gets PUBLIC_POCKETBASE_URL differently:
🚀 ~ config.ts config: {
  HTTPS_ONLY: false,
  IS_DEV: false,
  ORIGIN: 'http://localhost:5173',
  POCKETBASE_URL: 'http://localhost:8090',
  SIGNUP_DISABLED: false
}

and therefore the app prints:
Configuration used {
  HTTPS_ONLY: false,
  IS_DEV: false,
  ORIGIN: 'http://localhost:5173',
  POCKETBASE_URL: 'http://localhost:8090',
  SIGNUP_DISABLED: false
}

and pb.ts also:
🚀 ~ pb.ts config: {
  HTTPS_ONLY: false,
  IS_DEV: false,
  ORIGIN: 'http://localhost:5173',
  POCKETBASE_URL: 'http://localhost:8090',
  SIGNUP_DISABLED: false
}
🚀 ~ pbUrl: http://localhost:5173/internal/pb

The condition should be updated to something like:
POCKETBASE_URL:
		env.PUBLIC_POCKETBASE_URL || getProcessEnvValue('PUBLIC_POCKETBASE_URL') || 'http://pocketbase',

or more elaborate to account for DEV environment. Right now the PUBLIC_POCKETBASE_URL is never used.

Quick update from my side. I bought a new home server and tried to setup grimoire again. Now it works flawlessly! :tada:
Maybe this was related to my old arm setup instead of x86? I did not change anything, but somehow it works :shrug:

I also have this error message and I think @anarion80 might be on something. What is printed is not what I have in the config.

Doing the changes suggested for the config and building anew image worked for me. (see the image here https://hub.docker.com/r/rllola/grimoire)
Some things I believe is important in my case is that in my docker-compose I don't forward the port for pocketbase and I have HTTPS_ONLY=true.
The docker-compose example will work for people who have the -p 8090:80 set but not everyone might do it like this. And in this case the config will be a problem.
Sharing my docker-compose.yml (only a part of it)
  pocketbase:
    image: elestio/pocketbase:v0.22.14
    container_name: pocketbase
    user: 0:0
    volumes:
      - ./data/pocketbase:/pb_data/
      - ./data/migrations:/pb_migrations/
    # healthcheck:
    #   test: wget --no-verbose --tries=1 --spider http://localhost:80/api/health || exit 1
    #   interval: 5s
    #   timeout: 5s
    #   retries: 5
    depends_on:
      - grimoire
    environment:
      - PUBLIC_POCKETBASE_URL=https://pocketbase.evil.corp
      -<EMAIL_ADDRESS>      - ROOT_ADMIN_PASSWORD=evil
      - PUBLIC_ORIGIN=https://grimoire.evil.corp
      - PUBLIC_HTTPS_ONLY=true
      - PORT=5173
      - PUBLIC_SIGNUP_DISABLED=false
    expose:
        - 8090
    networks:
      default:
      evilnet:
        ipv4_address: <IP_ADDRESS>

  grimoire:
    image: rllola/grimoire:v0.3.5
    container_name: grimoire
    restart: unless-stopped
    environment:
      - PUBLIC_POCKETBASE_URL=https://pocketbase.evil.corp
      -<EMAIL_ADDRESS>      - ROOT_ADMIN_PASSWORD=evil
      - PUBLIC_ORIGIN=https://grimoire.evil.corp
      - PUBLIC_HTTPS_ONLY=true
      - PORT=5173
      - PUBLIC_SIGNUP_DISABLED=false
      - NODE_EXTRA_CA_CERTS=/opt/evil/ca/cert.pem # Because I have selfsigned certificate
    volumes:
      - ./data/migrations:/pb_migrations/
      - ./config/ca:/opt/evil/ca
    # healthcheck:
    #   test: wget --no-verbose --tries=1 --spider http://localhost:$PORT/api/health || exit 1
    #   interval: 5s
    #   timeout: 5s
    #   retries: 5
    expose:
        - 5173
    networks:
      default:
      evil:
        ipv4_address: <IP_ADDRESS>

One of the reason I am doing it like this is because I have my reverse proxy in another VM.

also meet that problem:

POCKETBASE_URL is localhost which should be "https://gri.domain.com" even configurred in env

Opened  a PR to fix this https://github.com/goniszewski/grimoire/pull/112 , I had the same issue and applied the fix locally and then rebuilt the container which fixes the issue for me

Please upgrade to the latest version of Grimoire. You can use the integrated migration tool to transfer your data to new format.


Mac paths does not include /Users/<username>/Applications

Hi, I had created KeliON/cerebro#286 because I have disabled spotlight on my Mac, and since your latest release, I have disabled "mac-apps" and gone with using "basic-apps", which works fine.  However, there is one path that the plugin is not searching on my Mac:
/Users/<username>/Applications/*.app
In my user Applications folder, I have several apps that I have created with Automator etc., and it would be nice to be able to launch these with Cerebro.
Thanks again!

@jrop done!

That solved it, thank you much!


Provide implementation to get User by unique email

Supports: app issue#20
Implement an API resource to get a User by unique email something like this ...
userRouter.get(
    "/userauth/v1/users/email",
    [authApp.isApp],
    userController.getUserByEmail
);

NOTE: This needs to be checked with OAuth2 when all APIs are refactored. This is called by application and not user.

This is complete and tested. The endpoint changed because users/* required a token. The branch feature/issue4 was committed, pushed, and merged into development. Will remain on development until app issue#20 is complete. This is currently userauth:0.1.17-dev. Will uncomment domain and build for userauth:0.1.17-prod again when app issue#20 is complete and ready for hosting. This will be hosted then too.


__eq__ for Pet, Team, Shop, Player

The compress / decompress methods provide good ways to check for equality. However, in situations where the objects do not need to be compressed (eg. unit tests), equality methods are an easier way to check for equality. Additionally, this allows == to be used on these objects, which is probably more accessible to newer developers using the library

This depends on the exact definition of equality. In the current code base, there are many checks for equality which are only seeing if two objects are actually the same object (meaning that they are located at the same memory reference).
If equality of the health, stats, status, etc. is desired, would it be possible to check if their string representations are identical?


Unable to use with Tuist

I'm trying to integrate Firebolt through my Tuist manifest in my dependencies.swift file.
Dependencies.swift
let dependencies = Dependencies(
    carthage: [
    ],
    swiftPackageManager: [
      .remote(url: "https://github.com/DrewKiino/Firebolt.git", requirement: .upToNextMajor(from: "0.4.9")),
    ],
    platforms: [.iOS]
)

Project.swift
let resolverTarget = Project.frameworkTarget(name: "Resolver", dependencies: [.external(name: "Firebolt")])

extension Project {
public static func frameworkTarget(name: String, dependencies: [TargetDependency] = []) -> Target {
    return Target(
      name: name,
      platform: .iOS,
      product: .framework,
      bundleId: "com.bundle.\(name)",
      infoPlist: .default,
      sources: ["Targets/\(name)/Sources/**"],
      dependencies: dependencies
    )
  }
}

Error command:
tuist generate
`Firebolt` is not a valid configured external dependency

My Xcode version is Version 13.2.1

MacOS 12.2.1


Rewrite tsvtools section

Fixes #27. Mainly focuses on the get-labels section to make it clearer.
Sorry, the PR is polluted with a lot of changes in the ids of the cells of the notebooks (if you know how to build the notebooks without changing the ids, I would be happy to know that). Go directly to .py files to see the actual changes.

@thibaultdvx I think you can simply commit the Python files. The CI should take care of building the notebooks for us.

@NicolasGensollen yes indeed, I canceled the changes

@NicolasGensollen I think we're all set the merge, finally


Update usage of core.Fuse

Constructor for core.Fuse was removed in favor of using zero value directly (similar to sync.Mutex and friends).

CI fails because psrpc needs an update as well: https://github.com/livekit/psrpc/pull/83


Fix Frames order in reducedModel

Fix for frames list order when building a reducedModel.
Fix the problem  in the geometryReduced Model mentioned in  #2158 .

@MegMll You need to also update the changelog ;)


[Ixigua] support Xigua channel extraction

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting a new site support request
[X] I've verified that I'm running yt-dlp version 2023.07.06 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[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 known issues and 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
china
Example URLs
https://www.ixigua.com/home/109420591813
this is Unsupported dont work,
This is the connection of all videos under the video publisher channel, and the following number is the ID of the video publisher
https://www.ixigua.com/7265819416108106295
This is a separate video link
This seems to work, but the prompt requires cookies
Provide a description that is worded well enough to be understood
ERROR: Unsupported URL: https://www.ixigua.com/home/109420591813

Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['--merge-output-format', 'mp4', '--no-check-certificate', '-i', '-a', '#01_当前目录list.txt', '-o', 'E:\\01.userData\\ZhuoMian\\YTDLP\\\\#01_当前目录list\\[%(channel)s][%(channel_id)s]\\[%(playlist)s][%(playlist_id)s]\\[%(upload_date)s][%(uploader)s][%(resolution)s][%(title)s][%(id)s].%(ext)s', '-f', '((best[height=2160]/best[height=1440]/best[height=1080]),(best[height>=1080]),(best[height<=1080]))', '-vU']
[debug] Batch file urls: ['https://www.ixigua.com/home/109420591813']
[debug] Encodings: locale cp936, fs utf-8, pref cp936, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>[b532a3481] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.22621-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg git-2020-08-31-4a11a6f, ffprobe git-2020-08-31-4a11a6f
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.0.9, certifi-2023.05.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-11.0.3
[debug] Proxy map: {'http': '<IP_ADDRESS>:10801', 'https': '<IP_ADDRESS>:10801'}
[debug] Loaded 1855 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version<EMAIL_ADDRESS>Current version<EMAIL_ADDRESS>Current Build Hash: 5ff3e702171a50175c34397494e2d18ce35d771c2110b1e59bd173ec2fb352aa
yt-dlp is up to date<EMAIL_ADDRESS>[generic] Extracting URL: https://www.ixigua.com/home/109420591813
[generic]<PHONE_NUMBER>13: Downloading webpage
WARNING: [generic] Falling back on generic information extractor
[generic]<PHONE_NUMBER>13: Extracting information
[debug] Looking for embeds
ERROR: Unsupported URL: https://www.ixigua.com/home/109420591813
Traceback (most recent call last):
  File "yt_dlp\YoutubeDL.py", line 1560, in wrapper
  File "yt_dlp\YoutubeDL.py", line 1688, in __extract_info
  File "yt_dlp\extractor\common.py", line 710, in extract
  File "yt_dlp\extractor\generic.py", line 2568, in _real_extract
yt_dlp.utils.UnsupportedError: Unsupported URL: https://www.ixigua.com/home/109420591813

unable to download~~~
设置代理服务器为
#01_当前目录list运行中
[debug] Command-line config: ['-a', '#01_当前目录list.txt', '--cookies', '#01_当前目录list-cookies.txt', '-F', '-vU']
[debug] Batch file urls: ['https://www.ixigua.com/7223150388223050297?logTag=aa79d6b2300eaddc84af']
[debug] Encodings: locale cp936, fs utf-8, pref cp936, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>[b532a3481] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.22621-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg git-2020-08-31-4a11a6f, ffprobe git-2020-08-31-4a11a6f
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.0.9, certifi-2023.05.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-11.0.3
[debug] Proxy map: {'http': '<IP_ADDRESS>:10801', 'https': '<IP_ADDRESS>:10801'}
[debug] Loaded 1855 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version<EMAIL_ADDRESS>Current version<EMAIL_ADDRESS>Current Build Hash: 5ff3e702171a50175c34397494e2d18ce35d771c2110b1e59bd173ec2fb352aa
yt-dlp is up to date<EMAIL_ADDRESS>[Ixigua] Extracting URL: https://www.ixigua.com/7223150388223050297?logTag=aa79d6b2300eaddc84af
[Ixigua]<PHONE_NUMBER>223050297: Downloading webpage
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), channels, acodec, size, br, asr, proto, vext, aext, hasaud, source, id
[info] Available formats for<PHONE_NUMBER>223050297:
ID EXT RESOLUTION FPS │  FILESIZE PROTO │ VCODEC ACODEC
────────────────────────────────────────────────────────
40 mp4 640x360     30 │   4.88MiB https │ h264   unknown
30 mp4 854x480     30 │   6.16MiB https │ h264   unknown
10 mp4 1280x720    30 │  11.76MiB https │ h264   unknown
1  mp4 1920x1080   30 │  21.74MiB https │ h264   unknown
请按任意键继续. . .
#01_当前目录list运行中
[debug] Command-line config: ['-a', '#01_当前目录list.txt', '--merge-output-format', 'mp4', '--no-check-certificate', '-i', '-o', 'E:\01.userData\ZhuoMian\YTDLP\\#01_当前目录list\[%(upload_date)s][%(uploader)s][%(title)s][%(resolution)s][%(id)s].%(ext)s', '--windows-filenames', '--trim-filenames', '250', '--cookies', '#01_当前目录list-cookies.txt', '-vU']
[debug] Batch file urls: ['https://www.ixigua.com/7223150388223050297?logTag=aa79d6b2300eaddc84af']
[debug] Encodings: locale cp936, fs utf-8, pref cp936, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>[b532a3481] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.22621-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg git-2020-08-31-4a11a6f, ffprobe git-2020-08-31-4a11a6f
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.0.9, certifi-2023.05.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-11.0.3
[debug] Proxy map: {'http': '<IP_ADDRESS>:10801', 'https': '<IP_ADDRESS>:10801'}
[debug] Loaded 1855 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version<EMAIL_ADDRESS>Current version<EMAIL_ADDRESS>Current Build Hash: 5ff3e702171a50175c34397494e2d18ce35d771c2110b1e59bd173ec2fb352aa
yt-dlp is up to date<EMAIL_ADDRESS>[Ixigua] Extracting URL: https://www.ixigua.com/7223150388223050297?logTag=aa79d6b2300eaddc84af
[Ixigua]<PHONE_NUMBER>223050297: Downloading webpage
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), channels, acodec, size, br, asr, proto, vext, aext, hasaud, source, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info]<PHONE_NUMBER>223050297: Downloading 1 format(s): 1
[debug] Invoking http downloader on "https://v9-xg-web-pc.ixigua.com/97c0e160d82b3d388ac9b656f622d6f1/64d9ceb4/video/tos/cn/tos-cn-ve-4/okIv9ymAaAuV9QIqHKEAIfhAQyz0GHQSCtY8Wh/?a=1768&ch=0&cr=0&dr=0&er=0&cd=0|0|0|0&cv=1&br=1053&bt=1053&cs=0&ds=4&ft=_z7ehvvBQy~UIryo8Z.wNnOYZlcMn4RW2bLd~y.RuZmka&mime_type=video_mp4&qs=0&rc=NzxpNTM7ZWY5aTY5aWllNEBpMzlkZDo6Znh2ajMzNDczM0BjMjRhMjEuXzYxLzQyX14xYSNgYGUucjRfZHJgLS1kLS9zcw%3D%3D&l=20230814134739F88454B8E7DBBD4AEA8F&btag=e00028000&dy_q=1691992059"
ERROR: unable to download video data: HTTP Error 403: Forbidden
Traceback (most recent call last):
File "yt_dlp\YoutubeDL.py", line 3363, in process_info
File "yt_dlp\YoutubeDL.py", line 3084, in dl
File "yt_dlp\downloader\common.py", line 461, in download
File "yt_dlp\downloader\http.py", line 377, in real_download
File "yt_dlp\downloader\http.py", line 129, in establish_connection
File "yt_dlp\YoutubeDL.py", line 3863, in urlopen
File "urllib\request.py", line 531, in open
File "urllib\request.py", line 640, in http_response
File "urllib\request.py", line 569, in error
File "urllib\request.py", line 502, in _call_chain
File "urllib\request.py", line 649, in http_error_default
urllib.error.HTTPError: HTTP Error 403: Forbidden


Fix C# example for GodotObject#_GetPropertyList

Documentation uses a wrong type (System.Collections.Generic.List instead of Godot.Collections.Array), causing the snippet to not compile.

Thank you for your contribution, however this is a duplicate of:

https://github.com/godotengine/godot/pull/96021

Closing, but thank you nonetheless


Release notes for Operator 2.2.0.

TBD release date, but the context is ready to be reviewed

Thank you @MarkvanMents, can you publish these release notes now?


Add E2E service tests

Add tests that send requests to a service and verify that a response is expected.
Planning on implementing all tests in node.js for simplicity.
This will help us make modifications to a service and know without running the entire project that the service changed still operates in as intended.
There might be other changes needed like opening the ports of the service to localhost within the docker-compose.yml file and adding some instruction on how to setup and run the tests, which will be part of the first PR that adds tests for one service (paymentservice).

Running npm test could be part of the CI if it also started all services for the demo...


Sandcastle example
No response
Environment
Browser:
CesiumJS Version:Version 1.99 and above
Operating System:

CesiumJS is a big project, so we use GitHub for feature requests and bug tracking exclusively. In the future, please take any questions to the Cesium Forum where there are members of the community and developers from the team who can help. Thanks!


[rebalance]: Add support for scheduled rebalances
Assignees:
Labels:

Add support for scheduling rebalances.

Adding missing URL link to get from rebalance page to rebalance scheduler.


BUG: Adding crew members to a starship sheet breaks the prototype token dialog

As soon as I drag on any crew member onto a Starship sheet the prototype token of the Starship cannot no longer be configured and the console shows an "Maximum call stack size exceeded" error.
Video of this bug: https://discord.com/channels/170995199584108546/716799568091807805/932048200330805298
This is reproducible in an empty world (Foundry V9 242, Starfinder 0.17.0, no mods):

Creator Starship actor
Create Player actor
Drag player to crew slot on the starship
Try to click on configure prototype token on the starship

The following error is thrown:
RangeError: An error occurred while rendering TokenConfig 61: Maximum call stack size exceeded
    at Function.getTrackedAttributes (foundry.js:19101)
    at Function.getTrackedAttributes (foundry.js:19124)
    at Function.getTrackedAttributes (foundry.js:19124)
    at Function.getTrackedAttributes (foundry.js:19124)
    at Function.getTrackedAttributes (foundry.js:19124)
    at Function.getTrackedAttributes (foundry.js:19124)
    at Function.getTrackedAttributes (foundry.js:19124)
    at Function.getTrackedAttributes (foundry.js:19124)
    at Function.getTrackedAttributes (foundry.js:19124)
    at Function.getTrackedAttributes (foundry.js:19124)
onError @ foundry.js:316
(anonymous) @ foundry.js:3020
Promise.catch (async)
render @ foundry.js:3018
render @ foundry.js:54532
_onConfigureToken @ foundry.js:47828
onclick @ foundry.js:47788
(anonymous) @ foundry.js:3200
dispatch @ jquery.min.js:2
v.handle @ jquery.min.js:2

I'm pretty sure this is a known and fixed issue. @TimToxopeus may be able to confirm.

According to the description of this commit:  https://github.com/wildj79/foundryvtt-starfinder/commit/97a7749c2cec52f48f490acd5027cbb37f0834db you seem to be right! I'll close this issue.
I'd say however its only truly fixed when said fix is actually released ;-)


google's direction and map buttons in bottom right corner.

I'm submitting a ...  (check one with "x")

[x ] question
[ ] any problem or bug report
[ ] feature request

If you choose 'problem or bug report', please select OS:  (check one with "x")

[ x] Android
[ x] iOS

some way to show google's direction and map buttons in bottom right corner without marker click?

No. That toolbar comes from the google maps Android API when you click on a marker.
So, my recommendation is

disable the map tool bar with mapToolbar: false, and
create your tool bar with html


Send a number not a percentage

Hi,
I have connected an Adafruit Huzzah ESP8266 with Echo Dot gen3 successfully. Yeah! I couldn't get Alexa to discover the device with fauxmo :(.
But question: I seem to be able to only send percentages, or rather the number i say to alexa is interpreted as a value from 0-100 and translated into 0-255. So,
"Alexa, set MyThing to 20" returns a value 53, as 53/255=20.7 (rounding down?).
Is there a way to just send the number 20?

Hi,
yes, sure, it is easy to get the value as a percentage :)
Just use byte valueInPercent = espalexa.toPercent(brightness);

Thanks! Yes, that function will undo the math to get back close to the
number I input:
“Alexa, set MyThing to 20”.
Number sent to MyThing:
brightness = 51.
The math it did is:
brightness =Round( input number * 255 / 100)
The Round function seems to truncate down.
The function toPercent undoes this math to get back to the input
number.
Input number = brightness * 100 / 255
That’s fine, except for the rounding error, so can’t reliably get back to
the original input number.
Is there a way to do it like when setting a temperature?
On Sat, Feb 1, 2020 at 6:42 AM Aircoookie<EMAIL_ADDRESS>wrote:

Hi,
yes, sure, it is easy to get the value as a percentage :)
Just use byte valueInPercent = espalexa.toPercent(brightness);
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Aircoookie/Espalexa/issues/101?email_source=notifications&email_token=ALSSLQMFOX7KYEYFV62QMFTRAWC3XA5CNFSM4KOBLHD2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKQ6UMI#issuecomment-581036593,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALSSLQI3IINRY24O7RIFGPLRAWC3XANCNFSM4KOBLHDQ
.

That's unfortunate... Espalexa works with the hue protocol, so all Alexa will ever send is a brightness between 0 and 255. Thermostats and the like probably use a more specialized protocol for temperature control. The rounding shouldn't really introduce errors, but you could try if espalexa.toPercent(brightness+1); yields better results for you :)


[Bug]: Max Zoom Level is not allowing to disable JS toggle until we remove the data from the field.

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Max Zoom Level in image widget is not allowing to disable JS toggle until we remove the data from the field.

Steps To Reproduce
Add image widget. Toggle JS for zoom level property
Public Sample App
No response
Version
Cloud

Tested the image widget for the JS toggle on Max Zoom level. Now with the values present in the dropdown are entered on JS Toggle, the JS button is still enabled. Only when we enter a number which is not there in the dropdown, then the JS button is disabled, and until we clear the data or enter a value that is part of the dropdown, it remains disabled.
@aswathkk  - is this the right expected behavior?

@btsgh Yes. This is the expected behaviour.

Thanks! Marking as Verified this issue as it has been resolved.


Add glob support for icons field

This works for deb. Using the helpers method, it should be easy to port this to other target. But i don't have a mac for testing, and i should be able to get a Windows in a few weeks.
I know this code is a little shitty, i'm sorry. I never used thiserror crate before, so maybe it can be written with less lines.
Also, i was not able to convert a glob error to the error of this crate. Maybe i missing something here. And somehow, rust-anlyzer just stop working on this project, so a little painful to debug this.

I hope it works :pray:

Could you also add a change file .changes directoy?


Add Join the our forum on homepage

Currently we only give option to people to join our mailing list.

Perhaps the logical place for this is in the top menu, along with the blog and social networks?

Then we should move the newsletter to there as well

While I'm open to moving the newsletter sign up, it is slightly different, in that it doesn't have (or need) a page. So unless we want to create a page for it, putting it in the navigation doesn't really work.
It's also different in its passivity. I think the footer might be a better location, if we no longer want to give it such a dominant position.

We had one newsletter in the past year, and until we will have a proper comms person, I feel like giving it such a prominent place is an issue. I prefer to direct people to the discuss, where more of our efforts now, then the newsletter.

That makes sense. So let's move the newsletter sign-up and give its spot to a message about the forum.

<3 !!!!

Does not need a distinct issue. Belong sin #276


Bandcamp has discontinued artist and album feeds

They used to be at artist.bandcamp.com/feeds, but now they're nowhere.

That's very unfortunate. Does the Bandcamp bridge work for you?

Isn't that one just for tags?

Yeah. It's just for tags.

Ah okay, that makes sense. I guess the bridge can be extended to accept artists though.
In order to add or extend bridges it is essential to understand where/how to collect data and how to present it. Please describe what you expect to see returned by the bridge. Could you maybe provide an example of the previously existing feed?

I unfortunately don't have an example of the old bandcamp feeds, but I do remember that it provided new releases by an artist. When the artist uploaded a new track and/or album, you received a link to that track or album's page. Unfortunately to duplicate that functionality, you would have to scrape not only the artist's page for new albums, but also scrape each of the albums on the artist's page to check for new tracks. (I haven't checked bandcamp recently though, so I could be wrong and there could be an easier way to do it.)
I would probably have checking for new tracks be its own separate feed (therefore optional to the user) or limit checking for new tracks to the last 1 or 2 albums added by the artist. In the former, the bandcamp bridge would have tags, artist albums, and artist tracks, and in the latter, just tags and artist. I don't think many artists add new tracks to really old albums, just more recent ones, but someone could prove me wrong, I suppose.
I honestly don't remember what kind of formatting the feed had, but I don't think it had much at all. Just a simple "Artist - Album" or "Artist - Album - Track" linking to the page for that album or track.

The problem is that bandcamp no longers shows the date a track was added to an album. It is not present on the site nor in the JS content. It would be however possible to get rss-bridge to show the last modified albums

Well, @Roliga is currently working on an upgrade for artists feeds (see commits above). It looks quite complete from what I can tell, so you could replace the existing bridge to check and see if it works for you.


Fix opcode "STLU" name to proper "SLTU"

The opcode "STLU" is actually called "SLTU" as per the datasheet (p. 508). Here's a fix! :)

Nice catch, thanks. Will accept on the next stream :)


88 BLEU score but result is not correct.

Hi, I am trying to do urdu transliterate like converting roman urdu to urdu font.
In 10 epochs, i got 88 bleu score.
Despite the good score, the results are bad.
Is there a way to add ngram LM model to boost the performance.

Is this the correct forum to ask this question?


Masking

As we spoke last time, would it be possible to load only the area out of the border mask for the further masking steps?

I am thinking that we should switch the ROI with the masking step. We should first select the ROIs, save these "croped" files as small and big ROI and then do the masking on the big ROI, and the mask is then applied on both the small and the big ROI, which are them as masked data files saved and used for the hyperspectral plugin.


Support for Jetpack Compose 1.x.x

Expected behaviour
Successfully run a snapshot test for a Compose View using Jetpack Compose 1.0.1
Actual behaviour
I get the following error:
> Task :app:connectedDebugAndroidTest
Starting 4 tests on Pixel_4_API_23_Marshmallow(AVD) - 6.0

com.example.road.to.effective.snapshot.testing.parameterized.ComposeParameterized > helloTest[Pixel_4_API_23_Marshmallow(AVD) - 6.0] FAILED
        java.lang.NoClassDefFoundError: androidx.compose.ui.test.android.WindowCapture_androidKt$captureRegionToImage$onCopyFinished$1
        at androidx.compose.ui.test.android.WindowCapture_androidKt.captureRegionToImage(WindowCapture.android.kt:97)

> Task :app:connectedDebugAndroidTest FAILED

Steps to reproduce
configure Jetpack Compose 1.0.1 and write a snapshot test for it, using ComposeRule and compareScreenshot(composeRule.onRoot()), compareScreenshot(composeRule.onRoot().captureToImage()) or compareScreenshot(composeRule.onRoot().captureToImage().asAndroidBitmap())
Version of the library
Shot 5.11.2
Remarks:
I've taken a look and shot 5.11.2 is configured for Jetpack Compose Beta 3. Its Gradle configuration and methods differ a lot from those for Jetpack Compose 1.0.0

@sergio-sastre Can you share more of your setup for tests? We have been able to successfully run screenshot tests with compose 1.0.1 on external project.

Hi there!
Sorry for my late reply! Let me check it out again in the evening, but I am afraid you are right, it should be something on my side

Yep, was something misconfigured on my side, I will close this :)

@sergio-sastre I  have the same issue, could you please share how you could solve the issue?

Hi @jakob-grabner ! I actually remove composable and after a while I tried it out again, I believe with a 1.0.1 beta version instead, and it worked.
Could you share your setup to facilitate debugging?


Possible compiler bug - unreachable code for wasm and wasm-gc

With this release of this repo: https://github.com/gmlewis/moonbit-io/releases/tag/v0.6.0
running the following works:
$ moon version --all
moon 0.1.20241111 (e6d64e0 2024-11-11) ~/.moon/bin/moon
moonc v0.1.20241111+dc2407357 ~/.moon/bin/moonc
moonrun 0.1.20241111 (e6d64e0 2024-11-11) ~/.moon/bin/moonrun
$ moon test --target js
Total tests: 38, passed: 38, failed: 0.

However, all of the other targets fail with "unreachable" or "panic":

moon test --target wasm
moon test --target wasm-gc
moon test --target native

Minimal code to reproduce:
test "panic" {
  let empty : Array[Byte] = []
  let array : Array[Byte] = [1, 2, 3]
  empty.unsafe_blit(0, array, 0, 3) // wasm panic but not js
}

test "size" {
  let empty : Array[Byte] = Array::new(capacity=3)
  let array : Array[Byte] = [1, 2, 3]
  empty.unsafe_blit(0, array, 0, 3)
  inspect!(empty, content="[b'\\x01', b'\\x02', b'\\x03']") // js has content but wasm is empty
}

@hackwaly @Yu-zh

So the panic is expected: unsafe_blit is expected to panic when the length is not enough. As the name suggest, it is unsafe so no extra check would be done.
The problem here is that the compiler should not use intrinsic instructions during debug/test mode, which we will fix it.

Ah!  So you are saying that the following is not correct:
pub fn write(self : Buffer, buf : Slice[Byte]) -> (Int, IOError?) {
  let cap = buf.length() + self.b.length()
  let b = Array::new(capacity=cap)
  Array::unsafe_blit(b, 0, self.b, 0, self.b.length())
  Array::unsafe_blit(b, self.b.length(), buf.buf, buf.start, buf.len)
  self.b = b
  (buf.length(), None)
}

I'll try using "push" instead of "unsafe_blit" and see if that fixes the problem.

Thank you for your help, @peter-jerry-ye !  I've now released version v0.8.0 which fixes the unsafe_blit usage:
https://github.com/gmlewis/moonbit-io/releases/tag/v0.8.0
$ moon version --all
moon 0.1.20241111 (e6d64e0 2024-11-11) ~/.moon/bin/moon
moonc v0.1.20241111+dc2407357 ~/.moon/bin/moonc
moonrun 0.1.20241111 (e6d64e0 2024-11-11) ~/.moon/bin/moonrun
$ moon test --target all
Total tests: 39, passed: 39, failed: 0. [wasm-gc]
Total tests: 39, passed: 39, failed: 0. [wasm]
Total tests: 39, passed: 39, failed: 0. [js]
$ moon test --target native
Total tests: 26, passed: 26, failed: 0.

Here's one other unusual issue I found for target native:
https://github.com/gmlewis/moonbit-image/releases/tag/v0.5.0
$ moon version --all
moon 0.1.20241115 (67c2b06 2024-11-15) ~/.moon/bin/moon
moonc v0.1.20241115+351cfb074 ~/.moon/bin/moonc
moonrun 0.1.20241115 (67c2b06 2024-11-15) ~/.moon/bin/moonrun
$ moon test --target native
[======================================--] 29/30 done, 1/1 running
link-core: gmlewis/image/png_blackbox_test
failed to execute '/Users/glenn/src/github.com/gmlewis/moonbit-image/target/native/debug/test/png/png.blackbox_test.exe /Users/glenn/src/github.com/gmlewis/moonbit-image/target/native/debug/test/png/png.blackbox_test.exe'

Caused by:
    No such file or directory (os error 2)

Total tests: 26, passed: 16, failed: 10.

/cc @Guest0x0

I'm not sure if this is related, but target wasm is failing for this repo: https://github.com/gmlewis/moonbit-gzip/releases/tag/v0.16.0
but all other targets pass:

The loopify optimization is off for debug mode. The test will pass if you test it under release mode:
moon test --target wasm -p gmlewis/gzip -f gunzip_test.mbt -i 0 --release

Here's one other unusual issue I found for target native: https://github.com/gmlewis/moonbit-image/releases/tag/v0.5.0

I found a bug with the code:
struct T {}

fn T::new() -> T! {
  if false {
    fail!("Error")
  }
  T::{  }
}

pub(open) trait Any {}

struct Test {
  f : () -> Any!
}

fn main {
  let _ : Test = { f: fn() { T::new!() } }

}

@Yu-zh
But I didn't reproduce the one you described.

All the reproducible bugs are fixed. Feel free to reopen if any one still persists.

All the reproducible bugs are fixed. Feel free to reopen if any one still persists.

Thank you, @peter-jerry-ye - I'm still having troubles with the native and wasm compiler targets.
See details here: https://github.com/gmlewis/moonbit-image/releases/tag/v0.12.0

Oh, and by the way, @peter-jerry-ye - it seems to me that being forced to add as Image should either be fixed in the compiler (so that it is not needed) or should be reported in the IDE from LSP as required, agreed?
Specifically, in the easier case, I had:
  let test_image : Array[Image] = [
    @image.RGBA64::new!(@image.rect(0, 0, 10, 10)),
    @image.NRGBA64::new!(@image.rect(0, 0, 10, 10)),
    @image.Alpha16::new!(@image.rect(0, 0, 10, 10)),
    @image.Gray16::new!(@image.rect(0, 0, 10, 10)),
  ]

and had to add as Image like this (or maybe this change was unnecessary now that I'm thinking about it more?):
  let test_image : Array[Image] = [
    @image.RGBA64::new!(@image.rect(0, 0, 10, 10)) as Image,
    @image.NRGBA64::new!(@image.rect(0, 0, 10, 10)) as Image,
    @image.Alpha16::new!(@image.rect(0, 0, 10, 10)) as Image,
    @image.Gray16::new!(@image.rect(0, 0, 10, 10)) as Image,
  ]

In the more complicated case, I had this:
struct TestT {
  name : String
  image : () -> Image!SizeError
}

let test_images : Array[TestT] = [
  {
    name: "rgba",
    image: fn() { @image.RGBA::new!(@image.rect(0, 0, 10, 10)) },
  },
...

and had to change it to this:
struct TestT {
  name : String
  image : () -> Image!SizeError
}

let test_images : Array[TestT] = [
  {
    name: "rgba",
    image: fn() { @image.RGBA::new!(@image.rect(0, 0, 10, 10)) as Image },
  },
...

If the compiler doesn't have enough information in this case, then maybe the LSP could sense this and let the user know that it is necessary to add the as Image ?

All the reproducible bugs are fixed. Feel free to reopen if any one still persists.

Thank you, @peter-jerry-ye - I'm still having troubles with the native and wasm compiler targets. See details here: https://github.com/gmlewis/moonbit-image/releases/tag/v0.12.0

Will look into it.

If the compiler doesn't have enough information in this case, then maybe the LSP could sense this and let the user know that it is necessary to add the as Image ?

Sorry for the confusion @gmlewis. What I meant was that it was a compiler's bug that it didn't treat the promotion correctly. It was fixed in the previous releases, so now you can remove the as Image.


chore: upgrade to mui v6

Material UI v6 is out!
This PR upgrades the dev dependencies for the dependencies of the example web app to use mui v6, and widens the peer dependencies to include the existing v5 and the new v6.
Type checking, linting, and tests seem to pass. The example app also appears to work as normal. It might be nice to try running tests for both mui v5 and v6 before merging this PR.

Looks like react-hook-form-mui now supports v7 and their PR similarly has required no logic changes which gives me confidence on this implimentation.

Awesome, thanks for making this PR and looking into it @Xhale1. I'll take a closer look at this and aim to merge soon!

Looks like the workflow failed due to pnpm dedupe needing to be run. Should be fixed now.

Thanks again @Xhale1! Looks good, just needed to make one adjustment to also update the example project lockfile. (Thanks for the quick fix on pnpm dedupe once CI ran.) I'll get this published shortly!

This is published now in v1.11.0! (I also mistakenly pushed a 1.10.1 tag for the same changes—oops!—but it's redundant.)
And re

It might be nice to try running tests for both mui v5 and v6 before merging this PR.

I agree that'd be nice, though at this point in time, the minimal tests here don't rely on MUI stuff anyway, so it wouldn't make a difference. Sometime in the future, it'd be nice to add playwright or similar tests here, but for now, the builds, type-checking, and manual smoke-testing will have to do.
And thanks for the details and confirmation around what other third party mui projects did for v6!

Exciting! And that all makes sense to me :)
I appreciate your work (using this library over at trainwell). I'm happy to help out a bit with dependency update and whatnot if that's at all of interest.

@Xhale1 great to hear! Yes, I'd definitely appreciate PRs for things like this 😄
Since you ask, if you happen to have suggestions about how to properly support both NextJS and Node environments (and also bundler environments / CommonJS), this is at the top of my list https://github.com/sjdemartini/mui-tiptap/issues/264, and I haven't come up with a solution or had more time to dig in again yet.
It also turns out that just today @mui/icons-material published a version that properly adds ESM support https://github.com/mui/material-ui/releases/tag/v6.1.0, so perhaps it's possible to get things working and avoid the issues I mentioned here https://github.com/sjdemartini/mui-tiptap/pull/258#issuecomment-2303068294.

@flobamediaacc what problem is that? Perhaps it should be opened as a separate issue?


fix(app, odd): early exits no longer flash wrong screens

closes RLIQ-332, RLIQ-333, RLIQ-334
Overview
This addresses a handful of bugs related to the pipette flows. Including a small refactor in PipetteWizardFlows to remove the robotName prop.
Test Plan

On an Ot-3, go through a pipette flow. In order to cover the 3 bugs:

Launch attach flow and click on 96-channel. Exit out of the flow on the next page. Launch the flow on the other mount, it should be the correct flow and not think that you are trying to attach a 96-channel
Launch any flow, early exit from the flow after the BeforeBeginning page. Clicking on the wizard header exit or the button exit from the exit modal should not flash another modal and should exit properly. (I believe this covers the 2 other bugs)

Changelog

remove robotName prop from PipetteWizardFlows, fix all parent components (PipetteCard, OverflowMenu, AttachInstrumentsDashboard)
add setSelectedPipette prop to PipetteWizardFlows, fix all parent components
add bug fixes throughout PipetteWizardFlows
fix all affected tests

Review requests

review that all the bugs are actually fixed

Risk assessment
low

Tested this on the new DVT robot and both of the cases listed in the test plan work properly! There were two small issues I noticed (unrelated to the ticketed bugs but blocking full testing of the flows) that I threw in a quick fix for. These were:

The flow was not exiting once the handleCleanUpAndClose function was complete
The refetch is happening more than expected in CheckPipettesButton so I moved the proceed to the onClick handler. This will unblock the flow while I work on limiting instances of the refetch.


Ui Fixes

The navbar elements are not looking good whenever I hover on it and also the sidebar is too much normal.
I am really interested in working on this issue.
Please assign it to me under GSSOC 23.

Yes sure, go ahead!! @SubhamB2003

I would like to work on this issue under GSSOC'23. I would appreciate if the issue is assigned to me.

Yes sure, go ahead!! @SubhamB2003

Hey, @akshathar-navada can I add a blur effect on the navbar?
You can show the example I add how its looks

@SubhamB2003 Can u please add the screenshot of home and about section with too with the blurred navbar ...so that I can review it...

@SubhamB2003 Can u please add the screenshot of home and about section with too with the blurred navbar ...so that I can review it...

Sure
Home Section

About Section

@SubhamB2003 Can u please add the screenshot of home and about section with too with the blurred navbar ...so that I can review it...

Sure Home Section
About Section
Can you please add the GSSOC 23 label🙂

We have merged your PR, will be adding the GSSOC 23 label soon!
Thank you!! @SubhamB2003

@SubhamB2003 Can u please add the screenshot of home and about section with too with the blurred navbar ...so that I can review it...

Sure Home Section
About Section
Can you please add the GSSOC 23 label🙂

We have merged your PR, will be adding the GSSOC 23 label soon! Thank you!! @SubhamB2003

Thank you🙂


provide csv output of all emails in one file

self.email_content = {"content": , "date": ,"attachment": , "attachement type": ,"pseudo_content":}


Spark-Solr can't load non-stored multivalued fields with docValues=true and useDocValuesAsStored=true

Using Solr 8.4.0, Spark-Solr 3.6.1 Spark: 2.11
When a field is configured with:
stored="false" docValues="true" useDocValuesAsStored="true"
in Solr, you are able to retrieve it in query results even if it's not stored, docValues is used instead. This works in spark-solr, only not with multiValued=true fields.
SolrJ and regular solr api can provide such fields, but when we use them with spark-solr:
val s1 = Map(
      "zkHost" -> "myZK",
      "collection" -> "myCollection",
      "query" -> "multivaluedField:[* TO *]",
      "fields" -> "multivaluedField",
      "max_rows" -> "100000",
      "flatten_multivalued"-> "false"
    )

val data = spark.read.format("solr").options(s1).load

data.createOrReplaceTempView("myTable")

Results with:
data: org.apache.spark.sql.DataFrame = [id: string]
Notice that multiValuedField is not resolved.
This is a serious issue in my opinion, because it prohibits you from using streaming method when you need multiValued fields in an RDD.

In addition to above, when you specify a streaming expression instead of a query like:
val s1 = Map(
      "zkHost" -> "myZK",
      "collection" -> "myCollection",
      "expr" -> "search(myCollection,q="multivaluedField:[* TO *]",qt="/export",fl="multivaluedField,,id",sort="id asc")",
      "max_rows" -> "100000",
      "flatten_multivalued"-> "false"
    )

the "flatten_multivalued" parameter loses its effect, multivalued fields always get flattened.


Logo not linked to homepage on Contact Us page

Reproduction steps
When I was going through the contact us page, I wanted to go back to the home page and I clicked on the logo and it didn't worked.
Expected behavior
It should redirect me to the homepage.
Actual Behavior
It is not linked to the homepage.
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Tested on Brave Browser and It's working... Could you provide more details?

As you can see I clicked on the logo multiple times and nothing happened.
https://user-images.githubusercontent.com/92395053/193725083-1e36772c-c3f3-4393-ba8a-3aa8c969cfef.mp4

@SauravMukherjee44 can you please assign me this issue?

Go for it! For support join our discord community: https://discord.com/servers/codein-community-831388874118660156


arg_name=True not usable in Jupyter & IPython

from objprint import op

def func():
    return 1

cc = op(func(), arg_name=True)

maybe it's because here:
https://github.com/gaogaotiantian/objprint/blob/7920c8601e86e97fe05a807d820121bac00471b7/src/objprint/frame_analyzer.py#L55-L58
module is None for Jupyter & IPython, but they have file:
jupyter:

ipython:

and source can be retrieved with:

Change to source = inspect.getsource(frame) will work:

Hmm, okay. I'll admit that I don't use Jupyter so it's never my first priority. I'll take a look at this and see if can be gracefully fixed.


Document sidebar title customization

Adding a section to the "Customisation" section about customizing the sidebar title.
Related to #202

Thanks @rozsasarpi! ^>^


TypeScript declaration error: a type annotation is necessary

Report a bug
Hello, I have an issue while exporting arktype schemas using TypeScript.  I get the following error:
The inferred type of 'Foo' cannot be named without a reference to '.pnpm/@arktype+schema@0.1.18/node_modules/@arktype/schema'. This is likely not portable. A type annotation is necessary.ts(2742)

🔎 Search Terms
cannot be named, without reference to, likely not portable, type annotation necessary, declaration files
🧩 Context

ArkType version: 2.0.0-dev.26
TypeScript version (5.1+): 5.5.2
Other context you think may be relevant (JS flavor, OS, etc.): pnpm, turbo monorepo, using declaration: true in tsconfig

🧑💻 Repro

// Paste reproduction code here
import * as ark from 'arktype'

export const Foo = ark.type('parse.integer')

The above will result in the error found at the top of this issue.  Note: TS must be configured to emit declaration files in order to see the error

This is a very common error in TS I have encountered many times but the circumstances are quite hard to pinpoint. See https://github.com/microsoft/TypeScript/issues/42873
Does adding @arktype/schema to your dependencies directly resolve the issue? If so, I can eventually look into a method for publishing such that the types will always be resolved, maybe by bundling it.

+1, in my case I was declaring an optional string type and the Type['inferIn'] of it is string.moreThanLength instead of just string like the non optional key.

I'm using @hono/arktype-validator

@ssalbdivad Hello, yes adding @arktype/schema to dependencies did solve that issue.  However, I ran into a similar issue now after resolving.  It doesn't apply to my original example exactly, but here is a reproduction for my current issue:
Error:
Exported variable 'Foo' has or is using name 'constrained' from external module "/Users/jalford/Documents/git/project/node_modules/.pnpm/@arktype+schema@0.1.22/node_modules/@arktype/schema/out/ast" but cannot be named.

Reproduction:
import * as ark from 'arktype'

export const Foo = ark.type(/\d+_\d+/).pipe((s) => {
  const split = s.split('_')
  const fst = split[0]
  const snd = split[1]
  if (fst === undefined || snd === undefined) {
    return `Received unexpectedly invalid string ${split}, expected a string matching the pattern /\\d+_\\d/`
  }
  return Number(`${fst}${snd}`)
}, ark.type('integer'))

I believe the issue comes from .pipe(..., ark.type("integer")).
Just for reference, I'm taking a string like this: 123_45 to a number: 12345.

Hmm, well that is unfortunate and also very environment-dependent.
I would consider bundling @arktype/schema as mentioned. I've opened an issue for that here:
https://github.com/arktypeio/arktype/issues/1049
As a potential stopgap, I will also try re-exporting inferred symbols from arktype (including constrained) in the next release to see if that helps.

Thank you for your help!

FWIW we switched from pnpm to yarn 4 and the issue is still happening.

Closing this for now, but will continue to track additional remediation for this as part of https://github.com/arktypeio/arktype/issues/1049

Another possible solution for this issue is adding @ark/schema into tsconfig.json's compilerOptions.types array:
{
  "compilerOptions": {
    // ...
    "types": [
      "@ark/schema"
    ]
  }
}


Add .js extension to import/exports in wardenjs for Node.js compatibility

More fixes to Node.js support for wardenjs.
This time the problem was related to missing extensions (.js) for imports/exports directives, which is mandatory in Node.js.
Closes #285

I wish a more "elegant" solution existed but couldn't think of any other than running a bunch of massive "search and replace"s.

@Pitasi Version "0.0.6" worked fine for the Fordefi keychain solution.

glad to hear that finally 😁
if you can approve this pr, i'll merge it


[vendor] Update charset-normalizer

Fix #4865

Is there any chance you could release this change?