Add deployment to vercel for finesse-frontend

The deployment to vercel is need to be able to test one of the workflow that has been created but will also allow the ability to test deployment to a different URL so that user aren't affect in the event of a deployment that isn't fully functionnal

We need to have a bit more consistent documentation on our environments.
Any production-level app (with real users) should be deployed to three environment:

dev: whatever is on main at the moment
uat: frozen to allow for users to test before we push to production
prd: production version

this naming is also part of the conversation in the naming ADR with @JolanThomassin
https://github.com/ai-cfia/dev-rel-docs/pull/77

We need to have a bit more consistent documentation on our environments.
Any production-level app (with real users) should be deployed to three environment:

dev: whatever is on main at the moment
uat: frozen to allow for users to test before we push to production
prd: production version

this naming is also part of the conversation in the naming ADR with @JolanThomassin
ai-cfia/dev-rel-docs#77

Vercel allows for different stages which I think is something that could be useful. it's as simple as adding -- env-name to the deploy command, we could have all the different stages inside vercel and have the prod as github pages. Just a suggestion

We need to have a bit more consistent documentation on our environments.
Any production-level app (with real users) should be deployed to three environment:

dev: whatever is on main at the moment
uat: frozen to allow for users to test before we push to production
prd: production version

this naming is also part of the conversation in the naming ADR with @JolanThomassin
ai-cfia/dev-rel-docs#77

Vercel allows for different stages which I think is something that could be useful. it's as simple as adding -- env-name to the deploy command, we could have all the different stages inside vercel and have the prod as github pages. Just a suggestion

yes. document environment management in the devops repo.

@rngadam I think I was wrong, doing further research it's not possible to depoy to different envrionment using the CLI, because of the -dev flag I thought that refered to development stages, it is possible if you connect your github to have different URL deployment based on the branch but I am not sure it's something that would be acceptable since that means directly connecting the project to vercel.

There are two options I can think of if we don't want to do that, we could have 3 different website hosting plateform assigning each one to a specific stage, or we could have only two which would be Vercel and gh-pages and use vercel's preview URL as the first stage, this is the preview URL for one of the deployment I made
finesse-frontend-fywxp3pq3-reda-tarzalts-projects.vercel.app
and then have the main vercel URL as the second stage which would look like this
finesse-frontend.vercel.app
and have github pages be the final stage

There are two options I can think of if we don't want to do that,

https://vercel.com/docs/cli/deploy#deploying-to-a-custom-domain

In the following example, you create a bash script that you include in your CI/CD  workflow. The goal is to have all preview deployments be aliased to a custom domain so that developers can bookmark the preview deployment URL.

if I read it correctly, you can get vercel deploy to auto-generate a url that you can then alias to the right environment.
vc alias $deploymentUrl finesse-frontend-dev.vercel.com

or
vc alias $deploymentUrl finesse-frontend-uat.vercel.com

or
vc alias $deploymentUrl finesse-frontend-prd.vercel.com

There are two options I can think of if we don't want to do that,

https://vercel.com/docs/cli/deploy#deploying-to-a-custom-domain

In the following example, you create a bash script that you include in your CI/CD  workflow. The goal is to have all preview deployments be aliased to a custom domain so that developers can bookmark the preview deployment URL.

if I read it correctly, you can get vercel deploy to auto-generate a url that you can then alias to the right environment.
vc alias $deploymentUrl finesse-frontend-dev.vercel.com

or
vc alias $deploymentUrl finesse-frontend-uat.vercel.com

or
vc alias $deploymentUrl finesse-frontend-prd.vercel.com

ah it's to map the preview url to the desired URL didn't think about that option I only researched about how to deploy directly to the URL makes sense I will look into it

There are two options I can think of if we don't want to do that,

https://vercel.com/docs/cli/deploy#deploying-to-a-custom-domain

In the following example, you create a bash script that you include in your CI/CD  workflow. The goal is to have all preview deployments be aliased to a custom domain so that developers can bookmark the preview deployment URL.

if I read it correctly, you can get vercel deploy to auto-generate a url that you can then alias to the right environment.
vc alias $deploymentUrl finesse-frontend-dev.vercel.com

or
vc alias $deploymentUrl finesse-frontend-uat.vercel.com

or
vc alias $deploymentUrl finesse-frontend-prd.vercel.com

just a heads up, .com is taken so it's .app
finesse-frontend-dev.vercel.app

Won't do. We will preview deployment when this issue (https://github.com/ai-cfia/infra/issues/20) will be solved (iteration 3). No more maintenance time will be put into Vercel


Does below issue has been fixed?

https://bugs.launchpad.net/python-concurrent-log-handler/+bug/1265150

Should be, yeah. That bug was one of the reasons I forked that package here.

@Preston-Landers might be a basic question I am  asking
init.py file which uses stream & locks for logging right?
if we want to use queue handler & listener then need to use setup_logging_queues()?
which gives better performance by using queues or streams?

The basic class in __init__.py is purely synchronous. That is, when you make a log call from your app's code, your app's logic suspends and waits until the log call is fully complete, including any (relatively slow) file rotation that needed to happen.
Optionally you can add async behavior with setup_logging_queues, so that a log call puts the logging request on a queue for another thread to handle while your app can continue on. (However when you do this, your app has no way to know when or if the log call actually completed.) Whether the queue helps or hurts performance is highly dependent on a number of factors including the frequency and complexity of logging calls. Probably doesn't hurt to evaluate it both ways.
You might want to check the example code if you haven't already.
https://github.com/Preston-Landers/concurrent-log-handler/blob/master/src/example.py

@Preston-Landers As in this library According to the instructions at "https://github.com/Preston-Landers/concurrent-log-handler#important-requirements", each process must create a separate instance of ConcurrentRotatingFileHandler
But since we use --preload when starting gunicorn, the initialization code here is run before the worker processes are created. That would mean the processes end up sharing this object. would that impact?

I'm not all that familiar with gunicorn but it appears to use POSIX/Linux fork.
The wording was perhaps unclear there. Mainly it means that you can't serialize or pass a CRFH object across a socket connection. For instance, with the non-fork start methods in the "multiprocessing" module.
The readme also says a little further down:
If your app uses fork() then this may not apply; child processes of a fork() should be able to inherit the object instance.

@Preston-Landers what installation name should I use
pip3 install concurrent_log_handler or
pip3 install concurrent-log-handler
?

The pip name is concurrent-log-handler
https://pypi.org/project/concurrent-log-handler/
The actual Python package (import) name has underscores.


[1.17.1] [1.0.0-alpha] Crash while clicking on the Mod Manager button

Description
Minecraft crashes after clicking on the Mod Manager menu button.
To Reproduce

Launch MC
Click on Mod Menu button
Click on Mod Manager button
Get crash

Demo
Technical Info:

Windows 10
Java 16 (AdoptOpenJDK, jre-<IP_ADDRESS>-hotspot)
Minecraft 1.17.1
Fabric Loader 0.11.6
Fabric API 0.39.0 1.17
Mod Manager 1.0.0-alpha

Logs
latest.log
crash-2021-08-24_22.12.29-client.txt

Hi thank you for reporting this bug with so much detail!
Fortunately it has been fixed in 1.0.1+1.17.1-alpha which you can download here

Fortunately it has been fixed in 1.0.1
Thanks! You managed to fix the problem before I sent the report :)

Fortunately it has been fixed in 1.0.1

Thanks! You managed to fix the problem before I sent the report :)

Someone was just faster #13


Update deprecated to reflect where deprecations are now errors

https://github.com/D-Programming-Language/dmd/pull/4606

Thanks, we should maintain that page a little better.

@MartinNowak you read my mind!  Yes we should.


Fix self query pinecone translation

