add reranker model support for python backend

test model:BAAI/bge-reranker-base. Duplicate to PR 357

@OlivierDehaene @Narsil could you help review? Thx

@OlivierDehaene, could you help review? Thx

It would be exciting to work on this. I would be available to pick it up too. #449


Move CI to GitHub Issues

It looks like the tests take 3m33s to run in GitHub Actions, but they're taking more than 8 minutes in Travis

I need to figure out how to build and push the Docker image on releases. Here's the Travis code for that: https://github.com/simonw/datasette/blob/52eabb019d4051084b21524bd0fd9c2731126985/.travis.yml#L38-L47

I'd like to set these up as different workflows that depend on each other, if that's possible.
I want to start three test runs in parallel (on three different Python versions), then if all three pass kick off the PyPI push (without running more tests), then if that passes do the Docker build and push.

https://docs.github.com/en/actions/getting-started-with-github-actions/core-concepts-for-github-actions#job

A set of steps that execute on the same runner. You can define the dependency rules for how jobs run in a workflow file. Jobs can run at the same time in parallel or run sequentially depending on the status of a previous job. For example, a workflow can have two sequential jobs that build and test code, where the test job is dependent on the status of the build job. If the build job fails, the test job will not run.

When I figure this out I'll update the https://github.com/simonw/datasette-plugin/blob/main/datasette-{{cookiecutter.hyphenated}}/.github/workflows/publish.yml default workflow to do this - right now it runs the tests once on just a single version of Python as part of the package deploy to PyPI step.

This example of jobs depending on each other and sharing data via artifacts looks relevant: https://docs.github.com/en/actions/configuring-and-managing-workflows/persisting-workflow-data-using-artifacts#passing-data-between-jobs-in-a-workflow
name: Share data between jobs

on: [push]

jobs:
  job_1:
    name: Add 3 and 7
    runs-on: ubuntu-latest
    steps:
      - shell: bash
        run: |
          expr 3 + 7 > math-homework.txt
      - name: Upload math result for job 1
        uses: actions/upload-artifact@v2
        with:
          name: homework
          path: math-homework.txt

  job_2:
    name: Multiply by 9
    needs: job_1
    runs-on: windows-latest
    steps:
      - name: Download math result for job 1
        uses: actions/download-artifact@v2
        with:
          name: homework
      - shell: bash
        run: |
          value=`cat math-homework.txt`
          expr $value \* 9 > math-homework.txt
      - name: Upload math result for job 2
        uses: actions/upload-artifact@v2
        with:
          name: homework
          path: math-homework.txt

  job_3:
    name: Display results
    needs: job_2
    runs-on: macOS-latest
    steps:
      - name: Download math result for job 2
        uses: actions/download-artifact@v2
        with:
          name: homework
      - name: Print the final result
        shell: bash
        run: |
          value=`cat math-homework.txt`
          echo The result is $value

