DOI Organizer: make it easier to identify offending item + what's wrong with the item

Describe the bug
When the DOI Organizer errors out, a typical error signature looks like:
2024-09-13 06:10:45,583 WARN  unknown unknown org.dspace.identifier.doi.DataCiteConnector @ While reserving the DOI doi:10.13025/14703, we got a http status code 422 and the message "DOI 10.13025/14703: This element is not expected. Expected is one of ( {[http://datacite.org/schema/kernel-4}creators](http://datacite.org/schema/kernel-4%7Dcreators), {[http://datacite.org/schema/kernel-4}titles](http://datacite.org/schema/kernel-4%7Dtitles), {[http://datacite.org/schema/kernel-4}publisher](http://datacite.org/schema/kernel-4%7Dpublisher), {[http://datacite.org/schema/kernel-4}publicationYear](http://datacite.org/schema/kernel-4%7DpublicationYear), {[http://datacite.org/schema/kernel-4}resourceType](http://datacite.org/schema/kernel-4%7DresourceType), {[http://datacite.org/schema/kernel-4}subjects](http://datacite.org/schema/kernel-4%7Dsubjects), {[http://datacite.org/schema/kernel-4}contributors](http://datacite.org/schema/kernel-4%7Dcontributors), {[http://datacite.org/schema/kernel-4}dates](http://datacite.org/schema/kernel-4%7Ddates), {[http://datacite.org/schema/kernel-4}language](http://datacite.org/schema/kernel-4%7Dlanguage), {[http://datacite.org/schema/kernel-4}alternateIdentifiers](http://datacite.org/schema/kernel-4%7DalternateIdentifiers) ). at line 4, column 0".
2024-09-13 06:10:47,664 ERROR unknown unknown org.dspace.identifier.doi.DOIOrganiser @ It wasn't possible to update this identifier:  doi:10.13025/14703 Exceptions code:  BAD_ANSWER
org.dspace.identifier.doi.DOIIdentifierException: Unable to parse an answer from DataCite API. Please have a look into DSpace logs.
	at org.dspace.identifier.doi.DataCiteConnector.reserveDOI(DataCiteConnector.java:467) ~[dspace-api-7.6.jar:7.6]
	at org.dspace.identifier.doi.DataCiteConnector.updateMetadata(DataCiteConnector.java:538) ~[dspace-api-7.6.jar:7.6]
	at org.dspace.identifier.doi.DOIOrganiser.update(DOIOrganiser.java:571) [dspace-api-7.6.jar:7.6]
	at org.dspace.identifier.doi.DOIOrganiser.runCLI(DOIOrganiser.java:271) [dspace-api-7.6.jar:7.6]
	at org.dspace.identifier.doi.DOIOrganiser.main(DOIOrganiser.java:103) [dspace-api-7.6.jar:7.6]

There are two problems with this:

If the DOI is not yet on a live item, it is not super easy to identify the offending item from doi:10.13025/14703, as it requires a lookup/inspection into the DOI table. Would be great if the item uuid would be logged alongside the error.

The error message doesn't make it clear what's wrong with the metadata of the item. Cases that we have seen that is causing errors are null/empty metadata values for a specific field, or the DOI being present twice, but there are other cases as well.

Would be really great if the error statement makes it clear which metadata field or value is causing the problem.
To Reproduce
Steps to reproduce the behavior:

Make sure DOI registration is configured and active  for new items
Submit an item with an empty value for for example dc.contributor.author, or put the same DOI value in two separate instances of dc.identifier.uri

Expected behavior
The offending item and offending metadata field should be clear from the log, so that the errors are easily resolved.

The cited error response is mostly the error message that the registrar's service got from some schema-driven XML parser.  We shouldn't depend on knowing or guessing what parser they use today, so it is risky to do more than to display the document we sent together with their response.
We could acquire a copy of the schema that we intend to follow in our crosswalk, and parse the crosswalk output with it to check validity before sending.  That might give us a chance to display better information about any syntactic problems.

Second thought:  rather than generating a schema-driven parser just to check for problems, simply log the metadata document as part of the error message and let people use their preferred tools to examine it.


How can we connect the nodeos with our project?

how can we change the host for nodeos? For example my nodeos is running on the azure server and now I want to connect it to my project. How can I do that. I have already given the default host and port that <IP_ADDRESS>:8888. how to do this.

You will need to change that localhost IP address to an externally routed IP address for your Azure node, assuming the process you wish to use to access it is not running on the same machine.
If you still have the problem and wish to discuss it further, please post it in https://eosio.stackexchange.com. To keep things organized, Github issues are intended for bug reporting and feature tracking, and Stack Exchange is the right place for any technical support discussions. Thanks!


VM kitt4sme.collab-cloud.eu creation in windows 10 error

Describe the bug
A clear and concise description of what the bug is.
When I try to create VM by Vagrant (see tutorial: https://github.com/c0c0n3/kitt4sme.live/blob/main/docs/bootstrap.md), in Windows 10 OS I have follow error:
Microsoft Windows [Versione 10.0.22621.1413]
==> kitt4sme: Adding box 'kitt4sme/single_node_cluster' (v0.1.0) for provider: virtualbox
kitt4sme: Downloading: https://vagrantcloud.com/kitt4sme/boxes/single_node_cluster/versions/0.1.0/providers/virtualbox.box
kitt4sme:
==> kitt4sme: Successfully added box 'kitt4sme/single_node_cluster' (v0.1.0) for 'virtualbox'!
==> kitt4sme: Importing base box 'kitt4sme/single_node_cluster'...
Progress: 70%There was an error while executing VBoxManage, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["import", "\\?\C:\Users\enric\.vagrant.d\boxes\kitt4sme-VAGRANTSLASH-single_node_cluster\0.1.0\virtualbox\box.ovf", "--vsys", "0", "--vmname", "kitt4sme_1678971946803_15122", "--vsys", "0", "--unit", "10", "--disk", "C:/Users/enric/VirtualBox VMs/kitt4sme_1678971946803_15122/box-disk001.vmdk"]
Stderr: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interpreting \?\C:\Users\enric.vagrant.d\boxes\kitt4sme-VAGRANTSLASH-single_node_cluster\0.1.0\virtualbox\box.ovf...
OK.
0%...E_INVALIDARG
VBoxManage.exe: error: Appliance import failed
VBoxManage.exe: error: Code E_INVALIDARG (0x80070057) (extended info not available)
VBoxManage.exe: error: Context: "enum RTEXITCODE __cdecl handleImportAppliance(struct HandlerArg *)" at line 1416 of file VBoxManageAppliance.cpp
doing same action in Ubuntu 20 OS, the VM works fine
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

install vagrant with virtualbox provider
go in vm folder
run: vagrant up
ERROR

Expected behavior
A clear and concise description of what you expected to happen.
Avalability to run the VM kitt4sme.collab-cloud.eu in a Win10 system
Additional context
Add any other context about the problem here.

@karikolehmainen @kostasgrevenitis we need to improve docs for open call devs. This issue is just another instance of someone bumping in a dark corner. Not sure where @INVENTIOai got the idea of using Vagrant, but we probably have some docs somewhere that mention the old Vagrant image we built two years ago.
Speaking of docs woes, see also: #201, #177

We followed the tutorial of the virtual machine in order to do a quick setup and to make an first evaluation of the platform. The next steps will be to create an installation as suggested in same tutorial. Do you confirm that the paragraph:
_
Cluster Bootstrap
One-off procedure to build & set up your KITT4SME mesh infra.
We're going to put together a single-node MicroK8s cluster to host the KITT4SME platform. What we'll build is pretty much the same as in the Demo Cluster, but we're swapping out Minikube for MicroK8s so we can still start small but then easily add more nodes in the future.
We've got an Ubuntu VM at kitt4sme.collab-cloud.eu to host the platform. (Ubuntu 20.04.1 LTS, GNU/Linux 5.4.0-42-generic x86_64, 8 CPUs, 16GB RAM/4GB swap, 120GB storage.) You can SSH into the box with e.g.
$ ssh<EMAIL_ADDRESS>The instructions below tell you what to do to build the platform on this box, but if you want to try this at home any Ubuntu box with the same specs will do. If you have Multipass, you can spin up a 20.4 Ubuntu VM
$ multipass launch --name kitt4sme --cpus 2 --mem 4G --disk 40G 20.04
$ multipass shell kitt4sme
and then follow the instructions below. Keep in mind, depending on what you'll do with your toy platform later, you might need more RAM and storage.
_
shall be ignored because not more update?

hi @INVENTIOai :-)
If you just want to try out the platform, install Multipass on your Windows machine

https://multipass.run/docs/installing-on-windows

Then create an Ubuntu VM to host a one-node cluster
multipass launch --name kitt4sme --cpus 4 --mem 16G --disk 80G 20.04

and shell into the VM
multipass shell kitt4sme