Enum to string conversion handled differently between python 3.9 and 3.11, currently breaking in 3.11 (see #3788). Thanks @peter-brady for catching this!

FYI @dev2049, it looks like this is still an issue, per #7157 and #7529.

Having same issue, @analyticanna have you found a fix?

Still same issue, when a fix ??


JSONDecodeError?

spotify_sync run auto --config config.json
Traceback (most recent call last):
File "/home/pi/.local/bin/spotify_sync", line 8, in
sys.exit(cli())
File "/home/pi/.local/lib/python3.9/site-packages/click/core.py", line 1130, in call
return self.main(*args, **kwargs)
File "/home/pi/.local/lib/python3.9/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/home/pi/.local/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/pi/.local/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/pi/.local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/pi/.local/lib/python3.9/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/home/pi/.local/lib/python3.9/site-packages/spotify_sync/main.py", line 48, in auto
app.auto()
File "/home/pi/.local/lib/python3.9/site-packages/spotify_sync/cli.py", line 39, in auto
from spotify_sync.match import MatchService
File "/home/pi/.local/lib/python3.9/site-packages/spotify_sync/match.py", line 5, in
from requests import JSONDecodeError
ImportError: cannot import name 'JSONDecodeError' from 'requests' (/usr/lib/python3/dist-packages/requests/init.py)

Hi a little more context would be useful.
Could you shoot me your dependancy versions?
python3.9 -m pip freeze | grep -E 'spot-sync|requests'
Is this an new issue / first time run?

@nebb00 okay I've worked it out. It seems that the projects desired version of requests is incorrectly set for the use of JSONDecodeError. This was introduced in requests 2.27.0 but the requirements allow from 2.25.1.
Check if this works for you in the interim:
python3.9 -m pip install requests==2.27.0
then
spotify_sync run auto --config config.json
I'll bump the version assuming it does.

Not the original reporter but this fixed it for me!


Exceptions In Handlers - Still A Problem

Exceptions in event handlers are still a problem.  I still haven't got it right.
I had hoped that log-ex (middleware) was the solution, but I was young and foolish.  log-ex is indeed useful at reporting reporting an actionable exception into console including stack trace, but it rethrows the exception and that destroys the enclosing go-loop which is processing events.   No event is ever processed again after such an exception.  The app is totally broken.
That destruction is not so bad for a dev environment.  But I want my production env to be slightly more robust in the face of unhandled exceptions, if possible.  I want the app to at least have a fighting chance of survival, whereas, at the moment, it is always dead for any UHE (in an event handler).
Now, in production, I guess I could replace log-ex with other middleware which doesn't re-throw.
But I think the better solution is:

to have re-frame itself, not middleware, catch  exceptions.  It is re-frame's responsibility to guard the integrity of its go-loop. It shouldn't rely on the correct actions of apps using re-frame (putting in the right middleware)
when it catches an exception it should log/report it  (See #53)
but not rethrow any exception, just swallow them, thus keeping the event loop alive.

After working on this, I've had a (blindingly obvious) realisation.
Instead of "guarding the event handling go-loop", I should instead let that loop be thrashed by any thrown exception,  but I should also start another one so that the app continues on.
At the moment, if any exception escapes through the router go-loop, the loop is busted and no further events are processed - which means the app is broken.
In production env, our goals are:

recovery from UHE  (if possible put the app back in a stable state, tell user)
reporting of UHE to services like raygun.

In dev:

recovery from UHE  (so we can just figwheel away)
a good stack trace to whatever logging tool we are using (console.error by default)

So the simple solution here is for re-frame to catch any exception thrown in a handler:

restart another router go-loop  (current one is about to be broken by exception)
rethrow the exception, allowing standard window.onerror processing to occur which, in a production evn, might POST the exception somewhere.

  So there seems to be no need for log-ex middleware any longer.  I've put in a deprecation warning.
All of this will be a part of v0.4.0


Be able to pass a specific branch to run a workflow

I would like to be able to pass a specific branch to an OpenAstronomy workflow, so that I can use them to run a cron job against my release branches. Normally, to schedule a cron job on the non default branch one needs to specify:
- uses: actions/checkout@v3
  with:
    ref: non-default-branch

in the checkout phase.
Ideally, I would like to able to say, specify say cron-branches: to the tox workflow. When the workflow is triggered by a the cron it launch the workflow on each of the cron-branches rather than on the default branch for the workflow. That is if
jobs:
  test:
    uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@v1
    with:
      posargs: '-n 4'
      cron-branches:
        - main
        - release
      envs: |
        - linux: pep8
          pytest: false
        - macos: py310
        - windows: py39-docs
          libraries:
            choco:
              - graphviz

This workflow would launch 6 actions, one action for each env on each of the branches. Then if not triggered by cron it would just run on the normal default branch.
Doing this would let me schedule my CI to run on my main and release branches so the CI gets run even if no PRs get opened or merged in a given time period.

Hi @WilliamJamieson, yes, scheduling it to run on different branches is useful, and you should be able to do this already. SunPy currently does this for the main branch and two release branches. Runs of ci.yml are triggered by scheduled_builds.yml on a schedule. The benefit of this approach is that it runs the workflow file version that is located in the branch you want to test. For example, you may want py311 on main even when release is not ready for it, or you may want py38 on release but no longer run it on main.
Another benefit of maintaining a workflow file in each branch is that it keeps the status report easier to read. It may get difficult to quickly check the branch's test status if the jobs for all your branches are mixed into the same workflow run summary. This can get particularly complex if you have a chain of dependent jobs which must run in sequence (basic test -> complex tests -> doc tests).
Some important things to do to get it working:

ci.yml needs to have the workflow_dispatch trigger listed
the GITHUB_TOKEN set in scheduled_builds.yml needs to be a PAT token that you manually generate (because the default GITHUB_TOKEN available in workflow runs does not have permission to call other workflows, to prevent infinite recursion)

Do you think that approach would work for you?

Thanks @ConorMacBride, I think this should work nicely for me. I did not realize this approach was possible. It might be a good idea to document an example of how to do this as part of these actions.
I do have some questions about the requirements for the PAT (I am basically looking to create as limited a token in scope as possible), as I haven't really had a need to use them before:

Namely, which if any OAuth scopes are needed to do this (classic tokens)?

I think I only need to give it workflows permissions. Do I need even that?

Can this be done with a fine-grained token? If so, what level of permissions do I need to set?

Is read-only enough for the Actions or will it need Read and write. I there a different setting I need to set?

Yeah, it would be good to properly document this. I think the fine grained token would be best because you can limit it to a single repository. I've not tried it but "actions: read and write" should be the minimum for the fine grained token. I can't remember the minimal settings for the old PAT. https://docs.github.com/en/rest/actions/workflows?apiVersion=2022-11-28#create-a-workflow-dispatch-event

Unfortunately, fine-grained tokens cannot be created with no expiration date, or at the very least one in the distant future (seems like the limit was 1year). This runs a bit contrary to the set-it and forget-it testing I want to schedule with the cron job (namely, release branches will see less and less activity as they age). For now I'll go with a classic token (unfortunately), or at least until github comes up with something for fine grained tokens that requires me to not think about them too much.
For classic tokens it looks like it needs a repo OAuth scope based on the docs you linked to and me just trying different settings and seeing what worked.

@zanecodes, made a suggestion to me that may avoid the use of the PAT. Namely, turning the ci.yml into a reusable workflow (I think it will need a workflow_call in the on section) and then modifying scheduled_builds.yml to something like:
name: Scheduled builds

on:
  # Allow manual runs through the web UI
  workflow_dispatch:
  schedule:
    #        ┌───────── minute (0 - 59)
    #        │ ┌───────── hour (0 - 23)
    #        │ │ ┌───────── day of the month (1 - 31)
    #        │ │ │ ┌───────── month (1 - 12 or JAN-DEC)
    #        │ │ │ │ ┌───────── day of the week (0 - 6 or SUN-SAT)
    - cron: '0 7 * * *'  # Every day at 07:00 UTC

jobs:
  sunpy_main:
    uses: sunpy/sunpy/.github/workflows/ci.yml@main
  sunpy_4_0:
    uses<EMAIL_ADDRESS>  sunpy_4_1:
    uses<EMAIL_ADDRESS>
I think the issue then becomes that actions/checkout in OpenAstronomy will checkout the code relative to the branch Scheduled builds is triggered on (namely the default main branch of the cron). In this case it might be useful to pass a ref: down to the actions/checkout in the OpenAstronomy workflow.
There are a few downsides to this, most notably being that this action won't affect any badges indicating the CI status on a given branch. So it is probably not that useful to me. The method you proposed earlier doesn't suffer from this issue.

Yeah, it would be good if the tokens would last for longer. Maybe there is some way to add a job to scheduled.yml which opens an issue saying to update the token if the workflow dispatches fail (or if the token is close to expiring). At least then you would know.
I hadn't realised that the reusable workflows could now be nested. This used to not be possible but I see it now is! (https://docs.github.com/en/actions/using-workflows/reusing-workflows#nesting-reusable-workflows) Making sure it builds the correct branch is important and passing the ref: through should work. ci.yml would also need to only set the ref if it was triggered by a workflow_call event, so it can build PRs on the default ref. I think I will stick to the token method with SunPy as it seems to work well enough. We did have an issue with the token silently expiring recently and not noticing for a while, so maybe I'll look into notifications when it's close to expiring!

I think I will stick to the token method with SunPy as it seems to work well enough. We did have an issue with the token silently expiring recently and not noticing for a while, so maybe I'll look into notifications when it's close to expiring!

I think I will also use the same method in ASDF as well. Let me know if you figure out how to automatically notify when a token expires.

Apparently GitHub should email the creator of the token when its about to expire: https://github.blog/changelog/2021-07-26-expiration-options-for-personal-access-tokens/#:~:text=When using a personal access,as the expiration date approaches.

Ah, you're right. I now remember that the email got buried amongst 100s of other emails in the organisation email account

It would be nicer if it just raised an issue.

#142 added support for passing a specific branch to run a workflow, although I think this issue still raises a useful point, so I've made the title more specific.


Can't load fawkes with tensorflow-gpu

Initially I ran setup.py with the tensorflow-gpu package commented out.
When trying to run fawkes with the tensorflow package installed I'd get this output:
Ran: fawkes -d .\img --mode custom --format png --lr 0.0001 --max-step 1000 -g 0
no tensorflow-gpu installed
2020-07-24 13:36:34.490847: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll
2020-07-24 13:36:46.546924: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
2020-07-24 13:36:46.549821: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library nvcuda.dll
2020-07-24 13:36:46.581144: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Found device 0 with properties:
name: GeForce RTX 2080 SUPER major: 7 minor: 5 memoryClockRate(GHz): 1.845
pciBusID: 0000:08:00.0
2020-07-24 13:36:46.581246: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll
2020-07-24 13:36:46.583749: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_100.dll
2020-07-24 13:36:46.618641: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cufft64_100.dll
2020-07-24 13:36:46.629692: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library curand64_100.dll
2020-07-24 13:36:46.633331: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusolver64_100.dll
2020-07-24 13:36:46.668471: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusparse64_100.dll
2020-07-24 13:36:46.681224: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudnn64_7.dll
2020-07-24 13:36:46.681384: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Adding visible gpu devices: 0
2020-07-24 13:36:47.218796: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1159] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-07-24 13:36:47.218883: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1165]      0
2020-07-24 13:36:47.218986: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1178] 0:   N
2020-07-24 13:36:47.219192: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1304] Created TensorFlow device (/device:GPU:0 with 6679 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2080 SUPER, pci bus id: 0000:08:00.0, compute capability: 7.5)
2020-07-24 13:36:47.221479: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Found device 0 with properties:
name: GeForce RTX 2080 SUPER major: 7 minor: 5 memoryClockRate(GHz): 1.845
pciBusID: 0000:08:00.0
2020-07-24 13:36:47.221551: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll
2020-07-24 13:36:47.221591: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_100.dll
2020-07-24 13:36:47.221629: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cufft64_100.dll
2020-07-24 13:36:47.221666: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library curand64_100.dll
2020-07-24 13:36:47.221703: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusolver64_100.dll
2020-07-24 13:36:47.221740: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusparse64_100.dll
2020-07-24 13:36:47.221778: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudnn64_7.dll
2020-07-24 13:36:47.221844: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Adding visible gpu devices: 0
2020-07-24 13:36:47.221910: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1159] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-07-24 13:36:47.221948: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1165]      0
2020-07-24 13:36:47.221977: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1178] 0:   N
2020-07-24 13:36:47.222070: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1304] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 6679 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2080 SUPER, pci bus id: 0000:08:00.0, compute capability: 7.5)
Identify 1 files in the directory
Identify 1 images in the directory
2020-07-24 13:36:58.168878: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudnn64_7.dll
2020-07-24 13:36:59.043381: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED
2020-07-24 13:36:59.046724: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED
Traceback (most recent call last):
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\client\session.py", line 1365, in _do_call
    return fn(*args)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\client\session.py", line 1350, in _run_fn
    target_list, run_metadata)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\client\session.py", line 1443, in _call_tf_sessionrun
    run_metadata)