I think :${GITHUB_REF#refs/tags/} is the equivalent of $TRAVIS_TAG.

I think this is ready. I'll only know for sure the first time I push a release through it though!

I'll close this after the next release successfully goes out.

I tested this new publish pattern (running the tests in parallel before the deploy step) on github-to-sqlite - skipping the Docker step - and it worked: https://github.com/dogsheep/github-to-sqlite/actions/runs/213809864

Package deploys are still broken, just got this error trying to ship 0.49a1: https://github.com/simonw/datasette/actions/runs/253099665

The workflow is not valid. .github/workflows/publish.yml (Line: 61, Col: 9): Unexpected symbol: '"a"'. Located at position 24 within expression: !(contains(github.ref, "a") || contains(github.ref, "b"))

This bit here: https://github.com/simonw/datasette/blob/c18117cf08ad67c704dab29e3cb3b88f1de4026b/.github/workflows/publish.yml#L58-L62

I think those should be single quoted.

That worked: https://github.com/simonw/datasette/runs/1110040212?check_suite_focus=true ran and depolyed to PyPI but it skipped the push to Docker step because there was an "a" in the tag.

Just release Datasette 0.49 - which shipped to PyPI just fine but skipped the Docker step for some reason!
https://github.com/simonw/datasette/runs/1114585275?check_suite_focus=true

I bet that's because the github.ref actually looks like this:
${GITHUB_REF#refs/tags/}
And the refs/tags/ part has an a in it.

So now I've released Datasette 0.49 but failed to push a new Docker image. This is bad, and I need to fix it.
I'd like to push to Docker from GitHub Actions, so I think I'm going to create a one-off workflow task for doing that.

Using https://github.com/marketplace/actions/debugging-with-tmate to manually submit a new build from within an interactive GitHub Actions session.

I'm going to switch to using this logic to decide if I should ship to Docker: https://github.community/t/release-prerelease-action-triggers/17275/2
if: "!github.event.release.prerelease"

I shipped the Docker build manually by running the following in a tmate session:
docker login
# Typed my username and password interactively
export REPO=datasetteproject/datasette
docker build -f Dockerfile -t $REPO:0.49 .
docker tag $REPO:0.49 $REPO:latest
docker push $REPO

I'm going to cross my fingers and hope that this works - I don't want to leave this issue open until Datasette 0.50.


Create quick way for using UI to test particular resource(s)

Use SuportedRequests to generate buttons
May need way to get request parameter from UI (for example time interval for StartTimer)
Implementation approach: create resource wrapper with no requests and with states that holds both UI Resource and Resource under the test
Possible enhancement: allow control multiple resources with event handler datafunc applied upon unsolicited resources transition.

moved to https://github.com/oofp/sdui/issues/5


AST access to footnotes and refs

I am experimenting with writing a converter with AsciidoctorJ (thanks for providing the capability!).
I am using htm5.rb as a reference.
There are currently 2 items that the Ruby code is using that I don't see mirrored in AsciidoctorJ AST classes.

footnotes - used to render the footnotes at the bottom of a document.
refs - used, in a way my limited Ruby grokking skills does not fully understand yet, in inline anchors.

Should these be exposed to the AsciiDoctorJ AST?
Or maybe they are available in some way I have missed?
Are there other similar values that should be exposed?
If exposing these values makes sense, I am happy to do the work.
To me they look like they should be accessible from Document.
Lemme know!

I'd say...

Should these be exposed to the AsciiDoctorJ AST?

Yes

Or maybe they are available in some way I have missed?

Does not seem so.

Are there other similar values that should be exposed?

On one side, if we check the mention on :catalog_assets: in the documentation: https://asciidoctor.org/docs/user-manual/#ruby-api-options maybe it would make sense to expose the whole references property as Document::getReferences(). Note that references is a alias for the internal property catalog.
But on the other, the core API exposes footnotes and other "reference" properties directly also from Document https://github.com/asciidoctor/asciidoctor/blob/cabde9c25fe040221ad71bb6aaf8754d2e5ec099/lib/asciidoctor/document.rb#L616-L626.
If you ask me, I'd rather have a reference object (ie. document.getReferences().getFootnotes()). Having properties grouped helps keeping the API tidier, but I admit can be harder to use if you don't know where to look.

If exposing these values makes sense, I am happy to do the work.
To me they look like they should be accessible from Document.
Lemme know!

You are more than welcome! If you check the code, you'll see the API exposes the featues from the underlying Ruby engine using interfaces, and each one of them has an implementation so we can support multiple engines in the future (currently only Ruby is fully supported). In this case you can have a look at how org.asciidoctor.ast.Document correlates to org.asciidoctor.jruby.ast.impl.DocumentImp.
All internal properties are already there during runtime, it's a matter of adding the methods to expose them.
RubyObjectWrapper (parent class of DocumentImpl) have methods to facilitate manipulation and conversion between Ruby and Java objects, so luckily you should not need to mess much with the jRuby library.

Now, I attempted a POC and found an issue, but I suspect this may be a limitation of the current parser.
The problem is that the footnotes are only accessible after conversion. I created a project with a Preprocessor, TreeProcessor, PostProcessor and a Converter. And the footnotes are only available in the PostProcessor with the code below.
  if (node instanceof Document) {
      Document document = (Document) node;
      Object references = ((DocumentImpl) document).getProperty("references");
      RubyHash rubyReferences = (RubyHash) references;
    . . . .
  } else if (node instanceof Section) {

I saw in the code that the footnotes are added to the catalog during macros substitution :% If anyone has any idea, would be appreciated.

footnotes
Hmm... my debugger shows me the same for footnotes.
I am frankly too green to understand what gets called from where, but I do see the footnotes seem to be populated on the Ruby side here: https://github.com/asciidoctor/asciidoctor/blob/5845c665c8f8eec0c95154b00adc32c383fc4efc/lib/asciidoctor/substitutors.rb#L851-L868
api
It is subjective, so take this with a grain of salt, but my preference would be to put getFootnotes() and getRefs() directly under the document because it keeps a symmetry between the Java and Ruby APIs.
effort
Also if you are happily into this already, I'm good with standing aside.
I happy to help if there is a need.

I do see the footnotes seem to be populated on the Ruby side here

I got there too, and if the footnotes are efetively processed after parsing, I suspect that even with the API changes they won't be available in the Converter :disappointed:

It is subjective, so take this with a grain of salt, but my preference would be to put getFootnotes() and getRefs() directly under the document because it keeps a symmetry between the Java and Ruby APIs.

Then, it's up to @robertpanzer to break the tie. I really have no strong opinion.

Also if you are happily into this already, I'm good with standing aside.
I happy to help if there is a need.

Tbh, there's no hurry and I have other things. The first issue is always the hardest, just take your time.
You can try modifying the a_postprocessor_instance_should_be_executed_after_document_is_rendered test and associated PostProcessor to do something with the footnotes. If you have trouble and are still interested (no compromise at all), we could make an online pairing session.

Good catch and we should definitely add it!
If you like to hack on this I am happy to help.
Otherwise I can take an attempt too, I cannot give any ETA though.

Thanks, I'll take a stab at it then.

I am making some progress.
footnotes
So @abelsromero, the footnotes get populated by asciidoctor, but only as the adoc is converted.
Which is fine, I guess, because footnotes are rendered at the end of a doc.
So I think I have a handle on footnotes, although I'm sure you folks will have some feedback/tweaks on how I implemented.
refs - how are they used?
As to refs, I first need to understand how they are being used in the asciidoctor html5 converter (with the assumption that my, and other converters, will need to do this as well).
https://github.com/asciidoctor/asciidoctor/blob/cabde9c25fe040221ad71bb6aaf8754d2e5ec099/lib/asciidoctor/converter/html5.rb#L1115-L1124
          if AbstractNode === (ref = (@refs ||= node.document.catalog[:refs])[refid]) && (@resolving_xref ||= (outer = true)) && outer
            if !(text = ref.xreftext node.attr 'xrefstyle', nil, true)
              text = %([#{refid}])
            elsif text.include? '<a'
              text = text.gsub DropAnchorRx, ''
            end
            @resolving_xref = nil
          else
            text = %([#{refid}])
          end

It seems this code got a bit more complicated to address a circular reference problem.
Putting such details in a converter seems a bit odd to me, it seems like all converters would want this work to be done on their behalf, but what do I know?  I certainly don't have a deep understanding yet here! 🙂
Forgive my Ruby newbieness: So far I've figured out === means "instance of?", and that =| is a conditional assignment operator which means "if I am not already set (or falsey), then set me to", and that @ is a class instance variable.  It looks like @refs is simply used for caching catalog refs.  @resolving_xref will be true if if ref is found, but outer will only be true if @resolving_xref was not already true.
So I think this pseudocode might reflect what is effectively happening?
 if ref with refid found,
    and it is an asciidoctor node,
    and we did not find a ref the very last time we checked
    and ref has reftext
 then
     text = reftext but with <a>.*</a> removed
 else
     text = [$refid]
 endif

where should to model refs?
Also of interest, is that html5.rb accesses refs from under the catalog.  Unlike footnotes, there is no refs duplicated directly off of Document.  So @abelsromero, maybe your idea of:

Document

getReferences()

getFootnotes()
getRefs()

Is the way to go?  getReferences().getRefs() is a bit weird though.  Maybe getCatalog() instead of getReferences()?.

Which is fine, I guess, because footnotes are rendered at the end of a doc.

Not related to the position, but this a known limitation of the current parser. Ideally the parser should provide the full AST with all elements right from the beginning. However, macros and includes (at least, that i know of) are parsed during conversion, so, any extension or converter that runs before that stage does not have that information. This is something to be addressed in the long future :%
We can only mention that in the integrator's guide, there's really not much we can do.
To manipulate the integration these can help:

https://robertpanzer.github.io/blog/2015/jrubymethods.html
https://robertpanzer.github.io/blog/2014/jrubydynamics.html

Is the way to go? getReferences().getRefs() is a bit weird though. Maybe getCatalog() instead of getReferences()?.

I always assumed we have some space to divert from the core. The whole idea of Asciidoctorj was to abstract and make asciidoctor Java-idiomatic.
All these elements belong to the document semantically, and having them at that level make the API easy to use. If we all agree, and the naming does not create confusion with other elements, I think is fine. You correctly point that references.refs is weird, and also there's a concept that appears from time to time which is the "images catalog", so I am not in favor of catalog either.
In short, the proposal of putting them at document is fine.
I cannot help much on the other points you mention, I am not Ruby expert either. If we agree to place the methods at Document, you can focus on the footnotes for now, and when is done revisit the refs?

Much thanks for the continued interest and replies @abelsromero!

If we agree to place the methods at Document, ...

Yup, that works for me.

... you can focus on the footnotes for now, and when is done revisit the refs?

That's a great idea and will allow me to get earlier feedback on code.

Maybe getCatalog() instead of getReferences()?

I would say yes. It's best to keep with the terminology used by core here.
Also keep in mind that the catalog is very much an internal table intended for use in converters, but subject to change.

Ah, ok thanks @mojavelinux (and @abelsromero for the 👍), so that implies we'll go with:

Document

getCatalog()

getFootnotes()
getRefs()

Also keep in mind that the catalog is very much an internal table intended for use in converters, but subject to change.

Fair enough, thanks for the heads up. Because the Ruby API also provides access to footnotes directly under Document, does that mean it is considered less internal and subject to change? If so maybe?:

Document

getFootnotes()
getCatalog()

getRefs()

We could even mimic Ruby API more closely via:

Document

getFootnotes()
getCatalog()

getFootnotes()
getRefs()

I am happy to comply with whatever makes sense to you folks.

Because the Ruby API also provides access to footnotes directly under Document, does that mean it is considered less internal and subject to change

The footnotes method is merely a convenience for the converters. It still looks in the references catalog and is thus part of said catalog. How you want to expose these references is up to the AsciidoctorJ project.
What I mean by them being subject to change is that the catalog is an extremely minimal catalog for the purpose of completing the conversion. They are not intended to be a general metamodel for the document. Thus, what they contain is biased towards the needs of the converter.

Thanks @mojavelinux, that helps.
To AsciidoctorJ folks with an interest, I'll start with:

Document

getCatalog()

getFootnotes()
getRefs()


IE doesn't support accessing images and links with relative src and href attributes

Originally submitted to Google Code by @yanne on 14 Feb 2010

It seems that IE automatically converts relative values of src and href
attributes to absolute ones. This breaks the matching based on these
attributes in XPath. We should try to match against both relative and
absolute values of these attributes automatically, so that keywords
manipulating images and links work consistently in all browsers.

Originally submitted to Google Code by @pekkaklarck on 15 Feb 2010

Janne fixed this problem so that when src or href are used, the generated xpath
always matches using both the relative (e.g. image.png) and the absolute (e.g.
http://my.server/html/image.png) versions.


Discard message goes to empty message partial

Describe the bug
When I click discard on a message, it goes to an empty message partial.
To Reproduce
Steps to reproduce the behavior:

Go to Inbox
Click on Compose
Click discard
See empty message partial

Expected behavior
It should go back to the message partial if it was previously a message or the inbox screen if coming from an inbox.

Fixed in PR #22


Enable npm workspaces by default

Expected Behaviour
Enable NPM Workspaces in the ui.frontend module by default and allow selecting more than one frontend option (e.g.: general AND angular). This way a monorepo structure is created and easily extendable to foster reusability.
Actual Behaviour
Only one npm package is created.

If you find this interesting I would be happy to open a PR. Thank you!


Adds c3_chart_internal_fn.isTabVisible to disable transitions on inactive tabs. Fixes #924.

This adds a new function, c3_chart_internal_fn.isTabVisible, which uses the Page Visibility API to return whether the page is inactive or not. I've then called it c3_chart_internal_fn.redraw() on line 614 of src/core.js, which short-circuits the conditional and renders the chart without using d3.transition (which uses the requestAnimationFrame API, which doesn't work on inactive tabs) if the chart's browser tab is inactive.
See #924.

Looks nice. Thanks!

Yay! Thanks! :+1: :shipit:

I have serious doubts if this is a proper fix for the issue, after all it should not leak and GC correctly regardless of visibility?

@ergo The GC and memory leak issue is a separate one; I totally agree this is not the fix for that. This is merely to resolve the issue with requestAnimationFrame not firing in inactive tabs, resulting in the chart not rendering if c3.generate() is called in an inactive tab.

@ergo Yeah, this does not fix the #926 , but seems making the speed of leak slower like 0.4.8 as you reported.


Bit code support

Hi. Do you plan to compile your SDK with the ENABLE_BITCODE setting on? Most of the other SDKs that we are using have support for this.

Hi.
We are planning to support Bitcode as soon as possible. We do rely on a couple of frameworks, that are not Bitcode enabled yet, though.
Is the lack of Bitcode blocking you at the moment?
Regards,
Lukas

It is not blocking for us but we realized that all the other SDKs have transitioned to Bitcode support and were wondering when your SDK would transition.
Feel free to close this issue when BitCode support is implemented.

+1!
Would be nice to have bitcode enabled.

We would need this issue to be resolved asap. Apple has started to implement a warning about mixed executables when we upload new binaries.
What we would like to get from you is a clean, bitcode-compatible SDK. If you have older code that does not support bitcode, remove it and let us know the implications (e.g. if some older devices are not supported any longer after the change, we'll inform our clients).
Thank you. You're the last of the SDKs that we integrate with that does not have bitcode support.

Hi @dclerc .
Thanks for bringing this up again. We'll look into it as soon as possible.

+1

This will be great. I'm disabling bitcode in my whole app and frameworks to test the sumup sdk, but for an AppStore version bitcode is required for us.

Hi folks.
We know it has been a long time, let me give you an update.
We are on it. With version 3.0 of the SDK we will drop support for iOS 6/7 which will us allow to rework some internal dependencies. By doing so we will be able to finally support Bitcode and eventually move to a dynamic framework setup.
Can't give you an ETA just now but it's on our roadmap and we will have something ready in Q4.
Regards,
Lukas

Hi all.
We just published v3.0. Unfortunately we have one dependency left that still doesn't allow us to enable Bitcode. We hope to have a 3.1 early next year that adds Bitcode. Finally.
Regards,
Lukas

Hi @mollidor,
What is an update for enabled Bitcode in version 3.1? We want to use your SDK in app and it would be a problem if it will still not support Bitcode.
Regards,
Bartosz

hi any update on bit code support?

Unfortunately, there is no news on this front. We use binary dependencies that have not enabled bitcode yet, nor do we have a guarantee from their vendors that they ever will (although we do ask for it regularly, and we had some hope, as can be seen from this issue's history). These dependencies are required for important hardware integrations and cannot be dropped.
While we are aware this is not ideal, we do not expect the lack of bitcode support to be critically blocking for any integrator, as Apple only requires bitcode for tvOS and watchOS, which we do not support. We are sorry for the incovenience.

+1

Hi Guys,
Since 3 years, any update on this issue ? Nothing planned yet?
Regards,
Geoffrey.

I'm asking the same question. Maybe it's time to put some real pressure on your vendors.
It's been three years, and enabling bitcode is not hard.

Hi Geoffrey, Hi Ceroce,
Thank you for raising your concern here, what would be the use case to support bitcode?
Many thanks,

For now, enabling Bitcode allows our apps to be downloaded quicker.
However my real concern is that Apple might decide to make Bitcode mandatory to submit to the AppStore. They do enforce this kind of rules regularly.

Which dependency is problematic to support bitcode on your side ?

+1 to this. Apple is well known for making recommended things mandatory.

+1!
It would be nice to have this issue closed after 5 years!!!

Any update on this ?


Regarding iced.rs website

Contribution guide states

Cool website to serve on https://iced.rs

as one point.
Now I wonder how you would define a cool website.
One question that sprang to mind was: Should it be accessible without scripts (e.g. with NoScript enabled) or built entirely with iced?

A very first draft of the new website has landed in https://iced.rs

I am interested in trying this crate, and since it supposedly supports the web, I would have found it nice to see the examples in action, without the need of a local toolchain. What do you think about adding them to the website?


Correcting type on word error

Bug Fix for #40533
Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] All the files I changed are in the same world language, for example: only English changes, or only Chinese changes, etc.

Closes #40533

Simple Typo that has been corrected, no functionality or test-case changes.

Congrats @Durbatuluk1701 on your first pull request (PR)! 🎉
Thank you for your contribution to the page! 👍
We're happy to accept these changes, and look forward to future contributions. 📝

Congrats @Durbatuluk1701 on your first pull request (PR)! 🎉
Thank you for your contribution to the page! 👍
We're happy to accept these changes, and look forward to future contributions. 📝


Vertex and Normal data mixed up in Unity 2018.2 AssetBundles

When I use the export.py functions on Unity 2018.2 AssetBundles, the vertices and normals get mixed up in the arrays. Vertices array looks like 1 vertex Vector3, then 3 normal Vector3s, then 1 vertex Vector3, then 3 normal Vectors, etc.
Normals then has vertex position data mixed in.
I guess their format changed. Attaching an AssetBundle (simple cube) from 2018.2.
cube.assetbundle.zip

Thanks for the attachment -- any chance you can PR a fix?

If I figure out what the pattern of change is I will.

Ok, looks like they store it differently. As far as I can tell previously it went all one channel, then the next channel, then the next channel.
Now it is first vertex, all channels, then second vertex all channels, then third vertex all channels, etc.
So for my example asset, it's Vertex, Normal, Tangent, UV all for Vertex 1, then Vertex, Normal, Tangent, UV all for Vertex 2, etc.

Actually, I'm talking nonsense. It was always stored interleaved like that. I guess it's just the change in the amount of channels or something? I guess I'll have it figured by the time I finish writing the code changes for it.

Pull request is here: https://github.com/HearthSim/UnityPack/pull/79
Sorry about the whitespace changes.
I am going to be converting a ton of Unity 2018 assets with this so I will update as I find more issues.


Print version info command in help output

👋
Attempts to address #297 by printing version command similar to azure-cli:
$ node .\dist\index.js -h

Visual Studio App Center helps you build, test, distribute, and monitor mobile apps.

For version info, use 'appcenter --version'

Usage: appcenter <command>

Commands:
    analytics                      View events, audience info, sessions, and other anayltics for apps
    apps                           View and manage apps
    build                          Start builds, get their status, and download artifacts
    codepush                       View and manage CodePush deployments and releases
    crashes                        Upload symbols for better crash reports
    distribute                     Send builds to testers and manage distribution groups
    orgs                           Manage organizations
    profile                        Manage your profile
    telemetry                      Manage telemetry preferences
    test                           Start test runs and get their status
    tokens                         Manage API tokens
    help                           Get help using appcenter commands
    login                          Log in
    logout                         Log out
    setup-autocomplete             Setup tab completion for your shell

Thoughts? Admittedly is a bit odd to me printing before Usage.

This is an interesting one, actually. I'm actually thinking of fixing this by adding a "global switches" section to the bottom of all the help pages which will include --version, --output, --debug, etc. That way we can manage the list automatically rather than having to manually edit the help.
Thoughts?

Another thought - we can just print the version number itself as part of the help message.

👋 @christav I think both are great additions and would satisfy the initial issue :). I've seen both quite a bit in the wild myself.

We just print the version directly in the help now, so no need for this change.


Bug: text input ignores leading spaces

Description
When supplying something such as spinner.start(text) with a string like "   =>" it simply prints in the console as "=>"
System settings

Operating System: Arch Linus
Terminal in use: Kitty
Python version: 3.7.1
Halo version: 0.0.22
pip freeze output:
appdirs==1.4.3 astroid==2.1.0 attrs==18.2.0 backcall==0.1.0 black==18.9b0 certifi==2018.10.15 chardet==3.0.4 Click==7.0 colorama==0.3.9 cursor==1.2.0 decorator==4.3.0 docutils==0.14 enum34==1.1.6 flit==1.2.1 halo==0.0.22 idna==2.7 invoke==1.2.0 ipython==7.1.1 ipython-genutils==0.2.0 isort==4.3.4 jedi==0.13.1 Jinja2==2.10 lazy-object-proxy==1.3.1 log-symbols==0.0.11 MarkupSafe==1.1.0 mccabe==0.6.1 -e git+https://gitlab.com/iboyperson/mkproj.git@a01e7b129add68051339c447debaa3b554ef0afd#egg=mkproj mypy==0.641 mypy-extensions==0.4.1 parso==0.3.1 pexpect==4.6.0 pickleshare==0.7.5 prompt-toolkit==2.0.7 ptyprocess==0.6.0 pycodestyle==2.4.0 pyflakes==2.0.0 Pygments==2.3.0 pylint==2.2.0 pytoml==0.1.20 requests==2.20.1 shellingham==1.2.7 six==1.11.0 spinners==0.0.23 termcolor==1.1.0 toml==0.10.0 traitlets==4.3.2 typed-ast==1.1.0 urllib3==1.24.1 wcwidth==0.1.7 wrapt==1.10.11

Expected behaviour
I would expect for the leading white-space to be included in the text shown in the command line.

@manrajgrover It seems like a better default would be to rstrip the user's text instead of strip, so that trailing whitespace is removed but leading whitespace (like in the original issue) is preserved. This is less of a change than #114 , and still doesn't let the user break the spinner by having \n or \r at the end of their text (although it doesn't stop them from putting it in front...). Would be happy to produce a PR along those lines if you think that's reasonable.


conda package available - Update README.md

Hi, it's now possible to install via conda install -c conda-forge bar_chart_race see this. If you want could update README.md or I could make a PR.

Thanks very much for doing this! I've added it to the readme.


[Question] HNSW

Just curious if the HNSW algorithm is amenable to use in this project? Probably not directly because I see you are jitting in the distance metric but curious if it is worth a look into that algorithm for the nn search vs random projections? It is consistently the top performing algorithm on the ann shootout and I was wondering if the performance of UMAP is significantly impacted by the NN component and if so would incorporating HNSW make a meaningful difference?

Thanks for the suggestions @andrewluetgers. I have spent a little bit of time looking into this, and for now haven't quite reached a tipping point of implementing HNSW for UMAP.
At the end of the day, UMAP needs an approximate knn-graph. One way to get that is to use an approximate nearest neighbor algorithm (like NN-descent or HNSW) to find the k-nearest-neighbors of every point.  Now such algorithms have two steps: the first is index construction, when you build a data structure that will help you in the search; and the second is querying, where you make use of the index to perform an approximate nearest neighbor search for a query point. HNSW is far and away the fastest algorithm at the querying phase -- once you've constructed the index the process of finding approximate nearest neighbors for query points is extremely efficient. It is the querying phase that the ANN-benchmarks measures (as this is the primary task for ANN problems; index construction is usually a one-off). The catch is that index construction for HNSW is only in the "pretty fast" category. In contrast the index that NN-descent build is the knn-graph. So for NN-descent in UMAP we actually don't need the search phase, we just need to construct the index and we are done. That tends to give NN-descent an advantage that is apparent from ANN-benchmarks alone.
At the same time, I like HNSW, and as you note, it is the best performing algorithm for querying. It is possible that the full index construction and query might still be faster than NN-descent index construction. It requires a numba-jitted implementation though, and that would take a while to write ... so for now I haven't quite gotten to it.

FWIW I have looked at replacing Annoy with HNSW in uwot, but I wasn't able to find settings where the increase in query speed offset the increase in index building.

@lmcinnes wow thanks for the extremely informative response. I never considered the index time vs query time. Sounds like there is little to gain for a lot of work.


zenbot train broken by 4fa9d8a565db8e56115f1578c9da185c4369012f

You just get back the train options when you try to run something.

docker run --link zenbot_mongodb_1:mongodb -v /docker/mounts/zenbot/models:/app/models -it zenbot_server ./zenbot.sh train --days_training 1 --days_test 1 gdax.BTC-USD

Usage: zenbot [options] [command]

  Options:

    -V, --version  output the version number
    -h, --help     output usage information

  Commands:

    list-selectors                 list available selectors
    list-strategies                list available strategies
    backfill [options] [selector]  download historical trades for analysis
    sim [options] [selector]       run a simulation on backfilled data
    train [options] [selector]     Train the binary buy/sell decision tree for the forex.analytics strategy
    balance [options] [selector]   get asset and currency balance from the exchange
    trade [options] [selector]     run trading bot against live market data
    buy [options] [selector]       execute a buy order to the exchange
    sell [options] [selector]      execute a sell order to the exchange

Try running:
docker run --link zenbot_mongodb_1:mongodb -it zenbot_server train --days_training 1 --days_test 1 gdax.BTC-USD

Yes, that should work.  It's because they changed the ENTRYPOINT to  ["/usr/local/bin/node", "zenbot.js"] in that commit.


nether coords math.s

your friend is at 2000 3000 you wanna meet em but thats  far away so use the netehr to get there faster and you cant math  lets add someting like "Nether Coords: x, z," where x and z is just overworld divided by 8 i t a

Thanks a lot for your feedback on the mod, not a bad idea I will implement this soon in the next update.

Done, waiting for your feedback

ok nvm


Support for illegal_bins and ignore_bins

Hi @mballance
For some cases, I need these coverage features for our coverage flow.
Somehow, I have created the Workaround for ignore_bins (For enum types only).
My WA is getting pretty large for other data types (like int, bit, etc).
I believe, sooner or later PyVSC needs this for coverage which will help the wider audience.
It would be great if you can take a look to add this in the upcoming release.
If required, I will work on creating some test cases for these.
Regards,
Anil

Hi @aneels3,
Thanks for raising this request. In this case, a testcase would actually be very helpful in better-understanding your usecase and how it relates to full SV-style support of ignore_bins/illegal_bins.
Can you point me to your workaround for ignore_bins on Enum types? I assume you are explicitly listing the bins you want to cover, instead of (with less effort) listing just the enum values you wish to ignore.
For now, is your primary interest in having ignore_bins/illegal_bins just for coverpoints? Or, does your usecase require crossbins as well?
Finally, in your usecase, what is the preferred behavior for a hit in an illegal_bin?

Silently record the hit in the coverage database
Record the hit in the coverage database and issue a warning in the transcript
Raise a runtime exception

Thanks and Best Regards,
Matthew

Hi @mballance
I have created the WA for ignore bins for cp_rd coverpoint in c_lui_cg where I am using a  new enum class riscv_reg_ex_zero_sp_t by excluding the enum elements (ZERO and SP registers).

ignore_bins/illegal_bins is currently required for coverpoints.

For illegal_bin behaviour (Raising a runtime exception will work)
There is only one case where I have to use the illegal_bin
For ignore_bins, I will provide you with the test-cases (on data types other than enum)
Thanks and Regards,
Anil

Hi @mballance
I have created a small testcase for ignore_bins.
Please take a look.
Do let me know if you want more information on this.
import vsc

@vsc.randobj
class ignore_bins_test(object):
    def __init__(self):
        self.a = vsc.rand_int32_t()
        self.value = vsc.rand_bit_t(32)

@vsc.covergroup
class val_cg(object):
    def __init__(self):
        self.instr = None
        self.cp_val = vsc.coverpoint(lambda: self.instr.value[7:5],
                          vsc.ignore_bins invalid_value = [0b101, 0b110])
        self.cp_a = vsc.coverpoint(lambda: self.instr.a,
                          vsc.ignore_bins invalid_a = [5, 3, 100, 124, 1110])

test_obj = ignore_bins_test()
val_cg_i = val_cg()
for i in range(5):
    test_obj.randomize()
    print("a = {}, value = {}".format(test_obj.a, test_obj.value))
    val_cg_i.instr = test_obj
    val_cg_i.sample()
print("coverage: ", cover.get_coverage())

Regards,
Anil

Hi @aneels3,
I've added support for ignore and illegal bins in the 0.6.1 release. Note that you'll need to have pyucis 0.0.5 installed. This should happen when you update pyvsc because the setup.py for pyvsc has a version dependency on pyucis 0.0.5.
Have a look at the docs and a few of the tests to see how to use the feature:
https://github.com/fvutils/pyvsc/blob/ce1c398f5e182f9db4c54117cc8a02aea716d77b/ve/unit/test_coverage_igore_bins.py#L22-L34


[shardformer] support Blip2

📌 Checklist before creating the PR

[x] I have created an issue for this PR for traceability
[x] The title follows the standard format: [doc/gemini/tensor/...]: A concise description
[x] I have added relevant tags if possible for us to better distinguish different PRs

🚨 Issue number

Link this PR to your issue with words like fixed to automatically close the linked issue upon merge
e.g. fixed #1234, closed #1234, resolved #1234
fixed #4242

📝 What does this PR do?

Summarize your work here.
if you have any plots/diagrams/screenshots/tables, please attach them here.
support blip2 model

💥 Checklist before requesting a review

[x] I have linked my PR to an issue (instruction)
[x] My issue clearly describes the problem/feature/proposal, with diagrams/charts/table/code if possible
[x] I have performed a self-review of my code
[x] I have added thorough tests.
[x] I have added docstrings for all the functions/methods I implemented

⭐ Do you enjoy contributing to Colossal-AI?

[x] 🌝 Yes, I do.
[ ] 🌚 No, I don't.

Tell us more if you don't enjoy contributing to Colossal-AI.


Update main branch with minor adjustments from dev branch

Resolved issues #14 and #17.
Issue #2 needs additional testing


How to generate point clouds like the one in the paper

I have generated point clouds using "generate_lidar_from_depth.py" with depth maps. I visulized the point clouds by mayavi, however very different from the one in the paper. The point clouds I generated has red distorations (inside the red circle)and some long tails. Anyone knows how to get the point clouds properly?

This part may be caused by a wrong depth estimate in the sky. You can try to set the maximum height to 0.2m in generate_lidar_from_depth.py.

Thanks!  Is it 0.2m too small for visualize cars? And, which visualization tools do you use? Can you get ideal point clouds output?


Upgrade to Conan 2

Building on @eidekrist's earlier work, here I've completed the transition to Conan 2. The main changes are:

Updated conanfile.py to the new format.
Updated conan invocations in the GH Actions workflow to use the new command-line options.
Switched to using version ranges for dependencies, for greater flexibility.
Removed most of the custom find_package scripts, relying instead on package configuration files provided by Conan (in Conan builds) or by upstream (in non-Conan builds).
Removed the ability to run Conan from within CMake.

Regarding the last point: I really tried to make this work, but the upstream cmake-conan project has not released a version with full support for all features yet. Notably, their current development version does not support the CMakeToolchain generator. I also tried to modify the Build workflow to use Conan 1.61, but unfortunately, that version does not have sufficient support for Conan 2.0 features. I suggest we reintroduce this as soon as upstream releases a more feature complete cmake-conan version.

The "Build and test" workflow fails in the "Build" step for reasons I do not understand and don't really know how to debug, because the exact same commands work perfectly on my computer. It's complaining that <thrift/Thrift.h> cannot be found, even though the find_package(Thrift) command apparently succeeds in the "Generate build system" step. (And it also builds just fine when the whole process is driven by Conan in the "Upload Conan packages" workflow.)
@markaren, @davidhjp01, all ideas are welcome. And it would be great if you too could test the same commands locally if you have the chance.


rustfmt

I'd like to make some other changes and submit them, but I have my editor set to run rustfmt by default when saving a file. I can obviously disable this, but would a pull request that only runs rustfmt be welcome?

I'm open to this, but only if rustfmt can be configured to be fairly close to the existing style.  Last time I checked out rustfmt it had a bunch of idiosyncrasies and rough edges, and I wasn't able to get it to do what I wanted (admittedly this was almost a year ago).  If you want to throw up a PR we can take it from there.  Thanks!


Update settings not available

I suggest an info is added to the "What's new or changed" part that the update settings in the LCS project settings is not available. According to Microsoft support, automatic updates are not available with self service environments.

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

ID: 6c7f272b-4ea7-a285-4a9f-e67583a664e0
Version Independent ID: 54ac0c3d-a2b5-6001-1581-167dd87a80c0
Content: Self-service deployment overview
Content Source: articles/fin-ops-core/dev-itpro/deployment/infrastructure-stack.md
Service: dynamics-ax-applications
Product: ****
Technology: ****
GitHub Login: @sarvanisathish
Microsoft Alias: sarvanis

@FH-Inway, thanks for the suggestion.
@sarvanisathish, please consider making updates as noted.

Please reviews this, as I can see this is now available and no longer an issue

@Angelos102 If update settings are now available for all LCS projects with self service environments, then this issue can be closed.


Saving files in application directory using localhost

At this point we know webview does not support file://
However, I need to persist images and pdfs in the application directory. Is it possible to access the application directory and/or save and open files when using WebView?

WebView doesn't support file:// for displaying, but you can use cordova-plugin-file for writing/reading without problems.


TE-10704 Fixed message about not supported return type and added message for absent param type

Related PRs:


Implement "contains" (v5) as inline keyword

At the moment it uses macro extension to { not: { items: { not: { ... } } } that has to perform full array scan in all cases, while contains only needs to find the first item that is valid.

That's only the case in allErrors: true mode, and that's the common problem with not keyword, rather than with this specific keyword.
So this keyword can be left as is while not keyword can be improved.


Small Language Model

Small Language Model

Microsoft Research developed 3 models (phi-1, phi-1.5, and phi-2).
phi-1
Paper: Textbooks Are All You Need
phi-1.5
Paper: Textbooks Are All You Need II: phi-1.5 technical report
phi-2
Blog:
Phi-2: The surprising power of small language models


feat(tracelog): add tracelog in metanode http server

What this PR does / why we need it:
add tracelog in metanode http server.
Which issue this PR fixes:

fixes #
Special notes for your reviewer:
Release note:

PDF file

What this PR does / why we need it: add tracelog in metanode http server.
Which issue this PR fixes:
fixes #
Special notes for your reviewer:
Release note:

tracelog-meta


Added parser for iosxe/show_wlan_summary

submit pr

Cisco PR https://github.com/CiscoTestAutomation/genieparser/pull/256 created


adding Omar Agiz

Related issue

What changes does this PR do?
Screenshots (If any)
Questions

I just edited the file and added my name using the two-mentioned ways.  Any advice to move from here to be prepared to participate in hacktoberfest?

Closing this in favor of #3126

I just edited the file and added my name using the two-mentioned ways. Any advice to move from here to be prepared to participate in hacktoberfest?

You can join our discord server and check out the good-first-issue repo of eddiehub. Here you find easy issues you can try to fix.


feat: Add Python 3.11 support

Feature or Bugfix

Feature

Detail

With the recent launch of Python 3.11, AWS SDK Pandas has to be extended as well

Relates
Not applicable
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: 36f965aba60497d7136fa44ae36631e9f2ead78d
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: f4204f61ade00d3260b0c5acc281d37dc3906866
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 36f965aba60497d7136fa44ae36631e9f2ead78d
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: f4204f61ade00d3260b0c5acc281d37dc3906866
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 395b82fb37915deab6c4c707f17c8ff7b578290e
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: 620fb60ee3c3282a870cdb88b62e4d6379b01f55
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 620fb60ee3c3282a870cdb88b62e4d6379b01f55
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


update /ja/docs/setup/best-practices/node-conformance/

fixes #21323
diff of English page
https://gist.github.com/oke-py/6472946ea5023faa5930f70743e37db7

/assign @nasa9084

/approve

/lgtm


This library isn't compatible with autolinking

I get a non-fatal error when running react-native run-android:
error React Native CLI uses autolinking for native dependencies, but the following modules are linked manually: - react-native-google-signin
Steps to Reproduce
$ react-native run-android
error React Native CLI uses autolinking for native dependencies, but the following modules are linked manually:
  - react-native-google-signin (to unlink run: "react-native unlink react-native-google-signin")
This is likely happening when upgrading React Native from below 0.60 to 0.60 or above. Going forward, you can unlink this dependency via "react-native unlink <dependency>" and it will be included in your app automatically. If a library isn't compatible with autolinking, disregard this message and notify the library maintainers.
Read more about autolinking: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md

Unlinking does not solve the problem.
Expected Behavior
No error/warning
Actual Behavior
Error shown when running react-native run-android
Environment
Using:

react-native 0.60.5
react-native-google-signin ^2.1.0

hi!

The command runs correctly, but on the next react-native run-android, I get
the same error...
Il gio 3 ott 2019, 19:04 Vojtech Novak<EMAIL_ADDRESS>ha
scritto:

hi!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/react-native-community/react-native-google-signin/issues/746?email_source=notifications&email_token=AAGPJZ5JSKYMUSY2E3N2TJLQMYQYLA5CNFSM4I5FJOG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAI4H7A#issuecomment-538035196,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGPJZZL2L7BBXAS5FGTVNDQMYQYLANCNFSM4I5FJOGQ
.

how does your MainApplication.java look like? also paste build.gradle and settings.gradle please

MainApplication.java:

import android.app.Application;
import android.util.Log;

import com.facebook.react.PackageList;
import com.facebook.hermes.reactexecutor.HermesExecutorFactory;
import com.facebook.react.bridge.JavaScriptExecutorFactory;
import com.facebook.react.ReactApplication;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.soloader.SoLoader;

import java.util.List;

import org.reactnative.camera.RNCameraPackage;

public class MainApplication extends Application implements ReactApplication {

  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
    @Override
    public boolean getUseDeveloperSupport() {
      return BuildConfig.DEBUG;
    }

    @Override
    protected List<ReactPackage> getPackages() {
      @SuppressWarnings("UnnecessaryLocalVariable")
      List<ReactPackage> packages = new PackageList(this).getPackages();
      // Packages that cannot be autolinked yet can be added manually here, for example:
      // packages.add(new MyReactNativePackage());
      //packages.add(new RNCameraPackage());
      return packages;
    }

    @Override
    protected String getJSMainModuleName() {
      return "index";
    }
  };

  @Override
  public ReactNativeHost getReactNativeHost() {
    return mReactNativeHost;
  }

  @Override
  public void onCreate() {
    super.onCreate();
    SoLoader.init(this, /* native exopackage */ false);
  }
}

android/build.gradle:
apply plugin: "com.android.application"

import com.android.build.OutputFile

/**
 * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
 * and bundleReleaseJsAndAssets).
 * These basically call `react-native bundle` with the correct arguments during the Android build
 * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
 * bundle directly from the development server. Below you can see all the possible configurations
 * and their defaults. If you decide to add a configuration block, make sure to add it before the
 * `apply from: "../../node_modules/react-native/react.gradle"` line.
 *
 * project.ext.react = [
 *   // the name of the generated asset file containing your JS bundle
 *   bundleAssetName: "index.android.bundle",
 *
 *   // the entry file for bundle generation
 *   entryFile: "index.android.js",
 *
 *   // https://facebook.github.io/react-native/docs/performance#enable-the-ram-format
 *   bundleCommand: "ram-bundle",
 *
 *   // whether to bundle JS and assets in debug mode
 *   bundleInDebug: false,
 *
 *   // whether to bundle JS and assets in release mode
 *   bundleInRelease: true,
 *
 *   // whether to bundle JS and assets in another build variant (if configured).
 *   // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
 *   // The configuration property can be in the following formats
 *   //         'bundleIn${productFlavor}${buildType}'
 *   //         'bundleIn${buildType}'
 *   // bundleInFreeDebug: true,
 *   // bundleInPaidRelease: true,
 *   // bundleInBeta: true,
 *
 *   // whether to disable dev mode in custom build variants (by default only disabled in release)
 *   // for example: to disable dev mode in the staging build type (if configured)
 *   devDisabledInStaging: true,
 *   // The configuration property can be in the following formats
 *   //         'devDisabledIn${productFlavor}${buildType}'
 *   //         'devDisabledIn${buildType}'
 *
 *   // the root of your project, i.e. where "package.json" lives
 *   root: "../../",
 *
 *   // where to put the JS bundle asset in debug mode
 *   jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
 *
 *   // where to put the JS bundle asset in release mode
 *   jsBundleDirRelease: "$buildDir/intermediates/assets/release",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in debug mode
 *   resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in release mode
 *   resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
 *
 *   // by default the gradle tasks are skipped if none of the JS files or assets change; this means
 *   // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
 *   // date; if you have any other folders that you want to ignore for performance reasons (gradle
 *   // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
 *   // for example, you might want to remove it from here.
 *   inputExcludes: ["android/**", "ios/**"],
 *
 *   // override which node gets called and with what additional arguments
 *   nodeExecutableAndArgs: ["node"],
 *
 *   // supply additional arguments to the packager
 *   extraPackagerArgs: []
 * ]
 */

project.ext.react = [
    entryFile: "index.js",
    enableHermes: false,  // clean and rebuild if changing
]

apply from: "../../node_modules/react-native/react.gradle"

/**
 * Set this to true to create two separate APKs instead of one:
 *   - An APK that only works on ARM devices
 *   - An APK that only works on x86 devices
 * The advantage is the size of the APK is reduced by about 4MB.
 * Upload all the APKs to the Play Store and people will download
 * the correct one based on the CPU architecture of their device.
 */
def enableSeparateBuildPerCPUArchitecture = false

/**
 * Run Proguard to shrink the Java bytecode in release builds.
 */
def enableProguardInReleaseBuilds = false

/**
 * The preferred build flavor of JavaScriptCore.
 *
 * For example, to use the international variant, you can use:
 * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
 *
 * The international variant includes ICU i18n library and necessary data
 * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
 * give correct results when using with locales other than en-US.  Note that
 * this variant is about 6MiB larger per architecture than default.
 */
def jscFlavor = 'org.webkit:android-jsc:+'

/**
 * Whether to enable the Hermes VM.
 *
 * This should be set on project.ext.react and mirrored here.  If it is not set
 * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
 * and the benefits of using Hermes will therefore be sharply reduced.
 */
def enableHermes = project.ext.react.get("enableHermes", false);

android {
    compileSdkVersion rootProject.ext.compileSdkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        applicationId "com.youmed"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 1
        versionName "1.0"
        missingDimensionStrategy 'react-native-camera', 'general'
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
        }
    }
    signingConfigs {
        debug {
            storeFile file('debug.keystore')
            storePassword 'android'
            keyAlias 'androiddebugkey'
            keyPassword 'android'
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
        release {
            // Caution! In production, you need to generate your own keystore file.
            // see https://facebook.github.io/react-native/docs/signed-apk-android.
            signingConfig signingConfigs.debug
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        }
    }
    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // https://developer.android.com/studio/build/configure-apk-splits.html
            def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }

        }
    }

    packagingOptions {
        pickFirst '**/armeabi-v7a/libc++_shared.so'
        pickFirst '**/x86/libc++_shared.so'
        pickFirst '**/arm64-v8a/libc++_shared.so'
        pickFirst '**/x86_64/libc++_shared.so'
        pickFirst '**/x86/libjsc.so'
        pickFirst '**/armeabi-v7a/libjsc.so'
    }
}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.facebook.react:react-native:+"  // From node_modules

    if (enableHermes) {
      def hermesPath = "../../node_modules/hermesvm/android/";
      debugImplementation files(hermesPath + "hermes-debug.aar")
      releaseImplementation files(hermesPath + "hermes-release.aar")
    } else {
      implementation jscFlavor
    }

    // for google signin
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.android.support:appcompat-v7:23.0.1"
    implementation "com.facebook.react:react-native:+"
    implementation(project(":react-native-google-signin"))
}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}

apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
apply plugin: 'com.google.gms.google-services'

android/settings.gradle:
rootProject.name = 'YouMed'
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app'

hi! ~What happens whan you run react-native unlink react-native-google-signin? (as adviced)~
hi, please note you need to use version 3!
When I try to upgrade react-native-google-signin to version 3, with command

yarn upgrade<EMAIL_ADDRESS>
I'm shown a list of versions to pick one, the highest of them being 2.1.0... What do I miss? Should I use npm ?

please remove implementation(project(":react-native-google-signin"))
for upgrading, see https://github.com/react-native-community/react-native-google-signin/releases

Using @react-native-community/google-signin (@3.0.0) did the trick.
Thanks!

I am facing the same issue.  I removed the implementation as suggested above, but can't see to figure out how to remove the bottom


Know The Complete Process of FUE Hair Transplant Surgery

In this video, we will demonstrate the live surgery with the entire process from beginning till the end and you will get the complete idea of how the surgery takes place and all the other factors are needed to be considered for dense hair transplant.To avail our best services of laser hair removal clinic in mumbai, book your appointment today.
[](https://www.youtube.com/watch?v=zVeJ4dXTbPQ

In this video, we will demonstrate the live surgery with the entire process from beginning till the end and you will get the complete idea of how the surgery takes place and all the other factors are needed to be considered for dense hair transplant.To avail our best services of laser hair removal clinic in mumbai, book your appointment today.
[](https://www.youtube.com/watch?v=zVeJ4dXTbPQ


Can run user defined gemini queries. fix #153

Oh, this is nice @moonso !!

Yes but @robinandeer should have cred to :camel:

Please merge @guillermo-carrasco !!

tooo slow @guillermo-carrasco !!


Configure Azure Pipelines

This configuration builds the application and produces builds for both Debug and Release configurations.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: mtzavellas sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


Add the option to uv add to pin to latest version of package

Current behaviour
When you run uv add without specifying a version constraint, it defaults to >= latest version. I think this is a good default.
uv init --app --python 3.12.5
uv add black

cat pyproject.toml
# [project]
# name = "example-2"
# version = "0.1.0"
# description = "Add your description here"
# readme = "README.md"
# requires-python = ">=3.12.4"
# dependencies = [
#     "black>=24.8.0",
# ]

Idea
It would be helpful if there was an option to specify a different version constraint. For example:
uv add black --pin-to-latest

cat pyproject.toml
# [project]
# name = "example-2"
# version = "0.1.0"
# description = "Add your description here"
# readme = "README.md"
# requires-python = ">=3.12.4"
# dependencies = [
#     "black==24.8.0",
# ]

Use case
When developing apps, I do not need to support a range of different versions. I could instead do the following:
uv add black==24.8.0

The only downside to the above, is that it requires me to know the latest version of black. This is easy to find, searching on PyPI. But, I find this is a common enough task I do that I would like a shorthand to install the latest version, but also pin to that specific version.

The lockfile is used for pinning versions: https://docs.astral.sh/uv/concepts/projects/#project-lockfile
I think it's almost always an anti-pattern to pin to the latest version in your pyproject.toml. Can you share more about why using the lockfile to manage pins is not ideal for your use-case?

Thanks for getting back to me @zanieb. Maybe I need to do some more reading on how the lockfile works, but my thinking is as follows:

I am using uv to manage a project that is an app. I have no concern about supporting multiple versions of packages or Python.
For example, lets pretend my app is a FastAPI app.
I want to tightly control the version of FastAPI I am using. When I upgrade to a new version, I want it to be really explicit, so I pin FastAPI to a specific version.
I am less worried about the transitive dependencies of FastAPI. I will let the resolver figure out the latest versions of the packages that will work with my desired version of FastAPI.
To achieve this, I was using a workflow like this:

# requirements.in
fastapi==0.112.2

Then use pip compile to create a requirements.txt

uv pip compile requirements.in --quiet --output-file requirements.txt uv pip sync requirements.txt

In the context of building an app (as opposed to a library) do you think it makes sense to pin top level dependencies in pyproject.toml?

I think even with an application, it makes sense to leave the version in the pyproject.toml unpinned.
There is --upgrade-package <name> which is helpful if you want to only upgrade a single package — but that doesn't quite solve your transitive dependency use-case. I think what you're looking for is more control over how we do upgrades. For example, these don't exist, but would probably help with your use-case?

--no-upgrade-package <name>
--upgrade-strategy <transitive | direct>

You definitely can still pin your packages in your pyproject.toml, but I'm not sure it makes sense for us to prioritize support for doing it automatically?

Hi @zanieb thanks for the thoughtful response. I think I agree, it does not make sense for uv to add anything to the CLI at this time to automatically pin to the latest.
I think that maybe my mental model has been wrong and I am not fully Embarrassing the correct use of pyproject.toml and uv.lock.

pyproject.toml: broad requirments
uv.lock: exact requirements

I will try this workflow for a longer period of time and see if I run into any challenges. Thank you for your help!

The lockfile is used for pinning versions: docs.astral.sh/uv/concepts/projects#project-lockfile
I think it's almost always an anti-pattern to pin to the latest version in your pyproject.toml. Can you share more about why using the lockfile to manage pins is not ideal for your use-case?

@zanieb why is it an anti-pattern to pin the version in pyproject.toml?
npm/pnpm add --save-exact for example will pin the version in package.json.
These days we have renovate which can update both pyproject.toml and uv.lock, so we there's no problem with pinning the version.
In turn we get a more stable lock file which can't change without notice.
Please let me know if we can reopen this issue or if i'll should open a new issue instead.

I think it feels slightly 'off' to have pyproject.toml say something like flask>=1, but the lockfile say flask==3.1.0. If that's the case, flask==1 is probably very much not a valid requirement any more. uv add -U flask will only upgrade uv.lock, and not bump the range in pyproject.toml. So over time, without manual management, pyproject.toml will gradually just be less and less in line with reality?

This is why projects should also test against the lowest supported versions of packages, e.g., with --resolution lowest-direct.
See https://github.com/astral-sh/uv/issues/6794 for discussion on updating the pyproject.toml during upgrade.

The project metadata is used to declare supported ranges. The lockfile is used to pin to a consistent version within that range. Using the project metadata to pin to an exact version is overly restrictive, e.g., the project won't be installable alongside other projects, the resolver can't solve for the pinned version for you, etc.

This is why projects should also test against the lowest supported versions of packages, e.g., with --resolution lowest-direct.

I think I disagree in a few places.
For libraries, it makes sense to test against lowest direct resolution. For applications, you don't ever need to support ranges - your direct dependencies are only ever going to be one thing?
Also, for applications, the lockfile is more about pinning exact versions of transitive dependencies than it is for saying what version of direct dependencies you care about, I think.

@zanieb why is it an anti-pattern to pin the version in pyproject.toml?

The project metadata is used to declare supported ranges. The lockfile is used to pin to a consistent version within that range. Using the project metadata to pin to an exact version is overly restrictive, e.g., the project won't be installable alongside other projects, the resolver can't solve for the pinned version for you, etc.

In turn we get a more stable lock file which can't change without notice.

The lockfile already shouldn't change without notice — it'll only change if the inputs change or you pass --upgrade

The lockfile will change if I add another dependency to pyproject.toml, this change could bump the version and possibly break my existing dependencies.
I'm using the pyproject.toml for installing CLI tools via devDependencies (for example yamllint, ansible etc.), I want each tool to be locked to a specific version and a change to one tool's version should not change the other tools versions.
I think this is becoming more of a philosophical/opinionated discussion on how people should work with pyproject.toml and uv.lock.
Some of us prefer to lock the versions down within pyproject.toml, and as I've mentioned before there is a precedence to this with npm add --save-exact.

and as I've mentioned before there is a precedence to this with npm add --save-exact

I have never seen that option before with NPM. But I would like to have something similar with uv :)


Relocate SleuthSpanContextSupplier

This PR relocates SleuthSpanContextSupplier as its package name seems to have a duplicate of "prometheus" accidentally.

Thank you! :)


[chip-test, hmac] chip_sw_hmac_stress

Test point name
chip_sw_hmac_stress
Host side component
Rust?
Opentitantool infrastructure implemented
Yes
Silicon Validation (SiVal)
Yes
Emulation targets

[ ] None
[ ] CW310
[ ] Hyperdebug + CW310

Contact person
Checklist
Please fill out this checklist as items are completed. Link to PRs and issues as appropriate.

[ ] Check if existing test covers most or all of this testpoint (if so, either extend said test to cover all points, or skip the next 3 checkboxes)
[x] Device-side (C) component developed
[x] Bazel build rules developed
[x] Host-side component developed
[ ] Test added to dvsim nightly regression (and passing at time of checking)
[x] For SiVal test cases, test is running relevant FPGA or silicon regression

This test is not suitable for dvsim given the time required to execute.


how to add fabfuel/prophiler package to phalcon php

Hi All,
when I add fabuel/prophiler package. I have a problem. please preview image below:

this is my index.php:
handle()->getContent();
} catch (\Exception $e) {
    echo $e->getMessage();
}

$profiler = new \Fabfuel\Prophiler\Profiler();

$toolbar = new \Fabfuel\Prophiler\Toolbar($profiler);
$toolbar->addDataCollector(new \Fabfuel\Prophiler\DataCollector\Request());
echo $toolbar->render();

In config.php
I add row: 'debugbar'       => APP_PATH . '/vendor/',
In loader.php
I add row: $config->application->debugbar,

it is that all. Help please!

Hey,
looks like you did not load the composer autoloader.
Add this to the top of your script:
require_once 'vendor/autoload.php';

Or the appropriate path to the file.
Best
Fabian

it's work!.
Thank you


Feature/cola auth

Are there any tests that we can add here? Didn't George add some for Ask AI COLA stuff which could be ported over?

Are there any tests that we can add here? Didn't George add some for Ask AI COLA stuff which could be ported over?

+1 on this, the more we can move out of application code into here the better

Are there any tests that we can add here? Didn't George add some for Ask AI COLA stuff which could be ported over?

+1 on this, the more we can move out of application code into here the better

Unfortunately, in this instance, there isn't really any because the package doesn't really have a concept of django or any templates/views to test access to

Are there any tests that we can add here? Didn't George add some for Ask AI COLA stuff which could be ported over?

+1 on this, the more we can move out of application code into here the better

Unfortunately, in this instance, there isn't really any because the package doesn't really have a concept of django or any templates/views to test access to

I'm pretty sure we can do this either this either via mocking  by including a small test app in the tests, let's come back to this in another PR later.


Item page: accordion component

Type
:sparkles: Feature
UI Requirements
Coming soon!
Acceptance criteria

Closed by #1186


Add a few new features

details flag for watch
ports option for run
pass through pipeline runtime environment variables

@gkelly added an example of using the ports option


fix: when configurationData is not nil, it doesn't populate

Problem is re-point the pointer would modify a copied object not the original.
Since passing struct to GetConf would not work. a reflection check will assure caller passes pointer to struct.

Thanks @ShermanZhou.


[N000184] Rep. Kristi Noem

Rep. Kristi Noem:
http://noem.house.gov
Likely contact form URL to start with:
http://noem.house.gov/index.cfm/contact

YMAL file not found. I am working on it.


Fix CHANGETYPE in ol.control.FullScreen

Fixes error from early enumeration of a constant relying on the existence and proper instantiation of the body DOM element.

Better, but still not 100% safe. When the ol.control.FullScreen instance is created before the document's body is available, this will still fail. Better to determine the type in #setMap().

Right. Now it is set only once (presumably), however I think this micro-optimization could be removed, if that would produce a cleaner code.

The micro-optimisation is fine, but it would look nicer in its own ol.control.FullScreen.getChangeType_ function:
ol.control.FullScreen.getChangeType_ = function() {
  var changeType;
  return function() {
    if (!changeType) {
      var body = document.body;
      if (body.webkitRequestFullscreen) {
        changeType = 'webkitfullscreenchange';
      } else if (body.mozRequestFullScreen) {
        changeType = 'mozfullscreenchange';
      } else if (body.msRequestFullscreen) {
        changeType = 'MSFullscreenChange';
      } else if (body.requestFullscreen) {
        changeType = 'fullscreenchange';
      }
    }
    return changeType;
  }
};

That would also store the value across instances.

Please clarify about storing the value across instances. Should we store the return value in a constant on first call?

What if we use document.exitFullscreen to get the correct event type? Could this work? it is making assumptions about prefixing though.
i.e.
CHANGETYPE = (function() {
  if (document.exitFullscreen) {
    return 'fullscreenchange';
  } else if (document.msExitFullscreen) {
    return 'MSFullscreenChange';
  } else if (document.mozCancelFullScreen) {
    return 'mozfullscreenchange';
  } else if (document.webkitExitFullscreen) {
    return 'webkitfullscreenchange';
  }
  return undefined;
})();

Please clarify about storing the value across instances. Should we store the return value in a constant on first call?

The snippet I posted above does that already. The constant is changeType.

@nicholas-l, that would also work. The error is weird, make ci runs without an error on my side.

@GaborFarkas Thanks for updating this pull request. Reading the diff, I realized that my snippet returns a function that returns a string instead of a string. Would you mind cherry-picking 96e7af9bd6d57f1432d8408dd683904a6798dba0? Then everything should be fine. Thanks

Done, @ahocevar. Thank you for the fix.

@bartvde This fixes a regression. Not sure if it warrants a bugfix release, but I imagine many users include the OpenLayers script in the<head> of the document, and this is broken in v3.17.0.

Thanks @GaborFarkas. One minor thing: you missed the @private annotation for the ol.control.FullScreen.getChangeType_ function.

Now it should be good. Thanks for the review.

Right, I'll see if I can do 3.17.1 with this fix today @ahocevar thanks for handling this over the weekend guys.


Fix Index.html

it is related to deployment. maintainer please check this out. I already updated index.html, not reflecting on the site but on the repository.

@isaurabhverma @Bhanu-code
Okay fixed the index.html, now just need to update the list we'll update the list on every weekend of hacktoberfest, the reason is simple project list will be updating many time  and we can't update is every single time, so we'll be updating this on every weekend 👍👍


Refactor query timeouts

This PR refactors internals, specifically how scheduleStaleTimeout and scheduleGarbageCollection works behind the scenes, but leaves the documented public API unaffected. An earlier version was begun in #728, but has been fleshed out here and made sense as it's own PR.
The main goal is to remove scheduling of timeouts from the constructor of Query and instead let the consumer creating a new Query mark when timeouts are ready to be scheduled. This is needed to implement hydration, but will also make it easier to remove scheduling of timeouts from the render-phase in useBaseQuery as a next step.

Remove scheduling timeouts from constructor
Require explicit timeout activation via new query.activateTimeouts()

This only applies internally and specifically anyone using buildQuery. This is an undocumented API, so should be okay to change?

Refactor all internal code to use activateTimeouts
Rename schedule(GC/StaleTimeout) to rescheduleX
Make reschedule-methods do the right thing based on query state

Previously we relied on these methods being called only at the correct times, now they can be called safely at any time
In a sense, this refactor mirrors how state and effects work in React, they "sync the timeout-sideeffects to what the current state is"
This gathers all the logic for stale/GC in their respective functions instead of being spread out

Stale timeout is now based on updatedAt

Besides being necessary for the "reschedule"-approach, this is also necessary for hydration.
This could schedule queries to be stale a few ms earlier than previously (equivalent to execution time between updatedAt is set to when the timeout is scheduled, which is a sync process). Docs makes no promises about exact details here so this should be fine since the meaning of staleTime is preserved.

All tests are passing, I'm open to suggestions for adding new ones if there is something we need to verify further.
I'm not sure about the naming of activateTimeouts(), it could also be a more generic initialize() that could contain any future side effects for setting up queries. It could also be just rescheduleTimeouts() which would reflect that it actually schedules those timeouts and that it's is fine to use repeatedly, but that would loose the pretty important semantics that no timeouts will be scheduled until this function is called for the first time.
This is just an undocumented internal name though and easy to change, where it's used now I think activateTimeouts() makes sense, but I'm very open to suggestions. 😄

:tada: This PR is included in version 2.12.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


support Math.imul

see: https://mail.mozilla.org/pipermail/es-discuss/2012-November/026126.html

This seems to be done, runtime/ejs-math.c L319-L340


⚠ Bofrost.be has degraded performance

In 8cf90cd, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1177 ms

Resolved: Bofrost.be performance has improved in c295193.


Add basic Capsicum sandbox support.

This places everything but netproc in capability mode on FreeBSD.
Lightly tested on FreeBSD 11.

I'm starting to work on this on FreeBSD11.  I don't understand how it worked for you at all, however.  Don't you need to explicitly allow for the file descriptors used in the inter-process communication?  What tests did you run?

I'm starting to work on this on FreeBSD11.

Thanks :)