(I haven't tried those commands on Windows so you might have to tweak something, please have a look at the Multipass docs if you have any trouble.)
Once you're in the VM, follow the bootstrap procedure from the Tools section onwards

https://github.com/c0c0n3/kitt4sme.live/blob/main/docs/bootstrap.md#tools

Keep in mind you'll need to generate the initial secrets to use with the new cluster as explained in the security how-to.
At the end of the procedure you'll have a clone of our kitt4sme reference cluster implementation running on kitt4sme.collab-cloud.eu. The ArgoCD in your clone will monitoring

https://github.com/c0c0n3/kitt4sme.live

for updates and deploy them to your VM. Not sure this is what you want? Probably the best thing to do is ask your mentor for advice. Most likely you'll have to create your own repo instead of using https://github.com/c0c0n3/kitt4sme.live?
Hope this helps!


Add user management page

Codecov Report

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

@@            Coverage Diff            @@
##             master      #71   +/-   ##
=========================================
  Coverage          ?   13.98%
=========================================
  Files             ?       85
  Lines             ?     1280
  Branches          ?      154
=========================================
  Hits              ?      179
  Misses            ?     1093
  Partials          ?        8

Impacted Files
Coverage Δ

src/containers/Manage/Apps/index.jsx
0% <0%> (ø)

src/containers/Manage/Users/GroupCard/index.jsx
0% <0%> (ø)

src/components/OrgTree/index.jsx
0% <0%> (ø)

src/containers/Manage/Users/index.jsx
0% <0%> (ø)

Continue to review full report at Codecov.

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


Clapeyron.jl: restrict compat of Roots for earlier versions

is this ok to do? i had some problems with a too lax of a compat with Roots.jl v2.0, and when they removed Setfield to use Accessors, earlier versions broke. (this was fixed on 0.5.10 of the library)

fixes https://github.com/ClapeyronThermo/Clapeyron.jl/issues/257


Coverage is misreported for the frontend

Some of the files aren't being reported:

Maybe it's transpiler-related?

If all the missing files are ones that aren't covered by tests, we might need to run nyc with the --all flag (we should probably do this everywhere). If there is stuff missing that is covered, you might be right about transpilation. In that case, we may need to explicitly whitelist relevant files/dirs?

There's coverage on stuff that's missing, e.g. meta.js, headers.js. Also e.g. usage.js should be shallow-rendering, which I think would get it to 100%.

I was wondering earlier whether adding an nyc config file might be useful. I was looking at it from the perspective of the service tests (and how coverage is getting dinged incorrectly because lines like this in test helper code aren't getting hit, but it may be useful elsewhere too

We've got one :)
https://github.com/badges/shields/blob/master/.nycrc.json
I guess we are setting all: true; presumably that's the same as --all.
Ah, yea, being a test helper, create-service-tester.js probably should be ignored.

so weird. my editor was hiding it from me, my bad!

I wonder if this is what we need to do:

https://github.com/istanbuljs/nyc#nyc
https://github.com/istanbuljs/babel-plugin-istanbul#mocha-on-nodejs-through-nyc


Allow exporting constraints for pip

I've been using poetry export to generate a constraints file for use with pip. Sometime after the poetry 1.2.0a2 and poetry-core 1.1.0a7 releases, this command is now includes extras in its output such as docker[ssh]==6.0.0 which is not supported in pip constraints files.
Would you be open to at least adding an option to change this behavior? The easiest to implement would probably be something like a --no-extras flag (which may need a better name to avoid confusion with --extras). Another option would be to add support for a constraints.txt format.

We could definitely do this as constraints.txt instead of requirements.txt -- you are welcome to implement a new exporter, but I don't think anyone who works on this repo regularly has expressed any interest in writing it.

Thanks for the quick feedback. I'll take a deeper look and see how feasible it'd be for me to write the new exporter myself.
My use case is for https://github.com/certbot/certbot. It's a large monorepo containing many Python packages, some of which need to be able to function without the others, and the dependencies vary based on the OS and Python version. To help us pin everything down more reliably while allowing us to install only the subset of packages that's actually needed, we have dummy pyproject.toml files under https://github.com/certbot/certbot/tree/master/tools/pinning and scripts that use poetry to generate and export files which we then use as constraints for pip.

Adding a constraints export method to https://github.com/python-poetry/poetry-plugin-export/blob/main/src/poetry_plugin_export/exporter.py doesn't look too bad. Do you know if this text from https://pip.pypa.io/en/latest/user_guide/#constraints-files contains the full list of differences that you'd want?

Their syntax and contents is a subset of Requirements Files, with several kinds of syntax not allowed: constraints must have a name, they cannot be editable, and they cannot specify extras.

I'm imagining just dropping any extras declared for the package. For the two conditions of "constraints must have a name" and "they cannot be editable", I'd either error out or exclude the package based on y'all's preference.

I personally would factor out exporter.py into an abstract base class, then add two concrete implementations that set booleans on the base exporter. The base exporter could then output slightly differently based on the booleans set by each implementation.
You have found the canonical source for the format -- I would suggest failing for now myself on any unexportable constraints.

Thanks for the guidance.
To be clear, are you OK with the constraints exporter dropping extras (e.g. turning docker[ssh]==6.0.0 into docker==6.0.0) instead of erroring out? This behavior is what I personally want for my use case but I also think it makes sense for a constraints format.

I think it only makes sense for extras, as by definition constraints is 'versions without install details.' The same packages will be captured as Poetry locks all requested extras.
Editable installs are ambiguous and I think we should error for them. You won't need to deal with unnamed constraints as the exporter already names them with <name> @ <url>.
Looking at the code instead of remembering what it used to look like, it looks like we've already got support for format-based dynamic dispatch. As such I'd suggest that you simply move the body of  _export_requirements_txt into a new method that takes some boolean values, rewrite the method _export_requirements_txt to invoke the new common method, and introduce _export_constraits_txt using the existing dynamic dispatch.

This also came up in #108
Not to discourage contributions - quite the opposite, this is evidence that there's real demand for this! - but as I suggested there, you might find it considerably less effort to sed the extras away so that the exported requirements.txt works for you...

I don't disagree @dimbleby, but I do think that given certbot does seem to need 'real' constraints, first class support is a good idea so that they don't break in the future because of a brittle reliance on sed/"don't set develop = true".

I'm absolutely not against Someone adding this function - as I say, evidence is mounting that it's a thing people want.
I do think it's only fair to be sure that OP is aware that they probably have quicker (and dirtier) solutions available before they spend a bunch of time being that Someone.

I opened https://github.com/python-poetry/poetry-plugin-export/pull/128 for this.


TypeError: annotate() got an unexpected keyword argument'labels

If the error message "TypeError: annotate() got an unexpected keyword argument'labels'" is displayed, roll back the Supervision to the 0.7.0 version.
pip install supervision==0.7.0

Thanks so much! It solved my problem!

I solved it with pip install supervision==0.21.0


Dart server-communication sample is broken

It hasn't worked for a while. (I'm not positive it ever worked.)
https://github.com/angular/angular.io/tree/master/public/docs/_examples/server-communication/dart
Contributions welcome...

Under beta.17, a pub build yields:
Loading source assets...
Loading angular2/transform/codegen, dart_to_js_script_rewriter, observe and smoke/src/default_transformer transformers...
Loading angular2 transformers...
Building server_communication...
[Error from DirectiveMetadataLinker on server_communication|lib/toh/hero_service.ng_summary.json with input server_communication|lib/toh/hero_service.ng_meta.json]:
Missing identifier "BrowserClient" needed by "HeroService" from metadata map
[Error from DirectiveMetadataLinker on server_communication|lib/toh/toh_component.ng_summary.json with input server_communication|lib/toh/toh_component.ng_meta.json]:
Missing identifier "BrowserClient" needed by "TohComponent" from metadata map
[Info from Dart2JS]:
Compiling server_communication|web/main.dart...
[Error from Dart2JS on server_communication|web/main.dart]:
web/main.ngfactory.dart:8:1:
Can't read 'package:server_communication/toh/toh_component.ngfactory.dart' (Could not find asset server_communication|lib/toh/toh_component.ngfactory.dart.).
import 'package:server_communication/toh/toh_component.ngfactory.dart' as i1;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[Dart2JS]:
web/main.dart:

This problem ("Missing identifier ..."), and its solution are documented in https://github.com/angular/angular/wiki/Angular-2-Dart-Transformer#resolved_identifiers
The app works once more after updating the pubspec.yaml to (only excerpts shown):
name: server_communication ...
dependencies:
  angular2: 2.0.0-beta.17 ...
transformers:
- angular2: ...
    resolved_identifiers:
        BrowserClient: 'package:http/browser_client.dart'

Fixed in #1219.
cf. https://github.com/angular/angular/issues/8189


Week2

it's a pleasure, I'm completely clueless about UI5 and these exercises are way better than tutorials to really understand what's going on (I have no probs with js, but UI5 is mostly framework magic)

I am glad you find it helpful 🙌🏻


improved simulator handling

Can you explain how this relates to the changes in #4746?

I don't think this is being pursued anymore.


[MB-15792] create sit destination address change table

Jira ticket
Summary
This PR includes a migration for creating the sit_service_item_address_updates (renamed to sit_address_updates). The ticket for this PR included instruction to find a better name for the table, please reference this thread for justification behind the settled upon name and of course feel free to suggest a different name if you feel there's a better name we could use.
I believe I set everything up properly according to the technical notes but please give it the 'ol once over to be extra sure all constraints and references are properly set 🎉
Verification Steps for the Author
These are to be checked by the author.

[x] Have the Jira acceptance criteria been met for this change?

Verification Steps for Reviewers
These are to be checked by a reviewer.
Setup to Run the Code

Instructions for starting storybook
Instructions for starting the MilMove application
Instructions for running tests

How to test

Run make db_dev_migrate
Check for the new sit_address_updates table with your favorite db software and you should see the table now exists 🎉
You can also run make server_test to verify all tests still pass

Backend

[ ] Code follows the guidelines for Logging.
[ ] The requirements listed in Querying the Database Safely have been satisfied.

Database
Any new migrations/schema changes:

[ ] Follows our guidelines for Zero-Downtime Deploys.
[ ] Have been communicated to #g-database.
[ ] Secure migrations have been tested following the instructions in our docs.

Screenshots

Messages

:book:
:link: MB-15792

  Generated by :no_entry_sign: dangerJS against c7e90dafd308141325dd8dc0f78089b5ad377e3e


Download alphabet as pdf

Doesn't work on vercel :( bummer, gonna open a new pull request using a different approach


Being able to convert JSON stream to JSON definition/object

Luna <IP_ADDRESS>(latest according to 12 to september 2018)
General Summary
Being able to convert a JSON stream to an actual JSON definition
Motivation
I'm trying to make some WebSocket stuff and I've encountered a problem where I can't really convert a JSON stream to a JSON definition/object

This issue prevents from Luna Studio from showing visualizations for Stream a


Remove Service to App

http://apidocs.cloudfoundry.org/217/apps/remove_service_binding_from_the_app.html

Exist a compatibility problem among the following versions:
Environment: BLUEMIX 2.40.0 <- 204 NO BODY
Environment: PIVOTAL 2.44.0 <- 201 JSON
Environment: LOCAL_INSTANCE_1 2.25.0 <- 201 JSON

Related issue:
https://github.com/cloudfoundry/cloud_controller_ng/issues/482


Feature Request: Adding up/down and add buttons in Action Bar

These features can Puck Actionbar which can be implemented using the override prop but it would be better if they are included by default.
1. Having the ability to move your component up and down using arrows is usually provided with most drag n drop editors.
For example:
Shopify Actionbar

WordPress Actionbbar

Puck Implementation
I have implemented it using the override:

import { rootDroppableId } from "@/puck/lib/root-droppable-id";
import { IconButton, usePuck } from "@measured/puck";
import { ReactNode, memo } from "react";
import { LuChevronDown, LuChevronUp } from "react-icons/lu";
import { ActionBar as PuckActionBar } from "@measured/puck";

export default function ActionBar({
  label,
  children,
}: {
  label?: string;
  children: ReactNode;
}) {
  const {
    appState: {
      ui: { itemSelector },
      data,
    },
    dispatch,
  } = usePuck();

  if (!itemSelector) return null;

  const upDisabled = itemSelector?.index === 0;
  const downDisabled =
    (itemSelector.zone && itemSelector?.zone !== rootDroppableId && data.zones
      ? data.zones[itemSelector.zone]?.length
      : data.content.length) ===
    itemSelector.index + 1;

  return (
    <PuckActionBar label={label}>
      <IconButton
        onClick={() => {
          dispatch({
            type: "reorder",
            sourceIndex: itemSelector.index,
            destinationIndex: itemSelector.index - 1,
            destinationZone: itemSelector.zone || rootDroppableId,
          });
          dispatch({
            type: "setUi",
            ui: (ui) => ({
              ...ui,
              itemSelector: { ...itemSelector, index: itemSelector.index - 1 },
            }),
          });
        }}
        title="Move Up"
        disabled={upDisabled}
      >
        <LuChevronUp />
      </IconButton>
      <IconButton
        onClick={() => {
          dispatch({
            type: "reorder",
            sourceIndex: itemSelector.index,
            destinationIndex: itemSelector.index + 1,
            destinationZone: itemSelector.zone || rootDroppableId,
          });
          dispatch({
            type: "setUi",
            ui: (ui) => ({
              ...ui,
              itemSelector: { ...itemSelector, index: itemSelector.index + 1 },
            }),
          });
        }}
        title="Move Down"
        disabled={downDisabled}
      >
        <LuChevronDown />
      </IconButton>
      {children}
    </PuckActionBar>
  );
}

2. Adding components before and after the selected component via the action bar.
<IconButton
  onClick={() => {
    addModal.dispatch({
      type: "open",
      payload: {
        addComponent: (component) =>
          dispatch({
            type: "insert",
            destinationZone: props.zone || rootDroppableId,
            destinationIndex:
              props.zone && props.zone !== rootDroppableId
                ? appState.data.zones?.[props.zone]?.length || 0
                : appState.data.content.length,
            componentType: component,
          }),
      },
    });
  }}
  title="Add"
>
  <LuPlus />
</IconButton>

Where add component opens a popup asks to which component to add and whether to add it before or after the component.

Again implementing these features is entierly possible using the override prop. It would be better to include them from accessibility point of view.
What are your thoughts about this?

Love this suggestion, and adding it to the core action set would be fantastic. Going to mark this as Ready as I think it's pretty clear.


Unable to compile for release to the AppStore

When trying to compile with the target device set to "Generic iOS Device" I get the compilation error:
"/CBOR/SwiftCBOR/CBOREncodable.swift:38:35: Integer literal '4294967295' overflows when stored into 'Int'"

Fixed by #6.


Make Opportunity Contact Roles creation happen for both Contact Id for Role and Primary Contact

Use either one here: https://github.com/SalesforceFoundation/Cumulus/blob/rel/3.42/src/classes/OPP_OpportunityContactRoles_TDTM.cls#L220

Included in beta release version 3.48 (Beta 3) and higher

Included in production release version 3.48


Fix #1387: [Lake] Reintroduce truevals

Description
Fixes #1387: Reintroduce truevals
DoD

[x] I've updated all tests to pass
[x] Fixtures have been updated with data after subgraph issue
[x] Removed old tests that do not apply any longer
[x] Updated diagram and images for documentation

Converted to draft, i'm blocked until these PR dependencies are merged.

Fix lake so it's working again -> https://github.com/oceanprotocol/pdr-backend/pull/1458
Incremental ETL -> https://github.com/oceanprotocol/pdr-backend/pull/1423

After these dependencies are merged, I can branch again from main + cherry-pick my work into a clean PR for review


Rename entryPoint.sh to entrypoint.sh

Summary

How did you test this change?

[ ] Test(s) added
[ ] Manual testing (please provide screenshots/recordings)
[ ] No testing (please provide an explanation)

Rename entryPoint.sh to entrypoint.sh

Close in favor of https://github.com/finos/legend-studio/pull/3703


not sending in post form request

In Laravel 5.3 I have a form, with multiple select without problems. But when I use bootstrap-select for the select multiple field, then it not arrives in the request input of the post.
Only occurs when the form is inside a table

Duplicate of #1342.


[need urgent help] nothing happens when scanning?!

using latest version of ionic react
configured AndroidManifest.xml according to here
css:
body.scanner-active {
  background: transparent;
  --background: transparent;
  --ion-background-color: transparent;

  #rootapp {
    opacity: 0;
  }
}