tensorflow.python.framework.errors_impl.UnknownError: 2 root error(s) found.
  (0) Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
         [[{{node pnet/conv1/Conv2D}}]]
         [[pnet/prob1/_3729]]
  (1) Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
         [[{{node pnet/conv1/Conv2D}}]]
0 successful operations.
0 derived errors ignored.

Now when I run it with tensorflow-gpu installed and tensorflow uninstalled first it doesn't even load my GPU or try to load cudNN. It just says it couldn't initalize cudNN and fails to find the convolution algorithm.

You mean you installed tensorflow-gpu right, which version are you using?

Yes when I installed tensorflow-gpu 1.14.0 it wouldn't even attempt to load my GPU device

I see, it seems it recognize the GPU but have some issue loading it. I need a bit more details to provide a solution.
What OS are you using? Have you successfully use tensorflow-gpu on your GPU before? Can you train pip uninstall tensorflow-gpu and then pip install tensorflow-gpu==1.14.0

Yes I'm able to run other tensorflow applications and load cudNN and my GPU fine.
When I have tensorflow=1.15.0 installed and no tensorflow-gpu package in my virtualenv running:
fawkes -d img --mode custom -g 0 --format png --lr 0.0001

Produces this output:
2020-07-24 21:15:24.741918: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll
2020-07-24 21:15:27.957029: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
2020-07-24 21:15:27.995310: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library nvcuda.dll
2020-07-24 21:15:28.072269: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Found device 0 with properties:
name: GeForce RTX 2080 SUPER major: 7 minor: 5 memoryClockRate(GHz): 1.845
pciBusID: 0000:08:00.0
2020-07-24 21:15:28.073358: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll
2020-07-24 21:15:28.078300: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_100.dll
2020-07-24 21:15:28.083635: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cufft64_100.dll
2020-07-24 21:15:28.096402: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library curand64_100.dll
2020-07-24 21:15:28.109924: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusolver64_100.dll
2020-07-24 21:15:28.113625: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusparse64_100.dll
2020-07-24 21:15:28.124704: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudnn64_7.dll
2020-07-24 21:15:28.128501: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Adding visible gpu devices: 0
2020-07-24 21:15:38.237753: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1159] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-07-24 21:15:38.238003: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1165]      0
2020-07-24 21:15:38.238284: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1178] 0:   N
2020-07-24 21:15:38.263455: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1304] Created TensorFlow device (/device:GPU:0 with 6679 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2080 SUPER, pci bus id: 0000:08:00.0, compute capability: 7.5)
2020-07-24 21:15:38.421302: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Found device 0 with properties:
name: GeForce RTX 2080 SUPER major: 7 minor: 5 memoryClockRate(GHz): 1.845
pciBusID: 0000:08:00.0
2020-07-24 21:15:38.421798: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll
2020-07-24 21:15:38.422002: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_100.dll
2020-07-24 21:15:38.422146: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cufft64_100.dll
2020-07-24 21:15:38.422276: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library curand64_100.dll
2020-07-24 21:15:38.422396: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusolver64_100.dll
2020-07-24 21:15:38.422527: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusparse64_100.dll
2020-07-24 21:15:38.422671: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudnn64_7.dll
2020-07-24 21:15:38.434560: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Adding visible gpu devices: 0
2020-07-24 21:15:38.434836: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1159] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-07-24 21:15:38.435009: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1165]      0
2020-07-24 21:15:38.435233: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1178] 0:   N
2020-07-24 21:15:38.435469: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1304] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 6679 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2080 SUPER, pci bus id: 0000:08:00.0, compute capability: 7.5)
Identify 1 files in the directory
Identify 1 images in the directory
2020-07-24 21:15:53.083830: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudnn64_7.dll
2020-07-24 21:15:56.151685: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED
2020-07-24 21:15:56.152519: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED
Traceback (most recent call last):
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\client\session.py", line 1365, in _do_call
    return fn(*args)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\client\session.py", line 1350, in _run_fn
    target_list, run_metadata)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\client\session.py", line 1443, in _call_tf_sessionrun
    run_metadata)
tensorflow.python.framework.errors_impl.UnknownError: 2 root error(s) found.
  (0) Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
         [[{{node pnet/conv1/Conv2D}}]]
         [[pnet/prob1/_3729]]
  (1) Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
         [[{{node pnet/conv1/Conv2D}}]]
0 successful operations.
0 derived errors ignored.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "F:\Downloads\fawkes\.aienv\Scripts\fawkes-script.py", line 33, in <module>
    sys.exit(load_entry_point('fawkes==0.1.0', 'console_scripts', 'fawkes')())
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\protection.py", line 206, in main
    separate_target=args.separate_target, debug=args.debug)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\protection.py", line 106, in run_protection
    faces = Faces(image_paths, loaded_images, self.aligner, verbose=1)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\utils.py", line 130, in __init__
    align_img = align(cur_img, self.aligner, margin=margin)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\align_face.py", line 32, in align
    bounding_boxes, _ = run_detect_face(orig_img, minsize, pnet, rnet, onet, threshold, factor)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py", line 319, in run_detect_face
    out = pnet(img_y)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py", line 281, in <lambda>
    pnet_fun = lambda img: sess.run(('pnet/conv4-2/BiasAdd:0', 'pnet/prob1:0'), feed_dict={'pnet/input:0': img})
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\client\session.py", line 956, in run
    run_metadata_ptr)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\client\session.py", line 1180, in _run
    feed_dict_tensor, options, run_metadata)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\client\session.py", line 1359, in _do_run
    run_metadata)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\client\session.py", line 1384, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.UnknownError: 2 root error(s) found.
  (0) Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
         [[node pnet/conv1/Conv2D (defined at \lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\framework\ops.py:1748) ]]
         [[pnet/prob1/_3729]]
  (1) Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
         [[node pnet/conv1/Conv2D (defined at \lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\framework\ops.py:1748) ]]
0 successful operations.
0 derived errors ignored.

Original stack trace for 'pnet/conv1/Conv2D':
  File "\Scripts\fawkes-script.py", line 33, in <module>
    sys.exit(load_entry_point('fawkes==0.1.0', 'console_scripts', 'fawkes')())
  File "\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\protection.py", line 203, in main
    protector = Fawkes(args.feature_extractor, args.gpu, args.batch_size)
  File "\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\protection.py", line 60, in __init__
    self.aligner = aligner(sess)
  File "\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\align_face.py", line 16, in aligner
    pnet, rnet, onet = create_mtcnn(sess, None)
  File "\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py", line 268, in create_mtcnn
    pnet = PNet({'data': data})
  File "\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py", line 52, in __init__
    self.setup()
  File "\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py", line 198, in setup
    .conv(3, 3, 10, 1, 1, padding='VALID', relu=False, name='conv1')
  File "\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py", line 29, in layer_decorated
    layer_output = op(self, layer_input, *args, **kwargs)
  File "\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py", line 134, in conv
    output = convolve(inp, kernel)
  File "\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py", line 130, in <lambda>
    convolve = lambda i, k: tf.nn.conv2d(i, k, [1, s_h, s_w, 1], padding=padding)
  File "\lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\ops\nn_ops.py", line 2010, in conv2d
    name=name)
  File "\lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\ops\gen_nn_ops.py", line 1071, in conv2d
    data_format=data_format, dilations=dilations, name=name)
  File "\lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\framework\op_def_library.py", line 794, in _apply_op_helper
    op_def=op_def)
  File "\lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\util\deprecation.py", line 507, in new_func
    return func(*args, **kwargs)
  File "\lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\framework\ops.py", line 3357, in create_op
    attrs, op_def, compute_device)
  File "\lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\framework\ops.py", line 3426, in _create_op_internal
    op_def=op_def)
  File "\lib\site-packages\tensorflow-1.15.0-py3.7-win-amd64.egg\tensorflow_core\python\framework\ops.py", line 1748, in __init__
    self._traceback = tf_stack.extract_stack()