Don't you need to explicitly allow for the file descriptors used in the inter-process communication?

No.  It'd probably be good to make their rights more restrictive, but there's no need to ask to make them less so.

What tests did you run?

I renewed some certificates, and watched it with ktrace to confirm it's entering the sandbox properly etc.
A proper test suite would be nice.   Pebble looks interesting for this.


map search and search not working correctly

Subject: map search and search not working correctly
Description:
map search
Results:
if I click on map search and zoom in onto the dominican republic I can only see 3 people in santo domingo. The north coast people and central don't show up.
when I search for hosts then they will eventually show up.
Backend version: develop-ea44d455
Frontend version: develop-ea44d455
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0
Page: https://app.couchers.org/search?#loc=10/19.1952/-69.2781
User: huramentzefix (8712)

dupe of #2438


updated readme

Fixed some spelling issues and adjusted the formatting.

Thanks for this!  Just a heads up though, we can't take PR's through this repository, they must be done via Gerrit reviews.  And unfortunately, we don't have any instructions up on how to do this.  I'll see what I can do to fix this situation, you aren't the first community user to get bitten by this.
@brett19 Hey I saw you had converted a few github PR's to Gerrit reviews.  Do you have a slick way of doing this with the push of a button or did you just do it "by hand"?

@sbdchd Can you register with our Review Site (http://review.couchbase.org) and accept our CLA?  If you are already registered, ensure your Git Email is attached to your Gerrit Profile.
Sorry about the hassle..

I registered with Gerrit but do I need to do anything else?
Btw, Gerrit doesn't recognize .xyz email addresses as valid, which is the TLD that I use for my default address on github.

@sbdchd nope, you're good!  The ball is in our court now.  @maniktaneja I will email you the internal wiki page that @brett19 sent me.


Investigate GetTaskStatus exception when task id does not exist

Need more informations to investigate:

Expected behavior
Observed behavior
Steps to reproduce the problem

This PR ( https://github.com/aneoconsulting/ArmoniK.Core/pull/70 ) add an async test that shows that a TaskNotFoundException in code should return a rpc exception with NotFound as status code.
Whithout more details on the errors, versions and how to reproduce, we cannot go further @ddubuc.


[BUG] Does falco support private dictionaries?

Describe the problem
We are using Private dictionaries to store credentials.
https://docs.fastly.com/en/guides/working-with-dictionaries-using-the-web-interface#private-dictionaries
VCL code that cause the problem
First, write code to read credentials stored in Private dictionaries. aws_credentials is private dictionary.
(See. https://docs.fastly.com/en/guides/amazon-s3#using-an-amazon-s3-private-bucket)
sub vcl_miss {
#FASTLY miss

  call s3_request;

  return(fetch);
}

...

// @scope: pass, miss
sub s3_request {
  declare local var.awsAccessKey STRING;
  declare local var.awsSecretKey STRING;
  declare local var.awsS3Bucket STRING;
  declare local var.awsRegion STRING;
  declare local var.canonicalHeaders STRING;
  declare local var.signedHeaders STRING;
  declare local var.canonicalRequest STRING;
  declare local var.canonicalQuery STRING;
  declare local var.stringToSign STRING;
  declare local var.dateStamp STRING;
  declare local var.signature STRING;
  declare local var.scope STRING;

  set var.awsAccessKey = table.lookup(aws_credentials, "AWS_ACCESS_KEY_ID");
  set var.awsSecretKey = table.lookup(aws_credentials, "AWS_SECRET_ACCESS_KEY");
  set var.awsRegion = "ap-northeast-1";
...

Next, run falco and "Fetching Edge Dictionaries...Failed to get edge dictionaries API respond not 200 code: 400" is displayed.
$ falco -r -I . ./custom_main.vcl
Remote option supplied. Fetch snippets from Fastly.
Fetching Edge Dictionaries...Failed to get edge dictionaries API respond not 200 code: 400
...omitted

🔥 [ERROR] undefined variable "aws_credentials"
in /path/to/custom_main.vcl at line 131, position 39
 130|
 131|  set var.awsAccessKey = table.lookup(aws_credentials, "AWS_ACCESS_KEY_ID");
                                           ^^^^^^^^^^^^^^^
 132|  set var.awsSecretKey = table.lookup(aws_credentials, "AWS_SECRET_ACCESS_KEY");

🔥 [ERROR] function table.lookup wants argument 1st as TABLE but applies NULL (function/argument-type)
in /path/to/custom_main.vcl at line 131, position 38
 130|
 131|  set var.awsAccessKey = table.lookup(aws_credentials, "AWS_ACCESS_KEY_ID");
                                          ^
 132|  set var.awsSecretKey = table.lookup(aws_credentials, "AWS_SECRET_ACCESS_KEY");
See document in detail: https://developer.fastly.com/reference/vcl/functions/table/table-lookup/

🔥 [ERROR] undefined variable "aws_credentials"
in /path/to/custom_main.vcl at line 132, position 39
 131|  set var.awsAccessKey = table.lookup(aws_credentials, "AWS_ACCESS_KEY_ID");
 132|  set var.awsSecretKey = table.lookup(aws_credentials, "AWS_SECRET_ACCESS_KEY");
                                           ^^^^^^^^^^^^^^^
 133|  set var.awsS3Bucket = table.lookup(s3_bucket_names, "assets");

...omitted

Expected behavior
I expected these errors are ignoring. Because, Private dictionaries can't read items.

・You cannot view items that belong to a private dictionary via the API.

see. Limitations and considerations
Desktop (please complete the following information):

OS: Darwin/amd64
Shell: zsh

Additional context
I tried to use // falco-ignore but same behavior.
https://github.com/ysugimoto/falco/pull/140

@ponkio-o
Thanks for reporting this issue.
I  haven't been careful about the private edge dictionary, I'll look into it with reproducing.
And just one thing,
  set var.awsAccessKey = table.lookup(aws_credentials, "AWS_ACCESS_KEY_ID"); // falco-ignore

is it still raising the error?

@ysugimoto
Thank you for your mention quickly!

And just one thing,
set var.awsAccessKey = table.lookup(aws_credentials, "AWS_ACCESS_KEY_ID"); // falco-ignore
is it still raising the error?

Yes.  I tried // falco-ignore and // falco-ignore-start / // falco-ignore-end but occured an error.
Actual result are below.
$ falco -r -I . ./custom_main.vcl
Remote option supplied. Fetch snippets from Fastly.
Fetching Edge Dictionaries...Failed to get edge dictionaries API respond not 200 code: 400
🔥 [ERROR] undefined variable "aws_credentials"
in /path/to/custom_main.vcl at line 131, position 39
 130|
 131|  set var.awsAccessKey = table.lookup(aws_credentials, "AWS_ACCESS_KEY_ID"); // falco-ignore
                                           ^^^^^^^^^^^^^^^
 132|  set var.awsSecretKey = table.lookup(aws_credentials, "AWS_SECRET_ACCESS_KEY"); // falco-ignore

🔥 [ERROR] function table.lookup wants argument 1st as TABLE but applies NULL (function/argument-type)
in /path/to/custom_main.vcl at line 131, position 38
 130|
 131|  set var.awsAccessKey = table.lookup(aws_credentials, "AWS_ACCESS_KEY_ID"); // falco-ignore
                                          ^
 132|  set var.awsSecretKey = table.lookup(aws_credentials, "AWS_SECRET_ACCESS_KEY"); // falco-ignore
See document in detail: https://developer.fastly.com/reference/vcl/functions/table/table-lookup/

🔥 [ERROR] undefined variable "aws_credentials"
in /path/to/custom_main.vcl at line 132, position 39
 131|  set var.awsAccessKey = table.lookup(aws_credentials, "AWS_ACCESS_KEY_ID"); // falco-ignore
 132|  set var.awsSecretKey = table.lookup(aws_credentials, "AWS_SECRET_ACCESS_KEY"); // falco-ignore
                                           ^^^^^^^^^^^^^^^
 133|  set var.awsS3Bucket = table.lookup(s3_bucket_names, "assets"); // falco-ignore

🔥 [ERROR] function table.lookup wants argument 1st as TABLE but applies NULL (function/argument-type)
in /path/to/custom_main.vcl at line 132, position 38
 131|  set var.awsAccessKey = table.lookup(aws_credentials, "AWS_ACCESS_KEY_ID"); // falco-ignore
 132|  set var.awsSecretKey = table.lookup(aws_credentials, "AWS_SECRET_ACCESS_KEY"); // falco-ignore
                                          ^
 133|  set var.awsS3Bucket = table.lookup(s3_bucket_names, "assets"); // falco-ignore
See document in detail: https://developer.fastly.com/reference/vcl/functions/table/table-lookup/

🔥 [ERROR] undefined variable "s3_bucket_names"
in /path/to/custom_main.vcl at line 133, position 38
 132|  set var.awsSecretKey = table.lookup(aws_credentials, "AWS_SECRET_ACCESS_KEY"); // falco-ignore
 133|  set var.awsS3Bucket = table.lookup(s3_bucket_names, "assets"); // falco-ignore
                                          ^^^^^^^^^^^^^^^
 134|  set var.awsRegion = "ap-northeast-1";

🔥 5 errors, ❗ 0 warnings, 🔈 2 infos.

What concerns me is the error in Fetching Edge Dictionaries...Failed to get edge dictionaries API respond not 200 code: 400.
We have two dictionaries in this Fastly Service.

s3_bucket_names

normal

aws_credentials

private

@ponkio-o Thank you for explaining deeply!
And sorry I've mistaken for v0.20.0 release, so could you download latest one and try it? It should works for ignoing feature.
Anyway, private edge dictionary behavior seems a bug so I'll try to fix it 😅

I ran command in the new binary, so it's correctly!! 😄 Thank you!
$ falco -r -I . ./custom_main.vcl
Remote option supplied. Fetch snippets from Fastly.
Fetching Edge Dictionaries...Failed to get edge dictionaries API respond not 200 code: 400
🔥 0 errors, ❗ 0 warnings, 🔈 2 infos.
VCL looks fine ✨  And we suggested some informations to vcl get more accuracy 👍
To see informations detail, run command with -vv option.

I wrote earlier that it's displayed error when contains private dictionary in VCL.
https://github.com/ysugimoto/falco/issues/141#issuecomment-1523272212
Specifically, the below case.
...
  // falco-ignore-start
  set var.awsAccessKey = table.lookup(aws_credentials, "AWS_ACCESS_KEY_ID");
  set var.awsSecretKey = table.lookup(aws_credentials, "AWS_SECRET_ACCESS_KEY");
  // falco-ignore-end

  # s3_bucket_names is not private dictionary
  set var.awsS3Bucket = table.lookup(s3_bucket_names, "assets");
...

$ falco -r -I . ./custom_main.vcl
Remote option supplied. Fetch snippets from Fastly.
Fetching Edge Dictionaries...Failed to get edge dictionaries API respond not 200 code: 400
🔥 [ERROR] undefined variable "s3_bucket_names"
in /path/to/custom_main.vcl at line 135, position 38
 134|  // falco-ignore-end
 135|  set var.awsS3Bucket = table.lookup(s3_bucket_names, "assets");
                                          ^^^^^^^^^^^^^^^
 136|  set var.awsRegion = "ap-northeast-1";

🔥 [ERROR] function table.lookup wants argument 1st as TABLE but applies NULL (function/argument-type)
in /path/to/custom_main.vcl at line 135, position 37
 134|  // falco-ignore-end
 135|  set var.awsS3Bucket = table.lookup(s3_bucket_names, "assets");
                                         ^
 136|  set var.awsRegion = "ap-northeast-1";
See document in detail: https://developer.fastly.com/reference/vcl/functions/table/table-lookup/

🔥 2 errors, ❗ 0 warnings, 🔈 2 infos.

However, this problem can be avoided by using ignore feature, which seems to work fine for a whille.
...
  // falco-ignore-start
  set var.awsAccessKey = table.lookup(aws_credentials, "AWS_ACCESS_KEY_ID");
  set var.awsSecretKey = table.lookup(aws_credentials, "AWS_SECRET_ACCESS_KEY");
  // falco-ignore-end

  # s3_bucket_names is not private dictionary
  set var.awsS3Bucket = table.lookup(s3_bucket_names, "assets"); // falco-ignore
...

$ falco -r -I . ./custom_main.vcl
Remote option supplied. Fetch snippets from Fastly.
Fetching Edge Dictionaries...Failed to get edge dictionaries API respond not 200 code: 400
🔥 0 errors, ❗ 0 warnings, 🔈 2 infos.
VCL looks fine ✨  And we suggested some informations to vcl get more accuracy 👍
To see informations detail, run command with -vv option.

Hi @ponkio-o
I've fixed the problem you reported on #144.
I have never considered the private edge dictionary before, but I learned a lot from your report 😄.
Thank you for bringing this issue and please bear with us while we prepare to release a new version.

Thank you for fix it!!
I will wait release for new version 😄


Improved reproducibility

It would be good to save everything needed for reproducibility to the result folder

git hash (git describe --always)
git status / diff
config used

In an earlier project I did this with an external shell script, but here we might want to integrate in study code

implemented in #40 . Closing


Small memory leaking

loguru::init() leaks a small amount of memory (12 bytes) in every single execution. This can be verified by running
$ valgrind --leak-check=full --show-leak-kinds=all program
I'll see if i can find the problem and push a fix!

Confirmed here (Xubuntu 18.04 AMD64).
valgrind --leak-check=full --show-leak-kinds=all .../loguru_example

==5956== Memcheck, a memory error detector
==5956== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==5956== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==5956== Command: .../loguru_example
==5956==
date       time         ( uptime  ) [ thread name/id ]                   file:line     v|
2018-09-14 20:18:02.396 (   0.064s) [main thread     ]             loguru.hpp:1894     0| arguments: .../loguru_example
2018-09-14 20:18:02.435 (   0.082s) [main thread     ]             loguru.hpp:1897     0| Current dir: ...
2018-09-14 20:18:02.435 (   0.083s) [main thread     ]             loguru.hpp:1899     0| stderr verbosity: 0
2018-09-14 20:18:02.436 (   0.083s) [main thread     ]             loguru.hpp:1900     0| -----------------------------------
2018-09-14 20:18:02.437 (   0.085s) [main thread     ]               main.cpp:11       0| Hello from main.cpp!
2018-09-14 20:18:02.438 (   0.086s) [main thread     ]     loguru_example.hpp:14       0| { complex_calculation
2018-09-14 20:18:02.439 (   0.087s) [main thread     ]     loguru_example.hpp:15       0| .   Starting time machine...
2018-09-14 20:18:02.640 (   0.288s) [main thread     ]     loguru_example.hpp:17    WARN| .   The flux capacitor is not getting enough power!
2018-09-14 20:18:03.044 (   0.692s) [main thread     ]     loguru_example.hpp:19       0| .   Lighting strike!
2018-09-14 20:18:03.483 (   1.131s) [the past        ]     loguru_example.hpp:24     ERR| .   We ended up in 1985!
2018-09-14 20:18:03.491 (   1.138s) [main thread     ]     loguru_example.hpp:14       0| } 1.052 s: complex_calculation
2018-09-14 20:18:03.491 (   1.139s) [main thread     ]               main.cpp:13       0| main function about to end!
2018-09-14 20:18:03.492 (   1.140s) [main thread     ]             loguru.hpp:1774     0| atexit
==5956==
==5956== HEAP SUMMARY:
==5956==     in use at exit: 12 bytes in 1 blocks
==5956==   total heap usage: 60 allocs, 59 frees, 84,453 bytes allocated
==5956==
==5956== 12 bytes in 1 blocks are still reachable in loss record 1 of 1
==5956==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5956==    by 0x58A29B9: strdup (strdup.c:42)
==5956==    by 0x118CA6: loguru::set_thread_name(char const*) (loguru.hpp:2148)
==5956==    by 0x11D6D6: loguru::init(int&, char**, char const*) (loguru.hpp:1864)
==5956==    by 0x117FCA: main (main.cpp:10)
==5956==
==5956== LEAK SUMMARY:
==5956==    definitely lost: 0 bytes in 0 blocks
==5956==    indirectly lost: 0 bytes in 0 blocks
==5956==      possibly lost: 0 bytes in 0 blocks
==5956==    still reachable: 12 bytes in 1 blocks
==5956==         suppressed: 0 bytes in 0 blocks
==5956==
==5956== For counts of detected and suppressed errors, rerun with: -v
==5956== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

Have to compiled with ASAN disabled else valgrind cannot work:
git diff

diff --git a/loguru_example/CMakeLists.txt b/loguru_example/CMakeLists.txt
index 47265d9..6a3cbe2 100644
--- a/loguru_example/CMakeLists.txt
+++ b/loguru_example/CMakeLists.txt
@@ -12,7 +12,7 @@ MESSAGE(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
 if(MSVC)
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Wall")
 else()
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Werror -Wall -Wextra -pedantic -fsanitize=address -fno-omit-frame-pointer")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Werror -Wall -Wextra -pedantic -fno-omit-frame-pointer")
 endif()

 if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")

The offending line is this: (void)pthread_setspecific(s_pthread_key_name, strdup(name));
The thing is, the memory will be freed once the thread dies (thanks to another call to pthread_key_create(&s_pthread_key_name, free);). The main thread never dies though, so yes, 12 bytes will leak. If you need those 12 bytes, don't call loguru::init.

The offending line is this: (void)pthread_setspecific(s_pthread_key_name, strdup(name));
The thing is, the memory will be freed once the thread dies (thanks to another call to pthread_key_create(&s_pthread_key_name, free);). The main thread never dies though, so yes, 12 bytes will leak. If you need those 12 bytes, don't call loguru::init (you can still log without calling loguru::init).