js:
BarcodeScanner.hideBackground();
document.body.classList.add("scanner-active");
BarcodeScanner.startScan()
        .then((result) => {
          // if the result has content
          if (result.hasContent) {
            document.body.classList.remove("scanner-active");

            // show alert with data
            alert(result.content);
          }
        })
        .finally(() => {
          document.body.classList.remove("scanner-active");
        });

then I open app in android studio, I point at code and nothing happens:

Logcat seems to explode with a bunch of error messages as soon as camera turns on:

this is the error:
BufferQueueProducer E  [SurfaceTexture-0-7706-0](id:1e1a00000001,api:4,p:518,c:7706) dequeueBuffer: attempting to exceed the max dequeued buffer count (4)
I used QR code generated online that should say "testing" or something:

Please advise!

Which version of the plugin are you using?

Which version of the plugin are you using?

"@capacitor-community/barcode-scanner": "^4.0.1",
"@capacitor/android": "5.0.4",
    "@capacitor/app": "5.0.2",
    "@capacitor/browser": "^5.0.2",
    "@capacitor/core": "^5.0.4",
    "@capacitor/device": "^5.0.2",
    "@capacitor/ios": "5.0.4",
    "@capacitor/splash-screen": "^5.0.2",
    "@ionic/react": "^7.0.7",
    "@ionic/react-router": "^7.0.7",
    "@ionic/storage": "^4.0.0",

Are you able to share your project? Unfortunately, I cannot reproduce your issue on my end and it is nearly impossible to find your issue if I cannot check some nonworking code.

Are you able to share your project? Unfortunately, I cannot reproduce your issue on my end and it is nearly impossible to find your issue if I cannot check some nonworking code.

I was able to reproduce this issue within a sample project:
scantest.zip
video

Hi, @thegnuu! Were you able to take a look at scantest.zip? Is there something I'm doing wrong? What am I missing?

Unfortunately, your ZIP is not working... Can you quickly create a demo repo? This way I can make a PR if I can find an error and easily share it with you.

ok... I've sent you an invite to scantest)

Thanks! I quickly checked out your project and I was able to run it on my Pixel 6a without any issues. Your provided QR code works as well. I was never able to set up an emulator with a working camera, even though all settings seem to be okay, so I cannot test this - but your code works without any issues on my end.
Can you test it on a real device? I am not sure if the issue is related to the emulator somehow, and I don't really have time to look at this at the moment since this is not really an urgent issue IMHO

yeah... I tried building an apk to test it on my phone and it does the same... to me it is kinda urgent seeing as I can't get it to work at all, but thanks, I guess...

Not urgent was related to emulator-specific problems. The fact is, that I cannot do anything if I am not able to reproduce the issue. I am as well pretty sure that the issue is not related to the plugin itself, we are just using zxing to detect codes on Android, and since there is no usage of SurfaceTexture in this repo, the issue has to be on a deeper level.
The only thing I can offer you right now is to switch to the beta release on npm based on this branch: https://github.com/capacitor-community/barcode-scanner/tree/ml-kit
This is quite a big rewrite and zxing is replaced with ml-kit, the camera handling has changed as well, it might be possible that this version is running on your end. As a bonus, you will get better and faster results too.

@thegnuu This is not entirely related to this issue, but I'm also trying to use the ML-Kit version and I noticed the latest Release (5.0.0-beta.2) does not seem to have actually been released. The latest version showing up in NPM is 5.0.0-beta.1. And I think I might need the fix mentioned in the release notes of beta.2 😅

having the same issue on a oppoA series and windows/chrome laptop. The camera opens but there is not target overlay and nothing happens


noUnusedVariable too aggressive?

tslint version
λ tslint --version
2.3.1-beta

tslint.json
{
  "rules": {
    "no-unused-variable": true
  }
}

index.ts
'use strict';

let x = 0;

console.log(x);

Result
λ tslint --file index.ts --config tslint.json
index.ts[3, 5]: unused variable: 'x'

This surprises me. Is this intended behavior? Or am I missing something? I would consider the variable x to be used because I am passing it to a function.
If I add an exports to the file, then the problem disappears.

This might be related to https://github.com/palantir/tslint/issues/325.

@JKillian can you please verify if this has been fixed?

:+1: Not getting the unused variable warning anymore


Cannot connect Composer 2 to Cloud SQL in Shared VPC

Hi Everyone!
We follow FAST and brought up our whole organization with it. For networking, we chose the hub-spoke architecture. We created a project for our development environment that runs cloud SQL (with private IP, with host project as dev-spoke-0) and Composer 2 (following this guide). This setup works well---workers from composer are able to successfully connect to Cloud SQL.
For our production environment, we basically do the same. However, since FAST provides only dev-dataplatform-ew1.yaml for development, without a corresponding file for production, we copied the development one into the prod folder, changing the IP addresses (since we would have a conflict with the ones from development otherwise).
region: us-central1
description: Default subnet for dev Data Platform
ip_cidr_range: <IP_ADDRESS>/12
secondary_ip_ranges:
  pods: <IP_ADDRESS>/22
  services: <IP_ADDRESS>/24

