default logger is now tensorboard

Sets Tensorboard logger as default instead of test-tube.
Also removes the test-tube dep from the package and thus the tensorflow dep

I was hoping to have a few people try it out before we make it the default...

sure. let's keep the PR open for a few days while we try it out.

Any update on this?

I get the following error due to a call to SummaryWriter.add_hparams:
{'batch_size': 128, 'epochs': 10, 'lr': 0.1, 'weight_decay': 0.0005, 'save_model': False, 'load_model': '', 'droplr': 5, 'opt': 'nesterov', 'loss': 'nll', 'model': 'mlp_100_100', 'dataset': 'fashion', 'datapath': '~/data/', 'log_interval': 2, 'train_frac': 1.0, 'test_frac': 1.0, 'preprocess': False, 'gpus': None, 'use_16bit': False, 'seed': 872846804}
ERROR:LightDNN:Failed after 0:00:00!
Traceback (most recent calls WITHOUT Sacred internals):
  File "scripts/light_dnn.py", line 220, in main
    trainer.fit(model)
  File "/home/carlo/Git/pytorch-lightning/pytorch_lightning/trainer/trainer.py", line 403, in fit
    self.run_pretrain_routine(model)
  File "/home/carlo/Git/pytorch-lightning/pytorch_lightning/trainer/trainer.py", line 453, in run_pretrain_routine
    self.logger.log_hyperparams(ref_model.hparams)
  File "/home/carlo/Git/pytorch-lightning/pytorch_lightning/logging/base.py", line 14, in wrapped_fn
    fn(self, *args, **kwargs)
  File "/home/carlo/Git/pytorch-lightning/pytorch_lightning/logging/tensorboard.py", line 76, in log_hyperparams
    self.experiment.add_hparams(hparam_dict=dict(params), metric_dict={})
  File "/home/carlo/miniconda3/envs/sacred37/lib/python3.7/site-packages/torch/utils/tensorboard/writer.py", line 292, in add_hparams
    exp, ssi, sei = hparams(hparam_dict, metric_dict)
  File "/home/carlo/miniconda3/envs/sacred37/lib/python3.7/site-packages/torch/utils/tensorboard/summary.py", line 156, in hparams
    raise ValueError('value should be one of int, float, str, bool, or torch.Tensor')
ValueError: value should be one of int, float, str, bool, or torch.Tensor

This is because I add a NoneType value for the gpus params:
{ 'gpus': None}

It can also be a problem, for list of gpus indexes, since lists are not supported as well.
I suggest we cast the gpus field (or any other non-supported field type) to string.

This is because I have a NoneType value for the gpus params:
hparams = { 'gpus': None}

It can also be a problem, for list of gpus indexes, since lists are not supported as well.
I suggest we cast the gpus field (or any other non-supported field type) to string.

good point, for list I would assume string with some common separator and of None I would drop such option from hparams...

This is because I have a NoneType value for the gpus params:
hparams = { 'gpus': None}

It can also be a problem, for list of gpus indexes, since lists are not supported as well.
I suggest we cast the gpus field (or any other non-supported field type) to string.

good point, for list I would assume string with some common separator and of None I would drop such option from hparams...

@neggert @Borda is this ready to merge?

It looks like somehow the test-tube dependency got added back in with the merge commit.

Oh, wait. I was just doing weird things with the merge commit summary. LGTM.

This is because I have a NoneType value for the gpus params:

