FIX save_image() dpi

When setting different DPI in rcParams saved images are wrongly scaled (see below). I suspect it's because unlike matplotlib's imsave, PySurfer  does not use dpi when saving the image. This PR fixes this.

ok for you @mwaskom ?

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@baca853). Click here to learn what that means.
The diff coverage is 50%.

@@            Coverage Diff            @@
##             master     #241   +/-   ##
=========================================
  Coverage          ?   64.86%
=========================================
  Files             ?        7
  Lines             ?     2479
  Branches          ?      494
=========================================
  Hits              ?     1608
  Misses            ?      688
  Partials          ?      183

I don't think I fully understand the failure mode here or how the PR fixes it?

I think we either need to pass dpi=100 to both the Figure constructor and in savefig, or in neither place (the latter is implemented here, and seems cleaner).
IIUC currently we set dpi in one place, and always to 100, so in the other place it presumably takes the DPI value from plt.rcParams. So in theory doing a plt.rc_context with a wildly different DPI followed by a brain.save_image(...) should show something like what @christianbrodbeck posted at the top.

There are two different matplotlib rcParams that set the dpi (figure.dpi and savefig.dpi) ... maybe that's the issue?
I think we should give users a way to set the DPI of their figure in a way that doesn't involve matplotlib rcParams. It won't at all be obvious why those would be relevant, and when making figures for a paper, you'll  generally want a higher DPI than the matplotlib default of 72.

Fine by me to have dpi kwarg to savefig to set the output DPI

Yeah I can update the PR to add it as a parameter, I just did the least amount of change version that worked first :) But as a parameter it would only be marginally helpful because it does not actually change the number of pixels in the saved image, it just stores DPI as meta-information. I assume that’s why it was not exposed previously.

On Jun 4, 2018, at 10:45 AM, Eric Larson<EMAIL_ADDRESS>wrote:
Fine by me to have dpi kwarg to savefig to set the output DPI
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

I guess that's a good point ... if we're limited by the DPI of the mayavi screenshot bitmap maybe it doesn't make sense to give the impression you could boost that further when saving an image file.

True, and advanced users can still set the image metadata with plt.rc_context if they want

Thanks @christianbrodbeck


lock_api and abstracting over Mutexes which require initialization

I'm currently working on a library which provides some higher level synchronized data-structures, and aims to work on std environments as well as on bare-metal and other environments.
The main thing that is not in common between those environments are Mutexes for my case, so I would like to be able to abstract over those.
I tried building a custom trait first, but without GATs it doesn't seem to work well with the associated data and lockguards with lifetimes. Now I discovered lock_api, which seems to roughly do what I want - making it possible to define predefined data-types which make use of parking_lot mutexes, and allow the users to override e.g. to a SpinLock using a template parameter.
However I'm wondering about the support for some platforms, where the following applies:
Some RawMutex types require an explicit call for initialization, e.g. native system mutexes on lots of platforms from Windows to FreeRTOS. They require to call some kind of CreateMutex() call, which may fail. This seems to not be covered by lock_api, since the RawMutex trait accepts only a const init value instead of a new() function. I guess this is intentional, and not subject for change?
How would we support using lock_api based types on top of a platform like FreeRTOS? Would we port parking_lot to it? Or maybe set INIT to 0 and try to initialize the mutex on the first call to lock() within a global critical section?
Those init functions can obviously also fail, so new() could be allowed to return an error, which however would then also require Mutex::new() to return an error. It probably might not make sense to support this, since it would clutter up the APIs for all other platforms, and the best practice should be not to allocate those kinds of resources after startup. So panic!ing might be ok.
And an unrelated question: How stable is the lock_api API? It seems like all the basics should be covered. Yet it still sits only at a very low version number of 0.1.5?

How would we support using lock_api based types on top of a platform like FreeRTOS? Would we port parking_lot to it? Or maybe set INIT to 0 and try to initialize the mutex on the first call to lock() within a global critical section?
Those init functions can obviously also fail, so new() could be allowed to return an error, which however would then also require Mutex::new() to return an error. It probably might not make sense to support this, since it would clutter up the APIs for all other platforms, and the best practice should be not to allocate those kinds of resources after startup. So panic!ing might be ok.

My recommendation would be to lazily initialize the mutex using CAS. For an example, see this code. And just panic if initialization fails, since Mutex::new cannot return an error.

And an unrelated question: How stable is the lock_api API? It seems like all the basics should be covered. Yet it still sits only at a very low version number of 0.1.5?

The version number is low because I have never had the need to make a breaking change. This should be a pretty good sign that the API is stable.

Apologies for the necro, allowing the user to provide a non-const init function would still be a desirable feature. This package would be very useful for projects implementing kernel code. Panicking on failure to create a Mutex rules out the use of this package in code that cannot panic, like kernel modules. Some kind of try_new interface like is being experimented with in std would be very helpful.


feat:  Memory Limiting

Is your feature request related to a problem? Please describe
No its not related to any problem really swiftwave wise.
Describe the solution you'd like
Memory limiting so for application you could set a memory limit (disabled by default) and once it hits that limit restart application this could fix cases where some applications have memory leaks and garbage collector isn't working.
Are you working on this?
No

We will work on this to add the memory and cpu limit after the initial stable release of v2

Let's implement this.

Done ! Will be available in next release.


Chat - Empty concierge chat displayed if navigate to concierge URL in same tab

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:
Precondition - When logging in user has to land in any chat other than concierge