Now, we deploy Cloud SQL and Composer 2 on our production project, however we are not able to connect Composer's workers to the database. Does anyone have an idea what could go wrong? We're pretty sure it's a networking issue, but have no idea how to debug it.
Any help would be great!

Hi @juliocc, ofc! Thanks a lot for the prompt answer

Are you using the data platform fast stage or are you using the blueprint directly?

We enabled the data platform option in the 0-bootstrap stage as part of our fast_features. Having said that, we haven't ran the actual stage as we don't need now most of it's components (e.g., we don't use BigQuery as our data warehouse)

How did you deploy composer in the new subnet? What configuration options did you use?

We run similar code for development and production:
development:
#  Network config code snippet
  network_config = {
    host_project      = var.network_config.host_project
    network_self_link = var.network_config.network_self_link
    # Magic from here: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/blob/2d76f809674fdae334748aeb7306cb455ed5069e/fast/stages/3-data-platform/dev/variables.tf#L143
    subnet_self_link = var.network_config.data_platform_subnet_self_link
    composer_ip_ranges = {
      cloudsql   = "<IP_ADDRESS>/24"
      gke_master = "<IP_ADDRESS>/28"
    }
    composer_secondary_ranges = {
      pods     = "pods"
      services = "services"
    }
  }

# Definition of var.network_config
network_config = {
  host_project                   = "xxx-dev-net-spoke-0"
  network_id                     = "projects/xxx-dev-net-spoke-0/global/networks/dev-spoke-0"
  network_self_link              = "https://www.googleapis.com/compute/v1/projects/xxx-dev-net-spoke-0/global/networks/dev-spoke-0"
  data_platform_subnet_self_link = "https://www.googleapis.com/compute/v1/projects/xxx-dev-net-spoke-0/regions/xxxxx/subnetworks/dev-dataplatform-xxx"
}

production:
#  Network config code snippet
  network_config = {
    host_project      = var.network_config.host_project
    network_self_link = var.network_config.network_self_link
    # Magic from here: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/blob/2d76f809674fdae334748aeb7306cb455ed5069e/fast/stages/3-data-platform/dev/variables.tf#L143
    subnet_self_link = var.network_config.data_platform_subnet_self_link
    composer_ip_ranges = {
      cloudsql   = "<IP_ADDRESS>/24"
      gke_master = "<IP_ADDRESS>/28"
    }
    composer_secondary_ranges = {
      pods     = "pods"
      services = "services"
    }
  }

# Definition of var.network_config
network_config = {
  host_project                   = "xxx-prod-net-spoke-0"
  network_id                     = "projects/xxx-prod-net-spoke-0/global/networks/prod-spoke-0"
  network_self_link              = "https://www.googleapis.com/compute/v1/projects/xxx-prod-net-spoke-0/global/networks/prod-spoke-0"
  data_platform_subnet_self_link = "https://www.googleapis.com/compute/v1/projects/xxx-prod-net-spoke-0/regions/xxxxxx/subnetworks/prod-dataplatform-xxx"
}

What have you tried to troubleshoot this? Did you try, for example, to launch a VM and try to connect to Cloud SQL from there?

Yes, using the test-sql scripts (from this blueprint), we're able to connect to the database. We're also able to connect to the database from cloudrun and cloud functions via ``VPC Access connector''

Are you getting any error message? Did you check the logs for errors?
That's a good question. We get a timeout error from within the DAGs' code. We tried looking at the db's logs to see any connection rejection but couldn't find anything--this is why we believe the issue is related to networking.

I'm trying to understand what's the difference between the production and development net-spoke projects. I saw that the networking stage sets up some firewall rules for development, which I copied for production, but seems like it didn't help. Any ideas?


[Bug/Glitch] Chest model is slightly broken

Legacy4J Version
1.XX-1.7.2
Mod Loader Version
Any
Bug/Glitch Occurrence Context
The chest model has Z-Fighting
Crash Report
No response
What happened wrong?

I've noticed a small problem with the chest(single, double, trapped, ender, minecart, and likely boat). On LCE, the top of the chest takes priority over the bottom, as many mashp/texture packs have different textures there. On java however, that overhang is absent

This isn't a Legacy4J issue, u should make a suggestion


[BUG] No session found to decrypt message

Describe the bug
I have a server with 15 connected whatsapp users.
I find this on the log from time to time:
{
  "level": 50,
  "time":<PHONE_NUMBER>900,
  "pid": 41327,
  "hostname": "ip-xxx-xxx-xxx-xxx",
  "key": {
    "remoteJid"<EMAIL_ADDRESS>    "fromMe": false,
    "id": "xxx",
    "participant"<EMAIL_ADDRESS>  },
  "err": {
    "type": "Error",
    "message": "No session found to decrypt message",
    "stack": "Error: No session found to decrypt message\n at xxx@g.us::xxx::0 [as awaitable]
     (/baileys/WASignalGroup/group_cipher.js:54:15)
     at async asyncQueueExecutor (/baileys/WASignalGroup/queue_job.js:20:29)"
  },
  "msg": "failed to decrypt message"
}

To Reproduce
Don't know how to reproduce, it happens from time to time on a server with 15 connected whatsapp users.
Expected behavior
No errors on the log
Environment (please complete the following information):

Is this on a server? yes
What do your connectOptions look like?

const { version, isLatest } = await fetchLatestBaileysVersion()
const { state, saveCreds } = await useMultiFileAuthState('myPath')
const msgRetryCounterCache = new NodeCache()

        async function getMessage(key)  {
            if(store) {
                const msg = await store.loadMessage(key.remoteJid, key.id)
                return msg?.message || undefined
            }
            // only if store is present
            return proto.Message.fromObject({})
        }

 makeWASocket({
            version,
            logger,
            printQRInTerminal: false,
            mobile: false,
            auth: {
                creds: state.creds,
                keys: makeCacheableSignalKeyStore(state.keys, logger),
            },
            msgRetryCounterCache,
            generateHighQualityLinkPreview: true,
            // ignore broadcast and newsletter messages
            shouldIgnoreJid: jid => !jid || isJidBroadcast(jid) || isJidNewsletter(jid),
            // implement to handle retries & poll updates
            getMessage,
            shouldSyncHistoryMessage: () => true,
            markOnlineOnConnect: false
        })

Do you have multiple clients on the same IP? yes, 15 clients
Are you using a proxy? no

Additional context
Using baileys v6.7.5

maybe related https://github.com/WhiskeySockets/Baileys/issues/885

I do have the same issue. Also have multiple connected WA numbers.

Maybe it's all because of using already an old and archived(by ForstaLabs) version of libsignal-node package. Maybe it's better to move to official package from signalapp ?

Same issue

Same.

Same

+1

Same @adiwajshing

+1

+1

Hey! The session is missing from your auth state. I hope all of you describe your auth state (multi-file, mysql etc.)
I am working behind the scenes on a revamp to the auth key storage situation since they are getting lost it seems

+1 I use MySQL

Same, using SQL

Same with MongoDb

1 with SQL LITE

I'm having the same problem, but only when I try to run inside a container, forcing a MAC address in the container temporarily solved it for me. Example: docker run --mac-address 02:42:ac:11:00:11 ...


Merge workflows logs into workflows show

Also, add --latest-with-logs flag
Also, improves how operation logs get outputted.

It doesn't seem that anything still uses Workflows#fetchWithOperationsAndLogs anymore.

I get these warnings, obscured by the long list of workflows to choose from:

I can't seem to find a workflow to run which will appear when I use --latest-with-logs.

@TeslaDethray I fixed the PHP warning.

I can't seem to find a workflow to run which will appear when I use --latest-with-logs.

Add yourself to the canary site and try it. Logs are a new thing.

It works well, but I think the output is a bit confusing and disjointed.

Perhaps the WorkflowOperation duration should be marked as ?s or s instead of blank? I also think the log_output is problematic, not just because it's strangely print_r'd, but because the output in JSON format is not very useful:

Maybe we should parse that string and turn it into an array inside the WorkflowOperations collection. Thoughts?

@TeslaDethray I agree about the output. That's because I'm waiting on an API change to actually input those values: https://github.com/pantheon-systems/titan-mt/pull/13993

And regarding the logs, the Log Output is just a block of text that's coming from the remote server. It's confusing maybe because that array body: is the actual log output (someone is print_r-ing something in a PHP script on the remote server)

+1


Set displayName and __ui__ at @yamada-ui/carousel

Closes #2857
Description
Set displayName and __ui__ and import FC from @yamada-ui/core to do that.

I think similar changes are necessary for the other files as well.
Please apply the same changes to the files in the same folder.

@cidkumagai Sorry, I fixed it. Please a review!

I'm sorry. I tried to merge by mistake.


current versions of everything

Forgive me, this pull request has issues - I tested rendering, but it turns out recording is broken with these changes. More tests required.

I have now tested recording, playing and rendering with these updates.


UI: Add more vertical space between events

Version: v2.2.2, v2.2.4-rc3, Master (5/16/19) (pre-existing issue)
What kind of request is this (question/bug/enhancement/feature request):
Enhancement Request
Steps to reproduce (least amount of steps as possible):

Launch a workload that you expect will fail. In my case my system-chart was set to a bad branch and I tried to deploy monitoring.
Go to pod details page and view Events.

Result:

It's difficult to tell what reason correlates to what message to the right. As you can see the newest event is
Successfully assigned cattle-prometheus/grafana-cluster-monitoring-65d7cfccd8-4sch7 to ip-172-31-41-23
But it almost looks like that message is continued below
Failed create pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container "374199911b67dc30082136664dbe9100bf21e6cb4043453f82ae8ae03882ae0f" network for pod "grafana-cluster-monitoring-65d7cfccd8-4sch7": NetworkPlugin cni failed to set up pod "grafana-cluster-monitoring-65d7cfccd8-4sch7_cattle-prometheus" network: stat /var/lib/calico/nodename: no such file or directory: check that the calico/node container is running and has mounted /var/lib/calico/
I think we should add some space between messages so it's more clear what message correlates to what reason / row.

