Add controls for numpy version

Add support for environment-config-controlled constraints on the version of numpy installed by the image build process for ngen-related Docker images.
Note that this blocks #675, as that revision of the image can't be built for testing due to the problem being fixed here.
Additions

New environment config variable for numpy constraint, with default value and comments in example.env

Removals

Removes a deprecated and unused Dockerfile ARG MIN_NUMPY for clarity.

Changes

New Dockerfile ARG for numpy constraint, applied appropriately where numpy gets installed by image build
Setting of aforementioned ARG in Compose build yaml configs, for all ngen-based images/services (e.g., model exec, calibration, etc.)

Testing

ngen worker image now builds successfully, whereas previously it would fail due to a failed ngen unit test testing part of the Python BMI integration

If the issue is with a single requirements file... there's nothing keeping us from having a single requirements file. We can also produce new build 'hooks' where extra files may be COPYed in if behavior needs to be altered in different stages.
What we have, right now, is already too complicated. We need to start moving in another direction to find an easier to follow build pipeline. If not making something configurable makes the build process prohibitively resource intensive, something is wrong and we need to take a step back and evaluate our process(es).
For now, hard code the value since it would be global anyways. If a user needs to color outside the lines and use a different value, they may change it themselves.
Ideally, DMOD needs to get out of the game of setting up compilation rules for another product. We don't set compilation flags or environment variables just to prepare pandas for use. DMOD is a consumer of NextGen and compatible formulations. Instructions and constraints for use need to be provided from them, not developed by us. If the DMOD image creation process is responsible for setting this up we're putting ourselves in a position of eternal catch up.

What we have, right now, is already too complicated. We need to start moving in another direction to find an easier to follow build pipeline.

You aren't wrong, but that's out of scope for what is essentially a bug fix.

If not making something configurable makes the build process prohibitively resource intensive, something is wrong and we need to take a step back and evaluate our process(es).

Just to be clear, the lack of configurability doesn't make the builds less efficient.  But artificially tethering together the installation of all the Python packages used throughout the worker images would.

For now, hard code the value since it would be global anyways. If a user needs to color outside the lines and use a different value, they may change it themselves.

Sure, I can make that change for here, and we can separate off the idea of adding (or not) configurability to numpy versioning for workers.

Ideally, DMOD needs to get out of the game of setting up compilation rules for another product. We don't set compilation flags or environment variables just to prepare pandas for use. DMOD is a consumer of NextGen and compatible formulations.

Providing compatible, consistent, reproducible compute environments (whether these be Docker images/containers or some other mechanism) for model execution is a fundamental feature of DMOD, and that means it has to be concerned with compilation flags and environment details and anything else users would have to deal with to set up an environment if they were just trying to use ngen directly.  There is certainly room to discuss which of these DMOD opens up via control/configure mechanisms versus what DMOD just handles automagically behind the scenes.  And if/when ngen can add its own automation for installing its dependencies like numpy or begins distributing installation packages, great; DMOD can leverage those instead.  Until it does though, for DMOD to be able to run ngen, there’s just no way around dealing with this kind of stuff.

I think https://github.com/NOAA-OWP/ngen/pull/856 will solve our issues an obsolete this PR. We will still at some point need to revisit how we handle external bmi module dependency versioning, but that is a whole can of worms that I think we should kick down the road!

@aaraney, no, I think #https://github.com/NOAA-OWP/ngen/pull/856 will just cause DMOD image builds to fail for a different reason (the CMake error instead of the unit test failure).  Unless ngen actually handles installing numpy itself, we are going to have to address what version of numpy gets installed in the image.
As discussed above, I'll make changes so that we hard code this for now to the latest 1.x.

Extra context, there is already a check in ngen that if the version of numpy that was used at build time does not match the one that is used at runtime, an exception is thrown. So, if ngen is built with numpy<=2 and then numpy in the environment gets updated, we are still covered.

Alright, so after a side channel conversation with @robertbartel, at least IMO, I think we can achieve the goals of this PR using a pip constraints.txt file (very similar to requirements.txt). More specifically, the path to the constraints.txt file would be set to the PIP_CONSTRAINT environment variable in any build stages that build / install python dependencies. In doing so, any packages that are installed via pip will be constrained to the version specifiers in constraints.txt.
In doing so, this lets us control what version or version ranges of certain packages are installed in the image. Likewise, incompatibilities will results in a build failure.

@christophertubbs, any other concerns before this moves forward?  I might either need explicit approval from you or to dismiss your previous review, in order to comply with branch protections (the latter of which I don't want to do until you've had a chance to raise any remaining discussion items).


Clicking the UI also registers a click in the main rendering context

This is currently the standard behavior in Taichi, clearly should not work like this.
As a workaround, editing in the 2D pipelines can be disabled, until Taichi fixes this.

Can I you elaborate on this issue more would like to work upon it.
Thanks!

Sure @Abhinavcode13
When you open one of the pipelines (e.g. 2D Discrete) in the GUI mode (which is the standard mode) there's a UI panel with controls like sliders and switches. Left-clicking any of these elements will also send a left click event to the main window, which in some pipelines invokes another action.
That's undesired behavior. If the user clicks on a UI element, that element should be the only one that receives the event. This is related to Taichi as the provider of the GUI and generally GPU API. Perhaps Taichi has a way of changing this behavior, or at least a reported issue we could reference.


Is there a way to hide the "featured" taxonomy?

It's not a huge deal but this page is weird: http://localhost:1313/featured/

@bryanfriedman with a cursory look around, it looks like the best we could do is a post-build step to remove the public/developer/featured directory. Only configuration options I can find are an all-or-nothing enable/disable all taxonomy pages, though perhaps I overlooked something.

Featured taxonomy not even used anymore.


Increase client-go qps and burst to 10/20 for k8s 1.27+

Default QPS for kubelet has been increased in 1.27 k8s to 50 QPS. https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.27.md under "Bump default API QPS limits for Kubelet.
Before kubelet had 5 QPS the same as agent.
Still when agent needs to create CEP and Identity for a pod, it has to make two API calls so potentially pod startup latency was higher than expected if node was experiancing high churn of pods with new identities.
Now with recent change of kubelet, there is even higher chance of that to happen - therefore we should increase QPS.
Default client-go QPS and burst in agent and operator have been increased to 10 and 20 respectively for k8s versions 1.27+

/test


Get-Location slow in PowerShell Core

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
Install PowerShell or PowerShell Preview from the Windows Store

Open a Console (i ran it with noprofile)
Run Get-Location
Wait

Expected behavior
Returns results immediately

Actual behavior
Takes at least one second

Error details
`$pwd` is fast, so strange
`Get-Location` is fast if `Microsoft.PowerShell.Management` is imported first

I came across this while trying to figure out why https://github.com/starship/starship runs slowly on Core but not on Windows PowerShell. Importing `Terminal-Icons` is slow as heck too (4 seconds) on Core (but not on 5.1), and when I ran a profiler, it was slow on getting the location of the icons directory, so something is going on.

This started recently and may be related to Windows 11?

Environment data
Name                           Value
----                           -----
PSVersion                      7.1.4
PSEdition                      Core
GitCommitId                    7.1.4
OS                             Microsoft Windows 10.0.22454
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0ΓÇª}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

(piping to clip is a bit slow too)

Visuals
No response

I can not duplicate this here. With the same version of PowerShell (7.1.4), I see:
PS C:\Foo> measure-command {Get-location}

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 9
Ticks             : 97688
TotalDays         : 1.13064814814815E-07
TotalHours        : 2.71355555555556E-06
TotalMinutes      : 0.000162813333333333
TotalSeconds      : 0.0097688
TotalMilliseconds : 9.7688

Yes, that is basically what I see on the first couple of runs and then it drops down to ~1.3 milliseconds per run.

I wonder if this is specific to the Windows Store version, then.

 PS > (Get-History -id 1).Duration

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 40
Ticks             : 402629
TotalDays         : 4,66005787037037E-07
TotalHours        : 1,11841388888889E-05
TotalMinutes      : 0,000671048333333333
TotalSeconds      : 0,0402629
TotalMilliseconds : 40,2629

PS C:\github\SPReplicator\SPReplicator> measure-command {Get-location}

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 3
Milliseconds      : 125
Ticks             : 31250877
TotalDays         : 3.61699965277778E-05
TotalHours        : 0.000868079916666667
TotalMinutes      : 0.052084795
TotalSeconds      : 3.1250877
TotalMilliseconds : 3125.0877

This is a Windows 10 VM in Azure that got updated to Windows 11. I'll try pwsh installed from github and see if it helps.

I figured it out!
I've narrowed it down to this being in my pwsh profile: $env:psmodulepath = "C:\github;$env:psmodulepath"
My Windows PowerShell profile had a different order: $env:psmodulepath = "$env:psmodulepath;C:\github"
Thanks everyone for the help.


twitcasting.tv not working (vods/lives)

Checklist

[x] I'm reporting a broken site support
[x] I've verified that I'm running youtube-dl version 2021.04.01
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar issues including closed ones

Verbose log

[debug] System config: []
[debug] User config: ['-o', 'D:\\Videos\\%(title)s.%(ext)s']
[debug] Custom config: []
[debug] Command-line args: ['https://twitcasting.tv/c:riinukun', '--verbose']
[debug] Encodings: locale cp1252, fs mbcs, out cp850, pref cp1252
[debug] youtube-dl version 2021.04.01
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.19041
[debug] exe versions: ffmpeg 4.2.1, ffprobe 4.2.1
[debug] Proxy map: {}
[generic] c:riinukun: Requesting header
WARNING: Falling back on generic information extractor.
[generic] c:riinukun: Downloading webpage
[generic] c:riinukun: Extracting information
[generic] twplayer?r8705: Requesting header
WARNING: Falling back on generic information extractor.
[generic] twplayer?r8705: Downloading webpage
[generic] twplayer?r8705: Extracting information
ERROR: Unsupported URL: https://ssl.twitcasting.tv/c:riinukun/twplayer?r8705
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpwt56m8wg\build\youtube_dl\YoutubeDL.py", line 806, in wrapper
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpwt56m8wg\build\youtube_dl\YoutubeDL.py", line 827, in __extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpwt56m8wg\build\youtube_dl\extractor\common.py", line 534, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpwt56m8wg\build\youtube_dl\extractor\generic.py", line 3506, in _real_extract
youtube_dl.utils.UnsupportedError: Unsupported URL: https://ssl.twitcasting.tv/c:riinukun/twplayer?r8705