Open http://staging.new.expensify.com/
Log into account
Paste & go concierge chat link into URL ( https://staging.new.expensify.com/concierge)

Expected Result:
User lands in concierge chat with concierge chat history available
Actual Result:
User lands in concierge chat with concierge chat history not visible, an empty space is displayed instead. The issue happens if user has not yet accesses concierge chat during this login session.
Chat history reappears when user switches to some other chat and back to concierge chat or when user sends a message into concierge chat
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome  and Windows/Chrome
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/93399543/233796943-b435f6ac-0bce-460d-95f4-a41d169a01b3.mp4

Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

Triggered auto assignment to @miljakljajic (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Bug0 Triage Checklist (Main S/O)

[ ] This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
[ ] This bug is not a duplicate report (check E/App issues and #expensify-bugs)

If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead

[ ] This bug is reproducible using the reproduction steps in the OP. S/O

If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
If the reproduction steps aren't clear and you determine the correct steps, please update the OP.

[ ] This issue is filled out as thoroughly and clearly as possible

Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.

[ ] I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

Not reproducible. It takes a few seconds to load the chat, but this is expected behaviour:


Alternate option for Brave is not working (Bug)

this is my UserSettings.json and Hurl is not opening! if I use the alternate launch option for Chrome then its fine :(
{
  "LastUpdated": "24-Aug-23 18:55:33",
  "Browsers": [
    {
      "Name": "Brave",
      "ExePath": "C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe"
      "AlternateLaunches": [
        {
          "ItemName": "Profile 1",
          "LaunchArgs": "--profile-directory=\"Default\""
        },
        {
          "ItemName": "Incognito",
          "LaunchArgs": "-incognito"
        }
    },
    {
      "Name": "Firefox",
      "ExePath": "C:\\Program Files\\Mozilla Firefox\\firefox.exe"
    },
    {
      "Name": "Microsoft Edge",
      "ExePath": "C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe"
    }
  ]
}

it also not working for other browsers other then chorme dev maybe cause, if I use
{
  "LastUpdated": "22-Feb-22 2:22:22 AM",
  "Version": "0.6.2",
  "Browsers": [
    {
      "Name": "Brave",
      "ExePath": "C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe",
      "Hidden": false
    },
    {
      "Name": "Google Chrome Dev",
      "ExePath": "C:\\Program Files\\Google\\Chrome Dev\\Application\\chrome.exe",
      "AlternateLaunches": [
        {
          "ItemName": "Profile 1",
          "LaunchArgs": "--profile-directory=\"Default\""
        },
        {
          "ItemName": "Incognito",
          "LaunchArgs": "-incognito"
        }
      ]
    }
  ]
}

then it works!


Get rid of Cygwin and SSH scripts

Once WinRM is fully tested, let's get rid of the Cygwin and SSH scripts (or an least move them to an unmaintained folder.

We will still need Cygwin for rsync though.

 WinRM seems to work flawlessly in my testing and we've been using images with only WinRM within Chef for years. Having 3 scripts for each build is super maintenance heavy.

WinRM may perform fine for transferring a few small files, but in my experience, it had very poor transfer speeds, and large files would often timeout.


Static IP support

See #342 but this pull request is not limited to CentOS.
I have verified that all Linux distributions offered by linux.ipxe. Status with the static IP configured via the failsafe menu:

Alpine boots correctly only if the first network card is used
Arch relies on http://ip.address.of.mirror/ to work (bug reported upstream)
Gentoo and IPFire do not boot at all, also before my patches
RHEL not tested
Everything else in the menu works

Regarding Gentoo, the snapshot offered is very old, and it is possible to use third-party live/rescue Linux systems to install Gentoo anyway. So - maybe drop it?
Regarding rescue tools offered by netboot.xyz, I have not tested them. It's possible that they require similar fixes. However, before working on them, I would like to confirm whether the general approach is OK.
Oh, and there seems to be a variable, ${netcfg}, in Debian-related iPXE files, but I can't find a place where it is set.

Gentoo is on my todolist to fix, since it now have proper support to be PXE booted, (since https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=24ad5065fa856389ee9b058f57adffbe752da157)
But I should probably also nag them about hosting files separately

Just tested it, definitely works.

@patrakov Reviewed it all and it looks good, I haven't had time to test it yet but the approach looks correct and we have a +1.  Thanks for tackling this!
I've been trying to figure out a good method for Gentoo as I'd like it on the menu.  I'd prefer that Gentoo would just host those bits somewhere officially so maybe @NiKiZe knows the right people to poke for that.  But I'll probably get it removed for now until we can actually get it working.  I could build a job that could periodically extract the ISO but I don't really want to get into the business of managing OS installation bits as they should come directly from the distribution.
In general I'd like to probably start moving away from distros or utilities that use ISOs as they just aren't very reliable and work half the time.  I'd love to see distributions just offer installer kernels for their OS or host the latest extracted ISO but that's probably a ways off.
The ${netcfg} stuff might be from some older iterations and those variables probably just need to be removed.  I didn't see it really being called or set anywhere.


Define version in pyproject.toml instead of source code

How about defining your version in pyproject.toml with all of your other package metadata instead of the source code? @akshayka

ruff failed because of line too long 😅 can you fix that?

Thanks, fixed!


TbButton: No way to render link without "btn-link" class

This is important for styling because often we want a simple link which functions as a standard anchor but appears as a button.

see #947 for more discussion on this....
https://github.com/clevertech/YiiBooster/issues/947


As a user, I want to make sure that my email is validated for safety reasons, in case I need  to reset my password.

Acceptance Criteria:

[ ] After the successful registration of a user, an email is sent to the registered email address which contains a link to a validation page
[ ] After the user has successfully accessed the validation page, the user can use the email for authentication

This user story was noted by our major stakeholders in their feedback for M2 as not important. We were advised to keep this user story at the lowest priority and focus on other, more important features first. Therefore, this user story was not planned in for sprint 1 (M3) or sprint 2 (M4) and closed as "not planned".


We expected the binary to be installed here: /root/.cache/Cypress/4.3.0/Cypress/Cypress

My custom cypress docker image non-root-mapped is getting this error when I run it.  Any ideas what I did wrong?
$docker run -it -v $PWD:/e2e -w /e2e -u bamboo buonan/cypress-non-root-mapped:4.3.0 --browser chrome --config baseUrl=https://qa-50-run-cypress-test.foo.com

The cypress npm package is installed, but the Cypress binary is missing.

We expected the binary to be installed here: /root/.cache/Cypress/4.3.0/Cypress/Cypress

Reasons it may be missing:

- You're caching 'node_modules' but are not caching this path: /home/bamboo/.cache/Cypress
- You ran 'npm install' at an earlier build step but did not persist: /home/bamboo/.cache/Cypress

Properly caching the binary will fix this error and avoid downloading and unzipping Cypress.

Alternatively, you can run 'cypress install' to download the binary again.

https://on.cypress.io/not-installed-ci-error

----------

Platform: linux (Debian - 10.1)
Cypress Version: 4.3.0

Did you look into these suggestions?
- You're caching 'node_modules' but are not caching this path: /home/bamboo/.cache/Cypress
- You ran 'npm install' at an earlier build step but did not persist: /home/bamboo/.cache/Cypress

@jennifer-shehane : we have the same issue and we tried following the suggestions and still get the same error. Please advice. Thanks

docker run -it \
    -v $PWD:/e2e \
    -v ~/.cache:/root/.cache \
    --env CYPRESS_BASE_URL=http://localhost \
    -w /e2e \
    --entrypoint /e2e/node_modules/.bin/cypress \
    cypress/browsers:node12.13.0-chrome80-ff74 \
    run --browser chrome

It is NOT the best choice to map whole cache folder from home folder, but it works as a quick workaround.

Seeing the same error on 4.7. You can reproduce it from the included-as-non-root-mapped docker example by changing the base image from cypress/included:3.8.0 to cypress/included:4.7.0 and running the build and test scripts.

Same here. This is my docker image. I tried setting  "CYPRESS_CACHE_FOLDER" env parameter, the above error is removed but cypress just hangs in there without any output

FROM cypress/included:4.12.1

# Add a user ubuntu, and switch docker to ubuntu, as jenkins runs on ubuntu user
# and it is required for proper permission of files

RUN groupadd -r ubuntu && useradd -r -g ubuntu ubuntu
RUN mkdir -p /home/ubuntu
RUN mv /root/.cache /home/ubuntu/.cache
RUN chown -R ubuntu:ubuntu /home/ubuntu/.cache

ENV CYPRESS_CACHE_FOLDER /home/ubuntu/.cache/Cypress

USER ubuntu

I went with a different solution and run cypress like this now as a Bamboo inline script task.
yarn cypress run --headless -C ./cypress.json --config baseUrl="${BASE_ENV_URL}" -r junit --spec './cypress/integration/*.spec.js'

I went with a different solution and run cypress like this now as a Bamboo inline script task.
yarn cypress run --headless -C ./cypress.json --config baseUrl="${BASE_ENV_URL}" -r junit --spec './cypress/integration/*.spec.js'

This does not use docker though. That means we would have to install cypress on CI machine, which is not preferable.

I could not get cypress/docker running consistently on our CI machines.  It would often hang the builds.  I also only run 1 integration.spec.js as running multiple *.spec.js would also hang.  I haven't found a better solution yet but this seems to be working solidly for the past 3 months for us.

Please make sure the user and the permissions are set correctly. Aside from this, cannot see why the image would not work with your CI system.

hi @bahmutov, do you want to consider reopening this one? I'm getting the exact same problem and I don't see a solution in this thread.
When following the included-as-non-root-mapped example using cypress/included:5.4.0 i get the following error-
cypress_1      | The cypress npm package is installed, but the Cypress binary is missing.
cypress_1      |
cypress_1      | We expected the binary to be installed here: /root/.cache/Cypress/5.4.0/Cypress/Cypress
cypress_1      |
cypress_1      | Reasons it may be missing:
cypress_1      |
cypress_1      | - You're caching 'node_modules' but are not caching this path: /home/cypress-user/.cache/Cypress
cypress_1      | - You ran 'npm install' at an earlier build step but did not persist: /home/cypress-user/.cache/Cypress
cypress_1      |
cypress_1      | Properly caching the binary will fix this error and avoid downloading and unzipping Cypress.
cypress_1      |
cypress_1      | Alternatively, you can run 'cypress install' to download the binary again.
cypress_1      |
cypress_1      | https://on.cypress.io/not-installed-ci-error
cypress_1      |
cypress_1      | ----------
cypress_1      |
cypress_1      | Platform: linux (Debian - 10.2)
cypress_1      | Cypress Version: 5.4.0

the steps in this example are essentially

create a new user who's UID and GID match the host
move the cypress cache from /root/.cache to ${HOME}/.cache
run as normal

this doesn't work
Even the error is inconsistent-

We expected the binary to be installed here: /root/.cache/Cypress/5.4.0/Cypress/Cypress

this implies its still looking in the old location for the binary

cypress_1      | Reasons it may be missing:
cypress_1      |
cypress_1      | - You're caching 'node_modules' but are not caching this path: /home/cypress-user/.cache/Cypress
cypress_1      | - You ran 'npm install' at an earlier build step but did not persist: /home/cypress-user/.cache/Cypress

this seems to imply it does know about the new location
I suspect this example needs to be updated. Perhaps there are some extra environment variables that need to be set to modify the cache location? Certainly there is something inconsistent in the implementation about where it's looking, even if this is only a problem with the error that's printed.
did anyone in this thread find a workaround?
if not, can we update or deprecate the example?

i got this working by setting the CYPRESS_CACHE_FOLDER environment variable. this should be added to the example
ARG USER_ID
ARG GROUP_ID
RUN groupadd -g ${GROUP_ID} cypress-user
RUN useradd -r --no-log-init -u ${USER_ID} -g cypress-user cypress-user
RUN install -d -m 0755 -o cypress-user -g cypress-user /home/cypress-user
RUN mv /root/.cache /home/cypress-user/.cache
USER cypress-user
ENV CYPRESS_CACHE_FOLDER=/home/cypress-user/.cache/Cypress


Fix path to rrbot.rviz in README

The file was moved in this PR: https://github.com/ros-controls/ros2_control_demos/pull/113/files#diff-116a24065c375742d785438bd04d24b64cb4b9222922e036e605e40fefa17c7a
Signed-off-by: Christophe Bedard<EMAIL_ADDRESS>

Codecov Report

Merging #116 (0457cd1) into master (ead1af1) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #116    +/-   ##
=======================================
  Coverage    0.00%   0.00%
=======================================
  Files           6       3     -3
  Lines         588     294   -294
=======================================
+ Misses        588     294   -294

Flag
Coverage Δ

unittests
0.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

.../ros2_control_demo_hardware/src/diffbot_system.cpp

...demo_hardware/src/rrbot_system_multi_interface.cpp

...l_demo_hardware/src/rrbot_system_position_only.cpp

...l_demo_hardware/src/rrbot_system_position_only.cpp

...demo_hardware/src/rrbot_system_multi_interface.cpp

.../ros2_control_demo_hardware/src/diffbot_system.cpp

...l_demo_hardware/src/rrbot_system_position_only.cpp
0.00% <0.00%> (ø)

.../ros2_control_demo_hardware/src/diffbot_system.cpp
0.00% <0.00%> (ø)

...demo_hardware/src/rrbot_system_multi_interface.cpp
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ead1af1...0457cd1. Read the comment docs.

thanks for the fix.


Does not seem to work with wikipedia in different language such as chinese

Test URL: https://zh.wikipedia.org/wiki/气旋瓦卡
It returns a blank page

Duplicate.

Expected Results:

The app should search across across a variety of languages.
The app's copy should be translated to the languages selected for support.


[ArPow] Build has a hard dependency on libunwind, which is not available on RHEL 8

I can't build installer commit 28be3e9a006d90d8c6e87d4353b77882829df718 on RHEL 8:

dotnet-28be3e9a006d90d8c6e87d4353b77882829df718-x64-bootstrap/src/source-build-reference-packages.0aba30b468e666bdc3cfc6c36a8b417a0f6fb62a/artifacts/source-build/self/package-cache/runtime.linux-x64.microsoft.netcore.ilasm/6.0.0-rc.2.21459.6/runtimes/linux-x64/native/ilasm: error while loading shared libraries: libunwind-x86_64.so.8: cannot open shared object file: No such file or directory

This SDK has a hard dependency on libunwind, which is not available in RHEL 8.
Is there some way I can rebuild this to avoid this hard dependency?
Is there a longer term fix we can use to avoid depending on libunwind for our bootstrap builds?

I tried replacing runtime.linux-x64.microsoft.netcore.ilasm and runtime.linux-x64.microsoft.netcore.ildasm with versions downloaded from https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json but it leads to errors in the build:
dotnet-28be3e9a006d90d8c6e87d4353b77882829df718-x64-bootstrap/src/runtime.826f81a11ad17f415668fe1cb934bdaf00d36ea2/artifacts/source-build/self/package-cache/microsoft.dotnet.compatibility/1.0.0-rc.2.21419.17/build/Microsoft.NET.Compatibility.Common.targets(26,5): error MSB4018: The "Microsoft.DotNet.Compatibility.ValidatePackage" task failed unexpectedly. [dotnet-28be3e9a006d90d8c6e87d4353b77882829df718-x64-bootstrap/src/runtime.826f81a11ad17f415668fe1cb934bdaf00d36ea2/artifacts/source-build/self/src/src/libraries/System.IO.Hashing/src/System.IO.Hashing.csproj]
dotnet-28be3e9a006d90d8c6e87d4353b77882829df718-x64-bootstrap/src/runtime.826f81a11a

d17f415668fe1cb934bdaf00d36ea2/artifacts/source-build/self/package-cache/microsoft.dotnet.compatibility/1.0.0-rc.2.21419.17/build/Microsoft.NET.Compatibility.Common.targets(26,5): error MSB4018: System.MissingMethodException: Method not
found: 'Int32 Microsoft.CodeAnalysis.ISymbol.get_MetadataToken()'. [dotnet-28be3e9a006d
90d8c6e87d4353b77882829df718-x64-bootstrap/src/runtime.826f81a11ad17f415668fe1cb934bdaf00d36ea2/artifacts/source-build/self/src/src/libraries/System.IO.Hashing/src/System.IO.Hashing.csproj]
Is this a known issue? Any idea how to work around this?

Any thoughts, @crummel @dseefeld @lbussell @MichaelSimons ?

This SDK has a hard dependency on libunwind, which is not available in RHEL 8.
Is there some way I can rebuild this to avoid this hard dependency?
Is there a longer term fix we can use to avoid depending on libunwind for our bootstrap builds?

We don't have bootstrapping figured out here since there is only one build (i.e. no production build to generate the tarball).  I think we need a way to build without previously source-built packages for an initial bootstrap build that will generate previously source-built packages for subsequent builds.  I'll investigate and report back here.

Any idea how to work around this?

Setting /p:EnablePackageValidation=false in runtime's SourceBuild.props seems to have done the trick.

Looking at this closer, it appears that we should be able to bootstrap off of previously source-built packages.  The problem here is that the current version of previously source-built packages wasn't built with this change in runtime: https://github.com/dotnet/runtime/pull/58911.  This should get fixed in the next update of previously source-built packages here:  https://github.com/dotnet/installer/pull/12161.  I verified that the version of ilasm in this package does not have a hard dependency on libunwind.

@dseefeld Thanks! That wont address the GLIBC ABI change, though, will it? AFAICS, RHEL 7 will remain broken as we discovered in https://github.com/dotnet/installer/pull/12141.
Have you considered whether it might be a good idea to take the previously source-built packages, and replace all the portable bits in it with the real portable bits published on the in-development .NET nuget feeds?

Have you considered whether it might be a good idea to take the previously source-built packages, and replace all the portable bits in it with the real portable bits published on the in-development .NET nuget feeds?

imo that is the way to go, see https://github.com/dotnet/installer/pull/12141#issuecomment-927896218.

Have you considered whether it might be a good idea to take the previously source-built packages, and replace all the portable bits in it with the real portable bits published on the in-development .NET nuget feeds?

I see what you're saying.  I was originally looking at creating a bootstrap version of previously source-built packages.  I'll continue on that.  Thanks!

Fixed by dotnet/installer#12222


white-space: pre instead of

Is there a good reason you're not using white-space: pre instead of replacing all spaces with  ? (  isn't enough to cover all cases anyway)

No, not particularly. I think it makes sense and would actually allow me to strip out some of the logic for replacing spaces with &nbsp (which, as you said, doesn't cover every case anyway).

I will note that use of   is a surface rendering detail though -- the underlying content is unaffected.

I'd like to leave this open for tracking purposes. Thanks.


[AzureChatOpenAI] openai_api_type can't be changed from the default 'azure' value

System Info
Hello,
during the development of an application that needs to authenticate to Azure services and use the wrapper AzureChatOpenAi, we encountered an error due to the fact that the model could not use the 'azure_ad' type.
It seems that this class sets the openai_api_type always to the set default value of 'azure' even if we have an environment variable called 'OPENAI_API_TYPE' specifying 'azure_ad'.
Why is it so?
Who can help?
@hwchase17
@agola11
Information

[ ] The official example notebooks/scripts
[ ] My own modified scripts

Related Components

[X] LLMs/Chat Models
[ ] Embedding Models
[ ] Prompts / Prompt Templates / Prompt Selectors
[ ] Output Parsers
[ ] Document Loaders
[ ] Vector Stores / Retrievers
[ ] Memory
[ ] Agents / Agent Executors
[ ] Tools / Toolkits
[ ] Chains
[ ] Callbacks/Tracing
[ ] Async

Reproduction
answering_llm=AzureChatOpenAI(
deployment_name=ANSWERING_MODEL_CONFIG.model_name,
model_name=ANSWERING_MODEL_CONFIG.model_type, #"gpt-3.5-turbo"
openai_api_type="azure_ad", # IF THIS IS NOT EXPLICITLY PASSED IT FAILS
openai_api_key=auth_token,
temperature=ANSWERING_MODEL_CONFIG.temperature,
max_tokens=ANSWERING_MODEL_CONFIG.max_tokens
)
Expected behavior
We expect the wrapper to take the value of the environmental variable correctly.

Related PR: #8622


Expose log level and log path to extensions

Problem
The TS extension currently provides its own logging logic to write TSServer events to a file on the disk. We would like to allow extensions like TS to make use of the new logging infrastructure that was added VS Code so that logs from both core and extensions can be written to a common logging directory
Proposed API
Add two new properties on ExtensionContext:
export interface ExtensionContext {
    ...

    loggingLevel: LoggingLevel;

    loggingDirectory: string;
}

The loggingDirectory would be unique to each extension and created when the extension first accesses the property. This prevents two extensions from overwriting each other if both use a file called log for example

A similar API was previously prototyped here: https://github.com/Microsoft/vscode/blob/verbose-logging-mode/src/vs/vscode.proposed.d.ts#L251
That version used different model for enabling or disabling logging: starting code with the --verbose-logging flag would enable all logging. You could also pass in scopes to specify that only specific items should log --verbose-logging typescript. Here, only the TS extension would have logging enabled since the "typescript" scope was passed in. The scopes were just strings

// cc @joaomoreno @sandy081 @jrieken

The loggingDirectory would be unique to each extension and created when the extension first accesses the property. This prevents two extensions from overwriting each other if both use a file called log for example

It should be unique to each (extension host, extension) tuple, otherwise you'll have multiple instances of the same extension using the same folder.

Yeah, why don't we expose a logger? Like vscode.env.logger. Each extension would get it's 'branded'-logger and we tell extensions to simply use that...

In cases like debug adapters or language servers, it would take extra effort to pipe log messages back into the extension host, and would create a ton of unnecessary IPC traffic, so it's better to let them write directly to some file. But I would support having a logger and also exposing their log folder.

Working on this -
export interface ILogger {
		logDirectory: Promise<string>;
		onDidChangeLogLevel: Event<LogLevel>;
		getLevel(): LogLevel;

		trace(message: string, ...args: any[]): void;
		debug(message: string, ...args: any[]): void;
		info(message: string, ...args: any[]): void;
		warn(message: string, ...args: any[]): void;
		error(message: string | Error, ...args: any[]): void;
		critical(message: string | Error, ...args: any[]): void;
}

Looks good overall. Not sure if logger should be on env or ExtensionContext though, considering  that we want getLogDirectory to return a unique dir per extension.

LogLevel is never synced across processes currently, right?

@roblourens Log level is synced across processes during start up. But when changed afterwards using the command, then it is applied only to current renderer process. I am planning to sync it across processes.
I suppose each extension gets its own instance of logger thereby logging into a separate file (one log file per extension)?

I suppose each extension gets its own instance of logger thereby logging into a separate file (one log file per extension)?

Yep, that's what my PR does.


Restic Backup - HowTo

So far the Documentation regarding Restic is clear
For Reference: https://velero.io/docs/v1.0.0/restic/
But i miss some Feature/Information.
Let's start with what i have done already:
I've added the annotation for the pods in the deployment:
spec:
  template:
    metadata:
      annotations:
        backup.velero.io/backup-volumes: volume-name-to-backup

I triggered an backup:
velero backup create berndklaus-at --include-namespaces berndklaus-at
When performing:
velero restic repo get
I can see a repo was added, there was no repo before performing the velero backup command.
velero backup get
I can see a backup, state: completed
OK, thats fine.
Well now i wont to take a newew backup of the above things, so i fired:
velero backup create berndklaus-at --include-namespaces berndklaus-at
That does not work, cause the backup still exists.
Ok, i delete the backup "berndklaus-at"
But when looking into my spaces, i can still see the restic part is NOT removed.
So i tought, there should be a command like: "velero restic backup delete." But i did not find a way to remove a restic backup.
So there came up a few questions:
What does the restic repo represent?
How can i manage restic backups (delete/recreate/...)?
How can i trigger a restic backup only?
Does a schedule also starts a restic backup?
Please excuse typos and/or bad english.
Thanks for clearification, BR Bernd

@Berndinox good questions!

What does the restic repo represent?

Restic uses "repositories" to organize backup data. Velero creates one per namespace + backup storage location.

How can i manage restic backups (delete/recreate/...)?

In velero, restic backups are always tied to a main "velero backup". When you delete a velero backup, we run the restic forget command which deletes metadata about the restic backup from the repository. Separately, there's a  recurring restic prune operation that runs for each repository every 24h by default, that deletes the actual blocks of data. We do this asynchronously because it can be slow.

How can i trigger a restic backup only?

Velero does not support this - all restic backups are tied to a main "velero backup".

Does a schedule also starts a restic backup?

Yes, if you have workload pods annotated!

Ok, thanks alot for clearification!

Closing this issue out.


Encode avyantra-health-technologies submission into JSON

Encode avyantra-health-technologies submission into JSON and add it to unicef/publicgoods-candidates/screening

@lacabra kindly note this commit e3dc991 now addresses the previous gaps for the indicators below:

Adherence to standards & best practices
Do No Harm
Protection from harassment


Allow to clone JacksonJsonMapper with a different SerdeJacksonConfiguration

Fixes https://github.com/micronaut-projects/micronaut-serialization/issues/170

do we need the interface

I would prefer to have an interface instead of exposing JacksonJsonMapper to be public.

ok


Create frequency dataframe for bus timetable data

We want to filter by highly serviced stops - with the current definition being those stops which are used 1 or more times for every hour between 06:00 and 22:00.
Create a dataframe that lists every stop id and counts the number of times it is used for each hour of the day. See process diagram in #257 for sample output table.
Should a simple cross tab, and pandas has a couple of methods which its worth investigating (cross_tab or pivot_table).

Closed by #327


Request your work to be included in the awesome Zepp OS project

Hello @jwhgzs
Please allow me to introduce myself, I am Myoung XUE, an engineer from Zepp OS Team.
We have an awesome project https://github.com/zepp-health/awesome-zeppos, as the name suggests, where we include many projects from the community that are relevant to Zepp OS.
We noticed that several of your projects are publicly available on Github and would like to ask your permission to include them in the official awesome zeppos repository.
Hopefully, we can get your approval and your project will help more developers in the community.

I'd love to! By the way, I'm from China, and I guest you are too.
所以，感谢你的邀请。不过这只是一个未成型的、简陋的框架，尽管它以及久经实用测试；而且包括一些特殊控件（如Group等）未做适配，性能也没有达到预期。所以我打算再进行进一步开发，使其与实际生产匹配。
另外碍于初中生活，没法连续地做开发（实际上，我只有周末两天来编程！），可能需要数月来完成。
我们可以保持联系，如果需要的话 :)
Email<EMAIL_ADDRESS>QQ:<PHONE_NUMBER>

你好，我看了你的项目，并浏览了你的 Github 个人主页，感叹后生可畏！
我们会持续关注你的项目进展，需要任何的帮助，在这些渠道都可以联系到我们 https://docs.zepp.com/zh-cn/docs/guides/community/
加油！


Covidcast upload early exit

WARNING this PR includes a commit reducing the size of the covid_hosp_meta.revision_timestamp column from 1024 to 512. Nothing depends on that change except compliance with MariaDB maximum key length, but once this is merged we should make that change in prod. No value in that column is presently more than 23 characters, so shouldn't be an issue.
Actual purpose: Covidcast Acquisition currently counts the number of rows in the covidcast table regardless of whether the receiving directory is empty. This operation now takes upwards of 40 minutes, which is silly.
This PR rearranges the upload script somewhat so that it first checks receiving, then exits as a no-op if it finds no files.
In the process, I merged the default and with-specific-issue routines.
Unit tests updated and pass.
~Integration tests I seem to have forgot about. I'll update here when they're ready.~
Integration tests work automagically because they use no mocks.
Added a test to verify early-exit.

Tagging George to check my merge of the with/without specific issue stuff

Tagging George to check my merge of the with/without specific issue stuff


Provide arm64 arch docker images

Is your feature request related to a problem? Please describe.
I am unable to run pinniped on arm64 arch. Pinniped doesn't currently provide arm64 binaries and images.
The images provided at projects.registry.vmware.com/pinniped/pinniped-server are single arch/platform.
$ docker buildx imagetools inspect projects.registry.vmware.com/pinniped/pinniped-server:v0.22.0
Name:      projects.registry.vmware.com/pinniped/pinniped-server:v0.22.0
MediaType: application/vnd.docker.distribution.manifest.v2+json
Digest:    sha256:481b94f4468425542f111143ebb69cd2057b0003e7bee75047892638cf88e135

Describe the solution you'd like

Build and publish arm64 binaries.
Build and publish multi-arch container images that includes arm64.

Describe alternatives you've considered
Building pinniped from source for arm64.
Are you considering submitting a PR for this feature?

How will this project improvement be tested?
How does this change the current architecture?
How will this change be backwards compatible?
How will this feature be documented?

Additional context
Others are running on arm64. Approximately a year ago someone was getting pinniped to work on a rasphberry pi. ref

Thanks for opening an issue @tiagomeireles!
Can you share more about your use case? Curious which platform you are using, which Kubernetes distribution, and what you're trying to accomplish.
Although we haven't tried this ourselves, it should be fairly easy to make a copy of the Dockerfile, adjust it for arm64 compilation flags, docker build the Dockerfile, push the resulting container image to your favorite registry, and then use that container image when deploying Pinniped. Curious if that works for you. If your client machine is also arm64, you could compile the CLI with the appropriate arm64 flags too.

I use an Ubuntu Linux VM on Apple silicon and do local cluster work in Docker (KinD/Talos/K3D). It would be really nice to be able to use matching images and cli. Happy to work on that!

Some thoughts on what we would need to change to support this for the server:

[ ] Update build args and pod tolerations, see https://github.com/vmware-tanzu/pinniped/pull/1699
[ ] Update CI to always build multi arch images
[ ] Find a way to run the integration tests on an arm64 cluster, e.g. by creating an arm64 kind cluster in CI and running the tests there as a new CI job

Some thoughts on what we would need to change to support this for the CLI:

[ ] Change CI to build windows, linux, and Darwin CLI binaries for arm64, in addition to the binaries that it already builds
[ ] Change CI to attach these additional binaries to the GitHub release when creating a new release
[ ] Check if we need to change how CI updates brew after each new release

The next release will include amd64+arm64 multi-arch container images for the server, and will also include arm64 for the linux/darwin/windows CLI. All the necessary changes have already been made, so we just need to create a release. 🎉


timeout: Remove inappropriate uses and rename to unsafe_timeout

The zerver.lib.timeout strategy using asynchronous exceptions has a number of safety caveats (read the docstring!!) and should only be used in very specific circumstances.

Merged, thanks @andersk!
I thought a bit about whether we need to lower any of the 50s, but I think we'll find out in production if it's ever too slow and the request gets killed, and I think it's not likely that is not sufficiently low.


Load More Stack Frames strange behavior

VSCode Version: Version 1.0.0-alpha Commit 6ea1266160aa9eb3ed6e71a5099bec3952090037
OS Version: Ubuntu 14.04

Steps to Reproduce:

Compile https://gist.github.com/edumunoz/6e2ca90d4b5d3dbfa5340576e79ac113 with g++ -g -std=c++11 -pthread hello.cpp -o hello
Install the C++ debug adapter
Set a breakpoint in line 17 from the gist
Have the main thread expanded in the callstack viewlet
Expand another thread and click on a frame for which no source is available
The "Load More Stack Frames" button appears for the main thread
The "Load More Stack Frames" button is clicked, the callstack for the main thread gets duplicated (two main() in the screenshot)

Step 3

Step 5

Step 6

I understand if the debug adapter implements the "Load More Frames" feature, this will work. However the experience seems kind of weird if the debug adapter doesn't implement the feature (like C++ debug adapter as of now).
@isidorn @weinand

@edumunoz that is strange, the Load More Stack Frames action should not appear if an adapter is not implementing it. What does the C++ adapter return for the stackTrace request total frames attribute. If the adapter does not support this the action should not be shown at all.
In short, if the adapter does not support this it should not return the totalFrames. If the C++ does not return totalFrames attribute and this action still appears then it a bug on the vscode side and I will investigate deeper.

The C++ extension does not include a totalFrames attribute in the StackTraceResponse.
Let me know if there is an easy way to turn on logging on the messages sent and received by VSCode to the debug adapter.

Nice catch. The issue was connected with #4623 in that a thread thought it's callstack length was a callStack length of some other thread. Fixed this by always respecting what the debug adapter says about the totalFrames, so if they are not supported this will not be possible. Will not look into the other bug...

Verified this is fixed for cpptools in master.

Adding the verified tag then.


Unable to connect using windows client

Describe the problem
Windows client does not connect
To Reproduce
Steps to reproduce the behavior:

Download and install https://pkgs.netbird.io/windows/x64
Right click tray icon -> Settings
Update Management & Admin URL to self-hosted endpoint, click save
Attempt to connect (right click tray icon -> Connect)
Go through OIDC flow in browser

Expected behavior
Netbird should be connected, but it is not (tray icon shows disconnected, netbird status shows disconnected).
OIDC flow worked as the peer is registered on the admin interface.
NetBird status -d output:
C:\WINDOWS\system32>netbird status -d
Peers detail:
Daemon version:
CLI version: 0.14.3
Management: Disconnected
Signal: Disconnected
FQDN:
NetBird IP: N/A
Interface type: N/A
Peers count: 0/0 Connected

Additional context
Output of client.log:
2023-03-27T01:13:01-06:00 INFO client/cmd/service_controller.go:23: starting Netbird service
2023-03-27T01:13:01-06:00 INFO client/internal/config.go:88: generating new config C:\ProgramData\Netbird\config.json
2023-03-27T01:13:01-06:00 INFO client/cmd/service_controller.go:63: started daemon server: <IP_ADDRESS>:41731
2023-03-27T01:15:00-06:00 INFO client/internal/config.go:168: new Management URL provided, updated to https://netbird.XXXX:33073 (old value https://api.wiretrustee.com:443)
2023-03-27T01:15:00-06:00 INFO client/internal/config.go:179: new Admin Panel URL provided, updated to https://netbird.XXXX:443 (old value https://app.netbird.io:443)
2023-03-27T01:15:01-06:00 ERRO client/internal/login.go:58: failed logging-in peer on Management Service : rpc error: code = InvalidArgument desc = invalid setup-key or no sso information provided, err: invalid UUID length: 0
2023-03-27T01:15:01-06:00 WARN client/server/server.go:117: failed login: rpc error: code = InvalidArgument desc = invalid setup-key or no sso information provided, err: invalid UUID length: 0
2023-03-27T01:15:07-06:00 ERRO client/internal/login.go:58: failed logging-in peer on Management Service : rpc error: code = InvalidArgument desc = invalid setup-key or no sso information provided, err: invalid UUID length: 0
2023-03-27T01:15:07-06:00 WARN client/server/server.go:117: failed login: rpc error: code = InvalidArgument desc = invalid setup-key or no sso information provided, err: invalid UUID length: 0
2023-03-27T01:15:14-06:00 INFO client/internal/login.go:97: peer has been successfully registered on Management Service
2023-03-27T01:15:14-06:00 INFO client/internal/login.go:61: peer has successfully logged-in to the Management service https://netbird.XXXX:33073
2023-03-27T01:15:15-06:00 ERRO client/internal/engine.go:213: failed configuring Wireguard interface [wt0]: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:15:16-06:00 ERRO client/internal/connect.go:149: error while starting Netbird Connection Engine: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:15:18-06:00 ERRO client/internal/engine.go:213: failed configuring Wireguard interface [wt0]: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:15:18-06:00 ERRO client/internal/connect.go:149: error while starting Netbird Connection Engine: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:15:23-06:00 ERRO client/internal/engine.go:213: failed configuring Wireguard interface [wt0]: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:15:23-06:00 ERRO client/internal/connect.go:149: error while starting Netbird Connection Engine: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:15:29-06:00 ERRO client/internal/engine.go:213: failed configuring Wireguard interface [wt0]: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:15:29-06:00 ERRO client/internal/connect.go:149: error while starting Netbird Connection Engine: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:15:34-06:00 ERRO client/internal/engine.go:213: failed configuring Wireguard interface [wt0]: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:15:35-06:00 ERRO client/internal/connect.go:149: error while starting Netbird Connection Engine: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:15:43-06:00 ERRO client/internal/engine.go:213: failed configuring Wireguard interface [wt0]: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:15:44-06:00 ERRO client/internal/connect.go:149: error while starting Netbird Connection Engine: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:16:04-06:00 ERRO client/internal/engine.go:213: failed configuring Wireguard interface [wt0]: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:16:05-06:00 ERRO client/internal/connect.go:149: error while starting Netbird Connection Engine: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:16:08-06:00 ERRO client/internal/engine.go:213: failed configuring Wireguard interface [wt0]: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:16:09-06:00 ERRO client/internal/connect.go:149: error while starting Netbird Connection Engine: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:16:15-06:00 ERRO client/internal/engine.go:213: failed configuring Wireguard interface [wt0]: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:16:15-06:00 ERRO client/internal/connect.go:149: error while starting Netbird Connection Engine: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:16:19-06:00 ERRO client/internal/engine.go:213: failed configuring Wireguard interface [wt0]: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:16:20-06:00 ERRO client/internal/connect.go:149: error while starting Netbird Connection Engine: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:16:30-06:00 ERRO client/internal/engine.go:213: failed configuring Wireguard interface [wt0]: received error "Access is denied." while configuring interface wt0 with port 51820
2023-03-27T01:16:30-06:00 ERRO client/internal/connect.go:149: error while starting Netbird Connection Engine: received error "Access is denied." while configuring interface wt0 with port 51820

Hi @a7g4
You should run the command line or power shell tools as administrator.
Or please use our installer.

This is what is happening after using the installer

Do you have any other solution or plain WireGuard running on this machine?

@a7g4 sorry for the delay in responding. Can you confirm if the issue was resolved? From the logs, it seems that the port was already in use by another program or another Wireguard interface (maybe the Fortigate VPN client).

No problem at all. Thanks for the feedback.
I will close the issue.


Plugin doesn't appear in GPM

It would be good if this plugin could be submitted for inclusion in GPM so that updates can automatically be picked up. It will also mean that more people are likely to find it in the first place and make it easier for them to get started with it.

Bumping this. @aaronhipple would you please consider submitting your plugin to the Grav GPM?

Filed: #2874

Fixed by https://github.com/getgrav/grav/issues/2874#issuecomment-631668987


Upgrade test for employee ID and find

Upgraded testing for:

Employee ID

Added testing for pretty much everything that ID does
If any breaking changes are made to ID, this is the first sign of failure
Also tried to fix the "sometimes pass sometimes fail" test cases (will see if it actually works)

Find command

Added more test cases for parser as well

Codecov Report

Merging #253 (647940e) into master (88fef6f) will increase coverage by 0.39%.
The diff coverage is 50.00%.

@@             Coverage Diff              @@
##             master     #253      +/-   ##
============================================
+ Coverage     58.36%   58.75%   +0.39%
- Complexity      532      539       +7
============================================
  Files            93       93
  Lines          2200     2199       -1
  Branches        272      271       -1
============================================
+ Hits           1284     1292       +8
+ Misses          842      839       -3
+ Partials         74       68       -6

Impacted Files
Coverage Δ

...in/java/coydir/logic/parser/FindCommandParser.java
94.73% <ø> (+32.83%)
:arrow_up:

src/main/java/coydir/model/person/EmployeeId.java
90.62% <50.00%> (+0.30%)
:arrow_up:

src/main/java/coydir/logic/parser/ParserUtil.java
83.33% <0.00%> (+2.77%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


[ln] optimize layer normalization layer input memory

As bn layer does ln layer also does not need input in backwarding.
This commit will make lifespan of ln layer input as FORWARD_FUNC_LIFESPAN.

Signed-off-by: hyeonseok lee<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #2053. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://ci.nnstreamer.ai/.

LGTM


"FileNotFoundError: [Errno 2] No such file or directory: 'pew'" with pipenv installed with pip3 and python installed with homebrew

I've installed pipenv by typing (EDIT: Added sudo, because that's what I used) sudo $ pip3 install --user pipenv in the terminal. Then, I've gone to an empty folder and run python3 -m pipenv install requests, and I'm returned this error:
Creating a Pipfile for this project... Creating a virtualenv for this project... ⠋Traceback (most recent call last):   File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 193, in _run_module_as_main     "__main__", mod_spec)   File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 85, in _run_code     exec(code, run_globals)   File "/Users/sahandzarrinkoub/Library/Python/3.6/lib/python/site-packages/pipenv/__main__.py", line 4, in <module>     cli()   File "/Users/sahandzarrinkoub/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/click/core.py", line 722, in __call__     return self.main(*args, **kwargs)   File "/Users/sahandzarrinkoub/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/click/core.py", line 697, in main     rv = self.invoke(ctx)   File "/Users/sahandzarrinkoub/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/click/core.py", line 1066, in invoke     return _process_result(sub_ctx.command.invoke(sub_ctx))   File "/Users/sahandzarrinkoub/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/click/core.py", line 895, in invoke     return ctx.invoke(self.callback, **ctx.params)   File "/Users/sahandzarrinkoub/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/click/core.py", line 535, in invoke     return callback(*args, **kwargs)   File "/Users/sahandzarrinkoub/Library/Python/3.6/lib/python/site-packages/pipenv/cli.py", line 895, in install     ensure_project(three=three, python=python)   File "/Users/sahandzarrinkoub/Library/Python/3.6/lib/python/site-packages/pipenv/cli.py", line 181, in ensure_project     ensure_virtualenv(three=three, python=python)   File "/Users/sahandzarrinkoub/Library/Python/3.6/lib/python/site-packages/pipenv/cli.py", line 160, in ensure_virtualenv     do_create_virtualenv(three=three, python=python)   File "/Users/sahandzarrinkoub/Library/Python/3.6/lib/python/site-packages/pipenv/cli.py", line 413, in do_create_virtualenv     c = delegator.run(cmd, block=False, timeout=PIPENV_TIMEOUT)   File "/Users/sahandzarrinkoub/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/delegator.py", line 257, in run     c.run(block=block, binary=binary)   File "/Users/sahandzarrinkoub/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/delegator.py", line 149, in run     s = PopenSpawn(self._popen_args, **pexpect_kwargs)   File "/Users/sahandzarrinkoub/Library/Python/3.6/lib/python/site-packages/pipenv/vendor/pexpect/popen_spawn.py", line 45, in __init__     self.proc = subprocess.Popen(cmd, **kwargs)   File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 707, in __init__     restore_signals, start_new_session)   File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 1333, in _execute_child     raise child_exception_type(errno_num, err_msg) FileNotFoundError: [Errno 2] No such file or directory: 'pew'
I've tried explicitly installing pew by typing pip3 install pew, but this changes nothing.
EDIT:
Furthermore, running open ~/.bash_profile shows me a text file with export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8in it.

Apparently, this was a path issue. I added export PATH=/Users/sahandzarrinkoub/Library/Python/3.6/bin:$PATH to my path and ran pipenv install requests instead, which worked.


Version update - zipline integration.

@robertmartin8 hey!
Was wondering if zipline was being added to the library.
Looks very promising :)!!
I wanted to try it out with some backtests.
Best,
Andrew

Hi Andrew,
This is definitely something that I had always been meaning to build (though possibly with backtrader rather than Zipline). In fact, when I was working on portfolio optimisation professionally, I did actually have a go at doing a zipline/backtrader backtest, but in the end our team came to the conclusion that event-driven backtesting frameworks are not really suitable for backtesting portfolio optimisation methods, or at least they are certainly not worth the development effort. Here are a couple of interesting discussions on the topic (quantstart, quantopian: I am inclined to believe that a simple for-loop backtest is superior in our case.
Unfortunately, university commitments mean that I will not be able to tackle this. However, I may considering uploading my for-loop backtesting script instead, but I will need to make heavy modifications before it is ready for distribution.
Best,
Robert

Champion! Interesting thoughts.
Would you be able to include fees and slippage?
I was looking at a couple of basic for loop backtests but I would question the reality of the modeling?
Best,
Andrew


Timex.DateTime.now/1 raises when DateTime is ambiguous

Steps to reproduce
To reproduce, set the system clock to a datetime which will occur twice in a specific timezone (e.g. 2016-10-30 02:00:00 in Europe/Amsterdam. If you call Timex.DateTime.now("Europe/Amsterdam"), it will raise due to a missing key.
Description of issue
This function shoud return a Timex.AmbiguousDateTime-struct to reflect the fact that the datetime is ambiguous in this timezone.

Good find! I'll get this addressed in the next release. Thanks!

Fixed in master


I parsed an IP using this code:
package main

import (
	"fmt"
	"net"
)

func main() {
	fmt.Println(net.ParseIP("0:0:0:0:000000:ffff:<IP_ADDRESS>").To4())
	fmt.Printf("%#v", net.ParseIP("0:0:0:0:000000:ffff:<IP_ADDRESS>"))
}

What did you see happen?
https://go.dev/play/p/bJUjbkLm_bg (Go 1.23)
<nil>
net.IP(nil)

What did you expect to see?
https://go.dev/play/p/bJUjbkLm_bg?v=goprev  (Go 1.22)
<IP_ADDRESS>
net.IP{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0x7f, 0x5, 0x8, 0x7}

Related Issues and Documentation

net: net.ParseIP  always return ipv6 #65131 (closed)
net.ParseIP does not parse IP v6 Loopback address #34205 (closed)
net: Unable to reliably distinguish IPv4-mapped-IPv6 addresses from regular IPv4 addresses #37921
net: LookupNetIP returns IPv4 in IPv6 instead of IPv4 #53554 (closed)
net: IP.To4() in package net is not returning nil for IPv6 address. #15529 (closed)
Why IP returned by net.ParseIP length is 16 but the length of net.ParseNet.IP is 4? #41214 (closed)
net: ipv6 address parsing allows extra 0 #57760 (closed)
net: unexpected padding byte when convert from net.IP to []byte #28571 (closed)
Net package ip.To4() function does not validates the IP address and only checks for byte length #66658 (closed)
net/netip: Document of `AddrFromSlice` doesn't mention that passing IPv4 `net.IP` made with `net.ParseIP` to `AddrFromSlice` creates IPv4 mapped IPv6 `netip.Addr` #54826

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

That's not valid, there's too many digits in 000000

According to https://datatracker.ietf.org/doc/html/rfc4291#section-2.2

The preferred form is x:x:x:x:x:x:x:x, where the 'x's are one to
four hexadecimal digits of the eight 16-bit pieces of the address.

Meaning that the example at hand is invalid.
I don't thinkg this behavior change is covered by Go 1 Compatibility Promise, correct?

https://go.dev/cl/461605 is the change that added this behavior, which references #57760.
So, this change does seem deliberate. I'm not sure what the right path forward is here.
CC @neild @ianlancetaylor who reviewed the CL.

Reopening for now to await input from Damien and/or Ian.

CC @mpetrunic

Unless I'm missing something, 0:0:0:0:000000:ffff:<IP_ADDRESS> is not a valid IPv6 address. As @seankhliao says, there are too many zeros.
Go 1.22 and prior had a bug which caused us to parse this address anyway. (#57760)
The bug was fixed in Go 1.23.
This isn't a violation of the compatibility promise, since we reserve the right to fix bugs. net.ParseIP's documentation says that it returns nil if given an invalid input, so this is definitely a bug. (Unless we're all very confused and this address is actually valid.)
I don't think there's anything for us to do here.


Add GitHub Actions workflow to validate the Gradle wrapper

This PR adds a GitHub Actions workflow to validate the (binary) gradle-wrapper.jar. This is achieved by using the official Gradle Wrapper Validation Action from the Gradle team.
The motivation behind this change is to provide better protection against potentially malicious contributions. As an added bonus, reviewing contributions such as #693 gets significantly easier. However, the action only verifies the gradle-wrapper.jar and not the gradlew scripts that are frequently updated together with the wrapper.
Also, note that this should eventually be merged into a general CI workflow if one is added to this repository.
An example run can be found here.

Thank you @TheMrMilchmann, I've added this manually to LWJGL-CI's snapshot workflow.


Getting Error During Loading From Embers

When I attempt to load up the game Forge crashes and I get this error:
java.lang.NoSuchMethodError: teamroots.embers.recipe.ItemMeltingRecipe.(Lnet/minecraft/item/crafting/Ingredient;Lnet/minecraftforge/fluids/FluidStack;)V
Is it possible the recipe is conflicting with another mod?

are you running rekindled and old embers at the same time lol

I thought I might have but I checked and I only have old Embers

can we get a modlist and/or a full crashlog

crash-2019-06-21_11.51.23-client.txt
Here is the crashlog. I am aware of the possible conflict between EnderIO and Optifine but removing Optifine gives the same error.

jaopca only supports rekindled

Thanks! I'll switch to rekindled


Clean

Co-authored-by: BulletDEV<EMAIL_ADDRESS>Co-authored-by: CraqueBullet<EMAIL_ADDRESS>


Support the new JWT-VC 2.0 format

There's a newly released native JWT VC representation spec, Version 2, here:
https://w3c.github.io/vc-jwt/#version-2
Some context available in this post here:
https://self-issued.info/?p=2316
Any plans to support this in the @veramo/credential-w3c ? Or is this a question better asked in the underly package, did-jwt-vc?

Yes, we do plan to adopt the new spec as well.
The work will be mostly in did-jwt-vc, but we'll also have to make sure that everything works here too

Hi, curious if there's any updates on this front. Or curious how vermao plans to implement JWT2 support. Will there be a config option to use v1.1 or v2 or will the library switch to support only v2? Any estimated timeframes or other dependencies that you are waiting on?
Thanks

Yes, we will be adding support for v2. It's still too early to talk about that support now or how that would look like in practice.

What is the state with this?

What is the state with this?

wow, it's been a while.
We had a team volunteering to work on an implementation of VC2.0 in Veramo but so far there hasn't been any progress update.
If you'd like to raise a PR with an implementation, please say so :)


Cryptic error message - looking for some guidance

@antfu - I know you're probably sick of hearing from me for the last two weeks, but I've got a quick question.
I am using the vitesse boilerplate, and I am experimenting with different types of builds (SPA, PWA, SSG). SSG builds great, without any problems.
I have not made any changes to any PWA-related plugins, settings, or code - just using the default boilerplate provided in vitesse.
When I build PWA locally, I have no errors or issues with local builds +  vite-plugin-pwa + vite preview
When I build and deploy for prod (AWS Amplify), I am seeing the following error in my Google Chrome console when I navigate to my deployed app, but I can't understand or figure out what the issue is...
Manifest: Line: 1, column: 1, Syntax error.

What would be the best way to try to debug/figure out this production issue?

@armenr can you try download manifest.webmanifest file manually and see the server response? Or just give me the the url...

@armenr see this issue when deploying on netlify https://github.com/antfu/vite-plugin-pwa/issues/23#issuecomment-776761561 and https://github.com/antfu/vite-plugin-pwa/issues/23#issuecomment-776766783, maybe AWS Amplify has the same problem.

@userquin - Thank you for pointing out that very obvious question.  :)
Amplify has added better support for redirects - so there's a regex you have to pass for most SPAs
Source Address: </^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|woff2|ttf|map|json)$)([^.]+$)/> is the common pattern
Target Address: /index.html
Type: `200 (Rewrite)
After grabbing a copy of what the browser is receiving as "manifest.webmanifest" I realized this was a rewrite problem.
The fix was to add webmanifest to the piped regex terms -->
</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|woff2|ttf|manifest|map|json|webmanifest)$)([^.]+$)/>
^^ notice that I added webmanifest to the end of the matched strings.
That fixed it! Thank you for jumping on this so quickly @userquin

@armenr there is no stupid questions ;), try to ask this type of question on discord on Vite Land...

@armenr I'll try to collect disparate deployments and talk with @antfu to see if we can add a wiki, the docs is really long and too heavy...

@userquin - I work at AWS, managing a team of Senior Solutions Architects, specifically for startups. I'd be happy to collaborate/provide my notes and everything I've had to do to get vitesse (and the plugins/configuration it comes with) working with AWS deploys.
I'd love to contribute or collaborate. Let me know if you'd like to get in touch.

@armenr I'll try to collect disparate deployments and talk with @antfu to see if we can add a wiki, the README is really long and too heavy...

To your point, I agree that the documentation might feel a little bit heavy...maybe we could break it out into disparate deployment examples within the /examples directory, and then have READMEs in each, to try and lighten up/clean up the core README docs?

/cc @antfu

@armenr I'll try to collect disparate deployments and talk with @antfu to see if we can add a wiki, the README is really long and too heavy...

To your point, I agree that the documentation might feel a little bit heavy...maybe we could break it out into disparate deployment examples within the /examples directory, and then have READMEs in each, to try and lighten up/clean up the core README docs?

The problem here is that the examples are just for testing purposes, maybe can be useful, but are for testing the sw, not the pwa (not ready for production).
I have another pending task (I'm very busy) to collect workbox advanced usage: cache external assets, using workbox plugins with generateSW... (see for example https://github.com/antfu/vite-plugin-pwa/issues/86#issuecomment-872970367 andhttps://github.com/antfu/vite-plugin-pwa/issues/84)
I have another pending task to collect using vue2 and vue3 and for extension for react and preact (I've never use last 2 and omit svelte since it provides its own pwa builder, you can see also this issue https://github.com/antfu/vite-plugin-pwa/issues/65).
Since this plugin is framework agnostic, we need also include in some way some framework hints. For example, using vue2 we need to provide a mixin (https://github.com/antfu/vite-plugin-pwa/issues/81), I have it but I don't want to include here (in code/examples).

Thanks @userquin ! Let me know how I can be helpful to either you or @antfu. I'm really passionate about open source, and after getting into Vite, I'm totally in love and excited to contribute wherever or however I can.
Thanks again! I'm good to close this issue, if you are.

@armenr It's already closed;). I'll ping you when I talk about this with antfu and let's see how we can rearrange the documents, see you and thx.

@armenr can you provide a basic deployment for aws?

@userquin - I absolutely can.

Redirects are automatic (in fact, https is the default out-of-the-box)
Also, depending on your DNS setup, Amplify will take care of mapping your deployed branches to fully-qualified custom domains as well, but that might be a more contrived/difficult example to include right off the bat

You only need to add 1 basic redirect regex that covers almost all cases --> with a minor tweak to also redirect requests for PWA manifests

I have had one specific issue with the vite-plugin-ssg failing to build my vitesse + amplify + amplify-ui-components project...but I think that's fixable (I will open an issue for that under the appropriate repo, and will bug @antfu some more over there 😎).

@armenr I've never worked with AWS (nor Vercel) so I'm a bit lost, I need a minimal script or configuration to make it working, for example see these entries from new docs:
https://github.com/userquin/vite-plugin-pwa/blob/docs/add-vitepress/docs/deployment/index.md
https://github.com/userquin/vite-plugin-pwa/blob/docs/add-vitepress/docs/deployment/apache.md
https://github.com/userquin/vite-plugin-pwa/blob/docs/add-vitepress/docs/deployment/netlify.md#basic-deployment-example

We also need to configure a few headers about HS/TS, caching, gz/br compression... I need to collect all these headers, I will put here...

 As I said, I'm a bit lost.
About security headers:

referrer-policy: no-referrer
service-worker-allowed: /
strict-transport-security: max-age=31536000
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 1 ; mode=block

About compression headers:
Can AWS Amplify compress on the fly using gz and br?

content-encoding: gzip
or content-encoding: br

Yes -
You are able to add/modify those with some lesser-known configuration that can be done programmatically and tracked/versioned alongside your code, using the optional amplify.yml in your app codebase.
I will post a sample here shortly

@userquin -
If you want to get in touch, let's connect on Discord/Telegram/Slack/Signal (whatever you're comfortable with)...and I can probably provide you with an example repo/project where we can include/explore anything that's needed for adding to the docs.
Redirects & hosting an SPA/PWA/SSR app

As noted above ^^, the console lets you take care of redirects + custom headers through the UI, but it's better to manage your custom headers through your amplify.yml file (sample included below).
For now, the only thing I manually configure through the console, specifically, is redirects. The documentation on this is actually not bad:
https://docs.aws.amazon.com/amplify/latest/userguide/redirects.html
As you can see, there's a section here called "Redirects for single page web apps (SPA)," and the recommended regex they provide is:
</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|woff2|ttf|map|json)$)([^.]+$)/>

Redirects for PWAs
I had to slightly tweak this regex, and added |manifest|webmanifest to the match conditions, as shown below:
[
    {
        "source": "</^[^.]+$|\\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|woff2|ttf|manifest|map|json|webmanifest)$)([^.]+$)/>",
        "target": "/index.html",
        "status": "200",
        "condition": null
    }
]

Configuring custom headers
Here's a sample amplify.yml (I use most of this with my current vitesse project) with a bunch of cool, less-known/not-widely-discussed settings, including customHeaders, and additional Content-Security-Policy
version: 1
## Define Build ENV vars
env:
  variables:
    AMPLIFY_DIFF_BACKEND: true
    AMPLIFY_DIFF_DEPLOY: true

##! NOTE: WE DO NOT USE PNPM FOR PRODUCTION BUILDS! ALL AMPLIFY BUILDS DEFAULT TO YARN (for now)

## BEGIN Backend
backend:
  phases:
    # NOTE: You can install terraform, serverless framework (sls), etc. and/or include a makefile or
    #       BASH script that you can invoke from here to further extend your deploy automation, but
    #       benefit from having everything run centrally through your amplify build pipeline without
    #       needing more webhooks, build pipelines, or CI/CD automation!
    preBuild:
      commands:
        - nvm install --lts && nvm use --lts
        - npm install -g @aws-amplify/cli@latest

    build:
      commands:
        - amplifyPush --simple
  cache:
    paths:
      - node_modules/**/*

## BEGIN FrontEnd
## We build with YARN because CodeBuild doesn't like PNPM
frontend:
  phases:
    preBuild:
      commands:
        - nvm install --lts
        - nvm use --lts
        - npm install -g yarn
        - yarn
    build:
      commands:
        - yarn build:client:yarn:ssg
        # - yarn build:client:yarn:spa
  artifacts:
    baseDirectory: /packages/client/dist
    files:
      - "**/*"
  cache:
    paths:
      - packages/client/node_modules/**/*
      - node_modules/**/*
  customHeaders:
    - pattern: "**/*"
      headers: # https://infosec.mozilla.org/guidelines/web_security
        - key: "Strict-Transport-Security"
          value: "max-age=31536000; includeSubDomains"
        - key: "X-Content-Type-Options"
          value: "nosniff"
        - key: "X-XSS-Protection"
          value: "1; mode=block"
        - key: "X-Frame-Options"
          value: "DENY"
        - key: "Referrer-Policy"
          value: "same-origin"
        - key: "Feature-Policy"
          value: "microphone 'none'; camera 'none'; notifications 'self'"
        # CSP generated using Laboratory: https://github.com/april/laboratory
        # Caveats
        ## Stripe Elements adds inline JS and iFrame (unsafe-eval, frame-src)
        ## Allows any endpoint hosted on AWS - NOTE: Use custom domains for production
        ### REST and GraphQL have random identifiers so we allow the sub-domain (connect-src)
        ### connect-src doesn't parse cognito-idp.*.amazonaws.com used by Amplify Auth - for prod, use region(s) endpoint
        - key: "Content-Security-Policy"
          value: "'default-src 'none'; connect-src https://*.amazonaws.com; font-src 'self' https://fonts.gstatic.com; frame-src https://js.stripe.com; img-src 'self'; script-src 'self' 'unsafe-eval' https://js.stripe.com/v3/; style-src 'self' https://fonts.googleapis.com/css?family=Raleway 'unsafe-inline' https://fonts.googleapis.com'"

Important Note about "hosting" in Amplify
It's important to add a note on "hosting" in Amplify. The naming might be slightly confusing, but there are two modes for building/hosting your Amplify app.
1
There's "Amplify Console" hosting, which is what I use. It's the default, out-of-the-box hosting provided with Amplify. Just create and connect your Amplify Project to a GitHub repo, and instantly get builds on git push to your repo. It comes with other benefits, like instant (and partial) cache invalidation and "atomic" deployments.
2
Then, there's Cloudfront + S3 hosting...which is done by running amplify add hosting. It provides "more control" for your deployments...although I've honestly never, ever had a reason to use this (and I'm a guy with 12+ years of DevOps/SRE/SysAdmin/Solutions Architecture under my belt, and 6+ years of experience with JS & webapps).
Just to kind of highlight what I mean: I was building a proof-of-concept webapp for Video-on-Demand (use-cases like EdTech, CMS, independent content creation/sharing), file uploads, and variable/adaptive bitrate encoding + streaming...and I did all of that (and more) without ever needing to use this "hosting" mode. I just used the vanilla "Amplify console" hosting, without any issue.
For more info, see  the official documentation here: https://docs.amplify.aws/cli/hosting

@armenr search me on discord, Joaquín#7667

@armenr also with CSP, good to know... thank you very much

@armenr  A first version https://vite-plugin-pwa.netlify.app/, we have it merged on master branch

@userquin Please let me know

@aaziz-aqua what do you want man? I have no idea about angular and vercel

Hi @userquin in my local its working. Its only issue is on AWS Amplify.
I have set the Source Address as you mention. But still getting the error

Do I need to set custom header for it as well? Because in my network it geting me this

@aaziz-aqua check the content for that request, should be your web manifest, and then you should add a custom content type for it: application/manifest+json

Thank You @userquin Should I add this in the costume header of AWS

@aaziz-aqua yes, but I have no idea how to add it, maybe in your amplify.yml config file or in your control panel, here an example for Netlify: https://vite-pwa-org.netlify.app/deployment/netlify.html#configure-manifest-webmanifest-mime-type
Check this comment https://github.com/vite-pwa/vite-plugin-pwa/issues/95#issuecomment-891531237, you have some customHeaders in amplify.yml file


chore: update boilerplate

What type of PR is this?
(bug/feature/cleanup/documentation/test/refactor)
What this PR does / why we need it?
Which Jira/Github issue(s) this PR fixes?
Fixes #
Special notes for your reviewer:
Pre-checks (if applicable):

[ ] Tested latest changes against a cluster
[ ] Ran make go-test command locally to run all the unit tests and mock tests locally.
[ ] Included documentation changes with PR

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

Project coverage is 59.29%. Comparing base (1fe4b31) to head (6ae6743).

Additional details and impacted files

@@           Coverage Diff           @@
##             main     #631   +/-   ##
=======================================
  Coverage   59.29%   59.29%
=======================================
  Files          62       62
  Lines        4108     4108
=======================================
  Hits         2436     2436
  Misses       1524     1524
  Partials      148      148

/override ci/prow/operator-e2e

/override ci/prow/operator-e2e


Server support for HelloRetryRequests

Please note that while we are transitioning from travis-ci to AWS CodeBuld, some tests are run on each platform. Non-AWS contributors will temporarily be unable to see CodeBuild results. We apologize for the inconvenience.
Issue # (if available):
#964
Description of changes:

Setup handshake flag to indicate the need for an HRR
while parsing ClientHello
OpenSSL and BoringSSL handshakes are successful

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

Codecov Report

:exclamation: No coverage uploaded for pull request head (964_hello_retry_server@c62c6d7). Click here to learn what that means.
The diff coverage is n/a.

Codecov Report

Merging #1575 into master will decrease coverage by 0.36%.
The diff coverage is 51.94%.

@@            Coverage Diff             @@
##           master    #1575      +/-   ##
==========================================
- Coverage   79.09%   78.72%   -0.37%
==========================================
  Files         214      214
  Lines       15994    16170     +176
==========================================
+ Hits        12650    12730      +80
- Misses       3344     3440      +96


DoDAO - Education and Onboarding Platform

DoDAO - Education and Onboarding Platform
Grant category
Please select one or more of:

[x] Open source maintenance
[ ] Developer tools / services
[x] Educational material

Introduction
This proposal describes the biggest problem that we face in blockchain projects and i.e. lack of properly organized information. This prevents projects from creating an active community and ecosystem.
DoDAO has three different products to solve this at three different levels

White Labeled Onboarding Web-site - This website enables creating different educational onboarding guides which users can go through based on their skills and interests.
White Labeled Course Web-site - This website enables creating detailed courses
Ecosystem website - Enables all the members of a particular blockchain to remain in the ecosystem and know about other projects in the ecosystem.

Important things to note are

Each of these three products can be hosted under any subdomain
Courses and Onboarding websites allow custom theming. If needed we can add custom theming for ecosystem website as well
Users login using their wallet as that allows for future interactions with other projects and enables composability.
We are open to integrating with other community platforms and providing necessary docs from our side. On the ethereum side we will be integrating with gnosis-safe and project galaxy to enable token transfers and give NFTs/badges. For future partnerships we would like to do the same in Flow ecosystem.
We treat this relationship as partnership rather than vendor relationship, as only by working together can we add real value to the community.

NOTE: Please see the video linked below
Description

DoDAO - Grant Application - Flow - Watch Video

Problem statement
Onboarding Contributors

How can we separate the members who really want to contribute from the one time visitors?
What is the cost of loss of opportunity by not using the community to build and improve the project?
Can the new members who join, learn about the project and areas of contribution in just 5 mins?
How can we onboard members so that they have all the information needed to contribute?

Education/Academy

Do we have a proper educational/course website targeted towards different type of users like Developers, Entrepreneurs, Artists etc?
Do we have courses like Blockchain 101, NFTs 101, DeFi 101 etc. allowing people from Web2 to learn and join Flow?
How can we make sure that people who want to learn about Flow can do so in an incremental way?
How can we create a unique learning path for each member based on their skills and interests?
How can we incentivize learning?

Knowing the community

Do we know the different type of skills in the community and their distribution?
Do we capture the information from the community like their telegram, email etc., so that we can contact them and organize group sessions?

Ecosystem

Can the members of the Flow community easily learn about all the different projects in the Flow Ecosystem?
How can they find the information on how to contribute to these different Flow projects?

Proposed solution - Video

DoDAO - Grant Application - Flow - Watch Video

Proposed solution - Details
DoDAO provides solution for all the problems mentioned above and offers three different products

DoDAO Onboarding Website
The onboarding website allows different users to go through the onboarding guides based on their skills and interests. Here is an example of an project that uses DoDAO for onboarding

Onboarding or Educational guides makes it very easy for different types of users to choose a learning path based on their interests. It enables new members to know about the project and how they can contribute in a short time span of just 5 minutes.
Less than 30-40% of the entire community will go through these guides, but the people who go through these guides, definitely want to know about the project and wish to contribute. It is very important to be able to reach out to these members and then do group sessions. DoDAO guides enable capturing user information and also integrates with Discord
DoDAO Onboarding platform separates out the members who are willing to contribute form one time visitors

DoDAO onboarding website can be white-labeled. Any kind of theme can be applied to match to the styling of the main website, and the white-labeled site can be mapped to any domain.
DoDAO Course Site (Academy Website)
Blockchain is complex for members coming from Web2. Only way to have long term mass adoption is by educating members about the project, technologies, and features. We should create different types of courses for different types of members.
DoDAO course website allows creating a white labeled academy/university website. Each course is a combination of guides.

DoDAO Ecosystem Website
The ecosystem website is a platform that serves as a hub for community projects to be highlighted. This will help community members to learn about various projects using Flow’s technology to build awesome products. This can spark some ideas for other members to build as well and keep everyone informed about the growth of the community in terms of projects being developed.
Every project will have informational and onboarding guides for their project so people will know how to join them and in some cases know how to use their products or even connect to their platform. The possibilities are enormous and this can give community members that opportunity to collaborate with projects or contribute to the growth of that product/project.
Some of the projects that we have developed the ecosystem website for are shown below:
Harmony Ecosystem - https://one.dodao.io/
Near ecosystem - https://near.dodao.io/
DoDAO Guides
At the heart of all the different DoDAO product offerings are the DoDAO Interactive Guides. Our underline layer i.e. interactive guides are far better than normal documentation in a number of ways

Guides are to-the-point and are meant to onboard users for a specific role or task.
Information is presented to the user in a piece-by-piece way i.e. in steps.
Guides have evaluation steps which implies that the user needs to go through the contents carefully and thoroughly
Guide completion is tracked i.e. we know the user's wallet address, completion date, and score.
This data can be queried to apply smart logic like: gating of discord channels, gating of product boards, and proposal voting
Guides can be used to capture user information
Multiple guides can be combined into courses.

Milestones and funding
Milestones
Milestone 1 - Integrate Portto(Blocto) Wallet
We will integrate Portto(Blocto) and allow users to login using the wallet. This wallet will be used for tracking guide completions etc.
In the future we can use the wallet address to transer NFTs or tokens upon completion of educational milestones.
Milestone 2 - Onboarding White Labeled Website & Discord Bot
As part of this milestone we will create the following Onboarding guides

Guide Title

Audience

Summary

Introduction to Flow

First time Users

A brief overview of Flow and the types of products that can be deployed using its technology

Developer Alpha Program

Developers who want to build with Flow

A guide for developers who are interested in building on the rails of Flow be it individuals or full fledged organizations

Ambassadors Guide

Technical and Non-technical contributors who want to develop the Flow ecosystem

A clear explanation for people who are interested in contributing their skills and time to the development of the Flow ecosystem.

Node Validators Guide

Validators

A guide for anyone who will love to be a validator on Flow blockchain

Accelerators Guide

Builders (Technical and Non-technical)

A guide to the accelerator program including what its about, who it is for and what the requirements are

We will also be developing a discord bot which will allow users to have a personalized learning path. The v1 of the bot will be a simple one i.e. will ask the user to select the skills or interests and will recommend the guides the user should go through.
Milestone 3 - Course Website
We will setup a course website and create a V1 of the course. We will do at least five iterations of the content with the Flow team to make sure it matches the expectations.
This milestone will set us up for the long term educational vision.

Course Title

Audience

Duration

Flow in minutes

Anyone with a computer and internet connection can take this course. If you are interested in making sense of Web3, but you don't know how to read or write code, then you are in the right place.

10-20 mins

Milestone
Deliverables
Timeline
Risks
USD proposal

1 - Integrate Portto(Blocto) Wallet and Setup Ecosystem website
Working website with url https://flow.dodao.io
3 weeks
-
20000 USD

Milestone 2 - Onboarding White Labeled Website & Discord Bot
White-labeled onboarding website with 5 guides  and a discord bot
3 weeks
-
14000 USD

Milestone 3 - Course/Academy Website
A course which introduces the users to flow
3 weeks
-
10000 USD

Team

Name
Role
Bio
Contact

Robin
Founder of DoDAO
15 years of experience developing web technologies and creating teams
<EMAIL_ADDRESS>

Future Partnership
As part of future collaboration we want to work on the following courses
Courses

Course Title

Audience

Duration

Flow 101 (Introduction to Flow for Web Developers)

Web developers who want to learn how to build on Flow. As the new kid on the block, you should get in here to Flow with Flow

60 mins

Flow 102 (Introduction to Flow for DApp Developers

DApp Developers can now learn how to build awesome DAapps with Flow. What is a better way to flow than to build with Flow?

60 mins

Cadence: Write your first smart contract

Anyone interested in building for web3 with some programming background. A fun way to code your way to web3

60 mins

thanks for the submission, we'll review this and get back to you soon @RobinNagpal

We can also add the guides created https://github.com/onflow/developer-grants/issues/28 on DoDAO's Flow website, as DoDAO is a platform specifically designed for creating guides

Hey @RobinNagpal, thanks for the proposal. We finally reviewed it in detail and came to the conclusion to pass on it because it is unclear how much of an impact this project would have on the developer ecosystem. While the need is clear and feasibility is not an issue (the platform seems useful), most concerns for us were related to the content production and distribution (which we consider key to the success).
Thanks for taking the time to submit this proposal and feel free to reach me directly on Discord in case you have further questions.


method does not override or implement a method from a supertype

Hi there,
I'm for the first time trying to setup a react-native application, so maybe I'm missing something really simple, but when I run react-native run-android I'm getting the following error:
node_modules/react-native-billing/android/src/main/java/com/idehub/Billing/InAppBillingBridge.java:379: error: method does not override or implement a method from a supertype     @Override     ^ 1 error
I'm wondering if this is some problem with the version of the android-sdk I have or some misconfiguration in the build.gradle file.
Here is some info about my environment:
Android-sdk <IP_ADDRESS>
react-native -v react-native-cli: 2.0.1 react-native: 1000.0.0
And these are the contents of my package.json file: https://gist.github.com/dlt/450cb797fd2b2b4c89020c0e31d5b975
Any help much appreciated

Hi @dlt,
I think this might be a duplicate of #34
I don't quite understand why this is suddenly a problem, but I'll take a look at this during the weekend and release a fix if needed.

I'm suddenly getting this problem as well.

Was working fine for about a week, also suddenly getting this problem.

Actually, when I reverted back to react-native: 0.39.2 it worked again. So weird.
@booboothefool you can try commenting out that empty Override function. It will build when you do.

@annelorraineuy
I didn't upgrade RN and actually still on 0.37. I did add a bunch of new dependencies recently though.
Thanks for the tip. Commenting it out works for now. 👍

Ah, my particular case was I messed up my project build.gradle:
(my other dependencies broke too after I got past react-native-billing
android/build.gradle
allprojects {
repositories {
mavenLocal()
jcenter()
maven {
url "$rootDir/../node_modules/react-native/android"
url 'https://github.com/500px/500px-android-blur/raw/master/releases/'
}
}
}

gotta split up the maven stuff (I didn't even know what maven was)

    maven {
      url "$rootDir/../node_modules/react-native/android"
    }
    maven {
      url 'https://github.com/500px/500px-android-blur/raw/master/releases/'
    }

Works for me now.


Update wgsl codes to the latest version

Please update wgls codes to the lastest version.. for example
[[ group(0), binding(1)]]  should be migrated to @group(0) @binding(1).
Some API is also deprecated, please update to the latest.
:-)

done


charset: add GetSupportedCollations to get only supported collations

What problem does this PR solve?
Please check corresponding TiDB PR: https://github.com/pingcap/tidb/pull/10186 for the purposes.
What is changed and how it works?

To fix the inconsistency problems, some const table on Charset and Collations are modified.
A new GetSupportedCollations is added.
Refined some func/vars namings

Check List
Tests

Unit test

Code changes

Has exported function/method change

Related changes

Need to cherry-pick to the release branch
Need to update the documentation

addressed, PTAL @lonng @winkyao

LGTM


First tests :rocket:

[x] Subscribe API TEST
[ ] Merchant API TEST

Open PR from ur master branch!


Show friendly error when inputting a Node ID into Shoggoth Explore

Both Node IDs and Profile IDs start with SHOG. User might find it confusing that inputting a Node ID into Explorer causes a "invalid Shoggoth ID" error.
Solution: output a more friendly error, e.g. "You've entered a Shoggoth Node ID (starts with SHOGN). Shoggoth Profile ID (starts with SHOG) is expected."

obsoleted by v1.0.2


I had to change these lines to support earlier versions of python(3.5)

@Ren22 please add PRs to the corresponding project

@intsco added it to this PR https://github.com/metaspace2020/metaspace/pull/142

@intsco should I changed the branch for merging from master to release/v1.0 as well?

If we merge these changes only to master they won't be deployed to prod for a while. If it's a hotfix then it should go into the release branch.

It's not a hotfix and should be fine with master, merging and closing


feat: ingress class

redkubes/unassigned-issues#413
redkubes/unassigned-issues#390
depends-on: redkubes/otomi-console/pull/191
depends-on: redkubes/otomi-api/pull/315
Checklist

[ ] Architecture Design Records have been added as adr/*.md and appended to list in adr/_index.md, if applicable.
[ ] The values-schema.yaml file and test/** fixtures have been updated to reflect code changes, if applicable.
[ ] The OpenApi Schema from redkubes/otomi-api project is compatible with definitions from values-schema.yaml file, if applicable.
[ ] Helm releases are meeting otomi's baseline security policies, if applicable.
[ ] Helm chart and helmfile changes are tested against upgrade scenario, if applicable.

looks good to me


Only Suggestion (No Bug) - Mention Animate.css

Challenge http://www.freecodecamp.com/challenges/waypoint-target-html-elements-with-selectors-using-jquery has an issue. Please describe how to reproduce it, and include links to screenshots if possible.
Suggestion: I think it would be helpful to mention that you are using Animate.css here or people might think the "animated" and "bounce" classes are part of JQuery.

Hey @Gmrpr7, thanks for posting this!
Good catch, we need a blurb near the bottom of the description about this

It's mentioned here: https://github.com/FreeCodeCamp/FreeCodeCamp/blob/a048049ca3dfe66362ab4bd2f7c4f39e0b82127e/seed/challenges/jquery.json#L62

@BerkeleyTrue has that not been merged/deployed yet?

It will be shortly.

Its live! http://freecodecamp.com/challenges/waypoint-target-html-elements-with-selectors-using-jquery


Suiet Modal needs a transition when popping up

This is not a issue, but rather an improvement request.
Modal is popping up instantly, yes you can fix that by adding transition of your own.
But this can be done internally with framer-motion or headless-ui, and can be added a 300-500ms transition when entering dom or leaving dom
This can make user experience more great, while making the modal more look great.

Thanks for the suggestions, we will consider this for the future versions!


How to update user's password?

Hi,
I would like to update password and as I understand I need to update on users view.
For that I has users view based on authentification part tutorial, I also managed versioning with schema "21".
How can I configure postgrest to update information into users view ?
Regards

Are you following the user management tutorial or building your own custom schema?

@zizou10 did you figure this out?

Closing the issue here as it is a matter of documentation. Feel free to open doc questions on https://github.com/begriffs/postgrest-docs