QA policy requires me to report the milestone as what I found the issue in (latest upcoming release), but I think this can wait or if easy v2.3 would be nice. If it's super easy v2.2.4 would be nice too :)

Version: master-head (7/26/19)
Entries now have more padding and are separated by a horizontal rule. This makes it much easier to tell each appart:


fix for import override on startup

This pull request includes several changes primarily focused on improving compatibility with different Python versions and refactoring for better code readability. The most important changes include adding conditional imports for the override decorator, replacing removed uno imports, and updating method parameters and annotations.
Compatibility Improvements:

Added conditional imports for the override decorator to support Python versions 3.12+ and older versions using typing_extensions or a dummy decorator. (oxt/ext_code/impl/doc_window_factory_impl.py, oxt/ext_code/impl/python_impl.py, oxt/ext_code/jobs/focus_job.py, oxt/ext_code/jobs/loading_job.py, oxt/ext_code/jobs/log_window_job.py, oxt/ext_code/jobs/saving_job.py, oxt/ext_code/jobs/unloading_job.py, oxt/ext_code/jobs/view_job.py) [1] [2] [3] [4] [5] [6] [7] [8]

Code Refactoring:

Replaced removed uno imports in various files to ensure functionality is retained. (oxt/ext_code/impl/__init__.py, oxt/ext_code/jobs/__init__.py) [1] [2]
Updated method parameters and annotations to use more descriptive names and added @override decorator for clarity. (oxt/ext_code/impl/doc_window_factory_impl.py) [1] [2] [3]

These changes enhance the codebase by ensuring compatibility across different Python versions and improving readability and maintainability.


Add random offset capabilities to desynchronize parallel workers

Hi, this is a feature request plus code to implement it--I'd be happy to adjust the DSL or implementation if you had different ideas for how to do this. The idea is to implement the pattern described here where when several nodes are running the same code, we avoid having their crons all fire at the same time by starting each job with a random sleep.
My thought was to make the sleep distribution configurable on a per-list level, so that you can have some jobs be fuzzier than others (have a daily job have an hourly offset, an hourly job have a 2 minute offset). So the schedule.rb could look like
every(1.hour).and_about(2.minutes) do
...
end

every(:sunday, :at => '12pm').and_about(1.hour) do
end

every '0 0 27-31 * *', random_offset: <% server_offset_seconds %> do
end

Jobs in the first list would fire anywhere in the first four minutes of the hour, while jobs in the second list will fire anywhere between 12:00 and 2:00 PM, with any second being equally likely.

While it's not merged you can use:
every 1.day, at: (Time.zone.parse('10:00') + rand(0..600).seconds).localtime do

the randomness will only happy whenever the crontab is generated - is that what you're going for?
a better approach might be to specify a list of jobs that should never run together and then using some sort of simple wrapper script, execute them serially.


Spanish SVN book

What does this PR do?
Add source
Why is this valuable (or not)
First SVN spanish book in the repo
How do we know it's really free?
http://svnbook.red-bean.com/nightly/es/svn-book.html#svn-ch-0-sect-5
For book lists, is it a book?
Yes
Checklist:

[X] Not a duplicate
[X] Included author(s) if appropriate
[X] Lists are in alphabetical order
[X] Needed indications added (PDF, access notes, under construction)

Excellent addition!

Could you add "Subversion" to the page's index at the top?
Check travis output for advice on spacing


Key events don't work properly on Android Chrome (with default keyboard)

I've been trying substance (latest dev), and noticed that the key events or something aren't properly firing on android chrome, which causes quite a few bugs (like not activating the check/save button, or delete key not working, etc).
Is there anything I could do to help with that?

Chrome returns 229 as the keyup value for everything. Tested on android 5.1.1 phone and android 6 phone, latest chrome browser.
https://jsfiddle.net/milanraval/eu8tw2wk/

A long thread about the issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639

Does it ignore the key events because of this? https://github.com/substance/substance/blob/28a86924dda0ab1e060cc5111b24830e2ff20609/packages/surface/Surface.js#L254

I read some of the comments in that long thread.. installing hacker's keyboard will fix the issue with the typing and the save button getting triggered properly.
https://play.google.com/store/apps/details?id=org.pocketworkstation.pckeyboard&hl=en
So it appears to be an issue dealing with the returned keycodes.

Actually.. using hackers keyboard makes everything work like it does on desktop.

Hey @rquast,
Thanks for collecting this information. The tenor in the thread seems to be either using physical keyboards or not relying on keyboard events at all when it comes to mobile devices.
For the latter, we need to do a dedicated development iteration with those devices, which we haven't done yet. Then we probably will go there: https://github.com/substance/substance/blob/28a86924dda0ab1e060cc5111b24830e2ff20609/packages/surface/Surface.js#L104-L132, add some platform detection and register adequate handlers.
Mobile devices is on our agenda, but we won't be able to address the next 3 months.

@oliver---- yes, good idea. Someone else may do some more work on this or come up with a good solution. The thread didn't seem to have any great solutions from what I could read.

I am pretty sure things are good here now. You may want to test it out.

I faced the same issue, my solution is
$('.NumOnly').on('input', function (event) {
this.value = this.value.replace(/[^0-9]/g, '');
});
$('.NumDotOnly').on('input', function (event) {
this.value = this.value.replace(/[^0-9.]/g, '');
});
$(".AlphaDotOnly").on("input", function (event) {
this.value = this.value.replace(/[^a-zA-Z .]/g, '');
});
$(".AlphaOnly").on("input", function (event) {
this.value = this.value.replace(/[^a-zA-Z]/g, '');
});
Reference: https://stackoverflow.com/a/19111723/4425004

I faced the same issue, my solution is
$('.NumOnly').on('input', function (event) {
this.value = this.value.replace(/[^0-9]/g, '');
});
$('.NumDotOnly').on('input', function (event) {
this.value = this.value.replace(/[^0-9.]/g, '');
});
$(".AlphaDotOnly").on("input", function (event) {
this.value = this.value.replace(/[^a-zA-Z .]/g, '');
});
$(".AlphaOnly").on("input", function (event) {
this.value = this.value.replace(/[^a-zA-Z]/g, '');
});
Reference: https://stackoverflow.com/a/19111723/4425004

working, thanks

I faced the same issue, my solution is
$('.NumOnly').on('input', function (event) {
this.value = this.value.replace(/[^0-9]/g, '');
});
$('.NumDotOnly').on('input', function (event) {
this.value = this.value.replace(/[^0-9.]/g, '');
});
$(".AlphaDotOnly").on("input", function (event) {
this.value = this.value.replace(/[^a-zA-Z .]/g, '');
});
$(".AlphaOnly").on("input", function (event) {
this.value = this.value.replace(/[^a-zA-Z]/g, '');
});
Reference: https://stackoverflow.com/a/19111723/4425004

Url for the stackoverflow link is missing btw, it's just (url) in markdown.

There are heated discussions in Chromium about this issue since 2012. So far, no solution.
https://bugs.chromium.org/p/chromium/issues/detail?id=118639

URL for stackoverflow could be https://stackoverflow.com/q/54866373/4425004

I faced the same issue, my solution is
$('.NumOnly').on('input', function (event) {
this.value = this.value.replace(/[^0-9]/g, '');
});
$('.NumDotOnly').on('input', function (event) {
this.value = this.value.replace(/[^0-9.]/g, '');
});
$(".AlphaDotOnly").on("input", function (event) {
this.value = this.value.replace(/[^a-zA-Z .]/g, '');
});
$(".AlphaOnly").on("input", function (event) {
this.value = this.value.replace(/[^a-zA-Z]/g, '');
});
Reference: https://stackoverflow.com/a/19111723/4425004

@Praneshjs It's working. Thank you so much

With my experience i would like to share my knowledge,
Desktop Browsers
<input type="number">

Safari - allows Chars too (may be depends on version)
maxlength not supported.
Cursor position is unable to detect.
@keypress event detected.

<input type="text">

works as expected.

<input type="tel">

works as expected.

Android Mobile Browser (Chrome)
<input type="number">

Opens numeric keypad
@keypress event detected.
Cursor position is unable to detect.

 <input type="text">

@keypress event not even detected.
maxlength not working properly.

 <input type="tel">

@keypress event is detected.
maxlength supported.
Cursor position in input field can be detected.

Note:
For detecting cursor position I used,
let caretPos = e.target.selectionStart

Let me know is there are any ways to detect cursor position in input[type="number"].

Suggestion
For Desktop browsers, use input[type="text"] to handle cases like keypress event and replace some values using cursor position.
For Android browsers, use input[type="tel"] to handle same cases mentioned above.

I faced the same issue, my solution is
$('.NumOnly').on('input', function (event) {
this.value = this.value.replace(/[^0-9]/g, '');
});
$('.NumDotOnly').on('input', function (event) {
this.value = this.value.replace(/[^0-9.]/g, '');
});
$(".AlphaDotOnly").on("input", function (event) {
this.value = this.value.replace(/[^a-zA-Z .]/g, '');
});
$(".AlphaOnly").on("input", function (event) {
this.value = this.value.replace(/[^a-zA-Z]/g, '');
});
Reference: https://stackoverflow.com/a/19111723/4425004

Thank you very much, this has been very helpful

I faced the same issue, my solution is
$('.NumOnly').on('input', function (event) {
this.value = this.value.replace(/[^0-9]/g, '');
});
$('.NumDotOnly').on('input', function (event) {
this.value = this.value.replace(/[^0-9.]/g, '');
});
$(".AlphaDotOnly").on("input", function (event) {
this.value = this.value.replace(/[^a-zA-Z .]/g, '');
});
$(".AlphaOnly").on("input", function (event) {
this.value = this.value.replace(/[^a-zA-Z]/g, '');
});
Reference: https://stackoverflow.com/a/19111723/4425004

Thank you very much, this has been very helpful


Can't get pointer events to work