Description

Trying to download lives and vods on twitcasting.tv without any luck. Even the index.m3u8 mentioned a few months ago doesn't work anymore.

The website doesn’t seem to use playlists anymore, or at least there are no requests to an M3U8 file like there used to be.
Just leaving this here for others looking for a solution: streamlink does still support Twitcasting currently. Example usage:
streamlink -o output_file.ts https://twitcasting.tv/USERNAME/movie/MOVIE_ID best

Password-protected video:
streamlink -o output_file.ts --twitcasting-password password_here https://twitcasting.tv/USERNAME/movie/MOVIE_ID best

Also works for live streams (i.e. URL format  https://twitcasting.tv/USERNAME).


Fix "No module named 'tests.test_black'"

Occurs somewhat sporadically. See the comments[] on the AUR package for
more details.
Thanks to Kaizhao Zhang (zhangkaizhao).
[]: https://aur.archlinux.org/packages/python-black/#news

Pull Request Test Coverage Report for Build 780

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage remained the same at 96.168%

Files with Coverage Reduction
New Missed Lines
%

tests/test_black.py
1
97.83%

Totals

Change from base Build 777:
0.0%

Covered Lines:
2911

Relevant Lines:
3027

💛  - Coveralls

Hm, there is no longer a requirement for __init__.py files to denote Python packages. So it's weird that this would work sometimes. I would like to know more about the issue before we put the file there.

@zhangkaizhao, any chance you could shed some light?

Hello! @ambv is right. I have just tested successfully without a __init__.py file on my up-to-date environment. Just don't know why it failed at that time. Anyway, it works without a __init__.py file now. Hi @polyzen I think you can remove that line and then wait a few days to see if anyone reports the ModuleNotFoundError error again.

Alright ┐('～`；)┌.

Still getting the module import error with python 3.7.1. Python 3.6 seems to work.
% git clone https://github.com/ambv/black/ && cd black
% python --version
Python 3.7.1
% python -m unittest tests/test_black.py

E
======================================================================
ERROR: test_black (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: test_black
Traceback (most recent call last):
  File "/usr/lib/python3.7/unittest/loader.py", line 154, in loadTestsFromName
    module = __import__(module_name)
ModuleNotFoundError: No module named 'tests.test_black'

----------------------------------------------------------------------
Ran 1 test in 0.000s

It seems to be caused by a tests python package (in my case installed by python-gdbgui), which conflicts with tests.test_black. Uninstalling this package solves the module import error.

I had the same issue with the Arch package (in my case it was the markdownify module which had installed a tests module).

@joelnb, which package provides that module? Can't find a markdownify package in the repos nor AUR.

I'm not sure if there is one. I think I installed it using pip, which I normally would have done in a virtualenv but I have a script which uses it and I didn't want to have to enter a virtualenv every time I call the script.
In this case I don't think there is any change needed, I just wanted to notify people about another module which may cause this error.


Crash opening a shell file

While opening a shell file like dmenumount I get st crash, causing st window disappear. It shows the content of the file just 1 milisecond after it crashes. I can edit other files (rmarkdown, plain text) successfully (no window crash).
note: It's not exactly your dmenumount , it's a custom one.

Tried with konsole, kitty, even kate and not showing that behaviour (I can open and edit the file on those).
I've tried different editors also (vim, nvim, nano) on st and I get same crash nevertheless.

Can an error on that shell file cause a st crash? How can I debug st so I can see what's happening before st crashes?

dmenumount is executable.

It's the emoji crash. Install libxft-bgra.


Change in Cache implementation for Loadbalance

Pull Request Test Coverage Report for Build 1134

5 of 7 (71.43%)  changed or added relevant lines in 3 files are covered.
17 unchanged lines in 6 files lost coverage.
Overall coverage increased (+0.1%) to 63.269%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

control/archaius/transfer.go
2
4
50.0%

Files with Coverage Reduction
New Missed Lines
%

control/archaius/transfer.go
1
85.71%

core/config/cd_config.go
2
0.0%

core/registry/servicecenter/util.go
3
48.21%

core/lager/logrotate.go
3
35.75%

server/highway/highway_conn.go
4
80.41%

core/registry/util.go
4
65.63%

Totals

Change from base Build 1132:
0.1%

Covered Lines:
5028

Relevant Lines:
7947

💛  - Coveralls


Generate documentation from source

Done in https://github.com/Rupt/c-explicitly-controlled-testing/commit/6bbc87b4b17a0a96124f6575bbf5d491c6df7a62


MINOR: Unused logger removed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/5425/
Test PASSed (JDK 8 and Scala 2.12).

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/5440/
Test PASSed (JDK 7 and Scala 2.11).

Merged to trunk.


Move SLE15 Stack Pipeline to GitHub Action

Is your feature request related to a problem? Please describe.
Currently the pipeline that triggers the pull request to update the SLE15 stack is on Concourse and we should move to GitHub Action to align with the KubeCF CI main strategy.
Describe the solution you'd like
Move to it's own GitHub Action.
Describe alternatives you've considered
N/A
Additional context
N/A

@viovanov @thardeck can you guys add more detailed information if needed so we can have this story in our next sprint?

We need to bump the stack very soon tied to some older vulnerabilities reported in Trivi. Sounds like this will have to be manual for the interim.

We need to bump the stack very soon tied to some older vulnerabilities reported in Trivi. Sounds like this will have to be manual for the interim.

This issue is not so urgent, since automation is already in place since some time, for example: https://github.com/cloudfoundry-incubator/kubecf/pull/1597
Parts of it are still running in Concourse, which is not ideal but not relevant for the issue you have mentioned.


Move CompatabilityInfo to GameInterface

For New Contributors
How to contribute
Description

Move CompatibilityInfo.cs and assosiated test (CompatibilityInfo_Test) to the GameInterface csproject and respective test project.
Refactor CompatibilityInfo Serialize and Deserialize to use the common BinaryFormatterSerializer.
Intended Design

N/A
Location

Create a branch from taverns-vertical-slice
Related Issues

N/A
Requirements

N/A
Additional information

N/A
Definition of Done

[x] Class level comments exist for all new classes.
[x] XUnit tests exist for every method that does not require the game to be ran.

Resolved by #461


Update tutorial-eks.md

Should we also update all the other mentions of aws-infra in this docs repo while we are at it?

Definitely.

Rebased on top of the latest Hugo site and took care of the rest of aws-infra references in #1093.


Monitor gRPC and SignalR doc requests - March 2023

Weekly monitor the product issues/discussions here for doc requests/needs for SignalR and gRPC here:
is:open label:area-signalr label:docs
is:open label:area-grpc label:docs
Create issues in aspnetcore.docs repo linking to those related product issues/discussions in  https://github.com/dotnet/aspnetcore.

At the end of the monthly iteration, I am adding a summary of the outcome in related Azure DevOps User Story for the monthly iteration.
Also see related:
Feature tracking SignalR here: #28609
Feature tracking gRPC here: #28609

Associated WorkItem - 66700

Summary:
Monitored the listed product repos weekly for doc requests.
No new SignalR doc requests were generated from the product repo this month.
No new gPRC doc requests were generated from the product repo this month.
We did have doc requests for both areas that were new and tracked in new issues for the month but they all came directly through the aspnetcore.docs repo.
gRPC will have some minor changes may be represented in a future servicing release, 7.0.5 but it wasn't committed. See https://github.com/dotnet/aspnetcore/issues/45753


docs: code review guidelines and tips

Thanks for the thoughtful comments, @dgovil. I pushed an update with some amendments. I think this is a PR that I'll leave up for quite a while, as I'd love to have plenty of time for people to digest this and make additional suggestions.

If there are no further comments forthcoming, I will merge this over the weekend (which will have given it a full 2 weeks of comment period). We can always continue to modify both the document and the policy goals over time if needed.


License

Can I using this project for my company? Does it MIT License?

I'm sorry it took so long, but yes you can, license file added


Wishlist remove logic

Added remove product from wishlist logic
There is a place holder for user ID, but this will get changed after I look into browser cookies to extract user info
Updated navigation bar accordingly

Next, I will add unit test cases


Change Favicon of Task Manager App  Description

We need to update the favicon of the Task Manager app to give it a unique and identifiable icon. The favicon appears in the browser tab and helps users quickly locate and recognize the app among multiple open tabs.

i can take this issue

hey @DhanushNehru can u assign me this issue?
/assign


Basic D3DContext prototype application

Before I go too forward, we should decide on design matters such as:

MakeGraphicsPipeline in D3DContext or Initialize in GraphicsPipeline
Is creating functions that wrap around D3D11 calls necessary or should we just use D3DContext directly
Should a custom class for a graphics pipeline exist in the first place
Should we make D3DContext a unique_ptr

I vote for
-> directly calling DX methods/functions
-> no custom class
-> I vote for the unique_ptr, yes

Please check now, I think abstracting away things that may get repetitive such as vertex buffer creation and pipeline creation is good, while in rendering, I call into D3D11 directly, you can check now for the hello triangle example.

Please check now, I think abstracting away things that may get repetitive such as vertex buffer creation and pipeline creation is good, while in rendering, I call into D3D11 directly, you can check now for the hello triangle example.

Yes, but remember that the purpose is learning DX11. In a real case you'd wrap DX for your own sake.

Please check now, I think abstracting away things that may get repetitive such as vertex buffer creation and pipeline creation is good, while in rendering, I call into D3D11 directly, you can check now for the hello triangle example.

Yes, but remember that the purpose is learning DX11. In a real case indeed you'd wrap DX for your own sake.

Why not just show them in the tutorial as a function, instead of writing the same code over and over again?

closing, needs further review


chore(sdk): Refactor the SDK to avoid passing the full context to the DataMappers

What does this PR do?

Refactors the SDK to simplify its internal mechanics and improve maintainability
Adds unit tests to cover core SDK functionalities

Related ticket
Fixes #728
Type of change

[X] Chore
[ ] Bug fix
[ ] New feature
[ ] Documentation update

Check list

[ ] Unit tests for any smart contract change
[ ] Contracts and functions are documented

Stale for now, but the overall idea is still to be implemented


Task 'uploadMappingprodRelease' not found in root project

Describe what happened
issue when running upload map task on android
Steps to reproduce the issue:
this is my implementation
on android/build.gradle
i added
plugins {
id("com.datadoghq.dd-sdk-android-gradle-plugin") version "1.4.0"
}
after buildscript {}
and added this to the end of file
datadog {
site = "EU" // Optional, can be "US", "EU" or "GOV". Default is "US"
checkProjectDependencies = "warn" // Optional, can be "warn", "fail" or "none". Default is "fail". Will check if Datadog SDK is in the project dependencies.
}
i have 3 variants (prod,staging,internal)
i tried to run ./gradlew uploadMappingProdRelease got this error
Task 'uploadMappingProdRelease' not found in root project '***'.
Describe what you expected:
shoud able to upload mappers from prod variant.
so do i miss somehting ?
Additional context

Android Build Tools version: 29.0.3
Gradle version: 6.7
OS version: macOS 12.4
Plugin version: 1.4.0

Hi, did you enable minification/obfuscation for the Prod / Release variant?
Can you run the following command to see if there are any tasks named uploadMapping* created?
./gradlew tasks

@xgouchet yes proguard is enabled for both. and after run ./gradlew tasks couldn't find any task with this naming

@xgouchet no, just got the list of tasks but didn't find uploadMapping task

Can you share your full Gradle scripts please?

@xgouchet HYG
Tasks runnable from root project
------------------------------------------------------------

Agcp tasks
----------
processInternalDebugAGCPlugin
processInternalReleaseAGCPlugin
processProdDebugAGCPlugin
processProdReleaseAGCPlugin
processStagingDebugAGCPlugin
processStagingReleaseAGCPlugin

Android tasks
-------------
androidDependencies - Displays the Android dependencies of the project.
signingReport - Displays the signing info for the base and test modules
sourceSets - Prints out all the source sets defined in this project.

Build tasks
-----------
assemble - Assemble main outputs for all the variants.
assembleAndroidTest - Assembles all the Test applications.
assembleDebug - Assembles main outputs for all Debug variants.
assembleGeneral - Assembles main outputs for all General variants.
assembleInternal - Assembles main outputs for all Internal variants.
assembleMlkit - Assembles main outputs for all Mlkit variants.
assembleProd - Assembles main outputs for all Prod variants.
assembleRelease - Assembles main outputs for all Release variants.
assembleStaging - Assembles main outputs for all Staging variants.
build - Assembles and tests this project.
buildDependents - Assembles and tests this project and all projects that depend on it.
buildNeeded - Assembles and tests this project and all projects it depends on.
bundle - Assemble bundles for all the variants.
bundleDebug - Assembles bundles for all Debug variants.
bundleInternal - Assembles bundles for all Internal variants.
bundleProd - Assembles bundles for all Prod variants.
bundleRelease - Assembles bundles for all Release variants.
bundleStaging - Assembles bundles for all Staging variants.
clean - Deletes the build directory.
cleanBuildCache - Deletes the build cache directory.
compileDebugAndroidTestSources
compileDebugSources
compileDebugUnitTestSources
compileGeneralDebugAndroidTestSources
compileGeneralDebugSources
compileGeneralDebugUnitTestSources
compileGeneralReleaseSources
compileGeneralReleaseUnitTestSources
compileInternalDebugAndroidTestSources
compileInternalDebugSources
compileInternalDebugUnitTestSources
compileInternalReleaseSources
compileInternalReleaseUnitTestSources
compileMlkitDebugAndroidTestSources
compileMlkitDebugSources
compileMlkitDebugUnitTestSources
compileMlkitReleaseSources
compileMlkitReleaseUnitTestSources
compileProdDebugAndroidTestSources
compileProdDebugSources
compileProdDebugUnitTestSources
compileProdReleaseSources
compileProdReleaseUnitTestSources
compileReleaseSources
compileReleaseUnitTestSources
compileStagingDebugAndroidTestSources
compileStagingDebugSources
compileStagingDebugUnitTestSources
compileStagingReleaseSources
compileStagingReleaseUnitTestSources
extractDebugAnnotations - Extracts Android annotations for the debug variant into the archive file
extractGeneralDebugAnnotations - Extracts Android annotations for the generalDebug variant into the archive file
extractGeneralReleaseAnnotations - Extracts Android annotations for the generalRelease variant into the archive file
extractMlkitDebugAnnotations - Extracts Android annotations for the mlkitDebug variant into the archive file
extractMlkitReleaseAnnotations - Extracts Android annotations for the mlkitRelease variant into the archive file
extractReleaseAnnotations - Extracts Android annotations for the release variant into the archive file

Build Setup tasks
-----------------
init - Initializes a new Gradle build.
wrapper - Generates Gradle wrapper files.

Cleanup tasks
-------------
lintFix - Runs lint on all variants and applies any safe suggestions to the source code.

Help tasks
----------
buildEnvironment - Displays all buildscript dependencies declared in root project '****'.
components - Displays the components produced by root project '****'. [incubating]
dependencies - Displays all dependencies declared in root project '****'.
dependencyInsight - Displays the insight into a specific dependency in root project '****'.
dependentComponents - Displays the dependent components of components in root project '****'. [incubating]
help - Displays a help message.
model - Displays the configuration model of root project '****'. [incubating]
outgoingVariants - Displays the outgoing variants of root project '****'.
projects - Displays the sub-projects of root project '****'.
properties - Displays the properties of root project '****'.
tasks - Displays the tasks runnable from root project '****' (some of the displayed tasks may belong to subprojects).

Install tasks
-------------
installDebugAndroidTest - Installs the android (on device) tests for the Debug build.
installGeneralDebugAndroidTest - Installs the android (on device) tests for the GeneralDebug build.
installInternalDebug - Installs the DebugInternalDebug build.
installInternalDebugAndroidTest - Installs the android (on device) tests for the InternalDebug build.
installInternalRelease - Installs the ReleaseInternalRelease build.
installMlkitDebugAndroidTest - Installs the android (on device) tests for the MlkitDebug build.
installProdDebug - Installs the DebugProdDebug build.
installProdDebugAndroidTest - Installs the android (on device) tests for the ProdDebug build.
installProdRelease - Installs the ReleaseProdRelease build.
installStagingDebug - Installs the DebugStagingDebug build.
installStagingDebugAndroidTest - Installs the android (on device) tests for the StagingDebug build.
installStagingRelease - Installs the ReleaseStagingRelease build.
uninstallAll - Uninstall all applications.
uninstallDebugAndroidTest - Uninstalls the android (on device) tests for the Debug build.
uninstallGeneralDebugAndroidTest - Uninstalls the android (on device) tests for the GeneralDebug build.
uninstallInternalDebug - Uninstalls the DebugInternalDebug build.
uninstallInternalDebugAndroidTest - Uninstalls the android (on device) tests for the InternalDebug build.
uninstallInternalRelease - Uninstalls the ReleaseInternalRelease build.
uninstallMlkitDebugAndroidTest - Uninstalls the android (on device) tests for the MlkitDebug build.
uninstallProdDebug - Uninstalls the DebugProdDebug build.
uninstallProdDebugAndroidTest - Uninstalls the android (on device) tests for the ProdDebug build.
uninstallProdRelease - Uninstalls the ReleaseProdRelease build.
uninstallStagingDebug - Uninstalls the DebugStagingDebug build.
uninstallStagingDebugAndroidTest - Uninstalls the android (on device) tests for the StagingDebug build.
uninstallStagingRelease - Uninstalls the ReleaseStagingRelease build.

Publishing tasks
----------------
generateMetadataFileForMavenJavaPublication - Generates the Gradle metadata file for publication 'mavenJava'.
generatePomFileForMavenJavaPublication - Generates the Maven POM file for publication 'mavenJava'.
publish - Publishes all publications produced by this project.
publishAllPublicationsToMavenRepository - Publishes all Maven publications produced by this project to the maven repository.
publishMavenJavaPublicationToMavenLocal - Publishes Maven publication 'mavenJava' to the local Maven repository.
publishMavenJavaPublicationToMavenRepository - Publishes Maven publication 'mavenJava' to Maven repository 'maven'.
publishToMavenLocal - Publishes all Maven publications produced by this project to the local Maven cache.

React tasks
-----------
bundleInternalDebugJsAndAssets - bundle JS and assets for InternalDebug.
bundleInternalReleaseJsAndAssets - bundle JS and assets for InternalRelease.
bundleProdDebugJsAndAssets - bundle JS and assets for ProdDebug.
bundleProdReleaseJsAndAssets - bundle JS and assets for ProdRelease.
bundleStagingDebugJsAndAssets - bundle JS and assets for StagingDebug.
bundleStagingReleaseJsAndAssets - bundle JS and assets for StagingRelease.
copyInternalDebugBundledJs - copy bundled JS into InternalDebug.
copyInternalReleaseBundledJs - copy bundled JS into InternalRelease.
copyProdDebugBundledJs - copy bundled JS into ProdDebug.
copyProdReleaseBundledJs - copy bundled JS into ProdRelease.
copyStagingDebugBundledJs - copy bundled JS into StagingDebug.
copyStagingReleaseBundledJs - copy bundled JS into StagingRelease.

Verification tasks
------------------
check - Runs all checks.
connectedAndroidTest - Installs and runs instrumentation tests for all flavors on connected devices.
connectedCheck - Runs all device checks on currently connected devices.
connectedDebugAndroidTest - Installs and runs the tests for debug on connected devices.
connectedGeneralDebugAndroidTest - Installs and runs the tests for generalDebug on connected devices.
connectedInternalDebugAndroidTest - Installs and runs the tests for internalDebug on connected devices.
connectedMlkitDebugAndroidTest - Installs and runs the tests for mlkitDebug on connected devices.
connectedProdDebugAndroidTest - Installs and runs the tests for prodDebug on connected devices.
connectedStagingDebugAndroidTest - Installs and runs the tests for stagingDebug on connected devices.
deviceAndroidTest - Installs and runs instrumentation tests using all Device Providers.
deviceCheck - Runs all device checks using Device Providers and Test Servers.
lint - Runs lint on all variants.
lintDebug - Runs lint on the Debug build.
lintGeneralDebug - Runs lint on the GeneralDebug build.
lintGeneralRelease - Runs lint on the GeneralRelease build.
lintInternalDebug - Runs lint on the InternalDebug build.
lintInternalRelease - Runs lint on the InternalRelease build.
lintMlkitDebug - Runs lint on the MlkitDebug build.
lintMlkitRelease - Runs lint on the MlkitRelease build.
lintProdDebug - Runs lint on the ProdDebug build.
lintProdRelease - Runs lint on the ProdRelease build.
lintRelease - Runs lint on the Release build.
lintStagingDebug - Runs lint on the StagingDebug build.
lintStagingRelease - Runs lint on the StagingRelease build.
lintVitalInternalRelease - Runs lint on just the fatal issues in the internalRelease build.
lintVitalProdRelease - Runs lint on just the fatal issues in the prodRelease build.
lintVitalStagingRelease - Runs lint on just the fatal issues in the stagingRelease build.
test - Run unit tests for all variants.
testDebugUnitTest - Run unit tests for the debug build.
testGeneralDebugUnitTest - Run unit tests for the generalDebug build.
testGeneralReleaseUnitTest - Run unit tests for the generalRelease build.
testInternalDebugUnitTest - Run unit tests for the internalDebug build.
testInternalReleaseUnitTest - Run unit tests for the internalRelease build.
testMlkitDebugUnitTest - Run unit tests for the mlkitDebug build.
testMlkitReleaseUnitTest - Run unit tests for the mlkitRelease build.
testProdDebugUnitTest - Run unit tests for the prodDebug build.
testProdReleaseUnitTest - Run unit tests for the prodRelease build.
testReleaseUnitTest - Run unit tests for the release build.
testStagingDebugUnitTest - Run unit tests for the stagingDebug build.
testStagingReleaseUnitTest - Run unit tests for the stagingRelease build.

Mostly, your application's and project's build.gradle scripts

project gradle
buildscript {
    ext {
        buildToolsVersion = "29.0.3"
        minSdkVersion = 23
        compileSdkVersion = 31
        targetSdkVersion = 30
		kotlinVersion = '1.4.10' // (check what the latest version is)
		ndkVersion = "20.1.5948944"
    }
    repositories {
        google()
        jcenter()
		maven {
			url 'https://maven.fabric.io/public'
		}
                maven { url 'https://developer.huawei.com/repo/' }
    }
    dependencies {
        classpath("com.android.tools.build:gradle:4.1.0")
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
		classpath 'com.google.gms:google-services:4.0.1'
		classpath 'io.fabric.tools:gradle:1.28.1'
        classpath 'com.huawei.agconnect:agcp:<IP_ADDRESS>0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

plugins {
    id("com.datadoghq.dd-sdk-android-gradle-plugin") version "1.4.0"
}

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        if (details.getRequested().getGroup() == 'com.google.android.gms') {
            // If different projects require different versions of
            // Google Play Services it causes a crash on run.
            // Fix by overriding version for all projects.
            details.useVersion('17.0.0')
        }
    }
}

allprojects {
    repositories {
        mavenLocal()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url("$rootDir/../node_modules/react-native/android")
        }
        maven {
            // Android JSC is installed from npm
            url("$rootDir/../node_modules/jsc-android/dist")
		}
        google()
        jcenter()
        mavenCentral()
        maven { url 'https://www.jitpack.io' }
        maven {url 'https://developer.huawei.com/repo/'}
        maven {
            url "$rootDir/../node_modules/@notifee/react-native/android/libs"
        }
      }
}

datadog {
    site = "EU" // Optional, can be "US", "EU" or "GOV". Default is "US"
    checkProjectDependencies = "warn" // Optional, can be "warn", "fail" or "none". Default is "fail". Will check if Datadog SDK is in the project dependencies.
}

app gradle
`    implementation fileTree(dir: "libs", include: ["*.jar"])
//noinspection GradleDynamicVersion
implementation "com.facebook.react:react-native:+"  // From node_modules
implementation project(':react-native-config')
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.google.android.gms:play-services-ads:+'
implementation 'com.github.freshdesk:freshchat-android:5.0.0'
implementation "com.google.firebase:firebase-messaging:17.0.0"

implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"

implementation 'androidx.multidex:multidex:2.0.1'

implementation 'com.appboy:android-sdk-ui:18.0.+'

implementation 'com.huawei.agconnect:agconnect-core:<IP_ADDRESS>0'
implementation 'com.huawei.hms:ads-identifier:<IP_ADDRESS>5'
implementation 'com.huawei.hms:push:<IP_ADDRESS>4'
implementation project(':react-native-hms-push')

debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
  exclude group:'com.facebook.fbjni'
}

debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
    exclude group:'com.facebook.flipper'
	exclude group:'com.squareup.okhttp3', module:'okhttp'
}

debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
    exclude group:'com.facebook.flipper'
}`

Hello @muhamedzeema. Tasks are created in the project where Datadog Gradle Plugin is applied, so considering if you've applied it in the app project, you need to run :app:uploadMappingProdRelease instead.

Hi @0xfaust got the same error
* What went wrong:
Task 'uploadMappingProdRelease' not found in project ':app'.

Hi @muhamedzeema your application's Gradle script seems incomplete, it doesn't have any android block of datadog block like you mentioned earlier

@xgouchet oh, so after adding it to app gradle got this error
only buildscript {} and other plugins {} script blocks are allowed before plugins {} blocks, no other statements are allowed
is there any example for this please ?

@xgouchet thanks for your efforts really appreciate it, here is my app/build.gradle file
apply plugin: "com.android.application"

apply plugin: 'com.google.firebase.firebase-perf'
project.ext.envConfigFiles = [
    stagingDebug: ".env.staging",
    stagingRelease: ".env.staging",
    prodDebug: ".env.production",
    prodRelease: ".env.production",
    internalDebug: ".env.internal",
    internalRelease: ".env.internal"
]
apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"

import com.android.build.OutputFile

project.ext.react = [
    enableHermes: true,  // clean and rebuild if changing
	bundleInDebug: true,
	bundleInStaging: true,
	bundleInInternal: true,
	bundleInRelease: true,
	bundleInProd: true,
	// devDisabledInStaging: true,
	// devDisabledInInternal: true,
	// devDisabledInRelease: true,
	// devDisabledInProd: true,
	// extraPackagerArgs: ["--sourcemap-output", "$buildDir/generated/sourcemaps/android-embrace.bundle.map"]
]

apply from: "../../node_modules/react-native/react.gradle"
apply from<EMAIL_ADDRESS>apply from: "../../node_modules/react-native-code-push/android/codepush.gradle"

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

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

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

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

android {
	ndkVersion rootProject.ext.ndkVersion
    compileSdkVersion rootProject.ext.compileSdkVersion
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
	flavorDimensions "default"
	productFlavors { //add this object
        prod {
			dimension "default"
        }
        internal {
			applicationIdSuffix '.internal'
			dimension "default"
        }
        staging {
            applicationIdSuffix '.staging'
			dimension "default"
        }
    }

    defaultConfig {
		applicationId '*****'
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 3145997
        versionName "6.2.1"
		testBuildType System.getProperty('testBuildType', 'debug')  // This will later be used to control the test apk build type
		testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
		missingDimensionStrategy 'react-native-camera', 'general'
        missingDimensionStrategy 'store', 'play'
		resValue "string", "build_config_package", "********"
        resValue 'string', "CODE_PUSH_APK_BUILD_TIME", String.format("\"%d\"", System.currentTimeMillis())
        vectorDrawables {
            useSupportLibrary true
        }
        multiDexEnabled true
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
        }
    }
    signingConfigs {
        debug {
            storeFile file('debug.keystore')
            storePassword 'android'
            keyAlias 'androiddebugkey'
            keyPassword 'android'
        }
		release {
            if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
                storeFile file(MYAPP_UPLOAD_STORE_FILE)
                storePassword MYAPP_UPLOAD_STORE_PASSWORD
                keyAlias MYAPP_UPLOAD_KEY_ALIAS
                keyPassword MYAPP_UPLOAD_KEY_PASSWORD
            }
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.debug
			resValue "string", "CodePushDeploymentKey", '""'
        }
        release {
            debuggable false
            signingConfig signingConfigs.debug
            zipAlignEnabled enableProguardInReleaseBuilds
            minifyEnabled enableProguardInReleaseBuilds
            shrinkResources false
            useProguard enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            // Detox-specific additions to pro-guard
            proguardFile "${rootProject.projectDir}/../node_modules/detox/android/detox/proguard-rules-app.pro"
        }

    }

    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
             // For each separate APK per architecture, set a unique version code as described here:
            // https://developer.android.com/studio/build/configure-apk-splits.html
            // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.
            def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        defaultConfig.versionCode * 1000 + versionCodes.get(abi)
            }
        }
    }
	dexOptions {
		incremental true
		javaMaxHeapSize "4g"
	}
}

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

	implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.google.android.gms:play-services-ads:+'
    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"

    implementation 'androidx.multidex:multidex:2.0.1'

    implementation 'com.appboy:android-sdk-ui:18.0.+'

    debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
      exclude group:'com.facebook.fbjni'
    }

    debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.flipper'
		exclude group:'com.squareup.okhttp3', module:'okhttp'
    }

    debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.flipper'
    }

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

}