Next I run:
pip uninstall tensorflow-gpu tensorflow

It uninstalls and then I run with setup.py having the tensorflow-gpu line uncommented and the normal tensorflow package requiremented commented out:
python setup.py install

It installs tensorflow-gpu==1.14.0, I then run:
fawkes -d img --mode custom -g 0 --format png --lr 0.0001

and the output is:
Identify 1 files in the directory
Identify 1 images in the directory
Traceback (most recent call last):
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\tensorflow_gpu-1.14.0-py3.7-win-amd64.egg\tensorflow\python\client\session.py", line 1356, in _do_call
    return fn(*args)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\tensorflow_gpu-1.14.0-py3.7-win-amd64.egg\tensorflow\python\client\session.py", line 1341, in _run_fn
    options, feed_dict, fetch_list, target_list, run_metadata)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\tensorflow_gpu-1.14.0-py3.7-win-amd64.egg\tensorflow\python\client\session.py", line 1429, in _call_tf_sessionrun
    run_metadata)
tensorflow.python.framework.errors_impl.UnknownError: 2 root error(s) found.
  (0) Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
         [[{{node pnet/conv1/Conv2D}}]]
         [[pnet/prob1/_3729]]
  (1) Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
         [[{{node pnet/conv1/Conv2D}}]]
0 successful operations.
0 derived errors ignored.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "F:\Downloads\fawkes\.aienv\Scripts\fawkes-script.py", line 33, in <module>
    sys.exit(load_entry_point('fawkes==0.1.0', 'console_scripts', 'fawkes')())
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\protection.py", line 206, in main
    separate_target=args.separate_target, debug=args.debug)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\protection.py", line 106, in run_protection
    faces = Faces(image_paths, loaded_images, self.aligner, verbose=1)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\utils.py", line 130, in __init__
    align_img = align(cur_img, self.aligner, margin=margin)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\align_face.py", line 32, in align
    bounding_boxes, _ = run_detect_face(orig_img, minsize, pnet, rnet, onet, threshold, factor)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py", line 319, in run_detect_face
    out = pnet(img_y)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py", line 281, in <lambda>
    pnet_fun = lambda img: sess.run(('pnet/conv4-2/BiasAdd:0', 'pnet/prob1:0'), feed_dict={'pnet/input:0': img})
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\tensorflow_gpu-1.14.0-py3.7-win-amd64.egg\tensorflow\python\client\session.py", line 950, in run
    run_metadata_ptr)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\tensorflow_gpu-1.14.0-py3.7-win-amd64.egg\tensorflow\python\client\session.py", line 1173, in _run
    feed_dict_tensor, options, run_metadata)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\tensorflow_gpu-1.14.0-py3.7-win-amd64.egg\tensorflow\python\client\session.py", line 1350, in _do_run
    run_metadata)
  File "F:\Downloads\fawkes\.aienv\lib\site-packages\tensorflow_gpu-1.14.0-py3.7-win-amd64.egg\tensorflow\python\client\session.py", line 1370, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.UnknownError: 2 root error(s) found.
  (0) Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
         [[node pnet/conv1/Conv2D (defined at \lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py:130) ]]
         [[pnet/prob1/_3729]]
  (1) Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
         [[node pnet/conv1/Conv2D (defined at \lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py:130) ]]
0 successful operations.
0 derived errors ignored.

Errors may have originated from an input operation.
Input Source operations connected to node pnet/conv1/Conv2D:
 pnet/conv1/weights/read (defined at \lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py:103)
 pnet/input (defined at \lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py:267)

Input Source operations connected to node pnet/conv1/Conv2D:
 pnet/conv1/weights/read (defined at \lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py:103)
 pnet/input (defined at \lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py:267)

Original stack trace for 'pnet/conv1/Conv2D':
  File "\Scripts\fawkes-script.py", line 33, in <module>
    sys.exit(load_entry_point('fawkes==0.1.0', 'console_scripts', 'fawkes')())
  File "\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\protection.py", line 203, in main
    protector = Fawkes(args.feature_extractor, args.gpu, args.batch_size)
  File "\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\protection.py", line 60, in __init__
    self.aligner = aligner(sess)
  File "\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\align_face.py", line 16, in aligner
    pnet, rnet, onet = create_mtcnn(sess, None)
  File "\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py", line 268, in create_mtcnn
    pnet = PNet({'data': data})
  File "\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py", line 52, in __init__
    self.setup()
  File "\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py", line 198, in setup
    .conv(3, 3, 10, 1, 1, padding='VALID', relu=False, name='conv1')
  File "\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py", line 29, in layer_decorated
    layer_output = op(self, layer_input, *args, **kwargs)
  File "\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py", line 134, in conv
    output = convolve(inp, kernel)
  File "\lib\site-packages\fawkes-0.1.0-py3.7.egg\fawkes\detect_faces.py", line 130, in <lambda>
    convolve = lambda i, k: tf.nn.conv2d(i, k, [1, s_h, s_w, 1], padding=padding)
  File "\lib\site-packages\tensorflow_gpu-1.14.0-py3.7-win-amd64.egg\tensorflow\python\ops\nn_ops.py", line 1953, in conv2d
    name=name)
  File "\lib\site-packages\tensorflow_gpu-1.14.0-py3.7-win-amd64.egg\tensorflow\python\ops\gen_nn_ops.py", line 1161, in conv2d
    data_format=data_format, dilations=dilations, name=name)
  File "\lib\site-packages\tensorflow_gpu-1.14.0-py3.7-win-amd64.egg\tensorflow\python\framework\op_def_library.py", line 788, in _apply_op_helper
    op_def=op_def)
  File "\lib\site-packages\tensorflow_gpu-1.14.0-py3.7-win-amd64.egg\tensorflow\python\util\deprecation.py", line 507, in new_func
    return func(*args, **kwargs)
  File "\lib\site-packages\tensorflow_gpu-1.14.0-py3.7-win-amd64.egg\tensorflow\python\framework\ops.py", line 3616, in create_op
    op_def=op_def)
  File "\lib\site-packages\tensorflow_gpu-1.14.0-py3.7-win-amd64.egg\tensorflow\python\framework\ops.py", line 2005, in __init__
    self._traceback = tf_stack.extract_stack()

Notice the lack of it trying to load GPU devices on the tensorflow-gpu package but not the tensorflow package? I've never experienced an issue like this before.
Within the python shell the tensorflow package has no problem finding and listing my GPU:
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from tensorflow.python.client import device_lib
>>> print(device_lib.list_local_devices())
2020-07-24 21:21:26.896740: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
2020-07-24 21:21:26.899479: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library nvcuda.dll
2020-07-24 21:21:26.930369: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1640] Found device 0 with properties:
name: GeForce RTX 2080 SUPER major: 7 minor: 5 memoryClockRate(GHz): 1.845
pciBusID: 0000:08:00.0
2020-07-24 21:21:26.930715: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] GPU libraries are statically linked, skip dlopen check.
2020-07-24 21:21:26.930922: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1763] Adding visible gpu devices: 0
2020-07-24 21:21:27.359107: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1181] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-07-24 21:21:27.359343: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1187]      0
2020-07-24 21:21:27.359577: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1200] 0:   N
2020-07-24 21:21:27.359920: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1326] Created TensorFlow device (/device:GPU:0 with 6687 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2080 SUPER, pci bus id: 0000:08:00.0, compute capability: 7.5)
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation:<PHONE_NUMBER>1894727512
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit:<PHONE_NUMBER>
locality {
  bus_id: 1
  links {
  }
}
incarnation:<PHONE_NUMBER>233859335
physical_device_desc: "device: 0, name: GeForce RTX 2080 SUPER, pci bus id: 0000:08:00.0, compute capability: 7.5"
]

Environment Specs:
OS: Windows 10
Python Version: 3.7.3 virtualenv

Thanks for the additional info. Can you try uninstall all tensorflow and tensorflow-gpu on your system (both in and outside virtualenv), and reinstall tensorflow-gpu==1.14.0

Running into the same issue after doing so.

您好，请问下这个怎么解决呢？
PS F:\job1\fawkes_binary_windows-v0.2 (1)> .\protection-v0.2.exe -d F:/job1/fawkes_img
Traceback (most recent call last):
File "fawkes\protection.py", line 210, in
File "fawkes\protection.py", line 203, in main
File "fawkes\protection.py", line 61, in init
File "fawkes\protection.py", line 61, in
File "fawkes\utils.py", line 367, in load_extractor
File "keras\engine\saving.py", line 492, in load_wrapper
File "keras\engine\saving.py", line 583, in load_model
File "keras\utils\io_utils.py", line 191, in init
File "h5py_hl\files.py", line 408, in init
File "h5py_hl\files.py", line 173, in make_fid
File "h5py_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
File "h5py_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
File "h5py\h5f.pyx", line 88, in h5py.h5f.open
OSError: Unable to open file (truncated file: eof = 9510912, sblock->base_addr = 0, stored_eof = 29292232)
[1828] Failed to execute script protection
PS F:\job1\fawkes_binary_windows-v0.2 (1)>

@M4cs it seems like this may be an issue with cuDNN. Have you previously installed cuDNN?

@M4cs it seems like this may be an issue with cuDNN. Have you previously installed cuDNN?

Yes, I have cuDNN installed and it works with other tensorflow projects. It's CUDA 10.

 In that situation, cuDNN fails to initialize. Downgrading to tensorflow==1.14.0 solves the issue.
Perhaps working in a virtualenv would make it easier to ensure this it not a versioning error. Could you try creating a virtualenv, installing tensorflow-gpu==1.14.0 there, and then running the Fawkes setup.py?