Whatever I try, I can't get pointer events to work when adding an SVGScene to the stage. Whatever else I add to the stage works interactively fine and also the stage itself fires events just fine, but for some reason not the SVG Scene. Interactive of the scene is set to true tho (also tried buttonMode just to be sure)
I tried several event types, like pointerup, tap and click. Also tried both .on() and .addListener() on both the SVGScene object (which is extended from DisplayObject) as well as the svgScene.root just to be sure.
Also created a complete fresh project with only pixi in it, just a stage and only the SVGScene added to it. But nothing seems to work.
According to the docs the events should be supported, so I don't get this.
Is there anything we should know, other than settings interactive to true, to make interactivity with pointers work?

Thanks for reporting this — can you upload the minimal repro you made onto JSFiddle / Replit. I wonder if it has to do with the SVG image you’re using.
Sent from my iPhone
Sent from my iPhone
On Feb 20, 2022, at 9:09 AM, Friksel @.***> wrote:

Whatever I try, I can't get pointer events to work when adding an SVGScene to the stage. Whatever else I add to the stage works interactively fine and also the stage itself fires events just fine, but for some reason not the SVG Scene. Interactive of the scene is set to true tho (also tried buttonMode just to be sure)
I tried several event types, like pointerup, tap and click. Also tried both .on() and .addListener() on both the SVGScene object (which is extended from DisplayObject) as well as the svgScene.root just to be sure.
Also created a complete fresh project with only pixi in it, just a stage and only the SVGScene added to it. But nothing seems to work.
According to the docs the events should be supported, so I don't get this.
Is there anything we should know, other than settings interactive to true, to make interactivity with pointers work?
—
Reply to this email directly, view it on GitHubhttps://github.com/ShukantPal/pixi-essentials/issues/50, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFLJDB7NPP3XZJB3EKMP2CLU4DYZPANCNFSM5O4OX72A.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

Hi @ShukantPal  , thanks for your quick response. I've just created a demo here using the svg you use in the example on the readme: https://codepen.io/Friksel/pen/MWOVGQL
In the demo you see two objects in the stage Container: a regular Pixi Graphics object and an SVGScene object. Currently both objects have interactive set to true. When you open the console you see there are issues when hovering over the stage. These issues are caused by the SVGScene's interactive = true. When setting interactive on the svgScene to false the issues are gone. This is not the case with the graphics object; when interactive is set to true there it just works out of the box and the click gets fired when clicking on the object.
Locally I don't see these error messages in the console tho. Locally the interactivity just doesn't work on the scene, while it does on other pixi objects. But it looks like the same issue, but with a slightly different setup.
Looks to me like a demo that shows the issue tho, especially because it's now shown with the exact same svg you're using in the example.
Hope this helps. If I'm missing something I'm all ears.
Thanks in advance!

Hi @ShukantPal , it's over a week ago I posted a demo project by your requeset, but didn't hear from you since.
We need pointer events to work on the svgScene for a project currently working on for a while now. Without even basic pointer events in the global scene (but we also need events on its children) there's basically a problem. I would think that if you saw the demo and there's no issue in the lib you would let me know, but now you're not reacting it seems like there really is an issue in the lib. If that's the case, please let me know.
Any chance you could take a look at the demo and help me on how to make pointer events work and/or fix the issue if that's the case?
Thanks in advance!

@ShukantPal Thanks! Very much appreciated!

Hi @Friksel,
It's been a while since I worked on @pixi-essentials/svg; after a bit of re-reading, I've figured it out. SVGScene is not designed to be interactive out-of-the-box. You are supposed to override the containsPoint method to make it so.
SVGScene has it's own internal scene graph, which maybe extremely complicated and expensive to hit test. I'd recommend you treat the SVG image as a "rectangle image" and make the hit-test just check if the point is in "its bounds". The alternative is to recursive go through the internal scene graph and find a node that passes hit-testing.
In the following example, the SVGScene will respond to UI events anywhere in it's "view box" (defined by the <svg /> element). Please see this modified pen for an example.
import { Point } from '@pixi/math';
import { SVGScene } from '@pixi-essentials/svg';

// Temporary point to store result in.
const tempPoint = new Point();

class extends SVGScene {
    constructor(svg: SVGSVGElement) {
        super(svg);

        // Some mixin not working with ESM. This is optional if it works without it (doesn't on CodePen)
        this.trackedPointers = {};
    }

    containsPoint(point: Point): boolean {
        this.worldTransform.applyInverse(point, tempPoint);

        // Assuming viewBox x, y is 0
        return tempPoint.x > 0 && tempPoint.y > 0
            && tempPoint.x < this.content.viewBox.baseVal.width
            && tempPoint.y < this.content.viewBox.baseVal.height;
    }
}

Let me know if you have any questions or suggestions on this!

Hi @ShukantPal , Thanks for diving into it. I am very surprised this isn't already build in. That's a huge setback. Without being able to use the SVGScene with interactivity that enormously limits the things we can actually use the SVGScene for in real life applications. That's unfortunate.
I am now trying to extend the SVGScene class tho hoping to add this and try to implement your example. But I'm already bumping into all kinds of walls making this possible.
Starting at the beginning: the from() function to load the svg and return the scene-class needs to be overriden already, because the original class don't return the new overriden class, but a SVGScene object instead, so immediately after loading everything we added to our own extended class will never be available like this.
So I tried to override that from() method too (which doesn't feel right, as we are already creating all kinds of unnecesary duplicate code, making everything larger), just to find out that you're using all kinds of things from outside the class that's not available in our project and is not exported. Things like _SVG_DOCUMENT_CACHE and the _load() function. This makes it hard to say the least to actually override the class that shouldn't even needed to be changed.
Let's say I do manage to get that from() method extended (where it looks like I pretty much have to copy a lot of code making the output larger and having duplicate code that wille never get updated by an update on the module), than we're not there yet. And then the real fun only starts: adding all the things to have the interactivity working on the scene, its children, and everything recursively. And all that with several pointer event types and it should also work when used within other containers which can zoom in and out etc. Like the pixi-viewport we're using in this project.
I keep trying, because we're already working long time on a project which uses this and I would've never thought interactivity not working. But I could use all the help with this. It would help if the original class would at least have everything available for the extended class and the SVGScene object would never be returned hardcoded. If it's even possible to avoid that, I'm not sure (perhaps something like a 'self' should be possible?).

Hey, I see the problem with extending. You can add in the method too instead since it's not defined:
SVGScene.prototype.containsPoint = function(point) { ... }

If that ↑ doesn't work, I'll add interactivity :)

Hey, I see the problem with extending. You can add in the method too instead since it's not defined:

Can't get that to work here; the prototype doesn't have the needed worldTransform. Also, everything else is ES6++ here in a Webpack environment using Babel.

If that ↑ doesn't work, I'll add interactivity :)

Thanks a lot! Guess that time is now! ;)

Hmm I updated the pen with the prototype modification. The prototype isn't supposed to have the worldTransform - it is the instantiated object / SVGScene that has it.
Make sure you're not using arrow functions as they hard set the this.
I'll add containsPoint later tonight.

ignore the trackedPointers tho

@ShukantPal  Thanks!

@Friksel Did it work?

@Friksel Would love to know what you guys are working on!

@Friksel Did it work?

@ShukantPal  I tested it without the arrow function and indeed this is now available inside the containsPoint  function. Nice to know. The function works also when the SVGScene is inside another pixi container and I've tested it within pixi-viewport with success.
Now the containsPoint is added I've also tested other pointerevents and they seem to work on the scene as a whole: When setting interactive on the scene to true and use addListener to catch pointermove-events they are being fired when hovering over the scene. They also have e.data.global location values.
Next to this I've tested and see coming in the 'pointerdown', 'pointerup', 'click' events.
The wheel event isn't being fired here on the scene, but that's most probably because it's been captured by the wrapping pixi-viewport that handles the wheel.

I'll add containsPoint later tonight.

So it looks like adding the containsPoint fixes the interactivity for the SVGScene as a unit! Very nice. I see you closed the issue, but I don't see the change to the lib yet, so I might be missing something? The workaround is at place here now, so no hurry, but looking forward to get the new lib with the change!
This works fine for capturing movements in the SVGScene as a unit, but I'm failing to see how we can add click events to the children. I've tried it with code below, but am not sure if this is supposed to work like this. Am I missing something? How can we capture events on childelements to add events to graphic nodes as regions?
const child = this.map.root.children[0];
child.addListener('click', () => {
      console.log('click on child')
});

@Friksel Would love to know what you guys are working on!

It's an interactive illustration which can be dragged and zoomed users click on to get information on regions.
I'd say the containsPoint can be added! Just a sidenote (I'm sure you thought of this, but just in case): SVGs don't need to have a viewBox attribute, so not sure if this also works on those SVGs. For us that's no problem tho, as we're always working with viewBox-es and perhaps that's even a requirement by your lib? Just wanted to throw that out there.
Thanks again for your help!

@Friksel Did it work?
@ShukantPal I tested it without the arrow function and indeed this is now available inside the containsPoint function. Nice to know. The function works also when the SVGScene is inside another pixi container and I've tested it within pixi-viewport with success.
Now the containsPoint is added I've also tested other pointerevents and they seem to work on the scene as a whole: When setting interactive on the scene to true and use addListener to catch pointermove-events they are being fired when hovering over the scene. They also have e.data.global location values.
Next to this I've tested and see coming in the 'pointerdown', 'pointerup', 'click' events.
The wheel event isn't being fired here on the scene, but that's most probably because it's been captured by the wrapping pixi-viewport that handles the wheel.
I'll add containsPoint later tonight.
So it looks like adding the containsPoint fixes the interactivity for the SVGScene as a unit! Very nice. I see you closed the issue, but I don't see the change to the lib yet, so I might be missing something? The workaround is at place here now, so no hurry, but looking forward to get the new lib with the change!
This works fine for capturing movements in the SVGScene as a unit, but I'm failing to see how we can add click events to the children. I've tried it with code below, but am not sure if this is supposed to work like this. Am I missing something? How can we capture events on childelements to add events to graphic nodes as regions?
const child = this.map.root.children[0];
child.addListener('click', () => {
console.log('click on child')
});
@Friksel Would love to know what you guys are working on!
It's an interactive illustration which can be dragged and zoomed users click on to get information on regions.
I'd say the containsPoint can be added! Just a sidenote (I'm sure you thought of this, but just in case): SVGs don't need to have a viewBox attribute, so not sure if this also works on those SVGs. For us that's no problem tho, as we're always working with viewBox-es and perhaps that's even a requirement by your lib? Just wanted to throw that out there.
Thanks again for your help!