plugins {
    id("com.datadoghq.dd-sdk-android-gradle-plugin") version "1.4.0"
}

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

apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)

apply plugin: 'com.google.gms.google-services'

googleServices { disableVersionCheck = true }
datadog {
    site = "EU" // Optional, can be "US", "EU" or "GOV". Default is "US"
    checkProjectDependencies = "warn" // Optional, can be "warn", "fail" or "none". Default is "fail". Will check if Datadog SDK is in the project dependencies.
}

the plugin block need to be put at the top of the file, like explained by the error message you shared

@xgouchet @0xnm thanks guys for your help


feat: add mobile header

This pr adapts the header for mobile, with drag-to-close functionality.

@pradel please could you test and confirm if there is some buggy behavior if you pull the menu down slightly (so it resets position) and then pull it down again?
it seems to work when using responsive mode on the browser but not working on my phone so just want to be sure it's not an iOS-specific bug


More tests!

closes #6
It includes a bunch more filter tests (the like and like with multiple comparers in a field included)
Some bugs were found and reported
● Comments › GET › Get Comment by id - Only show the body attribute ( #187 )
● Comments › GET › Get Comments - Test pagination and sorting - Should only show one (#188)
● Articles › GET › UNAuthenticated - Get an specific article with it's author - Should fail (#186)

@joelalejandro currently 3 tests are failing, which are the ones corresponding to each created issue


fixing a mistake : delete a wrong token that i sent and update the names of the right

I'm submitting a ...
[ ] bug report
[X] feature request
[ ] question about the decisions made in the repository
[ ] question about how to use this project

I would like to delete one of my token, and update the name of my others tokens to make it right.
i'm unfortunately make a mistake when i do the first pull request.
I just sen a new pull request to delete the wrong token, and update the names of the right token.
https://github.com/solana-labs/token-list/pull/10989

see comment on PR


uid/gid of 1000/1000 may conflict with the host user id namespace

If the host already has a user with uid of 1000, then this container will give ownership of the mounted volume to that user, which represents a security risk.
Further, this will prevent the host user running the container from mounting their private keys in ~/.ssh in the container. This is an easier and more secure than copying the private keys into the container itself.
I can't propose a good solution to this problem, but I'm working around it with the following in my Dockerfile, which must be run with --build-arg uid=$(id -u) --build-arg gid=$(id -g):
FROM jenkins:2.19.4

ARG user=jenkins
ARG group=jenkins
ARG olduid=1000
ARG oldgid=1000
ARG old_jenkins_home=/var/jenkins_home
ARG uid
ARG gid
ARG new_jenkins_home=/var/lib/jenkins

ENV COPY_REFERENCE_FILE_LOG $JENKINS_HOME/copy_reference_file.log

USER root

# Modify the container's jenkins user id to match the host user
RUN /bin/sh -c "usermod -u $uid $user && \
    usermod -d $new_jenkins_home $user && \
    groupmod -g $gid $group && \
    usermod -g $gid $group && \
    find / -path /proc -prune -o -group $oldgid -print | xargs chgrp -hv $group && \
    find / -path /proc -prune -o -user $olduid -print | xargs chown -hv $user && \
    cp -R $old_jenkins_home $new_jenkins_home"

# Create a persistent volume from the new user home
RUN chown -R $user:$group $new_jenkins_home
VOLUME $new_jenkins_home
USER $user

see #112


Wheel build for lxml fails

More of a question (i guess)
So I am able to get dependencies with lxml build for linux target but not for mac aarm64 target. (on a Mac M1)
The lxml pip package does not publish a aarm64 wheel so it correctly tries to build it... but when building it says that the libxml2 development page is not installed.
How am I to pass the information of the local libxml2 package?
ERROR: /Users/madhav/Code/sdroot/mr-ping/utils/pypi/BUILD:5:8: Building lxml-4.9.2.tar.gz failed: (Exit 1): wheel_builder failed: error executing command bazel-out/host/bin/external/jvolkman_rules_pycross/pycross/private/tools/wheel_builder --sdist external/lock_sdist_lxml_4.9.2/file/lxml-4.9.2.tar.gz --sysconfig-vars ... (remaining 15 arguments skipped)

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
I0312 21:47:10.886236<PHONE_NUMBER> __init__.py:439] Building wheel...
===== BUILD FAILED =====
Building lxml version 4.9.2.
Building without Cython.
Error: Please make sure the libxml2 and libxslt development packages are installed.

libxml2 is present and works when lxml is built from source
~/Code/lxml-4.9.2 % python3 setup.py bdist_wheel
Building lxml version 4.9.2.
Building without Cython.
Building against libxml2 2.9.4 and libxslt 1.1.29
[...truncated...]

I haven't tried building that package so I can't offer specific advice. First step would be to determine how the package is attempting to locate libxml2. Unfortunately python package builds can do basically whatever they want.
I'm working on a branch that should offer better tools for handling package builds. You can see some examples here.

very cool. seems like this should fix it
The code that detects these versions is in https://github.com/lxml/lxml/blob/3d4e60f2835e4d85fd357c182656d3eca534f2ff/setupinfo.py#L398-L439
which essentially checks a few different environment variables.
based on your examples and my understanding doing something similar to numpy/postgres should work.
I am going to try to replicate with the same flow as postgres. will share findings.

The stuff in that example is now in the latest release.


Vundle PluginInstall error: permission denied

Here is the log after running :PluginInstall
Somehow there is some issue with the Vundle plugin. All other plugins installed just fine.

Did you done while using sudo command?

No I just used :PluginInstall as a command line in Vim. I am still getting the same log even though the rest of the plugins installed just fine and are working perfectly in Vim.

I got same thinks but when I tried to run vim as root(sudo vim) this error is disappeared.

@whitecloudy is right You cloned as sudo Vundle.vim and now you execute vim as normal user.
Output is saying it cannot write into /Users/lesteryang/.vim/bundle/Vundle.vim (for doc and updates of .git)

@Karakazybra Thank you! It worked!

@Karakazybra Thank you! It worked!

@whitecloudy is right You cloned as sudo Vundle.vim and now you execute vim as normal user.
Output is saying it cannot write into /Users/lesteryang/.vim/bundle/Vundle.vim (for doc and updates of .git)

Is there a way to solve this?

sudo chmod 755 -R /Users/lesteryang/.vim/bundle/Vundle.vim

I was able to solve the issue. Thank you.


ethers/Address.h' file not found

I'm getting this issue when downloading the sample code

Oh. Make sure you download the ethers.objc library into the same root path. This should solve the problem. The library is broken up into an Ethereum Library and the UI App （The author）

please can you tell me where can i get the  ethers.objc library?

https://github.com/ethers-io/ethers.objc

On Nov 25, 2018, at 10:13 AM, Jinxin<EMAIL_ADDRESS>wrote:
please can you tell me where can i get the ethers.objc library?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Expose ClippedCamera clip_offset

Just exposing clip_offset to GDScript as a getter method.
This value can be useful when implementing advanced camera effects like moving the camera in a certain direction when it gets clipped too far towards the player.
This work has been kindly sponsored by IMVU.

Thanks!


Resolve mobile navigation to comment issue #82

Fix issue #82

this failed on mongo tests as PR has no access to env in travis. I have defaulted those tests to skip, pls merge from the master and give it another try.

@umputun, Ok I've merged these changes into the master and opened another PR #167

:( still failing, those envs are tricky for PRs. Could you pls do it one more time? Hopefully, it will pass this time

Yep, should I create another PR, or just create a dummy commit?

you should merge first

issue-82 branch into the master?

Ah, I see…

@umputun looks like everything is alright now, thank you for your help.


Sample Files

Please Can you Add to your Repository Some samples files to test the application?,
or can you Provide some URL to some .gml Files?
Regards.

Sorry for late response.
You can find a IndoorGML file which is small house data
in http://indoorgml.net/resource.html.
We published big shopping mall data named Lotte World Mall in Seoul, South Korea.
But, because of license problem, it will be published later.
Best Regards

Just fyi, the link is now at http://indoorgml.net/resources/


Update to 2.80

This updates the add-on so that it can work with Blender 2.80+.

Exporting a mesh with multiple UV maps to Serious Editor 2017 or to Blender 2.79 appears to work without issues.
Importing a mesh shows errors.
No other add-on features tested, but there are probably errors.

I attempted to do that before, but the 2.8x Blender API is just way too confusing for me.
Should I merge now and attempt to fix the mesh importing myself, or should I wait and let you finish it?

You can merge if you want, I tried looking at the import code but it was too complicated for me to understand how it worked before and how to change it for the new API. It looks like it only needs a small change...but maybe not. It's probably related to the change described here, but in reverse to how it showed up in the export code: https://wiki.blender.org/wiki/Reference/Release_Notes/2.80/Python_API/Mesh_API#Mesh_Tesselation
I don't expect to need to import, as I'll be making meshes in Blender and importing them into SED2017 for my map, one-way.

Surely, I'll merge this and look into fixing the importer later on.
Sweet job dude, thanks!


Create 10.0.9 change log

Here's an initial draft of the change log for the new version. I prepared it by going through the commit history, back to 10.0.8.  I deliberately left out about three very minor changes.
Would be good if at least one of you guys can check that I have not missed anything important.

:shipit:

:shipit:


Extend auto-generated constructor field initializers to support #private fields

Suggestion
Currently, TypeScript allows contructor(private readonly text: string) {} in a class to automatically assign this.text inside of the generated constructor.
It follows that constructor(readonly #text: string) {} would automatically assign this.#text inside of the generated constructor, with one notable change: the parameter name would need to change to text since parameter names cannot use the # character.
This also allows a more transparent path for a refactor function to change private text to #text with minimal TypeScript source changes in cases where existing field initializers exist in constructors.
🔍 Search Terms
class private field initializer constructor
✅ Viability Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

Playground
As you'll see in the emitted JavaScript code below, it almost works already, but the constructor parameter name has to change to text instead of #text – the rest of the emitted JavaScript is correct.
https://www.typescriptlang.org/play?useDefineForClassFields=true&target=99&module=1&ts=4.2.0-dev.20210129#code/MYGwhgzhAEAyD2BzRBTATtA3gWAFDWmHgDsIAXNAV2DPjQAo0UwATEkAT2gGIyUAPMgC5o5NAEtiiAJRYAvnjwEQSAJJl6snPgKESEeCBQA6FYnpkAFuIjHeAstKXQFuV3iKky0ENAC80MQoAO5wSKgMAESWKCAq0MF0ICwAhJFOuCCmahrSQA

Duplicate of #36282. Used search terms: constructor private field

Duplicate of #36282. Used search terms: constructor private field


ClientID vs SecretID

Description
I just want to highlight that when I was following this page I got stuck because I created a secret in Azure and it gave me a Secret ID and a Secret Value. I thought the Secret ID was the same as the Client ID so got stuck... It turns out you only need the "Value" from the Secret page and the Client ID is on front page of the App Registration - I feel this could be made a bit clearer in the tutorial.
I also had an issue when following the guide where this error would appear on startup:
An unhandled exception occurred while processing the request. InvalidOperationException: Cannot provide a value for property 'AuthorizationPolicyProvider' on type 'Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView+AuthorizeRouteViewCore'. There is no registered service of type 'Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider'.
This wasn't covered in the tutorial so I had to google, I think I eventually solved it by adding builder.Services.AddServerSideBlazor(); although not 100% sure.
Thank you!
Page URL
https://learn.microsoft.com/en-us/aspnet/core/security/authentication/social/microsoft-logins?view=aspnetcore-8.0
Content source URL
https://github.com/dotnet/AspNetCore.Docs/blob/main/aspnetcore/security/authentication/social/microsoft-logins.md
Document ID
ce69b990-0b4c-abda-cd2d-68f85cd8031e
Article author
Rick-Anderson

An unhandled exception occurred while processing the request ...

I think I eventually solved it by adding builder.Services.AddServerSideBlazor(); although not 100% sure.

Are you sure it wasn't by adding ...
services.AddAuthorizationCore();

... and I think that's unrelated to this article. I'll make a note to check on the AuthorizeView coverage in the Blazor docs to see if I have a remark on that error/API there.

Sorry I am not sure exactly I added to fix it. This is all a bit new to me so I resorted to Google and just started copying things in.
I don't have services.AddAuthorizationCore() in my code at all though, below is what ended up working ultimately. I should note it's a Blazor client and server-side app so maybe the document would've worked for another one? I found the link to the document inside of the project, though.
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.AspNetCore.Authentication.MicrosoftAccount;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddRazorComponents()
    .AddInteractiveWebAssemblyComponents();

builder.Services.AddCascadingAuthenticationState();
builder.Services.AddScoped<IdentityUserAccessor>();
builder.Services.AddScoped<IdentityRedirectManager>();
builder.Services.AddScoped<AuthenticationStateProvider, PersistingServerAuthenticationStateProvider>();
builder.Services.AddServerSideBlazor();

builder.Services.AddAuthentication(options =>
    {
        options.DefaultScheme = IdentityConstants.ApplicationScheme;
        options.DefaultSignInScheme = IdentityConstants.ExternalScheme;
    })
    .AddMicrosoftAccount(microsoftOptions =>
    {
        microsoftOptions.ClientId = builder.Configuration["Authentication:Microsoft:ClientId"];
        microsoftOptions.ClientSecret = builder.Configuration["Authentication:Microsoft:ClientSecret"];
    })
    .AddIdentityCookies();

var connectionString = builder.Configuration.GetConnectionString("DefaultConnection") ?? throw new InvalidOperationException("Connection string 'DefaultConnection' not found.");
builder.Services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlServer(connectionString));
builder.Services.AddDatabaseDeveloperPageExceptionFilter();

builder.Services.AddIdentityCore<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true)
    .AddEntityFrameworkStores<ApplicationDbContext>()
    .AddSignInManager()
    .AddDefaultTokenProviders();

builder.Services.AddSingleton<IEmailSender<ApplicationUser>, IdentityNoOpEmailSender>();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseWebAssemblyDebugging();
    app.UseMigrationsEndPoint();
}
else
{
    app.UseExceptionHandler("/Error", createScopeForErrors: true);
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();

app.UseStaticFiles();
app.UseAntiforgery();

app.MapRazorComponents<App>()
    .AddInteractiveWebAssemblyRenderMode()
    .AddAdditionalAssemblies(typeof(Counter).Assembly);

// Add additional endpoints required by the Identity /Account Razor components.
app.MapAdditionalIdentityEndpoints();

app.Run();

We'll have a new sample app and article to cover this scenario. It's tracked by https://github.com/dotnet/AspNetCore.Docs/issues/30994. I don't have an exact ETA for that coverage, but I think it will be within in the next couple of weeks.

Tracked in #30994


Global optimizer idea: using low-discrepancy quasi-random sampler

I was playing around the optimizer a bit and noticed one thing: looking at how it picks new points to test, it's now done completely at random:
https://github.com/davisking/dlib/blob/e558318c9a23c4897191c8089e34570dbe3d84ad/dlib/global_optimization/global_function_search.cpp#L801
However, in higher dimensions, it's fairly well known that the uniform distribution is inferior to low-discrepancy sequences for optimization/search purposes since the latter provide more "uniform"/equidistant coverage; the simplest example would the Sobol sequence (more generally, see here).
This is a perfect application since the bounding region is basically an n-dimensional box (in the space where log-scale dimensions are log-transformed first), so you can just generate a Sobol sequence taking values within (0; 1) in all dimensions and then shift/scale/transform it to get to the original space.
I'm not very familiar with dlib, but could probably try contributing if noone else would and if anyone would find it useful.
// Not sure how many people are interested in it, but having a fast n-d Sobol sequence generator might be a nice addition to the library that aims to be versatile :)

Yeah, that's definitely something worth adding to dlib. You should submit a PR for it :)

Great! I’ll give it a shot. Any quick hints on where this sort of stuff should go in the library or any other useful deb tips so as to save me from having to read the entire codebase first? :)

Sweet. You can add a new file in the same folder as the other global
optimization code.  I don't know if there are any tools in dlib that are
especially relevant for implementing the function you are talking about, so
there isn't much to be aware of I think. Other than generally following the
coding guidelines (http://dlib.net/howto_contribute.html) that is.

Hey! I just stumbled upon this issue/feature request. I saw that there is a sobol-sequence generator (and quite a few quasi random generators) in the boost library (https://www.boost.org/doc/libs/develop/doc/html/boost_random/reference.html#boost_random.reference.concepts.quasi_random_number_generator - added just after the request here).
I assume it does not really make sense to add the generators themselves here, but rather provide wrappers that can be used directly in the optimizer, right? I am not entirely sure how the rand-things are used throughout the codebase, so I would try to not change anything there, but do you think the QRNGs might be useful in other places than here?
If not, I would likely just add a flag to the make_random_vector function to decide which method to use for the generation of the random vector.

Please don't add a dependency on boost.  But if you want to add such a sequence generator to dlib, but without adding a boost dependency, that would be cool.

Oh, I see.
I'll check if there actually is a performance gain by adding it (by testing it with the boost implementation) and will report back here. (However I assume that I am not able to implement a better version than the one that is present in boost).

Brief update:
I had an initial go at it, and it seems like the implementation is not worth it, at least not in the naive way, of simply replacing the random generator.
I am not entirely sure where the problem is located, but it seems to perform worse than the random sampling, which is counter intuitive for me, and might indicate an error somewhere. I will clean up the code I used for testing a bit, and share it here - the testfunctions could be of interest, if performance of the optimizer should be looked at close in the future.

Do you use a different random sequence each time the random search happens?  If it's the same sequence it will definitely be worse (a lot worse) than the current code.

Tried both, using a new sequence each time actually worked better than generating samples from the same one.


Add extractChannel command to allow for extracting a color channel from an image

This pr adds a band parameter to the options object passed into extract to allow the user to extract a color channel from an image.

Coverage decreased (-1.4%) to 97.194% when pulling bb94826058896c5df78766af0646f6dcebabda35 on mhirsch:extract_band into 7689fbe54d5219ffb9c83b3cfaaf33eb7aeeb885 on lovell:master.

Overloading region extraction with band separation doesn't quite feel like the right API abstraction to me.
Looking in the API docs, the word "channel" is more frequently used than "band", so how about something like a new channel() method that takes a single parameter defining the channel number to include in the output image?

It's easy enough to scrap this and start over with the channel approach. However, just so you understand my initial reasoning, I felt that the verb extract clearly indicates to me that I'm leaving the remainder of the image behind. I could see someone, especially someone used to working with imagemagick, thinking that channel implies that subsequent operations will apply to a channel, not that the resulting image will contain only that channel.
I was initially going to add another command like extract_band, but since extract already existed it seemed neater to give it another type of thing to extract. Anyway, its your project, let me know what you think.

Agreed, channel on its own would be confusing. How about extractChannel?

This revised pr adds a new command called extractChannel which accepts either an integer or one of 'red', 'green', or 'blue' to identify the channel to extract.

Coverage decreased (-0.4%) to 98.008% when pulling a82450796b6131afeae813354ca1def5bfc27a17 on mhirsch:extract_band into 65b7f7d7d5f3662bfe50df4f1fdc3d0b6f4a9763 on lovell:master.

Looking great, thanks Matt. Please can you add tests for the other named channels (as well as red) then we're good to merge.

Coverage increased (+0.04%) to 98.406% when pulling 339f7a673c022d2cace4633984000d3b78b62f50 on mhirsch:extract_band into 8dd554b9356353057238a562d8cbd218483bef44 on lovell:master.

Coverage increased (+0.04%) to 98.406% when pulling 37139127f6c3a7c8b67974a216fdae7ec2e7b07c on mhirsch:extract_band into 8dd554b9356353057238a562d8cbd218483bef44 on lovell:master.

Coverage increased (+0.04%) to 98.406% when pulling 37139127f6c3a7c8b67974a216fdae7ec2e7b07c on mhirsch:extract_band into 8dd554b9356353057238a562d8cbd218483bef44 on lovell:master.

Thanks again!


fix broken windows builds

… broken builds on windows

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

see https://github.com/Comcast/rulio/issues/54

Thanks!


How to integrate new echart into Apache Superset?

Can you please let me know the steps to integrate new echarts into Apache supserset? I am very new to this and online is not giving much information about it. I am currently using MacOs.

This is a board question. Are you a frontend developer? which Echarts are you thinking?


Sutil without fable (aspnetcore only)

I was wondering if i can integrate sutil in a standard aspnetcore MVC app (server side rendered) from the www root folder, without requiring/using fable at all.
At first I thought that we might make use of a Fable compiler plugin to generate boilerplate,
but it turns out that F# does a pretty good job of that itself.

Is the app.js file generated even without fable.js but purely including sutil package?
if so maybe adding a copy to the wwwroot folder would already make it work also for server aspnetcore? thanks have a great day and amazing project 🥇 🔝 🏆 !
maybe if this is possible it could be worth a template , like for server side rendering only (when client reload doesnt matter much)

yes sorry , closing this as makes no sense. thank you!


Updated examples to work with abel/transform.py dictionary format

Updated the example files:
example_hansenlaw.py
example_simple_GUI.py    (example_simple_GUI2.py == using alternative menu interface)
example_all_O2.py            (NB this transforms Q0, uses basic functions, not transform.py)
example_hansenlaw_basex.py
example_O2_PES_PAD.py
example_hansenlaw_Xe.py
In the future these may be rationalized.
NB: added bonus with this PR  change to abel.tools.analytical.sample_image() adding O- simulated image (and dropping _dribinski from the function name).  This change will break any call sample_image_dribinski(), but was already part of my branch.

@stggh, this looks really good!
Why did you change the Xe example image from a .tif to .png? I think that it was a 16-bit tiff, so the data probably gets worse if you made it an 8-bit png. Not that it really matters for this example.

name in [ .....] allows for future Gaussian constructed images

elif/ raise - agree

confirm:  flip then trim (drop center column, and bottom row). I will add a test example (that you wrote), once I find it ...

Xe: Ah, I wondered about that. It should not be present. I was messing with GUI, reading .png/.tiff produces different results. I will removed the .png.

Regarding #4: Okay, that makes sense. Yes, go ahead and remove the .png. However, I think that once it has been committed, then that data lives in the git history forever and makes the download take longer. I think that there is already a big three-point basis set living in the history, which is why the repo takes so long to download. We will need @rth to perform his .githistory magic again. But I think that it's best to wait until we've settled down a little bit on the edits.

My bad, sorry!
Here is the tests/test_tools_symmetry.py with trace print output, to confirm the bug fix to abel.tools.symmetry.put_image_quadrants(). Note, I also tagged each quadrant corner with the quadrant number.
test image
[[ 1.  0.  0.  0.  0.]
 [ 0.  1.  0.  1.  0.]
 [ 0.  0.  0.  0.  0.]
 [ 0.  1.  0.  1.  0.]
 [ 2.  0.  0.  0.  3.]]

reoriented quadrant Q0
[[ 0.  0.  0.]
 [ 0.  1.  0.]
 [ 0.  0.  0.]]

reoriented quadrant Q1
[[ 0.  0.  1.]
 [ 0.  1.  0.]
 [ 0.  0.  0.]]

reoriented quadrant Q2
[[ 0.  0.  2.]
 [ 0.  1.  0.]
 [ 0.  0.  0.]]

reoriented quadrant Q3
[[ 0.  0.  3.]
 [ 0.  1.  0.]
 [ 0.  0.  0.]]

reassembled image
[[ 1.  0.  0.  0.  0.]
 [ 0.  1.  0.  1.  0.]
 [ 0.  0.  0.  0.  0.]
 [ 0.  1.  0.  1.  0.]
 [ 2.  0.  0.  0.  3.]]

I am not sure that abel/tests/test_tools_symmetry.py runs in my local the unit testing, but the output (above) looks fine.
 nosetests -s  abel/tests/ --verbosity=2  --with-coverage --cover-package=abel
nose.plugins.cover: ERROR: Coverage not available: unable to import coverage module
abel.tests.test_basex.test_basex_basis_sets_cache ... ok
abel.tests.test_basex.test_basex_shape ... ok
abel.tests.test_basex.test_basex_zeros ... ok
Check a gaussian solution for BASEX ... ok
abel.tests.test_benchmarks.test_symmetry_function ... ok
abel.tests.test_benchmarks.test_absolute_ratio_benchmark ... ok
abel.tests.test_direct.test_direct_shape ... SKIP
abel.tests.test_direct.test_direct_zeros ... SKIP
Check iabel_direct with a Gaussian ... SKIP
Check that both the C and Python backends are identical (correction=True) ... SKIP
Check that both the C and Python backends are identical (correction=False) ... SKIP
Check fabel_direct with a Gaussian ... SKIP
abel.tests.test_direct.test_simps_wrong ... ok
abel.tests.test_hansenlaw.test_hansenlaw_shape ... ok
abel.tests.test_hansenlaw.test_hansenlaw_zeros ... ok
Check fabel_hansenlaw with a Gaussian function ... ok
Check iabel_hansenlaw with a Gaussian function ... ok
Check fabel_hansenlaw_transform() curve A ... ok
Check iabel_hansenlaw_transform() curve A ... ok
Check fabel_hansenlaw_transform() and iabel_hansenlaw_transform() ... ok
abel.tests.test_math.test_gradient ... ok
abel.tests.test_three_point.test_three_point_basis_sets_cache_asym ... ok
Check a gaussian solution for three_point ... ok
abel.tests.test_tools.test_speeds ... ok
abel.tests.test_tools.test_centering_function_shape ... ok
abel.tests.test_tools.test_centering_function ... ok
abel.tests.test_tools.test_speeds_non_integer_center ... ok

----------------------------------------------------------------------
Ran 27 tests in 1.052s

OK (SKIP=6)

I think that executable files are automatically excluded from the nosetests, try
chmod 644 test_tools_symmetry.py
chmod 644 test_tools_vmi.py

I have a new PC (Dell optiplex 7040, Ubuntu 15.10) and was missing the python-cov module. Now all good.

Great work @stggh So, are we good to merge this one?
@rth @DhrubajyotiDas @ldes89150

Well, I'll just merge this, so that @DhrubajyotiDas can go-to-town on making the documentation pretty! :)

It's ~7:30am Canberra time, and I missed your reply window. It would have been nice to move the find_image_center_by_slice() function into center.py in the former PR. No matter, it can follow.

@stggh, yeah, if you could move the find_image_center_by_slice function over, that would be great. It should help with @ldes89150's efforts to clean up the center.py file. unless @ldes89150 is already working on this?

Done. Moved tests/test_tools_vmi.py to test_tools_center.py and corrected examples. Ran pep8 on center.py. I will create a new PR.

@DanHickstein See #102 for updates on the doc-prettification-project


[PARSING ISSUE]

What is the name or path of the file you are trying to open?
chara/action/mon_sp/m0656/mon_sp020.tmb
What type of file is it (VFX, TMB, PAP, etc.)?
.tmb

should be fixed with latest update (<IP_ADDRESS>)


[Bug]: Getting a Value Error when using the HuggingFace embedding function

What happened?
Hi,
I am trying to use a custom embedding model using the huggingfaceAPI. I am following the instructions from here
However, when I try to use the embedding function I get the following error:
Traceback (most recent call last):
  File "C:\Users\OT48ZK\AppData\Local\Programs\PyCharm Professional\plugins\python\helpers-pro\pydevd_asyncio\pydevd_asyncio_utils.py", line 117, in _exec_async_code
    result = func()
             ^^^^^^
  File "<input>", line 1, in <module>
  File "C:\Users\OT48ZK\PycharmProjects\retrieval-er\venv\Lib\site-packages\chromadb\api\types.py", line 198, in __call__
    return validate_embeddings(maybe_cast_one_to_many_embedding(result))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\OT48ZK\PycharmProjects\retrieval-er\venv\Lib\site-packages\chromadb\api\types.py", line 507, in validate_embeddings
    raise ValueError(
ValueError: Expected each value in the embedding to be a int or float, got an embedding with ['list'] - [[[0.21432682871818542, -0.11559132486581802, ...

Minimal example:
import chromadb
import chromadb.utils.embedding_functions as emb

chroma_client = chromadb.PersistentClient(path='mehdie.db')
huggingface_ef = emb.HuggingFaceEmbeddingFunction(model_name='google-bert/bert-base-multilingual-cased', api_key='hf_...')

val = huggingface_ef(['Washington'])

Versions
Chroma 0.5.3
Python 3.11
Relevant log output
Traceback (most recent call last):
  File "C:\Users\OT48ZK\AppData\Local\Programs\PyCharm Professional\plugins\python\helpers-pro\pydevd_asyncio\pydevd_asyncio_utils.py", line 117, in _exec_async_code
    result = func()
             ^^^^^^
  File "<input>", line 1, in <module>
  File "C:\Users\OT48ZK\PycharmProjects\retrieval-er\venv\Lib\site-packages\chromadb\api\types.py", line 198, in __call__
    return validate_embeddings(maybe_cast_one_to_many_embedding(result))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\OT48ZK\PycharmProjects\retrieval-er\venv\Lib\site-packages\chromadb\api\types.py", line 507, in validate_embeddings
    raise ValueError(
ValueError: Expected each value in the embedding to be a int or float, got an embedding with ['list'] - [[[0.21432682871818542, -0.11559132486581802, ...

ok, I understand the problem now. The embedding model I am using is returning a k x F tensor, with k being the number of tokens in the query phrase and F being the number of features. The chroma huggingface embedding function is expecting a 1xF tensor only. To solve it I had to subclass the embedding function and add a mean pooling step.
Perhaps the documentation and error message can be improved here to describe the types of models this embedding function supports.

@tomersagi, you are right that the naming is a bit misleading. Under the hood, we use sentence-transformers. Technically, it also works with transformer models only and defaults to mean pooling, and without normalization.
We can do better by letting the user know that the model they are loading is not a sentence-transformer one, which may produce unsupported output.


Fix typo and change cancelled to be consistent with canceled in shopping app

Change "canlled" to "canceled";
change "cancelled" to "canceled" to reflect spelling in shopping demo site.

Thanks @RichardZhu123. I somewhat missed this PR. The evaluation data has been updated, can you apply this change to the new file?


django-SHOP is not compatible with django CMS 3.5.0 or higher

Hi,
Today i have received error django.core.exceptions.FieldError: Cannot resolve keyword 'depth' into field.
According to release note for Django CMS 3.5.0

Another significant example is that the Page model has been decoupled from the site navigation hierarchy. The navigation tree now exists independently, offering further speed advantages, as well as future benefits for development and extensibility.

This change breaks
File "/home/.../venv/lib/python3.5/site-packages/shop/models/product.py", line 206, in get_absolute_url
    cms_page = self.cms_pages.order_by('depth').last()

Thank you for quick reply.

This soon will be available, so please be patient.

I will.

@dismine django-SHOP now fully supports django-CMS 3.5.
Please check the branch https://github.com/awesto/django-shop/tree/drafts/cms-3.5
Feedback is highly appreciated.


Implementation suggestions: How to use the "debias set" for different roles?

hello! 👋  In the implementation suggestions, I'm curious about this bit:

Pymetrics models are built for specific roles within specific companies. To achieve this customization, we collect data from top-performing incumbents in the target role. We then compare incumbents to a baseline sample of the over 1 million candidates who have applied to jobs through pymetrics. We also establish a special data set, which we call the debias set, which is sampled from a pool of 150,000 individuals who have voluntarily provided basic demographic information such as sex, ethnicity or age. From there, a wide variety of algorithms might be tested to create an initial machine learning model from the training data. The process itself is model agnostic. Multiple algorithms are fit in this process, and we are continuously testing new methods that might improve performance. The goal of the algorithm is to find the features that will most accurately and reliably separate the incumbent set from the baseline set.

In particular, the selection method for the baseline sample and the "debias set" seems really important!  Is this secret or can you share the methodology you're using?  I'm trying to understand how it fits in with the dataset that I would provide.
Thanks for sharing this work in the open and the explanations in the examples too, it's super interesting! 👍

Hey! No problem, there's nothing particularly secret sauce about this.
There are three groups of data at play here.

The incumbent set is just your target set. For us, it's people who who have demonstrated success in a role (e.g., good management ratings, high sales, high customer satisfaction, etc.). For other projects it could be people who needed a medical procedure or who paid off their mortgages.
The baseline is your reference group. For us, it's the applicant pool for a job, but for other projects it could be people in good health or who defaulted on their home loans. For new models that don't have historic applicant data, we can build baseline sets from the anticipated applicant pool based on applicants to similar roles. For the purposes of this tool, though, the baseline could be any comparison group.
The debias set is a held out group with representative demographics in the applied setting of the model, and you are correct, it is both important and tricky. On the one hand, you could use a large, general dataset for debiasing (e.g., worldwide applicants to all jobs) or a dataset tailored to a very specific application (e.g., car mechanics in Honduras). It's a classic case of overfitting: if you use a general dataset, you might miss nuances in the specific application of the model, but if you use a tailored dataset, you might pick up on existing patterns of discrimination in the industry (e.g., car mechanics may have a higher incidence of being male). I can't really guide you one way or another, but we prefer to go more general in our selection of a bias set so that we don't over-fit to one group.

Hope that helps!

@ljbaker This is awesome, thank you for the thoughts! 😄
I'll put together a more concrete example and ping back in the next few weeks - I think it'll help me clarify what the library here provides, and what parts of the implementation suggestions are specific to the data that pymetrics has previously collected (and not part of this open source package, so would need to be figured out separately).
I very much hear the context-specific nature of what you're describing, so perhaps a concrete example could help with that.  Am I reading the example notebooks correctly, and they all use a single dataset artifact, and thus sidestep the difficult choices related to selecting baseline and debiasing sets that you describe here?
Thanks again for sharing your work in the open, and for your time! 👍

Hi @kevinrobinson -- sorry for the delay, lost this in my inbox.
In the templates we share here, you are correct, we use a single baseline and bias set that has been established for the role. In practice, this would be the applicant pool for a job and demographically labeled applicants to this and other roles.
In a practical example, we can use medical outcomes (I'm borrowing a bit from an example I heard once by Said Obermeyer). Say that you want to identify individuals who would benefit from a preventative medicine intervention. You take people who have gone through the treatment successfully (target or incumbent set). That's the only easy part.
For the baseline, there are a couple options. First, you could compare your incumbents to people who have declined, dropped out, or showed negligible impact from the intervention. Second, you could compare your incumbents to the baseline health outcome of (a) the hospitals used in the sample, (b) the general US population or (c) patients who did not take the intervention who are roughly matched by age, sex, ethnicity, socioeconomic status and prexisting health conditions.
Ideally you'd want your bias set to be identical to your baseline, but to be a special held out set that has demographic information.
Selecting your baseline and bias sets can have pretty big differences in your estimated and real outcomes. Obermeyer discussed how a hospital might be located in an area with large race inequality (e.g., Los Angeles). A more general baseline might create a fair, accurate model on the average, but exacerbate existing inequalities in the region.
I think I'm just rambling at this point. Good luck with whatever you're working on, happy to give you feedback if you want it!

@ljbaker No worries, this is super helpful!  I think the crux of what I'm trying to think through is that:

Selecting your baseline and bias sets can have pretty big differences in your estimated and real outcomes.

So to follow along with your context of predictive healthcare, I'll try make it a bit more concrete and see if that helps work forward :)  Let's say we're looking at predicting how well an asthmatic patient will respond to a new form of preventative inhaler treatment at Los Angeles Community Hospital.
It sounds quite challenging to get started with constructing the baseline and bias sets.  Is the first step before we can begin to collect data over a period of time for all asthmatic patients, demographic data, health outcomes?  That seems like it would cost a lot in terms of time and effort, and that I'd be on my own without being able to collaborate with other hospitals.  But, at the same time, there's the risk that if I collaborate with other hospitals on collecting that data about asthmatic patients, I've tangled in other confounds related to important differences between the hospitals, quality of care, and the patients they serve.  So I'm trying to figure out how I might get started with the approach discussed in this library.
If it's simpler, I've actually been thinking about this in the context of application screening in the hiring process for a technical role, which is why I thought this would be a good place to ask :)  We can switch analogies to that if it that would simplify things - the social and legal context is kind of different in healthcare, as are the costs of false positives and false negatives!  If it would help I could also put together a notebook trying to show what my current understanding is, and maybe that be a better way for us to work through more concretely where audit-ai fits in and how I'd use it with the debias set in particular.
Thanks again for your help in thinking through this 👍

Hey @kevinrobinson
No worries. What you're describing is the cold start problem of getting sufficient data to get a good model to production, and it will always be an issue. In either the medical or hiring scenario (we can switch to that for the ease of being targeted to what you're doing), you'll have to treat the collection of data that includes fairness information as a necessary requirement for launch.
Looking at your asthma case, it's probably easier than your hiring case, depending on the kinds of data you're collecting. Ideally you'd want to collect enough data from LACH to train the model (identifying at-risk asthma patients that respond well to treatment from the rest of the hospital's respiratory patients), and then a dataset from other hospitals as a hold-out set. The benefit of the package as used here is that you don't have to know the true labels of the bias set; you're merely using it to assess the fairness of the model. The same thing applies to the hiring example. You build a model on a target population with the intent to maximize predictiveness, and then test on a held-out set for model fairness.
There is a lot of debate in the fairness community on ways to account for fairness. This package is an example of how to achieve statistical parity, know in the EEOC language as "avoidance of adverse impact". I'll plug here that statistical parity is the law of the land in the USA for hiring (i.e., your algorithm should approach a 1:1 selection).
Now, there are other people in the machine learning community who propose an equalized odds framework. The basic assumption here is that you should maximize fairness for correct answers. So if your model is 85% accurate overall, it should be 85% accurate for White people and 85% accurate for Black people. Totally makes sense when you consider unbalanced training data. Say that n_white = 100 and n_black = 10. The goal of an equalized odds framework is to prevent a 91% accurate model that selects all White people and misclassifies all Black people. Conversely, though, you could have a model that is 100% accurate on the training data that still selects White applicants at a higher rate than Black applicants when in production, which violates the statistical parity approach. There's been a ton of debate on which approach matters more in which context (Moritz Hardt and Solon Barocas have written several great articles on this topic).
So that's a long way of saying that you'd need to conduct data collection on your target population that has target labels (e.g., asthma/no asthma; hire/no hire) and then data collection on a broader demographic population that is applicable to your use-case (other hospitals, other tech jobs). The broader demograpic population does not require labels, although if you were lucky enough to get labels you could greatly expand the possible algorithms you could try to reduce bias (which are not included in this package...yet).


Create Videos page

Requirements:

Video page will embed some videos from the Superhero Foods YouTube channel: https://www.youtube.com/user/FoodbankWA/videos
Styling should be similar to the rest of the web app.
A way to navigate for different videos.

@AaronTYT For this task we can either display videos in a grid and then expand when clicked into a popup or a separate page, or have a carousel view with the videos or some other arrangement. The approach is really whatever you think would be best. Keep in mind these videos are primarily for children so the ui should be easy to use and fairly information free.

@Drewbi what kind of topics or components should I include for the videos page?

I wouldn't worry about the sub-tasks for this one, I've removed the epic label because i think only one person needs to work on this.
Basically it will either be a single page with many video players on it, or a list of videos in a list where clicking on one will take you to a new page. The choice is yours :)

No longer in scope of the project.


Multiarch Cluster (Graviton + X86)

As discussed via email with @demartinofra and Austin; I'd like to create a cluster with X86 and ARM compute nodes.
In my case with a x86 headnode.
AFAIU this is currently not possible since the headnode exports /opt/slurm to all compute nodes.
$ sudo exportfs|grep slurm
/opt/slurm      <IP_ADDRESS>/16

Thus, the compute nodes use the x86 binaries under /opt/slurm/bin and will segfault on any slurm commands.

Hi Christian,
Unfortunately, ParallelCluster does not support multiArch clusters. Could you describe your use case in detail?
Thank you,
Hanwen

In the EDA world, many applications support both architectures. Arm64 is lower cost/performance, but not all applications support it. In that use case both architectures are required. For capacity reasons it also makes more instances available for large workloads.

I don't know about @ChristianKniep's use case but in ours we have a mix of GPU/CPU queues and we wanted to try the C7g instances for some of our CPU workloads (as they are cheaper and supposed to be faster).
However, since ParallelCluster does not support multiArch clusters, we also need to migrate our GPU queue, which currently setup to use a g4dn.2xlarge, to use a g5g.4xlarge instance type. This however is not viable for us as most of our workloads are GPU driven and moving from G4dn -> G5g  represents ~ 10% increase in costs.


Can we Highlight current date as well as Selected date in different color.

Hi I'm using this calendar it was good but, my requirement is to show current date in Blue color and selected date in Red color. is it possible?

Hi, yes you can
use this code as a decorator class
`public class OneDayDecorator implements DayViewDecorator {
private CalendarDay date;
private Context context;

public OneDayDecorator(Context context) {
    this.context = context;
    date = CalendarDay.today();
}

@Override
public boolean shouldDecorate(CalendarDay day) {
    return date != null && day.equals(date);
}

@Override
public void decorate(DayViewFacade view) {
    view.addSpan(new StyleSpan(Typeface.BOLD));
    view.addSpan(new RelativeSizeSpan(1.4f));
    view.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.calendar_one_day_decorator));
}

/**
 * We're changing the internals, so make sure to call {@linkplain MaterialCalendarView#invalidateDecorators()}
 */
public void setDate(Date date) {

//        this.date = CalendarDay.from(date);
}
}
and then :        calendarView.addDecorator(new OneDayDecorator(getContext()));`


Adding Washington DC to the GDCR 2018

Closing this just to check whether reopening it will trigger the netlify deployment. Thus, we can confirm it was indeed a timeout error and subsequently merge.

@rradczewski as I fore-mentioned, closing and reopening this issue, (unfortunately) didn't have amy effect. Do you have any better idea on this one?

I'll try and push some whitespace