```python
hparams = { 'gpus': None}

It can also be a problem, for list of gpus indexes, since lists are not supported as well.
I suggest we cast the gpus field (or any other non-supported field type) to string.

@williamFalcon @Borda I am still facing this issue for pytorch-lightning==0.7.1.
Basically, I tried to pass a list of gpus in the NER example in the transformers repo here and was facing the same value error raise ValueError('value should be one of int, float, str, bool, or torch.Tensor'). I can see a simple fix for this. Tensorboard limits passing Nonetype or list or even dictionary values here
Instead of passing all the hparams to tensorboard via pl here, we put a small check to pass int, float, str, bool, or torch.Tensor for logging.
        from six import string_types
        from torch.utils.tensorboard.summary import hparams
        tensorboard_params = {}
        for k, v in params.items():
            if isinstance(v, int) or isinstance(v, float) or isinstance(v, string_types) or isinstance(
                    v, bool) or isinstance(v, torch.Tensor):
                tensorboard_params[k] = v
        exp, ssi, sei = hparams(tensorboard_params, {})

IMO, there could be cases when the user wants to parse a list or maybe nonetype objects through argparse but doesnt want them to be logged via tensorboard.
Please let me know if this makes and I should raise a PR!

@shubhamagarwal92 hs for this elaboration, sure PR is welcome!

I was thinking if now, the logger is not backward compatible. How can I change the logger still using torch 1.4?
I had a cuda compilation issue which is solved on cuda 10.1 and I could not make my environment run with cuda 10.1 and pytorch 1.2, just with 1.4.


Fixed the data type

Int in KQL is a 32-bit signed integer so it turns the flag value into a negativ number. Using long type should fix it.

Good catch! Thanks for the pull request and apologies for the late response. I'll merged the PR.


Survey-sharing, Q4 2024, Ashley

Share the BeGin survey to:
Facebook groups related to AI,
Twitter communities/spaces focused on AI discussions,
my LinkedIn network
Evidence the work via links, or via screenshots with personal info redacted.
To be completed by end of Q4 2024.


Enable Dependabot

Hi,
Have you considered enabling Dependabot Preview for this repository? I found it recently and it looks much more mature and robust than handcrafted GitHub Action that I have created PR for  #18. It can update dependencies in Cargo.toml and Cargo.lock
I have already check it and it looks promising:
https://github.com/piotr-maks/rtps-rs/pull/7
https://github.com/piotr-maks/rtps-rs/pull/6

Hiho,
looks good! I have reverted previous auto update feature and enabled this app, let's see how it will work :)
Thanks!


VISUALS (SPECS): Updated Filter Placement

Verification Conditions:

In Planner, show the placement of the filter panel so it is nested within the view that is selected in the left-hand panel.
Post link to InVision
Add InVision link to "Design" spreadsheet

Posted to InVision


about haxelib

Actually, we use directly the github project with haxelib.
Any project to "release" a new version on haxelib ?

I've just pushed up a haxelib version, however I think using the version on github is still the best idea. Good idea.


Is "gomodel" namespace/prefix an issue as Noctua gets used more broadly?

This question came up in a discussion about Noctua in the context of Planteome. Currently, all produced models will generate ids like gomodel:203974209734902. Given that GO and Planteome have their own Noctua silos, this could cause collisions. For example, a resource that dealt with both Planteome and GO annotations would not be able to disambiguate.
Currently, AFAIK, this is fairly hardwired into Minerva. Would we want something where this is specified at runtime?
At this point, it does not seem urgent, but may eventually cause nastiness.
@cmungall @balhoff @elserj

It's configurable: https://github.com/geneontology/minerva/blob/a90ec00b711c0c198fbdee64135024d71da156e0/minerva-cli/src/main/java/org/geneontology/minerva/cli/MinervaCommandRunner.java#L102-L104
But this hasn't been fully tested as we've had no need. There may be some hardwiring in the sparql queries but should be easy to config. I suggest we do any experiments in the context of planteome

Great--I didn't know or forgot that was there. @elserj There may also be some assumptions about this in other parts of Noctua as well.

I started a configurability doc here: https://github.com/geneontology/minerva/blob/master/configuration.md

Cheers!


thsiswin11: Add version 1.0.50

ThisIsWin11 lets you customize Windows 11 all in one place. It is slowly expanded as a practical all-rounder for Windows 11, similar to Microsoft PowerToys.
Closes #7604

[x] I have read the Contributing Guide.

Maybe "notes" section which informs user that this package works only on Windows 11 is a good idea?

Maybe "notes" section which informs user that this package works only on Windows 11 is a good idea?

I think the name is enough for that.
Also, Win11 is 64bit only, so please use architecture blocks everywhere

Maybe "notes" section which informs user that this package works only on Windows 11 is a good idea?

I think the name is enough for that.
Also, Win11 is 64bit only, so please use architecture blocks everywhere

Done. Thank you..

/verify


Functional test that verifies the order of packages in the feed

Idea behind the test case is this:

Upload x packages synchronously (wait for each request to finish before starting the next one).
Verify that the Created timestamps of the packages in the feed are in the correct order.
Unlist the packages synchronously (wait for each request to finish before starting the next one).
Verify that the LastEdited timestamps of the packages in the feed are in the correct order.

Had to make some modifications to the framework behind the tests because a number of things were not supported that were necessary for the test case (i.e. getting timestamps from the feed, deleting packages using nuget.exe).

Note: a major caveat of the test case right now is that it can potentially take dozens of minutes because it must wait for the search service. This is consistent with some of the other test cases.

Ran this against dev with the fix implemented, works perfectly!

@shishirx34 I have added an explicit comment to the top of the test case in honor of the discussion we had offline.


Use filegroup rules instead of exports_files to reference jars.

So that aspects may propagate to the jars.

Can one of the admins verify this patch?

test this please

This is going to break people who (like us at Stripe) are wiring in their own scala sdk.
Can you outline how this is an improvement? Is it the case that this fixed some bug for you? Can we add a test to demonstrate that bug?
We really need to solve #170 to make it clear how to configure scala.

test this please

The current test suite passes. These jars are used in every rule. It should be covered by the current test suite.

This is going to break people who (like us at Stripe) are wiring in their own scala sdk.

Please elaborate. I don't see how.

Can you outline how this is an improvement? Is it the case that this fixed some bug for you?

I'm working on an IDE plugin for scala with Bazel, and I'm using an aspect to gather up all the scala rules, their dependencies, and everything needed to resolve the source files. That includes these jars. attr_aspects doesn't propagate through entries of exports_files (probably because they're not actual rules), but does for filegroup.

Can we add a test to demonstrate that bug?

I guess you can check in an aspect with attr_aspects = ["_scalalib"], print out all the targets processed, and see that the scalalib is missing.

(sorry, "test this please" was a message to the the ci bot).
The way this breaks users with a custom sdk is that they do not call scala_repositories since that fixes a bunch of jars. Instead, they manually replace things at the labels that the rules expect. I want to change this so that the rules expects bind names (though there are some folks that want to remove bind and instead have everyone standardize on external names for jars, which I worry is not actually practical outside of monolithic orgs).
So, we will have not added this change that you have, and when we bump the git-sha we will just see a failure of the build (since it won't find the filegroups you have added). This isn't a showstopper, I'm just saying that this is a cost of migration for each user with their own sdk configuration.
It would be great to add any kind of test that fails without this patch to prevent any regressions here.

This isn't a showstopper, I'm just saying that this is a cost of migration for each user with their own sdk configuration.

I agree there's a cost, but it seems relatively small, considering:

I would imagine that the majority of users don't use custom SDKs.
You can preemptively fix it by adding the filegroup rules to your custom SDK before this change lands.
Anyone who relies on rule implementation internals should kind of expect this sort of thing.

It would be great to add any kind of test that fails without this patch to prevent any regressions here.

Done. Please take a look.

Hmm, actually java_import might work nicer than filegroups. It helps our plugin recognize these as jars, instead of having to manually recognize the name.

java_import seems totally fine to me as well. That should work. #

Done. PTAL.

I added a second commit to cleanup everywhere that uses the exported_files, please let me know if you're okay with that.

This would actually be really helpful in my efforts on getting the rules to consistently work internally. There is an annoying discrepancy where our SDK pieces are all java_import or java_library. This requires some adjustment on imports. It also exposes potential discrepancies between when I test in our repositories versus test in an isolated repository (see the JDK issue) that I have been trying to avoid.
This should also yield improvements to the external rules. Having the items be sourced by java|scala_library|import instead of direct files or filegroups should make it easier for others to replace with their own modified libraries (it also makes src/scala/BUILD somewhat redundant). For example, a user could custom-build their own scala-library and retarget to that.
Testing is a bit tricky. I had an idea regarding toolchains. You would setup a toolchain that declares all the current 'jars' as a java_library rule with no sources but just exports of the real jars. This would test that the rules are properly grabbing transitive runtime dependencies of rules (and not relying on the direct dependencies themselves supplying anything meaningful in files). Amusingly, in theory, this could also lead to using toolchains to bootstrap building custom scala toolchains while still using scala_library. I'm unsure how well this usage model fits with the Bazel vision for toolchains though.

Thanks for taking the time here. No objections to merging it seems, so I will.


Ignore yarn state, but still track yarn.lock

Implements proposed (small) checklist of yarn state files to delete from staging branch mentioned in https://github.com/cardano-foundation/developer-portal/discussions/876#discussioncomment-4474103, and updates to .gitignore to stop these files from being tracked in the future.  TL;DR we need yarn.lock tracked but not to include superfluous updates by every PR, and there is nothing relevant to the repository in .yarn.
Please see above comment for rationale & history of problems caused in local testing when these files are tracked, and see the files tab of this PR for list of files to delete from branch & for git to ignore (they may change in the course of this PR being reviewed since discussion https://github.com/cardano-foundation/developer-portal/discussions/876 has still not been engaged by all reviewers).

@katomm: I'm fine with this but we should also update the FAQ ...

sure, I'll do a PR now... mainly I was in a hurry to get the change itself done because of the outstanding PRs and pending contributions 🧐


Hope one day flash-attention can support T4 GPU

really need turing support, is there a way we can do this on our own /sigh

I'm signing on to this one. I need to run inference on T4 gpus..

+1

OpenAI's Triton implementation of flash attention works on Turing GPUs (just tested this myself):
https://github.com/openai/triton/blob/main/python/tutorials/06-fused-attention.py

@rationalism
FlashAttention1.X works for Turing gpus, the problem is with version 2 or newer. Do you refer to those?

@AvivSham I saw that, but it does in fact seem to work on my machine

Yes, please support Tesla T4!

hope it


Syntax for powerplatform_rest (Resource) to link VNet Enterprise policy to a PowerApp environment

Description
Microsoft provides a Powershell script to link an VNET PowerApp Enterprise Policy to PowerApp environment, is it possible to have someone smarter than me convert this a powerplatform_rest call in Terraform using this provider?
Might also be a good test case, to ensure powerplatform_rest (Resource) has all the necessary capabilities to do this sort of thing.
Create Link Power Apps Enterprise Policy to an environment
Definition of Done

[ X] Link Enterprise Policy to PowerApp Environment for VNets

Contributions
Do you plan to raise a PR to address this issue? NO
See the contributing guide for more information about what's expected for contributions.

Moving this issue to the quickstarts repo.  I think this would be an excellent example


fix: update steps to start remote debugging

update steps to start remote debugging

Thank you for your contribution. Can you add me as a WeChat friend casionen and join our development group?

also need update for next version docs

docs//development/debug.md
i18n/zh-CN/docusaurus-plugin-content-docs/current//development/debug.md

yeah it is done


Create GitHub Action to install bins super quick and easy.

made repo but going to wait to build it since I want to deploy the bin/dockerfile before I am able to make it.


[Bug]: Only two of my three ups are displaying output.  Even though I can select the UPS the stats never change when selecting OR220LCDRT2U.

Describe the bug
My NUT Server is running on a raspberry Pi4.  I have three CPS UPS's.  two of them CP1500PFCLCD and have serial numbers when polling with nut-scanner -U.  The third is OR2200LCDRT2U this one does not show a serial number.  In order to get all three UPS's to work in NUT Server I had to use the allow_duplicates variable in my ups.conf.  I tried to use device ID but every time I rebooted the NUT Server the device id's would change.  Which would make NUT Server not see the OR220LCDRT2U.    After using  allow_duplicates variable all three would establish a connection and would show up in nut-cgi (running on NUT server Pi) as well as Webnut (running on Proxmox host).  I am running PeaNUT on my Proxmox host that also host Webnut.  In Webnut I can view all three UPS's and can get all the stats from them.  When I try to run Peanut all three of the UPS are available in dropdown.  However only the CP1500PFCLCD's I get the stats on.  When I select the OR2200LCDRT2U the stats are remaining from the previous selected CP1500 UPS.   I am not certain if this is due to the allow duplicates variable that I had to use in the ups.conf to get all three UPS to show up.  Maybe I am missing something.  Hopefully I can figure this out would really like to get it integrated with Homepage.  Thanks for the great work.
Debug Output
OR2200LCDRT2U stats are not viewable.
Steps to reproduce
Try to select OR2200LCDRT2U in drop down and stats are not available.
Device Type
Proxmox connecting to a raspberry pi NUTserver
UPS Device
CP1500PFCLCD, OR2200LCDRT2U usbhid-ups
Last Working Version
No response

Do you happen to see any logs in either docker or on the chrome web console?

Thank you for the reply.  When I hit ctrl+shift+J  I do not see any error
messages in the console.
When I start my docker host this is what I get.  I do get some errors when
I am in the /api/docs but that is probably because I don't know what I am
clicking on on in the window.  I will add that as well
Normal
PeaNUT  | > @.*** start
PeaNUT  | > HOSTNAME=$WEB_HOST PORT=$WEB_PORT node server.js
PeaNUT  |
PeaNUT  |   ▲ Next.js 14.2.4
PeaNUT  |   - Local:        http://localhost:8080
PeaNUT  |   - Network:      http://<IP_ADDRESS>:8080
PeaNUT  |
PeaNUT  |  ✓ Starting...
PeaNUT  |  ✓ Ready in 76ms
Me Clicking in the /api/docs

@.*** start
HOSTNAME=$WEB_HOST PORT=$WEB_PORT node server.js

▲ Next.js 14.2.4

Local:        http://localhost:8080
Network:      http://<IP_ADDRESS>:8080

✓ Starting...
✓ Ready in 78ms
⨯ Error: Timeout
at Timeout._onTimeout
(/.next/server/app/api/v1/devices/[device]/clients/route.js:2:184)
at listOnTimeout (node:internal/timers:573:17)
at process.processTimers (node:internal/timers:514:7)
⨯ Error: Invalid response: ERR UNKNOWN-UPS
at n.getCommand

(/.next/server/app/api/v1/devices/[device]/clients/route.js:2:840)
at process.processTicksAndRejections
(node:internal/process/task_queues:95:5)
at async n.getDescription
(/.next/server/app/api/v1/devices/[device]/clients/route.js:3:352)
at async c
(/.next/server/app/api/v1/devices/[device]/description/route.js:1:733)
at async<EMAIL_ADDRESS><EMAIL_ADDRESS>/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js:6:36258
at async eR.execute<EMAIL_ADDRESS><EMAIL_ADDRESS>/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js:6:26874)
at async eR.handle<EMAIL_ADDRESS><EMAIL_ADDRESS>/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js:6:37512)
at async doRender<EMAIL_ADDRESS><EMAIL_ADDRESS>/node_modules/next/dist/server/base-server.js:1377:42)
at async cacheEntry.responseCache.get.routeKind
<EMAIL_ADDRESS><EMAIL_ADDRESS>/node_modules/next/dist/server/base-server.js:1599:28)
at async NextNodeServer.renderToResponseWithComponentsImpl
<EMAIL_ADDRESS><EMAIL_ADDRESS>/node_modules/next/dist/server/base-server.js:1507:28)
npm notice
npm notice New minor version of npm available! 10.7.0 -> 10.8.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.8.2
npm notice To update run: npm install -g @.***
npm notice

@.*** start
HOSTNAME=$WEB_HOST PORT=$WEB_PORT node server.js

▲ Next.js 14.2.4

Local:        http://localhost:8080
Network:      http://<IP_ADDRESS>:8080

✓ Starting...
✓ Ready in 196ms

@.*** start
HOSTNAME=$WEB_HOST PORT=$WEB_PORT node server.js

▲ Next.js 14.2.4

Local:        http://localhost:8080
Network:      http://<IP_ADDRESS>:8080

✓ Starting...
✓ Ready in 78ms
⨯ Error: Timeout
at Timeout._onTimeout
(/.next/server/app/api/v1/devices/[device]/clients/route.js:2:184)
at listOnTimeout (node:internal/timers:573:17)
at process.processTimers (node:internal/timers:514:7)
⨯ Error: Timeout
at Timeout._onTimeout
(/.next/server/app/api/v1/devices/[device]/clients/route.js:2:184)
at listOnTimeout (node:internal/timers:573:17)
at process.processTimers (node:internal/timers:514:7)
@.:/var/lib$ ^C
@.:/var/lib$ sudo docker logs PeaNUT

@.*** start
HOSTNAME=$WEB_HOST PORT=$WEB_PORT node server.js

▲ Next.js 14.2.4

Local:        http://localhost:8080
Network:      http://<IP_ADDRESS>:8080

✓ Starting...
✓ Ready in 78ms
⨯ Error: Timeout
at Timeout._onTimeout
(/.next/server/app/api/v1/devices/[device]/clients/route.js:2:184)
at listOnTimeout (node:internal/timers:573:17)
at process.processTimers (node:internal/timers:514:7)
⨯ Error: Invalid response: ERR UNKNOWN-UPS
at n.getCommand

(/.next/server/app/api/v1/devices/[device]/clients/route.js:2:840)
at process.processTicksAndRejections
(node:internal/process/task_queues:95:5)
at async n.getDescription
(/.next/server/app/api/v1/devices/[device]/clients/route.js:3:352)
at async c
(/.next/server/app/api/v1/devices/[device]/description/route.js:1:733)
at async<EMAIL_ADDRESS><EMAIL_ADDRESS>/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js:6:36258
at async eR.execute<EMAIL_ADDRESS><EMAIL_ADDRESS>/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js:6:26874)
at async eR.handle<EMAIL_ADDRESS><EMAIL_ADDRESS>/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js:6:37512)
at async doRender<EMAIL_ADDRESS><EMAIL_ADDRESS>/node_modules/next/dist/server/base-server.js:1377:42)
at async cacheEntry.responseCache.get.routeKind
<EMAIL_ADDRESS><EMAIL_ADDRESS>/node_modules/next/dist/server/base-server.js:1599:28)
at async NextNodeServer.renderToResponseWithComponentsImpl
<EMAIL_ADDRESS><EMAIL_ADDRESS>/node_modules/next/dist/server/base-server.js:1507:28)
npm notice
npm notice New minor version of npm available! 10.7.0 -> 10.8.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.8.2
npm notice To update run: npm install -g @.***
npm notice

@.*** start
HOSTNAME=$WEB_HOST PORT=$WEB_PORT node server.js

▲ Next.js 14.2.4

Local:        http://localhost:8080
Network:      http://<IP_ADDRESS>:8080

✓ Starting...
✓ Ready in 196ms

@.*** start
HOSTNAME=$WEB_HOST PORT=$WEB_PORT node server.js

▲ Next.js 14.2.4

Local:        http://localhost:8080
Network:      http://<IP_ADDRESS>:8080

✓ Starting...
✓ Ready in 78ms
⨯ Error: Timeout
at Timeout._onTimeout
(/.next/server/app/api/v1/devices/[device]/clients/route.js:2:184)
at listOnTimeout (node:internal/timers:573:17)
at process.processTimers (node:internal/timers:514:7)
⨯ Error: Timeout
at Timeout._onTimeout
(/.next/server/app/api/v1/devices/[device]/clients/route.js:2:184)
at listOnTimeout (node:internal/timers:573:17)
at process.processTimers (node:internal/timers:514:7)

@.*** start
HOSTNAME=$WEB_HOST PORT=$WEB_PORT node server.js

▲ Next.js 14.2.4

Local:        http://localhost:8080
Network:      http://<IP_ADDRESS>:8080

✓ Starting...
✓ Ready in 76ms
@.***:/var/lib$
On Tue, Jul 30, 2024 at 3:58 PM Brandon McFarlin @.***>
wrote:

Do you happen to see any logs in either docker or on the chrome web
console?
—
Reply to this email directly, view it on GitHub
https://github.com/Brandawg93/PeaNUT/issues/64#issuecomment-2259197359,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVTC2C7CXE26D6HJT3KCGQTZO746RAVCNFSM6AAAAABLWIBCEGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENJZGE4TOMZVHE
.
You are receiving this because you authored the thread.Message ID:
@.***>

I am able to see each device when I use the API.   Setting up my widget using the API http://{HOSTNAME}:{PORT}/api/v1/devices/ups for each individual UPS, I was able to add all three UPS's to my homepage dashboard.  Just weird that the third one isn't available using the drop down menu.

Could you send me the api response for each of your devices? I can lock them on my end and test it.
Feel free to send it to<EMAIL_ADDRESS>if there is anything confidential.

Ok. Found the issue. Your third ups does not have a serial number. The issue should be fixed in the latest test build (brandawg93/peanut:test). Let me know if that fixes it for you!

Can confirm it is now working using brandawg93/peanut:test.  Thought maybe the lack of serial number was an issue.  Thanks!

I had the same issues as the OP and :test solved them.  I can now switch between two APC units monitored by the same Rapb Pi.  Previously working, 2.6.0 broke the selector. :test fixes it. Thanks.

This is now in the latest build (v2.6.1). Thanks for helping debug!


Add support for additional headers

Thanks for incredible gem!!
In our app we want the ability to pass additional headers (We have custom ActiveStorage::Service class inherits from ActiveStorage::Service::AzureBlobService)
There are many use cases where want to send additional headers for example Customer Provided Keys for Encryption
https://github.com/Azure/azure-storage-ruby/pull/221
https://learn.microsoft.com/en-us/azure/storage/blobs/encryption-customer-provided-keys
https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob
Change is fairly simple but I can improve this PR further if necessary.

This is a good idea. We need to add this for the other endpoints with headers too.
There is a couple more writer methods + the reader methods.
I also want to add some tests.


Fixes #959

Fixes #959 by preventing triggering attr change event triggered during the change propagation if options.silent is set to true as otherwise it keeps resetting this._moreChanges to true and locks application in infinite loop (at line 400 while (this._moreChanges))

In 0.9.1 changes on a Model were also firing a change when silent:true was set. This seems to fix it. I was bug hunting for an hour and then fortunately found this issue fixed :)

they fired changes for named events right? like 'change:attribute'? That's what I thought when I saw the code that it could be an issue as well

Actually, I have two scenario's in our application and both situations have changed since 0.9.x. In both cases, it's indeed named events, triggered by a "set" call from within the Model containing them.
In the first situation, setting the same number value causes an event to fire, even though the value doesn't change. This didn't happen in 0.5.x.
In the second situation, a value is null, I'm changing it silently to some string, and then back to null, because I want to fire that change event, even though the value is null again. This doesn't work anymore, which is mentioned in the 'Upgrading to 0.9' section. I get the philosophy here, but it's quite annoying that it doesn't work anymore.
All in all, I think there should be more options than just 'silent', so binding can be tuned for every situation. For example 'always:true'. Default behavior could be to fire only when the value changes.

@micros123 if you had a sec can you give this commit a spin? :)

Of course.
Hmm, this version breaks my startup flow. Both points in my code mentioned above are not being reached...

The "new philosophy" is creating issues with our project also and leaving a bad taste in everyone's mouths. Also how unreasonable they are when discussing these issues. It may be time to just make a 0.9 fork with the same behavior from 0.5 or with more options like {disregard_change: true} or so.

@robinduckett I believe backbone team is doing what they can to deliver best framework for building web apps they believe. Major changes are to be expected when you are working with pre 1.0 versions - API is still evolving and going from 0.5 to 0.9 is a sign that they aim now at stabilizing the API and cleaning up everything. Best we can do as users and part of backbone community is to test the master branch before it goes out public, open issues for bugs and try to post fixes if we manage to find them rather then complain and attack them - that's what leaves bad taste.

@tomasztunik I'm not complaining or attacking. And I realise how difficult it is to imagine use cases above and beyond what you're developing the framework for. However, asking why the changes in functionality were made and having people come back to me with "it was wrong before and now this is correct behaviour" and "it is an improvement" amongst other things, and when I have asked on ways around this to mimic the previous and working functionality I have been met with hostility and essentially what amounts to "rewrite your entire codebase".
It's also obvious to me that I am not the only developer hit by these changes to the silent functionality and it has seriously been considered to either fork backbone off or even write our own MVC as it's clear that the direction of this framework no longer conforms to how it did in the past.
I agree that any code is subject to change pre 1.0 with anything you use, but how about a little elasticity in moving from one paradigm to the next? And also a little transparency above and beyond "read the sources, they're annotated for a reason", would go a long way to helping developers transition from 0.5.x to 0.9.x and to 1.0 in the future.
The main thing that leaves bad taste here is not the perceived attacks and complaints, but the fact that none of this was documented. It is only partially documented now, and only through a series of issues being raised and topics being discussed on IRC. It is not a good use of anyone's time to wander around helplessly wondering why Backbone no longer works the way it used to. The documentation should have been better. End of story.

Got bit off topic but... :)
I understand your point @robinduckett really well - we had to delay upgrading to 0.9 in our project as well cause of some of the changes and fixes still flowing in - we had to make kind of a frankenstein monster with patching in some places from 0.9 (events especially) and leaving rest of the code from 0.5. I believe that the new Backbone releases and changes communication process could be improved - but I wouldn't go that far to say that there is no communication or its standard is bad - just all the communication happens between all the pull requests and issues which might be bit overwhelming to follow all of it. I'm 100% sure that Backbone team is as busy with their everyday projects as we all are so big kudos for them for the work they share with us.
Backbone is still in its infancy and shaping up but amount of big scale projects running based on it increases with every month (week?) - which is super nice! And in spite of that maybe some better communication before releasing new version would be more valuable then ever before - personally i had to pretty much go over tons of commits/pull request back to understand most of what was happening since 0.5.3 and I guess people might have enough on their heads not to have time for that.
Small proposal from me - one you might maybe agree on and hopefully Backbone team will think as an option for 1.0 release - that maybe we could do it a bit like jQuery and other projects are doing - with release candidates and call to action for developers to test it extensively with a more in depth change log and naming areas that changed the most and should be well tested. So that we have time to root out the bugs before we start incrementing the versions to patch the holes and iron out all the rough edges. @jashkenas @braddunbar @tbranyen what do you think guys? Has Backbone reached that point in your view?

Good to see this discussion and the active attitude of the Backbone team!
Back on topic, the latest release and the commits above seem vary the behavior of change events in a very fundamental way. I find myself in need for more workaround all the time.
Am I correct that right now, setting a value will always dispatch a change event, even if the value is the same as before, (except when the old and new value are 'null')?
I find myself needing to check everywhere if the incoming value is the same as the old value, to prevent certain loops that didn't occur in the past.

@micros123 That should not be the case.  Setting a value should only dispatch a change event if the value is changed since the previous change event, whether that was a 'change' or 'change:attr'.  Would you mind providing some sample code where you're seeing that behavior?

handled by #982


Difficulty when transforming grid and  position

Thank you for this library
I’m trying to make a CSS grid where people can drag widgets around, I’m storing each widgets dimension and coordinates and when generating the grid I populate each widget position and span Using these values.
I’m using use draggable on the widget div, I’m using the grid option with the same cell size in order for the drag snapping to match.
And using the transform property to Modify the grid row and the grid column.
The problem is that when I drag something the first time it's fine, but when I drag it the 2nd time, the offset starts from the last offset instead of 0.
How can I mitigate this?
Thanks!

Can you reproduce this bug on something like Svelte REPL/Stackblitz?

I found the same issue when I was modifying the library. The internal offset is not clear what it represents and I think there's a calculation error when returning the value after the second drag.

First, thank you for this library!
I am facing the same issue. I am mimicking the iOS drag from edge gesture - I will let users drag a page, if the offsetX is smaller than screenWidth/2 when drag ends it will bounce back. For example, if the screen width is 400, and the first drag ends at offsetX=100, the page will bounce back as expected. If I try a second drag, the offsetX will start from 100 instead of starting from 0.
https://github.com/PuruVJ/neodrag/assets/5688380/9f241e39-a137-495c-aa84-55f9e1bdedf8

@PuruVJ
Still an open issue, any update on resolving this problem?

Is there a fix in the working? Because this bug makes the whole library useless for me. 😞

Thanks a lot for letting me know folks! I once again request you to provide a reproducible svelte.dev/playground code so I can crack down on it


Do not generate specific docs if not required by user

Right if we want to disable some functionality, for example disable docs generating for cli apps, we need to pass null as options:
  await generateDocumentation({
    generateCliAppsHelpInReadmeOptions: null,
    generateUsageWaysOfNpmCliAppsInMarkdownFormatOptions: null,
  })

I propose to make it another way: by default they are not generated and if you want to enable them with default options you will use specific options class and its static method default (example is taken from rust often-used concept)

@Konard what do you think?


struggling with code -1073741819 (0xC0000005) Please help

I have been trying to get this to work for serval hours now.
All I am getting is
Process finished with exit code -1073741819 (0xC0000005)
I have been trying this from Pycharm
from pydavinci import davinci
resolve = davinchi.Resolve()
timeline = resolve.active_timeline
print(timeline.name)
I have tried running it from the termal as well but all i get from that is that it cant find python

even though I have all the paths set.

Any chance you know what Im doing wrong.

What Davinci Resolve version and Python version are you intending to use?
Also, do you have Davinci Resolve Studio?

Running latest version and its the free version.  After two hours yesterday I think I finally came across a comment that said you  need to use the studio version for scripting.

even after upgrading im still not having much luck.  Any tips?
AttributeError: 'NoneType' object has no attribute 'GetProjectManager'

Have you set scripting to external?

If you are using Resolve 18, the installation instructions are  [https://github.com/pedrolabonia/pydavinci/tree/resolve_18#install-pydavinci](a little different)

Essentially:

Python 3.10
Resolve Studio 18
Scripting enabled, set to "local"

pip install git+https://github.com/pedrolabonia/pydavinci@resolve_18

Also, make sure you target Python 3.10 if you have multiple Pythons installed. On Windows you can do:
py -3.10 -m pip install
But of course different if using virtualenv, conda or pyenv etc.


s/escape_glob/escape_glob_dir/

Removes all remaining references to the deprecated escape_glob
helper routine.

Looks good :+1:


bluez - org.bluez not provided by any service

Hi,
I'm currently trying to setup a dbus communication with bluez.
I'm able to get informations from bluez with their provided scripts (test-devices for example). I just want to point out that there is communication with bluez...
when I try do get information with dbus-next, it is not working, it reply that:

the name "org.bluez" was not provided by any .service files

in the folder with the service files i get:

dbus-org.bluez.service

in the file i've :

[Unit]
Description=Bluetooth service
Documentation=man:bluetoothd(8)
ConditionPathIsDirectory=/sys/class/bluetooth

[Service]
Type=dbus
BusName=org.bluez
ExecStart=/usr/libexec/bluetooth/bluetoothd --experimental
NotifyAccess=main
#WatchdogSec=10
#Restart=on-failure
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
LimitNPROC=1
ProtectHome=true
ProtectSystem=full

[Install]
WantedBy=bluetooth.target

I've been able to introspect with "org.bluez.obex" but I would like to use the "org.bluez". (note that with "org.bluez.obex" I've not been able to use the methods...i get the message that the method doesn't exist).
also if I do :
dbus-send --system            \   --dest=org.freedesktop.DBus \   --type=method_call          \   --print-reply               \   /org/freedesktop/DBus       \   org.freedesktop.DBus.ListNames
I get:

  string "org.freedesktop.DBus"
  string ":1.7"
  string "org.freedesktop.login1"
  string ":1.72"
  string ":1.9"
  string ":1.73"
  string ":1.51"
  string "org.freedesktop.DisplayManager"
  string ":1.52"
  string "org.freedesktop.systemd1"
  string "org.freedesktop.PolicyKit1"
  string "org.freedesktop.Avahi"
  string "org.bluez"
  string ":1.32"
  string ":1.89"
  string "org.freedesktop.PackageKit"
  string "org.freedesktop.UDisks2"
  string ":1.13"
  string ":1.0"
  string ":1.14"
  string ":1.1"
  string ":1.15"
  string ":1.2"
  string ":1.16"
  string ":1.3"
  string ":1.17"
  string "fi.epitest.hostap.WPASupplicant"
  string ":1.4"
  string "fi.w1.wpa_supplicant1"
  string ":1.5"
  string ":1.6"

finally, here is the script I'm trying to run:
 from dbus_next.aio import MessageBus
 from dbus_next.service import (ServiceInterface,
                           method, dbus_property, signal)
 from dbus_next import Variant, DBusError,Message, MessageType, introspection,
 import logging
 import traceback
 import asyncio
 import sys
 import os
 sys.path.append(os.path.abspath(os.path.dirname(__file__) + '/..'))
 import json

 async def main():
  bus = await MessageBus().connect()
  introspection = await bus.introspect("org.bluez", '/')
    obj = bus.get_proxy_object('org.bluez', '/',introspection)
   manager = obj.get_interface('org.freedesktop.DBus.ObjectManager')
   test_method = await manager.GetManagedObjects()

 if __name__ == "__main__":
  loop = asyncio.get_event_loop()
  loop.set_debug(1)

     try:
        loop.run_until_complete(main())
     except KeyboardInterrupt:
         logging.info("Process interrupted")
         pass
     finally:
         loop.stop()
         loop.close()

thank you a lot for your help and nice work!

The introspection you've shown me is from the system bus (the --system flag to dbus-send) and your code connects to the session bus which is the default connection. Try making your MessageBus for the system bus like this:
from dbus_next import BusType
bus = await MessageBus(bus_type=BusType.SYSTEM).connect()

haha! indeed ! thanks! and it is working ..
but now I get another issue...(actually the same issue that I had with obex...).

The proxy interface docs are here.
The method calls are exposed as call_method() to look more pythonic. You can dir() the interface to see the methods.
try2 = await manager.call_get_managed_objects()

ok thank you! indeed it was written... I passed too fast on it... sorry for that
thanks a lot !


Click Count

Zero To Mastery - Webblocks 2022 📦📦
👉 Please remove the below and replace with your own values, leaving the headers where they are. 👈
PR contains:

INFO ABOUT YOUR PULL REQUEST GOES HERE (Please be as descriptive as possible) 🤜

Breaking changes

IF ANYTHING YOU'RE COMMITTING WOULD BREAK SOMETHING, INCLUDE HERE WHAT WOULD BREAK
IF YOU HAVE NO BREAKING CHANGES, ENTER 'None'

Screenshots

IF YOU HAVE ANY SCREENSHOTS, INCLUDE THEM HERE.
IF YOU HAVE NO SCREENSHOTS, ENTER 'None'

The next time, please fill out the request template.

This PR had an incorrect folder structure that broke the github workflow. I needed to revert this. FYI.


Validate config.yaml contents (#77)

Addresses #77

Adds desert-based dataclasses to configuration.py to deserialize config.yaml contents
Changes all references of dictionary bracket notation --> dataclass dot notation
Adds tests

In the discussion for #77 , @jkbecker mentioned potentially making config-related changes discussed in #84 . I did not get to this, because the PR reached a critical length where I think it's safest to separate concerns. :)

RE: failing tests -- tests seem to be failing because the ci.yml builds the plotman package using dist/wheel rather than cloning, so config.yaml is not present.
Is this desired? Checking out the setup.cfg, I see:
[options.data_files]
config = config.yaml

but I don't see anything about config.yaml in the MANIFEST.in. What is the desired behavior RE: config.yaml being present when a user installs using pip?
For these tests, it would be possible to mock out the yaml.load(), so that it's not actually necessary for config.yaml to be present. However, IMO that somewhat defeats the purpose of the main test -- as it would be helpful to check the validity of the default/example config.yaml in this repo without expecting contributors to know they have to update a test-only mirror when adding new config values. Thoughts?

Awesome!

RE: failing tests -- tests seem to be failing because the ci.yml builds the plotman package using dist/wheel rather than cloning, so config.yaml is not present.

Haha, no, this is not desired. But also not a surprise.
When I proposed #61, we had an at-length discussion there about the config file being treated as a separate issue because it's just an intermediary weirdness and existing users expect it to sit in their current working directory anyways. The actual issue for taking care of config is #84 and I have not gotten around to implementing it. In fact I haven't touched it at all - if you're in the zone and this seems like a good fit, feel free to look into it, ... otherwise maybe @altendky has a good idea of how to hotfix the CI for now (he introduced it, it's mostly black magic to me) to make this one work in isolation?

@altendky @jkbecker
Thank you both for the review, comments, and context. To unblock myself in this PR, I will change config.yaml to be src/plotman/resources/plotman.yaml (I like the rename suggestion to plotman.yaml), and will add to MANIFEST, etc so it's packaged correctly.

We want to be able to, after installation, write out a file to a given location with a 'default' configuration.

My personal approach would be adding new args similar to what's suggested in #84, so when you pip install plotman, you're able to run something like: plotman config generate, which would create a config file at a pre-set location on your computer based on appdirs. Assuming we include a default plotman.yaml in the package as discussed above, we can just copy that file over. With that set up, we'd be able to run plotman config path, etc as suggested by @jkbecker here
There's a lot more detail discussed in #84, and I don't want to overcrowd this PR. How about I do the above work to unblock myself with testing, and leave additional commandline features with plotman config <...> to a future PRs?

Agreed that the various discussions about finding the config file should be addressed in a separate PR.

@altendky Let me know what you think of the added changes. It now supports:
$ plotman config show
$ plotman config generate

For now, it only performs generate with a default location (no configurable location/path) but that could be a future improvement. I also added the default resources/plotman.yaml file to the package as discussed above

This looks awesome! I feel like it's probably clean to stick with just one default config location in this PR, and address the overloadable config file situation mentioned in #84 in a separate follow-up PR (I'm happy to work on that one but I'm currently super maxed out with "work" work, so... not mad if you get to tackling it first - we can play by ear.)

This looks awesome! I feel like it's probably clean to stick with just one default config location in this PR, and address the overloadable config file situation mentioned in #84 in a separate follow-up PR (I'm happy to work on that one but I'm currently super maxed out with "work" work, so... not mad if you get to tackling it first - we can play by ear.)

Yes, I wanted to start with a constant config location before adding complexity. I'm also ramping up on a new project at "work" work, so I'll see -- but if I have time I'll try to tackle it!


Does CtxRef need to exist?

Have you considered taking &Arc<Context> as the self receiver?
e.g:
impl Context {
    fn begin_frame(self: &Arc<Context>, new_input: RawInput) {
        // ..
    }
}

I did use Arc<Context> early on but it has two downsides:

everyone needs to have use std::sync::Arc; in there file, or use the very verbose std::sync::Arc<Context>
it prevents us from changing Arc to something else. For instance, with the single_threaded feature flag to egui, we should probably change it to Rc for performance reasons.


Injecting beans by name

The getBean-Methods in io.mongock.runner.spring.base.context.SpringDependencyContext swallow Exceptions, if either beans are not defined or there are multiple instances of beans available (org.springframework.beans.factory.NoUniqueBeanDefinitionException). I only found that out by debugging. It would have helped if the error would have been logged.
How is it possible to inject a bean by name into a ChangeUnit using Spring Boot Runner?

Hello @thorstenvogel ,
can you tell me which version are you using, please?

I managed to inject my named beans into ChangeUnit-Methods via
    @Execution
    public void migrateSomething(@NonLockGuarded
                                                      @Named("namedBean")
                                                      MyBean namedBean) {
        // do something with namedBean
    }

The injection mechanism in Mongock does not allow fields to be injected into the class as constructor-parameter as far as i can see.
For the future ist would be great if ChangeUnits could just be Spring beans, utilizing the dependency-injection mechanisms of Spring.

Hello, I didn't answer until now as we have been pretty busy and I saw you managed to make it work.
Your suggestion is very interesting, but represents important challenges, specially because Mongock proxies the injection for distributed synchronisation's sake.
On the other hand, I don't think it's that far. As long as I remember, springboot supports @Named injections and Mongock should support dependency injection as construction time.
Thanks!


a few issues with pcap-over-ip

Describe the bug
I've been trying to use Arkime in a container to receive pcap-over-ip from polarproxy (amongst other sources) and I've observed a few things:

when the bpf= option is set, I could not receive any packets. in my case, the option was set to pbf=not port 9200
I believe only big-endian timestamped and ethernet-based pcaps can be sent through the socket to be ingested. this creates a bit of an issue with typical packet capture software (like tcpdump and tshark) since by default they create pcaps with little-endian timestamps. I had to write my own makeshift packet capture that supports big-endian.
there's a bit of a delay between when the packets are captured and when they show up on Arkime. My theory is because the underlying TCP connection between polarproxy and Arkime is kept alive and is persistent, Arkime falls back to tcpSaveTimeout and essentially saves the session after 400 seconds. I tested this by lowering that number and sure enough the sessions showed up quicker.
the last session(s) on Arkime do not have all their packets saved on disk. I believe this is closely related to the third point because after sending multiple sessions, the previous ones start to index and show up properly.

Elasticsearch version:
tested with opensearch 2.x and ES 8.x
Arkime/Moloch version:
tested with 4.6.0 and 5.0.0rc1
OS name and version:
Ubuntu 22.04 docker base image
How was Arkime/Moloch built/installed: (rpm, deb, easybutton, ...)
deb package on a container
Provide logs, stack traces and steps to reproduce:
the docker compose to set up the entire stack is here, with all the configuration items for ES, Polarproxy and Arkime:
https://github.com/mosajjal/aio-gw

So on a M1 mac everything seems to work fine.

I'm running in server mode with where I add bpf=port 22 to the tests/config.tests.ini section test-pois and then run ../capture/capture -c config.test.ini -n test-pois. To send files I use nc localhost 57012 < ~/arkime/tests/pcap/ssh2.pcap for example which shows I get the ssh packets

both big and little endian are supported, ssh2.pcap and bigendian.pcap are different endianess.  You are right that only ethernet is supported. I wonder if whatever you wrote is causing issues?

this is just using the normal Arkime packet processing, the same delays if it had been live capture will be there. since all we are getting are packets and no other meta data there is no way to do anything different. or maybe I don't understand your isssue.

this is just the typical Arkime packet write buffering that the FAQ talks about since its using the normal Arkime packet processing.

Thanks Andy. I believe since the source interface was tun, issue 2 might've been related to that and the code just converts the packets back to ethernet which would've solved the issue regadless of the endianness.
as for 3, my question is when does Arkime decides when to consider a session "finished" when receiving the pcap file over IP? is it when the underlying pcap-over-ip TCP session finishes, or the last byte of the pcap file that's transferred over TCP?

ok yes, i'll need to add support for non eth
all the packet processing is the same, it has no clue its pcap over ip vs live vs from a file. It just uses the timestamps and the normal logic. the state of the pcap-over-ip socket isn't used.

cool got it. thanks mate :)

So #2576 should hopefully fix the issue

5.0.0-rc2 has this fix


Display last update date in the extension details page

Currently, "Published" date of the extension is displayed in the extension detail page. This is not optimal, because users would need to see what is the actual date/version of the extension that will be installed. Published date can be removed and last update time should be displayed instead and probably version should be displayed, too.
Code:
https://github.com/KitwareMedical/slicer-extensions-webapp/blob/54bf82d7ebcf6a2b852b0cccc988186a50eec8ae/src/views/ExtensionDetails.vue#L153
extension.created should be extension.updated and maybe extension.meta.revision
Screenshot:

By update time, do you mean the date of the last commit associated with the extension source tree ?

I just noticed the associated pull request. And yes, since the same "item" may be updated instead of created when no change have been pushed to the extension source tree but a new package  was effectively published.

This issue has come up when investigating SlicerDMRI extension updates for Slicer-5.6.1.
The extension page still shows December 12, 2023 date, while there was an update on January 10 (see https://github.com/SlicerDMRI/SlicerDMRI/commits/master/).
The extension metadata (https://slicer-packages.kitware.com/api/v1/app/5f4474d0e1d8c75dfc705482/extension?app_revision=32438&arch=amd64&limit=0&os=win) contains:
"created": "2023-12-12T12:09:27.681000+00:00",
"updated": "2024-01-11T12:42:31.670000+00:00"

So, updated field is that we are interested in (that shows when the extension was last updated).
Since packages can be uploaded at any time, it would be nice to also show the extension.meta.revision value.

Thank you!


Fix strong mode issue with Dart2

This partially fixes https://github.com/dart-lang/googleapis/issues/34
Not sure if the plan is for generated libraries to create proper Map<String, List<String>> instances but I thought I'd submit this fix just in case.

 Probably better to leave for another PR, but let me know and I can go over those as well.


Documentation: Inherited members

We extend Starlette types for many of our public api types, e.g., Request. This task is to work out the best way to have members of those super classes show in our reference docs.
Mkdocstrings has an inherited_members config, but at this point it doesn't work.
This is compounded by the fact that starlette doesn't have reference docs themselves, so no objects.inv to import to allow us to cross-ref to their docs for the types we extend.

https://github.com/mitmproxy/pdoc is an alternative for generating ref docs. Found this similar issue: https://github.com/mitmproxy/pdoc/issues/295 which has a solution.

How does that integrate with mkdocs?

How does that integrate with mkdocs?

Found this: https://github.com/mitmproxy/pdoc/tree/main/examples/mkdocs
This isn't something we'd want to rush into probably, but if we get to the point that we think it is worth it, we can either do the work upstream to make this work in mkdocstrings, or know that there is at least one alternative.

Hmmm.. At that point we might as well be using sphinx with a material theme and markdown extension :D
I'll fiddle with some of the solutions at some point during the near future.

Hmmm.. At that point we might as well be using sphinx with a material theme and markdown extension :D

mkdocs is so much better. I would rather try to stick to it.

That's very subjective I think. Personally I much prefer Sphinx, since for more complex things (which technical documentation of a project like this) it's just better suited. Alone the way interfaces are documented is much more legible in Sphinx, and it's way more mature and stable than Mkdocs (and mkdocstrings in particular), let alone the fact that reST comes with most of the stuff built in and a more concise syntax than the host of markdown extensions needed to make it work for technical writing (which makes sense, since reST was built specifically for this purpose, and markdown was never intended to do such things).
I admit that I haven't worked on larger mkdocs projects before starlite, but I've read quite a few of them by now and especially the whole material design aspect just doesn't seem very suited to me for a technical document. It may be nice for end-user website (although that's also a matter of taste), but looking nice isn't really the main objective for documentation.
Personally, I believe that the rise in mkdocs popularity in the Python ecosystem is mainly due to the admittedly very steep learning curve of Sphinx. I'd also love to see some of the nice features that mkdocs has going for it added to sphinx.
Anyway, this isn't really up for debate here I think since our current docs are the way they are and I don't see a complete rewrite for Sphinx happen any time soon.

but looking nice isn't really the main objective for documentation

I don't care about the look. Snappy (almost instant) search is what makes me strongly prefer Material for MkDocs.

I do care about the look... We need to be accessible, not only to the hardcore technical people or the old school devs who think reading man files in their vi editor is the thing.

I do care about the look... We need to be accessible, not only to the hardcore technical people or the old school devs who think reading man files in their vi editor is the thing.

Well, Sphinx has nice themes too. Material ones even. But as I said, I don't think moving at this point is feasible, so there's no point discussing this here 🙃

As for cross referencing to other libs. What libraries do we need here aside from multidict?

Afaik only multidict and the stdlib. We might want to refrence fsspec too, I think that shouldn't be a problem though.
I wanted to look into the mkdocstrings-inheritance issue during my docs overhaul and see if I can't help fix things upstream.


Add a 'controller disconnected' message during puzzles

If the player's controller disconnects during gameplay, we pop up the settings menu with a message.
We don't pop up the settings menu in the creature editor, during cutscenes, or in other parts of the game.


Mention the issue with Koji build triggering

Related to https://github.com/packit/packit-service/issues/2537.

Shouldn't we add it to the status page too? 👀

I'm not sure, the issue has been there for 8 months and nobody noticed. What do the others think @packit/the-packit-team?


Does libcamera-raw use ISP?

Hi, I want to know if libcamera-raw uses ISP when generating raw bayer image. What more,  is it possible for me to use the ISP to process   the raw bayer image generated by libcamera-raw and obtain the corresponding rgb image?
Thanks in advance.

No, I want to kown if I can send bayer images that do not directly come  from sensor but come from user application to the ISP for reprocessing.

At this point , no you cannot do that.  The libcamera API does not yet have support for RAW framebuffer reprocessing through the ISP.  However, this is a feature we are keen to see implemented, so hopefully it will happen soon.


[BUG] There's no way to go back home from other pages

Description of the bug
Would love to help with including a home link in the mav so visitors can easily click that to return to the homepage of the website or the website logo, just a link that users can intuitively click and would bring them to the homepage of the website
Please add screenshots (if applicable)
No response
Add any other context about the problem here
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

I would love to work on this.
We can hyperlink the logo in navbar to point it to home. For the footer section we can add another link "home" under the about us section pointing back to the landing page.

@Johnnyteck Your issue was legit, why close?

@mkubdev can i give it a try ?

ooh sorry, that was a mistake. I was clearing my issues tab and clicked this instead of another. Just realizing this now

Yes, @mkubdev you can assign me

Hi @Anuran12, I'm assigning this to @Johnnyteck since he created this issue. Feel free to raise other issue @Anuran12


How to use the AddMLine?

I know how to use the AddLine or the AddCircle. But i don't find the answer.Could someone tell me?

from pyautocad import Autocad
import array

acad = Autocad(create_if_not_exists=True)

points_3d = [0, 0, 0, 1, 1, 0, 2, 1, 0]
points_double = array.array("d", points_3d)
mline = acad.model.AddMLine(points_double)

mline.MLineScale = 1


Disabling scene contraction for BakedSDF

Hi, I want to compare BakedSDF performance when switching on/off scene contraction.
I tried searching for a CLI flag, but I could not find any.
Is there currently a way to disable scene contraction for BakedSDF?

Hi, currently CLI doesn't have flag to disable scene scene contraction for BakedSDF. But you could simply change to code here to disable it here https://github.com/autonomousvision/sdfstudio/blob/master/nerfstudio/models/base_surface_model.py#L151 by setting spatial_distortion to None.


adding ArgumentTypeInfos.registerByClass to SubCommandArgumentType.init

I found that attempting to run a world with cheats will immediately disconnect you after loading. Upon further inspection, I found that it's required to both use RegisterEvent.register and ArgumentTypeInfos.registerByClass to register argument types. This PR implements this,

The repository is not actively updated with all changes made in-dev. This has already been fixed.


New stable release before merging?

Hi,
I've noticed that rack-protection is now part of Sinatra's master.
Are you planning on releasing a final version independent from that repo for everyone not willing to migrate to a beta version of Sinatra?
There are a few patches that are just in master from what I can see (i.e., allow_if for HttpOrigin).

That sounds like a good idea to me... If there were a 1.99 release of everything prior to closing the project, that would be really useful to those of us who aren't ready to make the bigger jump to Sinatra 2. Particularly while it is still so new.

Even though the source has moved to Sinatra, it's not dependent on sinatra directly.
Rack is the only dependency for rack-protection: https://github.com/sinatra/sinatra/blob/master/rack-protection/rack-protection.gemspec#L85
As far as another 1.x release, I would only consider if there was a critical bug found in those versions. But basically everything committed since 1.4.7 has been features, you're free to upgrade at your leisure.

btw, here is the diff from the last stable release until the merge took place: https://github.com/sinatra/rack-protection/compare/v1.5.3...pre-merge

@zzak thanks for the reply.
Sorry, I was under the impression that rack-protection was not going to be released as gem anymore.
I'd actually need some of the patches that have not been released yet (i.e., allow_if for HttpOrigin), but I'll wait and find another way for now.
Thanks again.

@astratto Are you able to use the 2.0.0.beta2 release?

@zzak I can surely play with it if you need me to, but using a beta version is definitely not an option for me.

@astratto Sure! You don't have to put it in production, but put it in your gemspec and run your tests for me at the very least :bow:


console typeclass

Not sure, if common is a good place for it. Maybe plase it in env module?

Not sure, if common is a good place for it. Maybe plaсe it in env module? (I suppose it designed to be used as a context)

env is a specific package for Env data type
I suppose console operations are pretty common.
I'd like all the basic Sync.delay cases to be covered by tofu.core and to have  implemetation for the upcoming Sim data type.
Ultimate goal here to get rid of every possible source of indeterminism in tests.


Failed to complete #converge action: [Required artifacts do not exist at the desired version

Cookbook version
2.15.6 (pessimistic)
Chef-client version
12.19.36
Platform Details
Ubuntu 16.04.2 host, Ubuntu 16.04.2 guest (Virtualbox)
Scenario:
I'm trying to do a Kitchen CI run using Berkshelf
Steps to Reproduce:
Try to reference docker cookbook @ 2.15.6 in a Kitchen CI run on a machine running ChefDK 1.3.43
Expected Result:
Cookbook would be found
Actual Result:
Cookbook is not found

https://gist.github.com/chaim-sw/8ff7cee09175734154ebdbe11398f7f2

I was able to get past this by removing the "cookbook" lines from the Berksfile. Weird.


redesign issues

Is your feature request related to a problem? Please describe.
new change in design and few other extra functionality are beautiful but current navbar redesign is not good for desktop user, user need to click on menu each time to navigate between pages it's an extra burden for them. and it's creating few other issues for desktop users like essential page. even the issue of not responsive is not fixed in redesign. footer is missing on pages.
Describe the solution you'd like
for desktop navbar previous design was good only and for responsive have a look at #957
Additional context
demo of few bugs.

flickering issue

scrollbar when menu open

Patched :)


jonnyw/php-phantomjs v4.6.1 requires symfony/config ~2.3|~3.0 -> no matching package found.

`composer require jaeger/querylist-phantomjs
Using version ^4.0 for jaeger/querylist-phantomjs
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Restricting packages listed in "symfony/symfony" to "5.1.*"
Your requirements could not be resolved to an installable set of packages.
Problem 1
- jaeger/querylist-phantomjs 4.0.0 requires jonnyw/php-phantomjs 4.* -> satisfiable by jonnyw/php-phantomjs[v4.0.0, v4.1.0, v4.2.0, v4.2.1, v4.3.0, v4.3.1, v4.3.2, v4.4.0, v4.5.0, v4.5.1, v4.6.0, v4.6.1].
- jaeger/querylist-phantomjs 4.0.1 requires jonnyw/php-phantomjs 4.* -> satisfiable by jonnyw/php-phantomjs[v4.0.0, v4.1.0, v4.2.0, v4.2.1, v4.3.0, v4.3.1, v4.3.2, v4.4.0, v4.5.0, v4.5.1, v4.6.0, v4.6.1].
- jonnyw/php-phantomjs v4.6.1 requires symfony/config ~2.3|~3.0 -> no matching package found.
- jonnyw/php-phantomjs v4.6.0 requires symfony/config ~2.3|~3.0 -> no matching package found.
- jonnyw/php-phantomjs v4.5.1 requires symfony/config ~2.3|~3.0 -> no matching package found.
- jonnyw/php-phantomjs v4.5.0 requires symfony/config ~2.3|~3.0 -> no matching package found.
- jonnyw/php-phantomjs v4.4.0 requires symfony/config ~2.3|~3.0 -> no matching package found.
- jonnyw/php-phantomjs v4.3.2 requires symfony/config ~2.3|~3.0 -> no matching package found.
- jonnyw/php-phantomjs v4.3.1 requires symfony/config ~2.3|~3.0 -> no matching package found.
- jonnyw/php-phantomjs v4.3.0 requires symfony/config ~2.3|~3.0 -> no matching package found.
- jonnyw/php-phantomjs v4.2.1 requires symfony/config ~2.3 -> no matching package found.
- jonnyw/php-phantomjs v4.2.0 requires symfony/config ~2.3 -> no matching package found.
- jonnyw/php-phantomjs v4.1.0 requires symfony/config ~2.3 -> no matching package found.
- jonnyw/php-phantomjs v4.0.0 requires symfony/config ~2.3 -> no matching package found.
- Installation request for jaeger/querylist-phantomjs ^4.0 -> satisfiable by jaeger/querylist-phantomjs[4.0.0, 4.0.1].
Potential causes:

A typo in the package name
The package is not available in a stable-enough version according to your minimum-stability setting
see https://getcomposer.org/doc/04-schema.md#minimum-stability for more details.
It's a private package and you forgot to add a custom repository to find it

Read https://getcomposer.org/doc/articles/troubleshooting.md for further common problems.
Installation failed, reverting ./composer.json to its original content.`

BTW, i use the package in Symfony v4.20.0, it doesn't seem to fit the requirements. looking for your reply. thanks a lot!

With laravel 8 same error :(

try this : composer require neokyuubi/php-phantomjs:dev-master


chng failing with assert len(filepaths_to_download) <= 6, "more files dropped than expected" AssertionError: more files dropped than expected

Actual Behavior:

source: chng
Per @jingjtang's investigation:

It seems that there are no counts delivered from 2021-12-23 to 2021-12-26.

Fails with:
Slack ref: https://delphi-org.slack.com/archives/C01LZ3A2UMU/p1640748872124100

:exclamation: Indicator exception
Logger: delphi_changehc.run
Timestamp: 2021-12-29T03:34:02.771Z
Exception: Traceback (most recent call last):
File "/home/indicators/.pyenv/versions/3.8.2/lib/python3.8/runpy.py", line 193, in _run_module_as_main
 return _run_code(code, main_globals, None,
File "/home/indicators/.pyenv/versions/3.8.2/lib/python3.8/runpy.py", line 86, in _run_code
 exec(code, run_globals)
File "/mnt/data2/indicators/runtime/changehc/env/lib/python3.8/site-packages/delphi_utils/runner.py", line 64, in <module>
 run_indicator_pipeline(indicator_module.run.run_module,
File "/mnt/data2/indicators/runtime/changehc/env/lib/python3.8/site-packages/delphi_utils/runner.py", line 43, in run_indicator_pipeline
 indicator_fn(params)
File "/mnt/data2/indicators/runtime/changehc/delphi_changehc/run.py", line 129, in run_module
 file_dict = retrieve_files(params, filedate, logger)
File "/mnt/data2/indicators/runtime/changehc/delphi_changehc/run.py", line 29, in retrieve_files
 download_counts(filedate, params["indicator"]["input_cache_dir"], params["indicator"]["ftp_conn"])
File "/mnt/data2/indicators/runtime/changehc/delphi_changehc/download_ftp_files.py", line 64, in download_counts
 get_files_from_dir(sftp, filedate, out_path)
File "/mnt/data2/indicators/runtime/changehc/delphi_changehc/download_ftp_files.py", line 36, in get_files_from_dir
 assert len(filepaths_to_download) <= 6, "more files dropped than expected"
AssertionError: more files dropped than expected

Expected behavior

chng should not fail.
Context

This looks like provider issue. As this is happening during the Winter Holiday period we aren't meeting with them for a week or two.
@jingjtang has emailed CHNG 2022-01-03, waiting for CHNG to add those files to the SFTP server

This is actually caused by the new file for flu inpatient (which make more sense -- we wouldn't see "more files than expected" if files were actually missing).
We need to update the inequality in this test to be:
assert len(filepaths_to_download) <= 7

We'll also need to generate a data patch for:

issue range: ????????-20220105


GPS Drivers

Created drivers for receiving data. Will still have to fix some of the warnings

I would test this, but I think I'm missing an antenna. I'll try to get that purchased soon and then get to testing this.


remove all z_near far params in engine calls, enable ssao again

Related to https://github.com/KittyCAD/engine/issues/2247
@franknoirot, this is all I needed to switch back on for SSAO yeah?

The two failures on playw macos

Are tests that should only be run on chrome because the emulateNetworkConditions util will only work there.


Allow location param in query endpoint

In order to compute the right carbon intensity, this contribution address the issue #20 by allowing the user to tell in which country its machine is.
How
It is now possible to provide a country trigram using location= in /query endpoint (optional parameter, if not provided, "EEE" is used).

For example:
localhost:8000/query?location=FRA

will return server impact based on French electricity grid.

If the provided string is not handled by Boaviztapi (too long/short or unknown), a warning message is returned to the user in order to notify that.

For example:
localhost:8000/query?location=ZZZ

will return
{
  ...
  "usage_location_warning": "The provided trigram doesnt match an existing country. So this result is based on global European electricity mix. Be careful with this data."
}

in addtion to the returned result based on global European electricity mix.

A similiar warning is returned when no location information is provided.
TODO

[ ] Add this parameter to the documentation (in api/Query.yaml ?)
[ ] Determine the user's country using local system timezone (no solution has been found so far)

Thanks a lot for this PR and your contribution in the last hackathon !
To complement, looks like we could guess the location from :

geoip based location : https://pytutorial.com/python-get-country-from-ip-python
or to avoid geoip and its flows we could guess the location from the public ip address as seen from a service like https://ipinfo.io/ then look for whois + traceroute information https://www.atlantic.net/vps-hosting/how-to-find-location-servers-traceroute-whois/

This initial PR works well. I've just made the potential warning visible even when verbose is false


Threads aren't appearing immediately after authentication

Is the bug present in the demo Chat SDK project?
no, but demo opens another activity (MainAppBarActivity) after authentication (SplashScreenActivity or LoginActivity), and mb because of this delay between switching activities the bug isn't reproduced, and all it asks for permission before displaying threads, my sample uses the same activity, everything happens fast, after authentication it immediately calls safeReloadData method on PrivateThreadsFragment

What modifications have you made to the Chat SDK?
Used one activity for authentication and adding PrivateThreadsFragment in that activity

Android Version:
Any, e.g. API 30

Steps taken to reproduce the problem:
after authentication ChatSDK.auth().authenticate(details) in rx callback subscribe method try to call fragment.safeReloadData() method immediately

Expected result:
chat private threads should have been appeared

Actual result:
nothing appeared

Comments:
only appears if you call fragment.safeReloadData() method with some delay, e.g. 1 second after subscribe method was called

Full Code:
class MainActivityTest : AppCompatActivity() {

    private var authenticationDisposable: Disposable? = null

    private lateinit var fragment: PrivateThreadsFragment

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContentView(R.layout.activity_main)

        fragment = openPrivateThreadsFragment()

        if (ChatSDK.auth().isAuthenticatedThisSession) {
            // do nothing
        } else if (ChatSDK.auth().isAuthenticated || ChatSDK.auth().isAuthenticating) {
            authenticationDisposable = ChatSDK.auth().authenticate()
                .observeOn(RX.main())
                .subscribe(
                    { fragment.safeReloadData() },
                    { Log.i(TAG, "authenticate error $it") }
                )
        } else {
            val details =<EMAIL_ADDRESS>"testtest")
            authenticationDisposable = ChatSDK.auth().authenticate(details)
                .observeOn(RX.main())
                .subscribe(
                    {
                        fragment.safeReloadData() // - TODO: WON'T WORK, WHY?

                        // TODO: some bug on first authentication, we need to put delay otherwise nothing will be updated
                       //  Handler(Looper.getMainLooper()).postDelayed( {
                       //      fragment.safeReloadData()
                        // }, 2000L)

                        Log.i(TAG, "authenticate ok ${ChatSDK.auth().isAuthenticated}")
                    },
                    { Log.i(TAG, "authenticate error $it") }
                )
        }
    }

    override fun onResume() {
        super.onResume()
        fragment.safeReloadData()
    }

    override fun onDestroy() {
        authenticationDisposable?.dispose()
        super.onDestroy()
    }

    private fun openPrivateThreadsFragment(): PrivateThreadsFragment {
        val fragmentManager = supportFragmentManager
        val transaction = fragmentManager.beginTransaction()
        var fragment = fragmentManager.findFragmentByTag(FRAGMENT_TAG) as PrivateThreadsFragment?
        if (fragment == null) {
            fragment = PrivateThreadsFragment()
            transaction.replace(R.id.frame_layout, fragment,FRAGMENT_TAG)
        } else {
            transaction.show(fragment)
        }
        transaction.commit()

        return fragment
    }

    companion object {
        private const val TAG: String = "TEST_AUTHENTICATION"
        private val FRAGMENT_TAG: String = PrivateThreadsFragment::class.java.name
    }
}

SDK init:
class App : Application() {

    override fun onCreate() {
        super.onCreate()

        ChatSDKFirebase.quickStart(
            this,
            "pre_1",
            "",
            true
        )
    }
}

So threads are appearing only after calling safeReloadData method with delay or after this app with that activity launched the next time (when a user is authenticated already)

Sometimes it displays part of information only:

Is there some synchronization happens after authentication (to local datebase for example)?

I have that same issue


Optimize all Ramda functions

Ramda optimisation.
This is the quickest way to determine that an argument is or is not a placeholder.
There is no faster method.
PR also solves the very rare problem where someone could have an object in the app with the same key as a placeholder.

:+1: this looks good to me. Will leave open for a bit, would like at least one other to weigh in here

Will === checking affect cross-window checking? : https://github.com/ramda/ramda/issues/2533

Will === checking affect cross-window checking? : https://github.com/ramda/ramda/issues/2533

Looks like it would finally allow  WindowProxy arguments for all curried Ramda functions.
It might actually be the solution I was missing in #2533.
Have to do some tests though to confirm.

This update should make no difference on the Typescript end of things either. The current definition we have is this
import { A } from 'ts-toolbelt';

export type Placeholder = A.x & { '@@functional/placeholder': true };

I don't know if the x: Math.random() came first and the A.x was put in to support that, or the other way around. Regardless, I never understood the point of the A.x &, as I could not find any value added to the typings for it.
See playground example: https://tsplay.dev/Wyjoxw

Note that that existing behavior is there for a reason.  This doesn't mean it's not time to change it, but we should also understand what it's giving up.  I haven't found the relevant discussions yet, but the below should be pretty close:
When we wanted to add a placeholder for obvious reasons in partial application, we didn't want to go down the route that lodash had, using the library itself as the placeholder.  It was an obvious thing to do with Underscore and lodash, where the library was usually exposed using the name _.  But it didn't make sense to pass Ramda itself as the placeholder.  In fact, we wanted to go in the opposite direction.
We created a version that was meant to allow for interoperability with other libraries.  The thought was that if users passed any library's placeholder, it should just work.  To make that possible, we treated the placeholder as a protocol, simply used an obscure property, modeled after one for transducers and after the language's iteration prototcols.
It was a good idea, I still believe.  However, AFAIK, no one else ever followed this lead.  So I guess it's time to stop waiting for that, and gain the optimization.  Has anyone actually performed benchmarks to see what's gained?
So, from me, a reluctant 👍🏼 .
Let's not forget -- as demonstrated by the need to change a test case -- that this is a breaking change.

@semmel:

Dealing with the messy browser DOM in my daily job, I've always struggled processing property access limited WindowProxy with Ramda. Since isPlaceholder() permeates nearly every Ramda function, I always got an "access denied" error.

Could you describe a little more what happens here?  I'd love to see if we can fix that.  We need to move beyond our ES3/ES5 implementation, and when we do, would Symbol.for? work better?


TItle level in admin not being handled properly

The Title level in admin is meant to encompass all the data for given play title that is identical across all of its Editions and all of the Items in those Editions.
Title  --> Edition --> Item
This is why in Item, you can select which Edition it belongs to, and it will inherit all the data of that edition. And if you change the data in that Edition, that change will be inherited by all items nested within that edition.
Likewise, at the Edition level, you should be able to select a Title and the same relationship should hold: it should inherit all the data of that Title, and if you change anything in the Title, it should change for all Editions (and hence all Items) tied to that Title.
The problem right now is that there are multiple records in Title for each play. Search for Hamlet at the Title level and you get 8 results, one for each Item of this play. This is incorrect. You should get just ONE result, Hamlet, which should include the data fields exactly as they are now, but then all of the Editions of this play should be linked to, subsumed under, this ONE Title, and should inherit all that data.
Otherwise, there's no real purpose to having the Title level in admin.

Getting this right will also help a lot when the time comes to implement the new Title View, since it will be pulling data from the Title table in admin. A lot of the work of getting that view right will be already done if we get this right, I think

In the data model, there is a one-to-one relationship between Item and Edition.  The same is true of Edition and Title. Somehow, multiple Titles and Editions are being created, likely in convert_web_jsonl.py when Edition.objects.get_or_create() and Title.objects.get_or_create() is called. This script needs to be updated. (also check that deeps.jsonl is using deep_id_revised and not other variations in the old db)

(isn't there a many-to-one relationship between these levels in that multiple Items can be part of the same Edition, and multiple Editions can be part of the same Title?)

Just adding: the problem I noted with Date of First Edition search, where a 2nd edition that should appear in results (and does on the old site) does not appear, seems potentially related to this. AS does the problems with Collections and with Latin plays. Perhaps if Title level is handled right, this will also resolve?

Just to be clear:
Title (only one for each work)
Edition 1
Item 1
Item 2
..... Item n
Edition 2
Item 1 - Item n
.....
Edition n
Item 1 - Item n

Removed deep_id from Title object. Re-imported data. Still getting some >1 Title objects given differences in alternative keywords and filter genre. Probably best to manually identify which Title object to keep, then update all (un)related Editions and Items.
Titles with multiple objects:
2 Hycke Scorner
2 Aristippus, or The Jovial Philosopher
4 The Countess of Pembroke's Arcadia
3 Comedies, Tragicomedies, and Tragedies
2 Five New Plays
2 The Masque of Blackness (The Twelfth Night's Revels)
2 The Goblins
2 1 The Passionate Lovers
3 The Works
2 Appius and Virginia
2 Antonio and Mellida
2 The Masque of Augurs
4 Poems
2 The Malcontent
2 Christ's Passion
2 Two Plays
2 Fancy's Festivals
2 The Masque at Lord Haddington's Marriage (The Hue and Cry after Cupid)
2 The Heir
2 Two New Plays
2 1 & 2 The Passionate Lovers
2 Love's Labor's Lost
2 The Monarchic Tragedies
2 Julius Caesar
2 2 The Passionate Lovers
2 The Courageous Turk, or Amurath the First
2 The Blind Beggar of Alexandria (Irus)
2 Love's Sacrifice
2 Medea
2 Hippolytus
2 The Masque of Beauty
2 Masquerade du Ciel
2 Aminta
2 The Whole Works
2 Andria

Or I can make the import stricter to prevent the creation of duplicates. Will give that a try.

With title and author (thank you for the suggestion Zach), we get far fewer >1 Title objects.
4 The Countess of Pembroke's Arcadia
3 Comedies, Tragicomedies, and Tragedies
3 The Works
2 Appius and Virginia
4 Poems
2 The Malcontent
2 Christ's Passion
2 Two Plays
2 Two New Plays
2 Julius Caesar
2 Medea
2 Hippolytus
2 The Whole Works
2 Andria

Re: "Andy, where are Author Display/Filter being handled currently? Only in Title? Only in Edition? Or in both?"
We currently have both. I can retire title.authors_display and just use edition.authors. Is that correct that you'd want authors associated with Edition rather than Title?

OK, here's what should happen:
Title level: should have NO Author info
Edition Level: should have BOTH the Modern Author and the Modern Author Display fields
Item Level: should have Author (Title Page Attribution) and the new Author (Paratext) fields

We will go through the list of duplicate Titles above and let you know which ones are true duplicates and which ones need to remain. We could do this ourselves in the db but would we inadvertently break any links with the Editions? If that's not likely, then we'll just do it ourselves.

Should Actually Be One Title:
4 The Countess of Pembroke's Arcadia
2 The Malcontent [Greg 203]
2 Christ's Passion [Greg 579]
Should Remain Different/Multiple titles:
3 Comedies, Tragicomedies, and Tragedies [by Chapman, by Ford, by Marston]
3 The Works [by Daniel, by Jonson, by Marston]
4 Poems [by Gomersall, by Carew, by Milton, by Beaumont and Fletcher]
2 Two Plays [by Shirley, by Mayne]
2 Two New Plays [by Carlell, by Middleton]
2 The Whole Works [by Gascoigne, by Daniel]
2 Appius and Virginia [Greg 65, Greg 733]
2 Julius Caesar [Greg 261, Greg 403]
2 Medea [Greg 44, Greg 675]
2 Hippolytus [Greg 80, Greg 696]
2 Andria [Greg 12, Greg 91]

Re: Andy, where are Author Display/Filter being handled currently? Only in Title? Only in Edition? Or in both?
author: "Shakespeare, William"

Something has gone wonky here -- I think in reducing the Titles to one per work -- especially (or maybe only) with the ones in the list above, the distinctions between 2 works (that is, two Titles) that are different but happen to share the same title, has been lost. So now there is only one Two Plays, but it is only the one by Mayne; and at the Edition level, only the plays by Shirley in that collection have been retained, which leads to big confusion. Also, there should be quite a few Editions of The Countess of Pembroke's Arcadia, but in reducing the Titles to 1 for that title (which should only have 1, correct), also there is now only one Edition (see attached), which means results are all wrong.
Screen Shot 2023-01-26 at 1.39.12 PM.pdf

I think we will need to restore the old data and then Alan and I probably need to go through all the ones in the list above https://github.com/upenndigitalscholarship/deep/issues/72#issuecomment-1404046835 and fix them by hand.
The key thing is that there can be multiple Items associated with any single Edition, and there can be multiple Editions associated with any single Title.  (Perhaps we should have called this top level "Work" instead of "Title" since it is a little confusing but 2 different Works can happen to have the same title -- e.g., Two New Plays or Andria)

For The Countess of Pembroke's Arcadia, all records show PLAY EDITION: n/a The book edition is all 7.  It's GREG is n/a Where in the data is there indication that these are different volumes?

Something has gone wrong, but it used to be correct (as I recall).
Book Edition #s for Editions of Countess of Pembroke's Arcadia should run from 3 to 11 (with edition 5 having 2 Items; Edition 6 has two Items; Edition 7 has 5 Items; Edition 8 has 3 Items;  -- the others each have only 1 Item)
DEEP #s for items are 5030 - 5046 -- it looks like these are all still in the db at the Item level, but some Editions have been deleted in the process of reducing the Titles, and this has resulted in the Items being associated all with one Edition, and hence only 1 result if you search for the title.

If you check an older version of the db, aren't there a whole bunch of Editions of this?

It occurred to us when we got off that we could simply create a new unique identifier, the Work Identifier, that would do the job perfectly, with no outliers, of grouping all Items into the same correct Title.
This would work better than the system of using Title + Author for the reasons we discussed.
To do this, we'd need from you an excel sheet listing for each Item
DEEP #
Greg Brief
Collection
(this is a string beginning with c, then a number then a letter: we saw it there for Countess of Pembroke Arcadia and it should exist for every Item that does not have a Greg Brier)
We would then add a new Work identifier and send the sheet back to you to import.
Work Identifier would go at the Title level and would serve as the link between items and their title
The system of play edition number, then book edition number, would work to generate Editions within these Titles.
Do you want to do this? It will produce no outliers like Arcadia where the authors change. There are enough of these that it seems to us worth doing this since it produces a genuinely unique algorithmically useful way of grouping items under the same Title
(BTW we should change Title in admin to Work, i think, to avoid confusion with the ordinary title of a play)

FYI: the current Download Data csv only includes Greg_Full but NOT Greg_Brief, which makes the process of sorting properly and assigning Work Identifiers much more difficult. So if you can easily output a sheet with Greg Brief, that would be great.

Here is the spreadsheet matching every DEEP # to a Work ID
Work ID.xlsx

In admin, at the Works level, we don't need the year following the title in the name of the Work -- this is because Works don't really have "a" year; only Editions and Items have a year attached to them. The work is printed over time in many different years, and so the only years that appear in the data associated at the Work level are Date of First [publication, performance]
So these can just say "The Phoenix" instead of "The Phoenix 1607"
Screen Shot 2023-01-28 at 10.46.47 AM.pdf

(I believe that #110 and #109  are both related to this problem and will be fixed when this is all resolved.)


fix phpdoc annotation for GraphQL\Type\Definition\ObjectType::$resolveFieldFn

The field should be nullable (as per definition in constructor) but the phpDoc annotation definition do not report the nullable type.

Thanks for the PR! I would have merged it but we just merged a broader scope PR #566 which addressed this.


Using inclusive language

Replacing whitelist with allowlist
Replacing blacklist with denylist

Signed-off-by: Darshini Parikh<EMAIL_ADDRESS>

One more change required.
src/main/java/org/sdo/rendezvous/services/OwnerSignRequestVerifier.java:85: log.info("Guid successfully verified against black the list.");

Done