So the child problem is kind of why I didn't want to make add a "default" way of adding interactivity. Although @pixi-essentials/svg does provide a scene graph, it's a "disconnected" internal scene. The scene graph is an "implementation detail". Usually, if you are rendering an arbitrary SVG file — this won't be an issue (pun intended). That does means the this.root is not a child of SVGScene, and it's protected from the outside.
The reason behind this is to give you performance optimization out of the box:

The scene is automatically culled on each render.
The transform matrices are not recalculated if they didn't change at the root.

Back to adding interactivity, there are a couple of ways to go about this:

Since the "root" node is disconnected from the SVGScene, you could treat the SVGScene as a factory:

import { SVGScene } from '@pixi-essentials/svg';

const stage;
const scene = new SVGScene(svgsvgElement);

stage.addChild(scene['root']);

You loose the performance optimizations described earlier, but they might not matter if you need hit testing inside the scene already.

Create an interaction bridge.

You can use PixiJS' TreeSearch to do hit testing for you on the "root" of inside all SVGScene events.
// TODO: Convert to factory format and reuse code for other events

const scene = new SVGScene(el);
const treeSearch = new TreeSearch();

scene.on('pointerdown', (e) => {
  // Note: Use a different event object
  treeSearch.hitTest(..., (nextEvent) => {
    nextEvent.target?.emit('pointerdown', nextEvent);
  });
);
});

The new EventSystem has better support for this. Here, you'd have to check if the target object changed between pointerdown and pointerup before emitting a click event.
With this method, you could use a faster hit testing algorithm if you know parts of the scene you don't want to search through or if you want to use something like a spatial hash cause the SVG tree is huge.

@ShukantPal Thanks, I didn't have the time to test this yet, but I will. Does this mean you're not adding containsPoint like you would before?

Yeah, since the prototype modification worked that doesn't seem necessary. I can add it to the documentation though.

Yeah, since the prototype modification worked that doesn't seem necessary. I can add it to the documentation though.

It's your lib, so you decide, but I totally don't get this decision. Why wouldn't you just add it to fix the interactive not working/being broke? Right now all pointer events throw issues when using the way people are used to use pixi and displayobjects are supposed to work. While by only adding 2 lines of code you could avoid that and make interactive work on the scene and fix this. And prevent all kinds of confusion and us needing to do this strange workaround on prototype while working completely in ES6+...

Hey guys just wanted to check if there are any updates to this. We are looking to use this for adding interactivity on the sv elements, while keeping the performance optimisation mentioned.

I haven’t had the time to make a fix. I’m accepting PRs though. I think adding a containsPoint method to your SVGScene as described should make basic interaction work.


flow stream direction backwards for backward integration

Describe the bug
Backward and bi-directional flow indicate flow in the wrong (opposite) direction when "Show Stream Direction" is checked.
Helpful additional information
(Please click check boxes AFTER submitting ticket)

[ ] Did VAPOR crash?
[x] Did you get wrong results?

Impact

[ ] High - User productivity significantly degraded
[x] Medium - User productivity partially degraded
[ ] Low - User productivity trivially degraded

To Reproduce
Steps to reproduce the behavior. For example:

Create a Flow object, and choose either bi-directional or backwards flow
Under "appearance" check "Show Stream Direction"
Notice that the flow direction is in the wrong direction for the backwards flow

Expected behavior
Flow direction should be in the correct direction.
Attachments
Desktop

Fedora 40
Vapor 3.9.2 AppImage

I have shaded the streamlines by vertical motion, where red is positive. So arrows should point upwards if they are red and downwards if blue.
In the first (top) image I checked "Forward" for flow direction, and it displays correctly.
In the second (middle) image I checked "Backwards" for flow direction and all streamtubes are indicating the wrong (opposite) direction
In the third (bottom) image I chose "Bi-Directional" and you can see how the forward part is right but the backwards part is wrong.


[FEAT] Create Endpoint to Store Session or User Cookies

Description
Implement backend functionality to support storing session or user cookies, ensuring they are securely stored and applied correctly across the application.
Acceptance Criteria
Database Schema Update

Update the database schema to include user session details (userId, sessionId, expiry).
Ensure the schema can accommodate future additions.

API Endpoints Implementation

Create an endpoint to store session cookies.
Implement an endpoint to retrieve the user's current session details.

Session Management

Validate inputs for userId and sessionId.
Store session details securely in the database.
Ensure session details are applied consistently across user sessions.

Security and Performance

Implement proper authentication and authorization for updates to the user's session details.

Documentation

Create comprehensive API documentation for all new endpoints.
Include examples of request/response payloads in the documentation.

Purpose
Provide backend infrastructure to manage and store user session details, enabling a secure user experience.
Requirements

Create API endpoints for:

Setting user session details.
Getting user session details.

Implement server-side validation for session inputs.
Ensure session details are applied to all user-facing content.
Write unit tests for new endpoints and logic.
Update API documentation to include new session-related endpoints.

Expected Outcome
Successfully store and apply user-selected session details across the different parts of the application.
Endpoints
Store User Session

Description: Store session details for a user.
POST /api/v1/session

Request Body:
{
  "userId": "user123",
  "sessionId": "session456",
  "expiry": "2024-12-31T23:59:59.000Z"
}

Response (Success):
{
  "status": "success",
  "message": "Session details stored successfully.",
  "data": {
    "userId": "user123",
    "sessionId": "session456",
    "expiry": "2024-12-31T23:59:59.000Z"
  }
}

Response (Error):
{
  "status": "error",
  "message": "Invalid session details passed.",
  "statusCode": 422
}

{
  "status": "error",
  "message": "You are not authorised for this action",
  "statusCode": 401
}

Get User Session

Description: Get the current session details for a user.
GET /api/v1/session

Response (Success):
{
  "status": "success",
  "data": {
    "userId": "user123",
    "sessionId": "session456",
    "expiry": "2024-12-31T23:59:59.000Z"
  }
}

Response (Error):
{
  "status": "error",
  "message": "You are not authorised for this action",
  "statusCode": 401
}

Testing

Develop unit tests for all new endpoints and database interactions.
Implement integration tests to ensure session details are stored and retrieved correctly across the application.

seems weird to store session cookies in an endpoint ither than login

amendment made

@Heccubernny
"Successfully store and apply user session details across the different parts of the application."
Could you be a little more detailed?

Okay

@highb33kay done.

@highb33kay please check this,

Like Mark mentioned why isnt this part of the login fuctionality?
Also this could be seesions management endpoint to Logout of logged in devices?


[Docs] Remove fields whose content is not well-defined

Some fields are not well defined and include multiple information, most of which already included elsewhere: "vibrational spectrometer configuration specification"; "Raman spectrometer configuration"
I suggest to remove them.

These two classes (not fields) exist indepently from each other as a Raman spectrometer configuration can have different aspects/parts than a vibrational spectrometer configuration. After all we want this to be a vibrational spectroscopy ontology and not just a Raman specific one.