I have it setup in a virtualenv, I've installed only 1.14.0 tensorflow and it still wont work.

I got it to work with:
tensorflow-gpu: 1.14.0
cuda: 10.0 (not 10.1)
cudnn: <IP_ADDRESS>
Detailed steps, sample runs, setup script, original/result files, etc. for GCE coming up on my LinkedIn channel:
(https://www.linkedin.com/in/marenpeasley/detail/recent-activity/shares/)

Setup script on Google Compute Engine until I can get the article written:
https://docs.google.com/document/d/1hSdpD04N5LvMVr74Xg-0vkm_R3FK0s0xaWuTNxNO4fM/edit?usp=sharing


Add AlogiaSearch Integration

Modules:

https://www.drupal.org/project/search_api_algolia - provides indexing and re-indexing. Not a lot of reported usage but covered by the security team.
https://www.drupal.org/project/algolia_module_custom - adds searching to search_api_algolia but very low usage and not covered by the security team.

There's also the PHP library, https://github.com/algolia/algoliasearch-client-php, that those modules use. It wouldn't be much work to create a module that indexes via a drush command and reindexes via drush and node updates.
Acceptance Criteria

[x] Look at contrib modules, what the code does, how many features will be used, etc.
[ ] If the contrib modules look scary, then develop a custom cua_algoliasearch module that can index/reindex the content types on creation and update.
[x] Make sure to index these content types: fund, page, FAQ

Next Issue
#2 can be completed after this issue. Without indexing content, the frontend search won't match the CMS data.

Well, that was super easy. search_api_algolia integrates with Drupal core's Search API which in turn has buttloads of features. You can even filter by language, permissions, etc. for any crazy requirement needs...also can index Paragraph/block content which is not something I ever planned to do but is good for a structured data, decoupled approach.


Project flow

This is a small change the the CMakeLists.txt. Now when adding Specter as a subdirectory in a separate project file with it's own Specter binary/library directories defined it doesn't get changed. New project CMakeLists.txt located outside the Specter directory should have the following lines of code
set(SPECTER_BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/bin)
set(SPECTER_LIBRARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Specter/lib)

Interesting idea! I think a better approach might be to leave Specter with SPECTER_BINARY_DIR and SPECTER_LIBRARY_DIR, so that libSpecter is always installed to the Specter/lib directory (guaranteeing there is only ever one libSpecter) and making each project use its own _BINARY_DIR and _LIBRARY_DIR. Let me know what you think!


[INLONG-9893][Common] Optimized code InLongMsg

Title Name: [INLONG-9893] Optimized code InLongMsg.java
https://github.com/apache/inlong/issues/9893
Motivation
Explain here the context, and why you're making that change. What is the problem you're trying to solve.
Modifications
Describe the modifications you've done.

Run 'mvn spotless:apply' to fix the violations.

Run 'mvn spotless:apply' to fix the violations.

Run 'mvn spotless:apply' to fix the violations.

Run 'mvn spotless:apply' to fix the violations.

Problem fixed

@beatCao you could keep the PR open, you do not need to open and close it again.

No more review is required from one committer or PMC member if he has approved before.


Should I move Ocelot to an organisation?

Hi All,
Ocelot is growing quite a bit now and still sits on my personal GitHub.
Another person has now made an Ocelot specific app https://github.com/TomPallister/Ocelot/issues/116
Should I move Ocelot to an organisation? If so what should it be called? I already own an organisation called ThreeMammals so I could move it to this but maybe something Ocelot specific might make more sense!
What do people think?

I very much agree with the use of organizations for management, the 11.15 Microsoft Connect () Conference will also broadcast my video, Video Ocelot is the protagonist。

This is  case https://customers.microsoft.com/en-us/story/tencent-telecommunications-dotnetcore

@geffzhang amazing!!!! That is so cool!
Thanks for linking it here. I think I will move Ocelot soon. I'm just not sure if I want to use the name ThreeMammals or make a new one.
Thanks for using the project and contributing to it!!

I also found out David Fowler tweeted the project https://twitter.com/davidfowl/status/927784832284758016 !!!

I think you should. And then, join the .NET Foundation: http://dotnetfoundation.org/
👍

I will be moving Ocelot to an organisation called threemammals.
I am getting a website and logo sorted at the moment

That is way cool! 👍

OK so moved to ThreeMammals and we have a website and stuff! I will close this one for now and think about the .net core foundation!


[Bug]: httpx.ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate

Is there an existing issue for the same bug?

[X] I have checked the troubleshooting document at https://opendevin.github.io/OpenDevin/modules/usage/troubleshooting
[X] I have checked the existing issues.

Describe the bug
Main and 0.62 produce the same error
httpx.ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1006)
httpcore.ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1006)
Current OpenDevin version
main and 0.6.2

Installation and Configuration
export LLM_MODEL="gpt4o"
export LLM_EMBEDDING_MODEL="openai"
export LLM_EMBEDDING_MODEL_BASE_URL=""
export LLM_API_KEY="sk-proj-......."

export OPENAI_API_KEY="sk-proj-......"
export WORKSPACE_MOUNT="/opt/OpenDevin"
export WORKSPACE_BASE=$WORKSPACE_MOUNT"/workspace"
export TRANSFORMERS_CACHE=$WORKSPACE_MOUNT"/cache"

#hhtp certificate error: https://stackoverflow.com/questions/76578915/ssl-certificate-verify-failed-certificate-verify-failed-self-signed-certifica
export SSL_CERT_FILE=$WORKSPACE_MOUNT"/ca-root.pem"
export REQUESTS_CA_BUNDLE=$WORKSPACE_MOUNT"/ca-root.pem"

using micromamba
/opendevin: make
make setup-config
make run

OR

docker run -it \
    --pull=always \
    -e SANDBOX_USER_ID=$(id -u) \
    -e WORKSPACE_MOUNT_PATH=$WORKSPACE_BASE \
    -v $WORKSPACE_BASE:/opt/workspace_base \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -p 3000:3000 \
    --add-host host.docker.internal:host-gateway \
    --name opendevin-app-$(date +%Y%m%d%H%M%S) \
    ghcr.io/opendevin/opendevin:0.6.2

Model and Agent

Model: gpt4o
Agent: CodeAgent

Operating System
Mac Latest
Reproduction Steps
No response
Logs, Errors, Screenshots, and Additional Context
error (1).pdf

Update 25th of June
I just triggered a "make build" of 0.6.2. The build produces now a new issue:
`
Building project...
Checking dependencies...
Checking system...
macOS detected.
Checking Python installation...
Python 3.11.9 is already installed.
Checking npm installation...
npm 10.5.0 is already installed.
Checking Node.js installation...
Node.js 20.12.2 is already installed.
Checking Docker installation...
Docker version 26.0.0, build 2ae903e is already installed.
Checking Poetry installation...
Poetry (version 1.8.3) is already installed.
Dependencies checked successfully.
Pulling Docker image...
Using default tag: latest
latest: Pulling from opendevin/sandbox
Digest: sha256:4bd05c581692e26a448bbc6771a21bb27002cb0e6bcf5034d0db91bb8704d0f0
Status: Image is up to date for ghcr.io/opendevin/sandbox:latest
ghcr.io/opendevin/sandbox:latest
What's Next?
View a summary of image vulnerabilities and recommendations → docker scout quickview ghcr.io/opendevin/sandbox
Docker image pulled successfully.
Installing Python dependencies...
Using virtualenv: /Users/sstraube/Library/Caches/pypoetry/virtualenvs/opendevin-l0sScIZF-py3.11
Installing chroma-hnswlib...
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)'))': /simple/chroma-hnswlib/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)'))': /simple/chroma-hnswlib/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)'))': /simple/chroma-hnswlib/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)'))': /simple/chroma-hnswlib/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)'))': /simple/chroma-hnswlib/
Could not fetch URL https://pypi.org/simple/chroma-hnswlib/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/chroma-hnswlib/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)'))) - skipping
ERROR: Could not find a version that satisfies the requirement chroma-hnswlib (from versions: none)
ERROR: No matching distribution found for chroma-hnswlib
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)'))) - skipping
make[1]: *** [install-python-dependencies] Error 1
make: *** [build] Error 2
`

Is there any firewall enabled in your network?
Could you run this code?
import requests
from requests.exceptions import SSLError
url = "https://example.com/"
try:
    # Make a request with SSL verification enabled
    response = requests.get(url)
    print("Request succeeded. Response code:", response.status_code)
except SSLError as e:
    print("SSL error:", e)
try:
    # Make a request with SSL verification disabled
    response = requests.get(url, verify=False)
    print("Request succeeded (without SSL verification). Response code:", response.status_code)
except requests.exceptions.RequestException as e:
    print("Request failed:", e)

@SmartManoj  this is the Output:
InsecureRequestWarning: Unverified HTTPS request is being made to host 'google.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
warnings.warn(
....python/site-packages/urllib3/connectionpool.py:1045: InsecureRequestWarning: Unverified HTTPS request is being made to host 'www.google.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
warnings.warn(
Request succeeded (without SSL verification). Response code: 200

Is there an option to disable the ssl check, so I can run opendevin?
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
P.S.Yes I have a firewall, why whould the Firewall make the https request insecure?

@SmartManoj any idea how to solve this issue?

The cause of the issue is probably that my endpoint security or firewall sitting in between is opening up the ssl transaction to check the data inside (DPI). The firewall replaced the certificate with a self-signed and added through MDM into my cert-store on my laptop. When I start opendevin the ssl urllib3 has seen a self-signed cert and produces an exception, because the trust-chain is broken. Which is correct.
error: httpcore.ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1000)
How could this issue been resolved, any SSL_UNTRUSTED=True flag available?

Relevant SO Post Disable ssl verification on a third party module using HTTPX


TextField type Number should not allow " +, -, e " in middle of number

TextField type Number should not allow " +, -, e " in middle of number

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
When I entering numbers in TextField type number it is allowing minus(-), plus(+), and 'e' symbols but i am getting empty string instead of target value

// initial state value = "";
<TextField
id="standard-number"
label="Number"
type="number"
value={this.state.value}
onChange={(event)=> this.setState({ value: event.target.value }) }
/>
Expected Behavior 🤔
Number filed should not allow +, - & e in middle of any number

This is expected for <input type="number" />.

See https://github.com/mui-org/material-ui/issues/10582#issuecomment-603118446 for an alternative to type: number.


Kerberos fixes

This PR addresses bugs with Kerberos:

Encrypt/Decrypt message were failing
when kerberos was failing in Negociate, the FreeRDP was crashing

@hardening missed that on first check, the formatting seems wrong. better run clang-format


Signing: Safeguard for short digest case.

Description

Testing instructions

Types of changes

Checklist

[ ] Prefix PR title with [WIP] if necessary.
[ ] Add tests to cover changes as needed.
[ ] Update documentation as needed.
[ ] I have read the guidelines for adding a new blockchain
[ ] If there is a related Issue, mention it in the description (e.g. Fixes #<issue_number> ).

Signing: Safeguard for short digest case.


Blocksize change

Block size will be calculated value based on user machine total RAM and
will be equal 1/10 of user RAM as default

IMHO, it might be better to default to using cpu core count instead of 10 as the memory fraction.

Superceded by https://github.com/dask/dask/pull/1328


[RFC]: Deprecate and remove the Upload validator

RFC

Q
A

Proposed Version(s)
3.0.0

BC Break?
Yes

Goal
Remove seeimingly unnecessary validator
Background
There are 2 validators for validating successful upload:

https://github.com/laminas/laminas-validator/blob/2.61.x/src/File/Upload.php
https://github.com/laminas/laminas-validator/blob/2.61.x/src/File/UploadFile.php

UploadFile accepts a value to isValid representing a single file and returns true when the file appears to be successfully uploaded.
Upload requires a list of all uploaded files to its constructor, and subsequent calls to isValid represent the form element name/key it seems. i.e. isValid('myfile')
It seems odd that Upload needs the input as an argument to its constructor (Or option) rather than to the isValid method.
Considerations
I might be missing the point of the Upload validator. It looks like something from the days of Laminas\File\Transfer and Laminas\Http.
If anyone can shed any light on why it works the way it does, I'm all ears.
Proposal(s)
Deprecate the validator in 2.61.0 and remove it in 3.0.0
cc @laminas/technical-steering-committee

@weierophinney

Considerations
I might be missing the point of the Upload validator. It looks like something from the days of Laminas\File\Transfer and Laminas\Http.
If anyone can shed any light on why it works the way it does, I'm all ears.

Do you have a comment on this?

Closed via #362


Slimer.com?

The description of the project incorrectly links to slimer.co instead of slimer.com, only took a minute to find the right url but still a simpe fix and worth reporting. Thanks!

This project is nothing to do with slimer.com. slimer.co is the correct URL, there is simply nothing there.


Use dependabot changenote CI workflow from .github repo

Use centralized workflow to add dependabot changenote.

beeware/.github#2

PR Checklist:

[x] All new features have been tested
[x] All new features have been documented
[x] I have read the CONTRIBUTING.md file
[x] I will abide by the code of conduct

@rmartin16 Are you sure this is needed? This support-testbed repo doesn't use towncrier (as there's nothing inherently "releasable"); isn't this workflow unnecessary in that case?

Oh, haha....I was just updating existing instances of the workflow. I'll update this PR to remove the changenote workflow.

/me facepalms.
I was wondering why #10 ran, and was trying to diagnose how dependabot changes that were only in CI were causing dependabot to run... and neglected to notice that I'd copy-pasta'd a dependabot config into this project.


use strings slices from k8s utils

Description
Changes proposed in this pull request:

Use slices functions for Kubernetes utils package

Related issue(s)
Fixes https://github.com/capactio/capact/issues/411

Hi, @krishnaindani thank you for your contribution. This part looks ok.
There should be similar check in the build.go file but it seems it's missing. Can you add it also there?https://github.com/capactio/capact/blob/main/internal/cli/capact/build.go#L125 You should iterate over Images.All() and check if names contain name

Hi, @krishnaindani thank you for your contribution. This part looks ok.
There should be similar check in the build.go file but it seems it's missing. Can you add it also there?https://github.com/capactio/capact/blob/main/internal/cli/capact/build.go#L125 You should iterate over Images.All() and check if names contain name

sure, I will take a look at it.

@lukaszo I have updated that function, let me know how that looks.

Thank you


Node.click returns node

In the documentation, it states that Node.click should return a session.
(click(t) :: Wallaby.Session.t)
However, instead it is returning the node that was clicked, as seen here: https://github.com/keathley/wallaby/blob/v0.15.0/lib/wallaby/node.ex#L110
Am I reading the docs wrong? It seems like it would make more sense if it did indeed return the entire session, as a click presumably changes the state of the page.

Those types are definitely wrong. Sorry about that. This looks like it might be broken in master as well: https://github.com/keathley/wallaby/blob/master/lib/wallaby/browser.ex#L467.
The idea of click and all of the other actions, is that they shouldn't change the current scope. So for instance click/1 should return the element since you're already focusing an element. click/2 should return the parent and not the element that was clicked. It looks like click/2 will break chaining since it doesn't return the parent. Would you want to submit a PR for this?

Ah okay, that makes sense. It looks like click/2 is what I will want then once it is correctly returning the parent. I'll work on a PR to get that done.

Thanks! Let me know if you have any questions.


Release v0.6.3

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

Project coverage is 74.24%. Comparing base (1da5bb0) to head (fb5fe57).

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1026       +/-   ##
===========================================
+ Coverage   63.26%   74.24%   +10.98%
===========================================
  Files          48        3       -45
  Lines        5970      532     -5438
  Branches      154      154
===========================================
- Hits         3777      395     -3382
+ Misses       2193      137     -2056

Components
Coverage Δ

apel_plugin
74.24% <ø> (ø)

auditor
∅ <ø> (∅)

auditor_client
∅ <ø> (∅)

slurm_collector
∅ <ø> (∅)

slurm_epilog_collector
∅ <ø> (∅)

htcondor_collector
∅ <ø> (∅)

priority_plugin
∅ <ø> (∅)


Nuget release package for 2.0

Hi,
I'm trying to create a (release) nuget package which depends on your v2 version of CommandLineParser, but I can't as it's only available as a beta.
Do you have a date v2 will be available as a release package?
What still needs to happen for this, do you need any help?
Thanks!

Hey @zidad, only the project owner has access to the NuGet account and he's on hiatus at the moment. If you're using it at work, you could build it yourself, create a Nuget package out of it, put it on a fileshare somewhere, and then add that fileshare as an additional repository in VS. Since the snk is included in the repository, your custom package should update cleanly. Once 2.0 comes out for real, it should show up as an "update" to your custom-built package.

Hi Dan, thanks for the tip! Actually repackaging it as release package is what I've done a while ago and it works great...  :)

Problem solved then? If so, can we close this? :)

will do, though I can imagine I'm not the only one with the issue :)

It has indeed been brought up before. I would also like to see it happen. I could try reach out to the owner, see if maybe he can grant one of us collaborators access to the Nuget keys.


[1.20.1] Issue Title

Functional Storage Version: 1.20.1-1.2.8
Titanium Version: 3.8.25
Crashlog If Applicable (Upload to pastebin/gist):
A lot of players on my private server get a kick when lifting an Armory Cabinet with items inside ~1000 items inside.
(Items from mods: aether, tw.forest and other + Apotheosis affixes and enchantment)
[Server thread/INFO] [net.minecraft.server.network.ServerGamePacketListenerImpl/]: Solution_Mori lost connection: Internal Exception: io.netty.handler.codec.DecoderException: java.lang.RuntimeException: Tried to read NBT tag that was too big; tried to allocate: 2097166bytes where max allowed: 2097152

For example, an NBT file for NBTExplorer of a raised Armory Cabinet with 2773 items.
7bb823ba-054e-3262-857b-9e9cea2dfaaa.dat .txt
remove .txt extension


Update feature usage runtime tool scene

Overview
Updates the feature usage runtime tool to be more dynamic, spawning additional panels as needed instead of hardcoding to two panels. It resizes the panels vertically as needed to fit all usages. It arranges the panels using a GridObjectCollection in a cylinder around the origin.
It also updates to use the built-in As<T>() method for converting InputFeatureUsages to their actual type.

/azp run

/azp run

/azp run

/azp run


[Feature] Migration to Vite

Is your feature request related to a problem? Please describe.
There are a some packages not anymore mantained and the building/start process have some errors or warning about those
Describe the solution you'd like
I'd like to migrate to Vite

@Pelukosa If you approve this i can start the migration to Vite for the web part


Add interface for installing bluetooth speakers

Hi,
Thanks for your work, musicbox is just an amazing platform. But I have a question or request, does it possible to add function to add bluetooth speakers ?

As it stand currently, the Raspberry Pi onboard Bluetooth does not work in any of our v0.x releases. External bluetooth dongles do work (assuming they already have suitable driver support in Raspbian) but there is currently no support built into the Pi Musicbox software so you have to do everything manually (scanning, pairing etc).
We do want this feature, and it will be possible to add it once we upgrade to a newer version of Raspian. Another user has been kindly working on this very recently and from what I hear, has got much of it working to some degree. I'm currently working towards finishing the v0.x releases so I can get back to developing the the next release which will incorporate this bluetooth support.

oh PLEASE add this functionality, so that I can stream from the Pi to an existing BT receiver hooked into my stereo system!


Uri in withRedirect

Casting the $url parameter to a string means that if a UriInterface is passed to withRedirect, it will work correctly.
This simply saves having to cast to a string when calling withRedirect in this scenario:
$uri = $request->getUri()->withQuery('')->withPath($this->router->pathFor('foo'));
return $response->withRedirect($uri, 307);

@codeguy Updated.


add docs describing the Akka cluster support

see #765
@mdedetrich

@mdedetrich could you review https://cwiki.apache.org/confluence/display/PEKKO/Pekko+Akka+Compatibility ? Feel free to modify it as you see fit.

I just reviewed this and it looks good for now although I would prefer this to be part of the actual paradox docs since we have historically placed our migration docs there.

I was thinking about moving the doc when we have a full release. Leaving it in wiki for now makes it easier to adjust too.


alt text for archive pages

This adds the media library's alt text to archive page thumbnails in the post loop. Will be blank if none is present.

@kwickham  the casing is what idfive used in previous templates. I was keeping it consistent.


Refactor assign.js

The assign command has increased in functionalities in the last versions. As discussed elsewhere, a refactor would be welcome and I thought that an issue could be used to help us discuss how we will be doing it.

There is a point where a piece of software has taken on too much, and I think the assign and revenue commands have reached that point. The terminal is just not designed to do all these things!
I'm not arguing that we remove functionality, but I think any new functionality should be looked at with an extremely critical eye.
So a refactor should be to ensure that the code is efficient, lean and bug free. One simple example of that would be to remove help text, and putting it in the documentation instead. A more involved change would be to make fewer API calls.
Also, createSubmissionRequest() and updateSubmissionRequest() are practically the same and could be rolled into one. There are a few more cases where functions either do nothing interesting and should not be a separate piece of code, or the do almost the same and should be merged.

I agree with you.
Should we focus on assign.js and then move the discussion to revenue.js (on a different issue after this one is closed)?

I think revenue.js is in a better place and does not need a refactoring. So at least for now lets just consider how to make assign.js better :smile:.

Agreed. I'll start a project on this so we can take not of what need to be changed before diving in.


Bindings starting with an indexer don't work

This
<TextBlock Text="{Binding [0].msg}"/>

works in wpf but not in Avalonia (the DataContext is a collection).

If you need a workaround for the moment, I think you could use:
<TextBlock Text="{Binding $self.DataContext[0].msg}"/>

(untested)

@grokys thanks for that, I can confirm that the workaround works.


Added support to Multi-target regression

Greetings @scikit-multiflow/scikit-multiflow-repo-admins,
My name is Saulo Martiello Mastelini and I'm currently doing my PhD under the supervision of professor Andre Carlos Ponce de León Ferreira de Carvalho at Universidade de São Paulo - BR. I intend to research in multi-target regression (MTR) problems in data streams, as an extension of my MSc research.
I found very interesting the proposal of a Python solution for dealing with streaming tasks and I plan to contribute to this project as much as I can.
Therefore, I've implemented some extensions to your framework. They could be summarized as the addition of the iSoup-Tree algorithm for MTR problems (implemented in trees/multi_target_regression_hoeffding_tree.py by inheriting from regression_hoeffding_tree.py) and the modifications that this change brought with it.
It is worth mentioning that before attempting the pull request I've merged my local modifications with the last changes in the scikit-multiflow/MASTER repository.
I present a detailed summary of my implemented changes:

I have added support to MTR error metrics in metrics/measure_collection.py

The new classes (MultiTargetRegressionMeasurements and WindowedMultiTargetRegressionMeasurements) implement the following error metrics: average Mean Squared Error (AMSE), average Mean Absolute Error (AMAE), and average Mean Square Error (ARMSE).
The necessary changes to evaluation/base_evaluator.py, evaluation/evaluate_prequential.py, and evaluation/evaluate_holdout.py were also implemented to ensure fully compatibility.

I proposed and implemented a distinction among the types of the multi-output tasks:

New constants for MULTI_LABEL_CLASSIFICATION and MULTI_TARGET_REGRESSION were added to utils/constants.py
I've modified evaluation/base_evaluator.py to check for the type of multi-output tasks (please, refer to lines 220-229 of base_evaluator.py for an illustration).
Additionally, checks for the correct partial_fit method invocation were updated with the inclusion of MTR support (please, refer to lines 244-245 of evaluation/evaluate_prequential.py for an example of my modifications).
For future modifications, I suggest changing the names of the classes *MultiOutputMeasurements to *MultiLabelClassificationMeasurements.

I created a new split criterion (trees/intra_cluster_variance_split_criterion.py) which implements the intra cluster variance reduction heuristic, as it is used in FIMT-MT and iSoup-Tree algorithms. My new class was created by inheriting from trees/variance_reduction_split_criterion.py.

The Intra Cluster Variance reduction is the default heuristic for MultiTargetRegressionHoeffdingTree.

I also created a new numeric attribute class observer suited to multi-target regression problems. This new addition was implemented in trees/hoeffding_multi_output_numeric_attribute_observer.py by inheriting from AttributeClassObserver.

The original HoeffdingNumericAttributeClassObserver implementation presented some problems when used with MTR tasks, since it considered only a single-target. When checking for the best splits, the observer presented problems when dealing with the numpy.narrays which represent the targets. Copies of these structures were not made and the observer ended up using references to memory locations which not anymore represented the state of the statistics at the moment they were stored. Thus, I created a specific observer for MTR tasks.
My implementation considers the strategy presented in Osojnik's dissertation (where the author presents the iSoup-Tree algorithm). In this algorithm only the left statistics are stored instead of both the left and right ones (as proposed by Ikonomovska et al.). The author of the iSoup-Tree algorithm refers to these statistics as 'partial statistics'. The 'complete statistics' are calculated as the in-order binary tree search is performed. Combining this alternative strategy with extensive code profiling, I aimed at decreasing the time and memory footprints of the new observer.

I also implemented the support to adaptive prediction model selection at the leaves, in detriment of exclusively using only Perceptrons or Targets' mean. The implementation is in conformation with MOA's implementation of the iSoup-Tree algorithm (Faded MAE is employed to select the best predictor for each target variable).

I have created a demo file for testing the MTR implementation in demos/_test_mtr.py.

I also added two test MTR datasets (scm1d and scm20d) and their references in data/datasets.

I updated and/or created documentations for my code as much as I could. Besides, I have tried to leave comments in my code frequently.

In addition, I would like to remark that I've used numpy functions as often as possible to speed up the performed operations.
Thanks in advance for your attention. I hope I would be able to contribute more to this project in the future.
With regards,
Saulo

Hello Saulo (@smastelini),
Thanks for your contribution and the detailed explanation. I am writing some comments from the standpoint of the framework while @jmread can provide comments on the technical details.

Could you add links to the files/lines you mention? This way it will be easier to follow your comments and we will ensure we are looking into the correct part of the code.

Regarding the naming of constants and metrics class. What about this proposal for consistency:

MULTI_TARGET_CLASSIFICATION
MULTI_TARGET_REGRESSION
MultiTargetClassificationMeasurements

Current tests are passing (thanks for keeping up with the master). But we need to add tests for the new code. 'demos' are used to show how the model should be used. On the other hand, 'tests' ensure functionality. You can check the test for Hoeffding Regression Trees as an example: https://github.com/scikit-multiflow/scikit-multiflow/blob/master/tests/trees/test_regression_hoeffding_tree.py
You can use the demos code as a  starting point to create the test. Once the test is ready, you can run 'pytest' from the main directory and should be automatically detected and evaluated.

About the datasets. Is it possible to create a stream generator rather than keeping files? (Disclaimer: I am not familiar with the datasets)

Once again, thanks for your hard work. Let me know if you have any questions.

Hi @jacobmontiel,
Thank you for the fast reply and help!
I will address your points as they were mentioned:

Regarding the lines that I mentioned previously, the distinction between Multi-label (multi-target) classification and Multi-target regression was implemented as follows (the following chunk is performed after failing in checking if the stream is single-target):

https://github.com/scikit-multiflow/scikit-multiflow/blob/ada14e0f48ec7a871006571fbce6c5c9f2008b09/src/skmultiflow/evaluation/base_evaluator.py#L220-L229
Besides, as previously mentioned, I added some additional tests when calling the partial_fit:
https://github.com/scikit-multiflow/scikit-multiflow/blob/ada14e0f48ec7a871006571fbce6c5c9f2008b09/src/skmultiflow/evaluation/evaluate_prequential.py#L244-L249

About the standards for the constants, I think your suggestion makes much more sense. If I may, I would happily implement those changes.

Thanks for the suggestion. The mentioned example will be very useful. I will provide a test script to check the correct functioning of the new features added.

The SCMDs datasets concern the prediction of multiple products' online sales. Those datasets belong to the most 'standard' multi-target regression benchmark set, which is available in the Mulan's website (http://mulan.sourceforge.net/datasets-mtr.html). Therefore, a generator could not be achieved for these specific problems. In batch scenarios those two datasets are among the most large available ones for MTR, but in data streams, in fact, they are among the smallest. That was my reasoning for choosing them. I can see some possible choices:

Choose one of those datasets (scm1d or scm20d), just to provide a way for running a demo script;
Use a sample of smaller size of them (I'm not sure about copyrights);
Reproduce a generator for some of the synthetic tasks that were performed in the literature (this option might be the best of the three).

What do you think?
Thank you again for your help!

Greetings,

I've changed the constants for the suggested pattern (MULTI_TARGET_CLASSIFICATION and MULTI_TARGET_REGRESSION).
I also added a test script for the new functionalities (tests/trees/test_multi_target_regression_hoeffding_tree.py).
I removed the previously added multi-target regression datasets. Now, the created demo script uses the 'RegressorGenerator'.

If there are any more changes to be applied I will be happy to implement them!

Hi @smastelini,
Thanks for the fast updates. Actually, I had to rewrite this message since you already covered some of the things I wrote :+1:
Comments:

I forgot to mention the tests for the new metrics. The other measure collections are tested in:
https://github.com/scikit-multiflow/scikit-multiflow/blob/master/tests/metrics/test_measure_collection.py

You can confirm if the documentation of your code is rendered correctly by Sphinx by performing the steps described in https://github.com/scikit-multiflow/scikit-multiflow/blob/master/CONTRIBUTING.md#sphinx-documentation

Note: The command to use is outdated and should read:
sphinx-apidoc -o scikit-multiflow/docs scikit-multiflow/src/skmultiflow -e -f

This will generate a local version of the documentation page in scikit-multiflow/docs/build/_html.
Please, do not add any of the documentation files (in the /docs directory) to your pull request. I will generate them once the code is in the main branch.

Thank you @jacobmontiel! I will provide the required changes ASAP.

Hi again @jacobmontiel,
I think I've implemented all the necessary changes.
I also was able to generate the docs after some minor corrections in my source codes.
If there are any more modifications to be implemented, please let me now!

Thanks @smastelini
Everything looks good and I have started the review on the latest version.

Hi @jacobmontiel,

I  now deleted the .pycache folder. I apologize for not even perceiving that those files were being added in my commits.
About the whitespaces, those changes were not intended. I believe that my text editor (Atom + the Flake8 plugin for PEP8) might have some participation on this occurrence. I apologize again, as I originally intended to modify the minimum possible amount of files.
The commented code can be deleted. I will take care of it when adjusting the test files as required.
I properly renamed the methods and changed them to read from .npy files, as suggested.

I'm ready to commit the changes presented so far, but I am not sure about who will take care of changing the observers names. Can I make those changes or the admin team will implement the standardization?
Thank you again @jacobmontiel for putting so much effort in helping me through this pull request. I hope that my future contributions will be more ponctual, not affecting the scikit-multiflow's core structure.

Hi @smastelini ,
Thanks for addressing the comments and for your patience. This effort is also helpful to us to streamline the PR process.
Regarding the renaming of attribute observers, I will create an issue to address it.

This PR is ready to be merged into the master.

[x] Code complies with PEP-8 and is consistent with the framework.
[x] Code is properly documented
[x] Tests are included for new functionality
[x] Travis CI build passes
[x] Coverage is maintained (-0.16%)

Thanks @smastelini !

Thanks @jacobmontiel for the fast and detailed responses, and also for your patience and guidance during the PR process!


Accounts endpoint response Type is not accurate

Reference: https://docs.microsoft.com/en-us/rest/api/azure/devops/account/accounts/list?view=azure-devops-rest-7.1
Applies to all documented API versions.
"Sample Response" is accurate, these are the only properties returned by the API.
However, under "Responses" is states that the Type is "Account[]".
Then under "Definitions" the complete set of properties associated with the "Account" Type are documented.
This leads to an expectation that the endpoint should return results of type Account, which it does not.
Unfortunately, I would actually like to get the full properties listed for the Account Type back from this endpoint. Particularly the value for AccountStatus, which is useful for an application to know before invoking other endpoints against an Account that is no longer Enabled.
IMO either the endpoint needs to be updated to return the promised array of Type "Account", or the documentation needs to be updated to correctly describe the Type that is returned.

Any update on this one?


Cannot skip an item marked "too hard"

Pops up an error "KO: Invalid task status supplied". Currently getting this on http://maproulette.org/map/404/423137
I'd guess that it should be possible to go to the next task, even if it isn't supposed to be possible to change the status to "Skipped"

Any updated on this?
I'd really like to help with maproulette (I specifically fixed http://maproulette.org/map/2490/2233752), but cannot seem to continue without running into the error popup mentioned in the starting comment of this thread.

Can you try and see if this still happens? We released a new version that perhaps had the side effect of fixing this but I am not certain.

This was addressed in the latest PR and so should be resolved. If you still see it please let us know and update with the specific task that is causing the issue.


Made error message when info.dat not found more helpful to the user.

Proposed Changes
Changed error message when info.dat isn't found to suggest the user may have zipped the folder instead of the loose beatmap files.
Platforms
This pull request modifies: (select all that apply)

[x] Client
[ ] Server

Types of Changes
This pull request is contains: (select all that apply)

[x] Bug fixes (non-breaking change which fixes an issue)
[ ] New features (non-breaking change which adds functionality)
[ ] Breaking changes (fix or feature that would cause existing functionality to not work as expected)

Checklist

[x] I have read the contribution guidelines
[x] I have checked the changes adhere to the project's style guide and all tests pass
[x] I have (to the best of my ability) checked for vulnerabilities, or any ways that my code could be abused and concluded that it is safe to run in production

Further Comments
People keep complaining about not understanding that zipping the folder and not the files is bad.

Please only make PR changes on feature/ branches in your local fork.


Perhaps move FYPO:0000324 close to other phenotypes that change mitotic phases and merge with FYPO:0004309

Branched out from #4130
Perhaps move FYPO:0000324 close to other phenotypes that change mitotic phases and merge with FYPO:0004309

I noticed that FYPO:0000324 (mitotic metaphase/anaphase transition delay) is not close in the tree with to other phenotypes that I think are similar. See the black lines in the graph below.
In addition, I think there is probably no difference in the experimental evidence used in annotations of FYPO:0000324 (mitotic metaphase/anaphase transition delay) and FYPO:0004309 (delayed onset of mitotic anaphase B). FYPO:0004309 has only one annotation, cut7Dpkl1D, which comes from spindle elongation dynamics. FYPO:0000324 has other annotations that come from comparable evidence (For example, alp14D in https://febs.onlinelibrary.wiley.com/doi/10.1016/j.febslet.2014.06.027), so I think they could be safely merged.

Fixed in https://github.com/pombase/fypo/releases/tag/v2022-06-27


Indicator for a fulfilment without a document and part

Context
A fulfilment contains ticket information such as the control number, status and its related document(s). It is possible that an OSDM provider returns a fulfilment (because of the control number and status) but it does not return any documents or parts.
This is the case where a distributor generates the documents on behalf of the provider.
In this case, when an OSDM client fetches a booking it is not aware if the documents/parts are yet to be generated or if they will remain absent on purpose. This could lead to clients polling without result.
Potential solution
Extending the fulfilment object with an indicator to inform the client that documents/parts should be expected, then the client knows if it has to wait for documents or not.
This can be achieved by introducing a status or a property indicator.

Proposal:
add an indication "ContentComplete" in Fulfillment:

false: content or additional content (documents or fulfillment parts) will be provided.
true: content (documents or fulfillment parts) provided iscomplete. If no content is included this is intentional.

TODO: pull request Josef


Adds info about using calicotcl with kdd to edit policy & ETCD_AUTHORITY to Release Notes

Description

Adds info about new capability to edit Calico policy with calicoctl and kdd
Adds info about ETCD_AUTHORITY and ETCD_SCHEME no longer supported after period of deprecation

Todos

[ ] Tests
[ ] Documentation
[ ] Release note

Release Note

None required

All right, thanks you guys! Good point about the GitHub page; I'll be sure to paste it in there once I merge this PR.


ixgbevf-2.14.2

AWS recommends ixgbevf-2.14.2 for enhanced networking: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html
Looks like RancherOS is on 2.12.1-k
[rancher@ip-10-0-2-175 ~]$ docker run -v /lib/modules:/lib/modules ubuntu modinfo ixgbevf
filename:       /lib/modules/4.2.3-rancher/kernel/drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko
version:        2.12.1-k
license:        GPL
description:    Intel(R) 10 Gigabit Virtual Function Network Driver
author:         Intel Corporation<EMAIL_ADDRESS>srcversion:     4397B6B31434640A38684CB
alias:          pci:v00008086d000015A8sv*sd*bc*sc*i*
alias:          pci:v00008086d00001565sv*sd*bc*sc*i*
alias:          pci:v00008086d00001515sv*sd*bc*sc*i*
alias:          pci:v00008086d000010EDsv*sd*bc*sc*i*
depends:
intree:         Y
vermagic:       4.2.3-rancher SMP mod_unload
parm:           debug:Debug level (0=none,...,16=all) (int)

I'm not sure of the exact changes from 2.12.x to 2.14.2 but you can get a feel for the troubles people had with 2.11.x here: https://bugs.launchpad.net/ubuntu-on-ec2/+bug/1254930

Are you aware of any other distro packaging this version.  I assume Amazon Linux does.  I'll poke around and see if we can include this driver.

I think there is some confusion around the versioning of this driver.  2.14.2 seems to be the out of tree version but the in tree 2.12.1-k may actually be newer and ok.  More info here http://sourceforge.net/p/e1000/mailman/message/34449555/

Ah, nice catch, I did not realize that.
I'll close this and continue our testing.  Thank-you for the quick feedback!