Also "vibrational spectrometer configuration specification" (which should better be renamed to "vibrational spectrometer configuration setting" to be in line with the other subclasses of IAO:setting datum) is not the the same as a "vibrational spectrometer configuration" (which we didn't mint yet) as the former refers to the information entered into the device or stored in some config files that determines the actually physical qualities of the spectrometer.


Release to ROS Lunar

This package is blocked by none, but blocking the following:

calibration
jsk_visualization
robot_model
srdfdom

I see it in https://raw.githubusercontent.com/ros/rosdistro/master/lunar/distribution.yaml
Looks like it got released!


Remove all legacy Python components

All old Transforms etc must go

We'll try to make the new Transform API match the old API, and then remove the old Transform


Add option to create collections/properties at startup

Given balderdashy/waterline#846 / balderdashy/waterline#853 are in a standstill, add a workaround that will enable waterline-orientdb to create missing collections/properties at startup (.registerCollection()).
This workaround will be disabled by default.

Reverted by d0a5e90 since balderdashy/waterline#853 was merged.


Programming exercises: Add R programming language template

Checklist
General

[x] I tested all changes and their related features with all corresponding user types on a test server.
[x] Language: I followed the guidelines for inclusive, diversity-sensitive, and appreciative language.
[x] I chose a title conforming to the naming conventions for pull requests.

Server

[x] I strictly followed the server coding and design guidelines.

Changes affecting Programming Exercises

[x] High priority: I tested all changes and their related features with all corresponding user types on a test server configured with the integrated lifecycle setup (LocalVC and LocalCI).
[ ] I tested all changes and their related features with all corresponding user types on a test server configured with Gitlab and Jenkins.

Motivation and Context

Students from the University Innsbruck requested support for integrating the R language into Artemis.
Description

This PR adds the R programming language as an exercise template. It is structured according to R Packages (2e) and uses testthat as the testing framework. Thanks to Johanna and Marco for providing an exercise.
Steps for Testing

Prerequisites:

1 Instructor
1 Student

Navigate to the programming exercise creation page
Select the R language
Fill out the required fields and submit
The Template Result should show 0 passed tests and no build failure
The Solution Result should show 4 passed tests and no build failure

Testserver States

[!NOTE]
These badges show the state of the test servers.
Green = Currently available, Red = Currently locked
Click on the badges to get to the test servers.

Review Progress

Code Review

[ ] Code Review 1
[ ] Code Review 2

Manual Tests

[ ] Test 1
[ ] Test 2

Test Coverage

Screenshots

Summary by CodeRabbit
Release Notes

New Features

Added support for the R programming language in programming exercise templates and documentation.
Introduced a default.sh script for R package installation and testing.
Implemented CI/CD configurations for R in GitLab and Jenkins.
Added the matrix_to_column_list function for matrix manipulation in R.

Enhancements

Expanded language support in various services and enums to include R.
Updated documentation and metadata for R-related packages.

Bug Fixes

Improved handling of R in existing workflows to prevent unsupported operation exceptions.

Yes, it's easy to add dependencies. Just add the package name to the Imports: section of the DESCRIPTION file and they will be installed automatically.


Fix Linear Map for Cargo 1.71

Motivation
In the latest version of Cargo the implementation of Drop for linear map does not compile.
Changes
Revert Drop impl to previous implementation.

This patch isn't correct. Like the new code says, Vec already implements Drop, so your change will call drop() twice on the contents.
Just removing the drop(&self.buffer) is enough.

I did notice it continued to work when the entire Drop impl was removed, didn't realize it actually is not necessary. I will just remove it then, thanks.

There seems to be something wrong with the commits here, perhaps a git revert gone wrong?
I made a separate PR to fix in #388

cool yeah this PR desperately needed a rebase

fixed in #388


fix transition to stringi from stringr text wrapping

for some reason when i swapped the stringr::str_wrap() function with stringi::stri_wrap(), i get different results in the pizza plot axis text, even though stringr::str_wrap() is supposed to be just a wrapper for the {stringi} version...

this is what the difference looks like:

a few default options in stringr::str_wrap aren't declared the defaults in stringi::stri_wrap and that's why there's a difference along with the fact that in str_wrap the output is concatenated at the very end
so once i apply the same arguments + the vapply concatenate at the end, i get the same result using {stringi} functions which is what we want

since pizza plot function has like 23852845 permutations, replacing the above snippet for each is silly
sooo i'm going to create a wrapper function then ctrl+F & replace that into each

stri_wrap(x, width = 10, whitespace_only = TRUE, simplify = FALSE)
vapply(blargh, stringi::stri_c, collapse = "\n", character(1))

yep looks good:

Ryo - is this issue closed? Looks like we need some more work on this

what makes you say that? did we get a bug issue from somebody?
as the above commits, it's all done. I just forgot to close this issue haha


Allow a DbContext to have a derived service implementation registered

AddAppDbContext in ef core has an overload allowing a developer to specify a "Service Type" and an "Implementation Type" for a DbContext. This allows you to have a base type in a Domain project and a particular implementation in a different project. This pull request is based on the ef core code here: https://github.com/dotnet/efcore/blob/c69926a8cdd05f4427e89ac8bac734e490b3d23a/src/EFCore/Extensions/EntityFrameworkServiceCollectionExtensions.cs#L351
The result is that I can now do this in my Startup.cs
services.AddDbContextFactory<AppDbContext, SqlServerAppDbContext>();

I don't know what you would like to do about Tests for this, as I didn't want to disrupt the existing setup.

Hi @Meberem thanks for taking the time to do this! I've been very busy, so I'll try to take a look in the coming weeks, sorry about it.

Hey @vany0114, do you think you'll have a chance to look at this any time soon?


Rm util cruft

Random cleanup.
Checklist
Thank you for your contribution. Please answer the following:

[X] I acknowledge that I am authorized to submit this code under
the terms of the Apache License
[ ] All new public APIs are documented
[ ] All new public functions have tests
[ ] All new public functions have fuzzing tests

This big, but it's all file deletions and a couple of git mv calls.


zeromq broker support

Celery has experimental support for ZeroMQ broker.
ZeroMQ is brokerless high performance message queue that outperforms others.

Celery doesn't have support for this anymore, it was more of an experiment but I'm not sure it ever worked properly.
ZeroMQ is definitely high performance, but it's unfair to compare that to RabbitMQ since 0mq doesn't actually implement the same features (the broker part is not something you can easily let go of if you need delivery guarantees).
Using ZeroMQ for Celery would involve designing a persistency layer (unless you only want to support transient messaging, which is certainly useful for some applications), service discovery etc.
If you find a pattern that works then we'd definitely want to have that in the Python version also.
Btw, I'm very impressed with your project, really great work!  Have you looked at the new message protocol in Celery 4? http://docs.celeryproject.org/en/master/internals/protocol.html#task-messages


feat(frontend): signer i18n texts

Motivation
To ease the integration of the PRs related to the signer, this PR aims to provide all texts that will be consumed in the upcoming PRs.
Notes
This PR is a split of #2293 in which the eslint rules are passing - i.e. all texts will be consumed.
Changes

Add texts in en.json and generate types.

@AntonioVentilii-DFINITY re-review?


lint awesome with awesome-lint as an Action

Adds an Action for linting with awesome-lint when opening PRs into awesome so that linting issues could be addressed earlier. Addresses #1365.
🖖 I have read through the requirements multiple times. I believe it satisfies all of the requirements.

I decided to rename master branch to main, and apparently that permanently closes all PRs. Ugh. Sorry about that. Can you reopen this PR targeting the main branch? Include a link to this PR in the new one, so we can quickly see what was discussed previously.


Unset 40th bit of the lport address (broadcast)

Thanks, Ryan.
Signed-off-by: Hui Kang<EMAIL_ADDRESS>

Looks like the build failed.


Support for scala 2.12.12

Lib not available for above version of scala
https://repo1.maven.org/maven2/com/sksamuel/scapegoat/

Solved in #407. The next published version will have support for 2.12.12

It looks like a release hasn't been published yet.


Room sid for room specific message in RoomService

@davidzhao @cnderrauber Please consider this a draft PR for requesting feedback. I still need to enhance/add tests if this direction is okay.
Things get a wee bit unwieldy with both name and sid. We have to maintain maps by both in stores and ensure we operate on them. Not bad, but was just wondering if there is a better option. This would get more unwieldy when I start handling requests which take both room and participant info. Will have to check 4 combinations of room name + participant identity, room name + participant sid, room sid + participant identity, room sid + participant sid. Again, may not be too bad. But, wanted to check if there is a more elegant way to handle these.

Abandoning


Add. support CURLOPT_CULRU

Coverage increased (+0.03%) to 64.982% when pulling 01f8a3cdc1603bc29168ad145c57e5fa21cb8feb on moteus:curlu_option into c03bade35bb4e31c59b6d9f413d9af6eca13ece0 on Lua-cURL:master.


Add configuration into settings.py

#184
You can define the favicon, title and logo  adding this lines into settings.py file:
...
ADMIN_CONFIG = {
    'ADMIN_NAME': 'My Site Admin',
    'ADMIN_HEADER': '<img class="responsive-img" src="'+MEDIA_URL+'images/logo.png">',
    'FAVICON': MEDIA_URL+'images/favicon.ico',
}

Sorry, I don't think that it's required

Let me give a more detailed explanation why this pull request was rejected.
The first, and the main reason that the overriding templates and static files  is the desired way to modify admin or other 3d party apps. That's listed in the django docs - https://docs.djangoproject.com/en/1.10/ref/contrib/admin/#adminsite-attributes
So your initial solution posted at https://github.com/viewflow/django-material/issues/184 mostly correct.
The second issue that the logo is going to be removed from a sidebar since the new version of MaterializeCSS and Google material design guidelines suggest having user pic here.
Here is screen of the new django-material frontend and admin going to have the same layout

The third issue is the inconsistent settings name. Material-admin already have MATERIAL_ADMIN_SITE, so the new one settings definitely should have a name started with MATERIAL_ADMIN to be consistent with existing and not to accidently collide with some settings from other packages.
The fourth issue is the new template tag library for the admin misplaced into the root material package and ignored the existing material_admin tag library.
I'm also not ok with the idea of injecting settings value into the template with template filter. To be more django-like it should be implemented as assignment tag.

Thanks for your answer.
I will wait for the new layout admin frontend.


Cannot procced to dashboard after login

⚠ IMPORTANT ⚠ Please check the following list before proceeding. If you ignore this issue template, your issue will be directly closed.

[x] Read the docs.
[x] Make sure the code is up to date. (Some bugs have been fixed in the latest code)
[x] This is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.

Describe the bug
After modifying the login function , i removed the token part and I cant login now. My backend used Laravel sanctum/csrf-cookie which is cookies based auth then it will set it to header in x-xsrf-token that's why i removed the set token.
Is there other way to fix it? been 2 days working out on how to fix the problem but unfortunately I cant fix it.
Thank you
System Info

Operating System: Windows 10
Node version: v16.14.0
Package manager (npm/yarn/pnpm) and version: yarn v1.22.17

already solved the issue.
will close the ticket.


commonsLang: 3.11 -> 3.12.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/commons-lang/versions.
meta.description for commonsLang is: "Provides additional methods to manipulate standard Java library classes"
meta.homepage for commonsLang is: "http://commons.apache.org/proper/commons-lang"
meta.changelog for commonsLang is: ""
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

directory tree listing: https://gist.github.com/4747fda3731f88ebeba736054f4a7bbc

du listing: https://gist.github.com/3c9b07d5a733dafb87c401b6433da4e5

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
1 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
commonsLang

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/h9my5ivrqlcvdh73x6dr2f8h3wjbr407-commons-lang-3.12.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A commonsLang https://github.com/r-ryantm/nixpkgs/archive/82a4782b24b06bbb6f2150b347d84b8954cd03dc.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/h9my5ivrqlcvdh73x6dr2f8h3wjbr407-commons-lang-3.12.0
ls -la /nix/store/h9my5ivrqlcvdh73x6dr2f8h3wjbr407-commons-lang-3.12.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

commonsLang

Maintainer pings
cc @copumpkin for testing.

Result of nixpkgs-review pr 114950 at 82a4782b run on aarch64-linux 1

1 package built:

commonsLang

1 suggestion:

warning: missing-phase-hooks
installPhase should probably contain runHook preInstall and runHook postInstall.
Near pkgs/development/libraries/java/commons/lang/default.nix:12:3:
   |
12 |   installPhase = ''
   |   ^


Add linting and code style badge

Closes #70
No code changes required as this matches the current coding style.

I'm breaking my commits down into smaller PRs. The faster you merge them, the faster I'll send 'em. :smile: