Missed state when create a new UserAgentApplication

I'm submitting a...

[ ] Regression (a behavior that used to work and stopped working in a new release)
[X] Bug report
[ ] Performance issue
[ ] Feature request
[ ] Documentation issue or request
[ ] Other... Please describe:

Browser:

[ ] Chrome version XX
[ ] Firefox version XX
[ ] IE version XX
[ ] Edge version XX
[ ] Safari version XX

Library version

Library version: 1.0.2

## Current behavior

In Configuration.ts we have the following lines to describe and define AuthOptions:

/**
 * @type AuthOptions: Use this to configure the auth options in the Configuration object
 *
 *  - clientId                    - Client ID of your app registered with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview in Microsoft Identity Platform
 *  - authority                   - You can configure a specific authority, defaults to " " or "https://login.microsoftonline.com/common"
 *  - validateAuthority           - Used to turn authority validation on/off. When set to true (default), MSAL will compare the application's authority against well-known URLs templates representing well-formed authorities. It is useful when the authority is obtained at run time to prevent MSAL from displaying authentication prompts from malicious pages.
 *  - redirectUri                 - The redirect URI of the application, this should be same as the value in the application registration portal.Defaults to `window.location.href`.
 *  - postLogoutRedirectUri       - Used to redirect the user to this location after logout. Defaults to `window.location.href`.
 *  - state                       - Use to send the state parameter with authentication request
 *  - navigateToLoginRequestUrl   - Used to turn off default navigation to start page after login. Default is true. This is used only for redirect flows.
 *
 */
export type AuthOptions = {
  clientId: string;
  authority?: string;
  validateAuthority?: boolean;
  redirectUri?: string | (() => string);
  postLogoutRedirectUri?: string | (() => string);
  navigateToLoginRequestUrl?: boolean;
};

## Expected behavior

As you can see in the comments below, is an state propertie, that is missing in the type AuthOptions

## Minimal reproduction of the problem with instructions

If is not included since new versions, how can I manage it, and pass state? I need it to control state after callback in SignIn or EditProfile policies

Hi @dluque92, we allow the user to pass a state in the AuthenticationParameters object, which is the object sent in the login and acquireToken requests.
/**
 * @link AuthenticationParameters}AuthenticationParameters
 */
export type AuthenticationParameters = {
    scopes?: Array<string>;
    extraScopesToConsent?: Array<string>;
    prompt?: string;
    extraQueryParameters?: QPDict;
    claimsRequest?: string;
    authority?: string;
    state?: string;
    correlationId?: string;
    account?: Account;
    sid?: string;
    loginHint?: string;
};

let loginRequest = {
   state = "1234"
};

loginPopup(loginRequest).then(loginResponse => {
   let responseState = loginResponse.accountState;
}).catch(error => {
   console.log(error);
});

This pattern should be the same for all of the login and acquiretoken APIs. Please let me know if you are still having issues.

@pkanher617 I got tslint error when why to pass state property, because its not defined in type

Hm I haven't received this error before. Could you post a code snippet of your acquireToken or login call and the request object you are constructing?

Hi @pkanher617 the new UserAgentApplication expects config with this format:
https://docs.microsoft.com/bs-latn-ba/azure/active-directory/develop/msal-js-initializing-client-applications

export type Configuration = {
    auth: AuthOptions,
    cache?: CacheOptions,
    system?: SystemOptions,
    framework?: FrameworkOptions
};

@dluque92 As of MSAL.js v1.0.0, we no longer accept state as a configuration parameter. This is because the state needs to be set per request, not per instance of MSAL.
The new configuration objects and parameters can be found here.
We have also changed how the requests for login and acquireToken are made. A new object called AuthenticationParameters is now used to pass state.

@dluque92 To expand specifically how a request looks:
export type AuthenticationParameters = {
scopes?: Array;
extraScopesToConsent?: Array;
prompt?: string;
extraQueryParameters?: Dict;
claimsRequest?: string;
authority?: string;
state?: string;
correlationId?: string;
account?: Account;
sid?: string;
loginHint?: string;
};
We will be sticking to this more or less(except may be adding some more params if there is a user need). Please check the 1.0.0 announcement for more details.

@sameerag Then this file is wrong:
https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/bff2b7007bfa7283fe8b9b77ca95994e5cef5c97/lib/msal-core/src/Configuration.ts
/**
 * @type AuthOptions: Use this to configure the auth options in the Configuration object
 *
 *  - clientId                    - Client ID of your app registered with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview in Microsoft Identity Platform
 *  - authority                   - You can configure a specific authority, defaults to " " or "https://login.microsoftonline.com/common"
 *  - validateAuthority           - Used to turn authority validation on/off. When set to true (default), MSAL will compare the application's authority against well-known URLs templates representing well-formed authorities. It is useful when the authority is obtained at run time to prevent MSAL from displaying authentication prompts from malicious pages.
 *  - redirectUri                 - The redirect URI of the application, this should be same as the value in the application registration portal.Defaults to `window.location.href`.
 *  - postLogoutRedirectUri       - Used to redirect the user to this location after logout. Defaults to `window.location.href`.
 *  - state                       - Use to send the state parameter with authentication request
 *  - navigateToLoginRequestUrl   - Used to turn off default navigation to start page after login. Default is true. This is used only for redirect flows.
 *
 */
export type AuthOptions = {
  clientId: string;
  authority?: string;
  validateAuthority?: boolean;
  redirectUri?: string | (() => string);
  postLogoutRedirectUri?: string | (() => string);
  navigateToLoginRequestUrl?: boolean;
};

@dluque92 Thanks for pointing that out. I will fix the comments right now.

@pkanher617 But also, the AuthenticationParameters has been changed, As you said here
How can we pass state in this case?
Thanks!

@dluque92 This is still the configuration object.
Please see my above comment and the AuthenticationParameters.ts class.

@dluque92 as @pkanher617 mentioned above, AuthenticationParameters.ts class has the detail on how to send the 'state' per request. Closing this issue as #780 is in dev.


Issue while extracting init logic to separate module

Hi. I've been checking this tool for a few days and find it amazing, thanks!!
I'm developing a serverless application that will deploy a number of different lambdas, many of which need to access kyselys functionalities. For that, I want to extract the init logic new Kysely<Database>{...} to a reusable method which can be called from the different functions that require it.
My current codebase is as follows
const createDBConnection = () => new Kysely<SilverTables>({
    dialect: new MysqlDialect({
        // Empty pool configuration. Pool is mandatory to instantiate a Kysely object.
        // We won't be relying on Kysely to execute the query, only to build it.
        pool: createPool({}),
    })
})

const db = createDBConnection();

//entry point
const handler: Handler<APIGatewayEvent, ReturnType> = async (event) => {
    const queryBuilder = createQueryBuilder('1');
    const queryResult = await executeQuery(queryBuilder);

    return queryResult;
}

const createQueryBuilder = (id: string) => db.selectFrom('table).where('id', '=', id).select(['column']);

const executeQuery = <DB, TB extends keyof DB, O>(queryBuilder: SelectQueryBuilder<DB, TB, O>): Promise<O[]> => {
    const compiledQuery = queryBuilder.compile();
    let queryString = compiledQuery.sql;
    const params = compiledQuery.parameters;

    for (const param of params)
        queryString = queryString.replace('?', String(param));

    return dataAccessAPI(queryString);
}

If if move the createDBConnection method to a separate module, I start getting the following error: Property '#private' in type 'SelectQueryBuilder' refers to a different member that cannot be accessed from within type 'SelectQueryBuilder'.. Any ideas?
Thanks in advance

Are you using any framework such as sst to build your ser erless app?

SAM, but at this stage, the issue (IMHO) is not related to the app architecture

If stuff starts breaking when you're moving code around, I'd suspect the build tools and frameworks as well..
We're using kysely in production, exposing a similar "gimme db instance" function from a local package to other modules in our monorepo, and we haven't had such issues.
What kysely version are you using? Are you using other kysely related packages?
Could you provide a repository that reproduces this issue?

This is a little bit off topic, but regarding the createDBConnection function: you don't need to create a dummy mysql pool. You can do this instead:
const createDBConnection = () => new Kysely<SilverTables>({
    dialect: new MysqlDialect({
        createAdapter: () => new MysqlAdapter()
        createDriver: () => new DummyDriver(),
        createIntrospector: (db: Kysely<unknown>) => new MysqlIntrospector(db),
        createQueryCompiler: () => new MysqlQueryCompiler(),
    })
})

This way your module doesn't depend on the mysql2 dialect at all. All of those classes can be imported from kysely.

@jmezzeragp Feel free to continue the discussion here even though I closed it.


[DropdownMenu] Using mouse to select drop down item traps mouse in active text selection

Bug report
This bug seems to be happening in Firefox only. I haven't noticed this bug in Chrome or Safari.
First affected version: @radix-ui/react-dropdown-menu @ 0.0.20.
Current Behavior
Bug:

Click once to open a drop down menu
Click once more to select an item from the menu
The mouse now gets trapped in an active text selection on the underlying content

✅ Behavior before 0.0.20
https://user-images.githubusercontent.com/83844/123067049-eca91000-d410-11eb-895c-9815b31129bd.mp4
❌ Behavior since 0.0.20
https://user-images.githubusercontent.com/83844/123067151-05b1c100-d411-11eb-954e-4eecfd8156f8.mp4
Expected behavior
When clicking to select an item from the drop down menu, I'd expect no start of a text selection to happen.
Reproducible example
This is just an arbitrary example that already existed in the gallery, not my example. It just features a drop down menu. It shows that all normal usage of this component will illustrate the bug (be sure to use Firefox, though).
CodeSandbox Template
Suggested solution
?
Your environment

Software
Name(s)
Version

Radix Package(s)
@radix-ui/react-dropdown-menu
0.0.20

React
n/a
16.14.0

Browser
Firefox
89.0.1 (64-bit)

Operating System
macOS
10.15.7  (19H114)

Yep, we're getting the same.
Only on Firefox as well.

You can resolve this by using this css on Item, Checkbox and Radio.
.radix-dropdown-item {
  /*
    your styles...
  */
  user-select: none; /* add this */
}


query data via gorm PostgresQL

What type of bug is this?
Crash, Data corruption
What subsystems are affected?
Standalone mode
Minimal reproduce step

start greptimedb cargo run -- standalone start
clone repo https://github.com/yuanbohan/gorm-greptimedb, and run go run main.go

What did you expect to see?
behave the same as PostgresQL
What did you see instead?
panic with no data fetched
What operating system did you use?
Mac OS X, Ventuna 13.4.1 (c), Apple M1 Pro
Relevant log output and stack trace
2023/11/23 09:22:15 /Users/yuanbohan/workspace/github.com/gorm-greptimedb/db/pg.go:40 ERROR: Failed to describe statement (SQLSTATE XX000)
[7.457ms] [rows:0] SELECT * FROM "monitors"
panic: ERROR: Failed to describe statement (SQLSTATE XX000)

Any error logs in greptimedb?

Any error logs in greptimedb?

no

This isn't a bug, and I will re-open this issue if I found another issue.


POC: @patch annotation processor for early feedback

See: #885. @jph00 sending this out for early feedback. Not sure if this is something that nbdev actually wants, but would like to hear your thoughts.
The central code is found in 03_process.ipynb in PatchAnnotationProcessor, and all the rest of the changes in the nbdev files are the result of running the processor across nbdev itself to get a feel for what the processor does. I confirmed that code completion/type checking tools indeed work (when you import a module, not within the module you are editing, but that doesn't matter as much since you have the @patch methods right in front of you)

This is very interesting! I don't know whether we should do this or not. If we do, I suspect that some (or most?) of the logic should move into fastcore.
@seeM @hamelsmu I'd love to hear your thoughts.

Another idea would be to make this into an external project, and use it to ensure that it's easy for users to add their own processors to their projects.

I just realised that it might be impossible to get 2-way sync working with this processor...

Message ID: @.***>Could you put this in a separate PR then please since it's a bugfix we'll want anyway?

I just realised that it might be impossible to get 2-way sync working with this processor...

I had thought about how to accomplish this but I didn't want to solve every problem otherwise this POC was going to take forever, and I really just wanted feedback about the viability of the approach, and even if you consider it a problem worth solving in the first place. It would be terrible to spend many hours on this for it to be thrown away. But this PR didn't take too long so I don't mind if it's not merged
To get the 2-way sync working again I could just use a comment annotation on the method (e.g. # %% ../nbs/09_API/04a_export.ipynb 7 @patch) telling nbdev where it originated from, similar to how the source code is matched up with the notebook cells.

Another idea would be to make this into an external project, and use it to ensure that it's easy for users to add their own processors to their projects.

Yes, I had this thought too and I might explore it a bit.

One thing I've found myself doing recently is using @patch to build my class interactively, but then merge the cells together when it's working into a single class. It can be nice to see everything together like that, at least for small-ish classes.

Oh this is interesting. Why have you started doing this recently?

To get the 2-way sync working again I could just use a comment annotation on the method (e.g. # %% ../nbs/09_API/04a_export.ipynb 7 @patch) telling nbdev where it originated from, similar to how the source code is matched up with the notebook cells.

Ah yes OK - makes sense!

@jph00 I appreciate you taking the time to review this, and for leaving valuable comments! I just want to reiterate that there's no pressure to merge this - I had a lot of fun writing a processor and learned a lot about the internals of nbdev in the process.
I am new to things like @patch and the fastcore "dialect" of Python and hopefully my fresh eyes can offer some insight from a beginners perspective. I found methods from fastcore defined using @patch quite difficult to track down even with the doc pages open (I would find myself clicking through each page doing a ctrl-f to find something), and my IDE was not much help either (I like to write code using neovim - but I usually have some sort of IDE open if I really want to dive into the internals of something and click through definition after definition).

Oh this is interesting. Why have you started doing this recently?

Take a look, for instance, at how the process and maker modules used to be defined:
https://github.com/fastai/nbdev/blob/336598ac8953dd5c0ec18922fb06e907ef07ca52/nbs/02_export.ipynb
Everything was in separate cells, and I found it difficult to get my head around how they all worked together. Building it up in this way worked well for me, but maintaining it (especially after a break) didn't work so well. Once I put everything together so I could see it without scrolling, I found it easier to keep it all in my head and see how to improve it.

This is very cool David! I’d definitely try it if/when I use a notebook editor with LSP support. I think it should be opt-in though, because I suspect it will have teething issues since it’s a significant change
Assuming that in future it works with everything (2-way sync, etc), would there be any downside to making this the default?

I also like the idea of using this to dogfood nbdev extensibility. Though of course that would require more work. I think @hamelsmu was considering customising nbdev’s core behaviour at some point

Assuming that in future it works with everything (2-way sync, etc), would there be any downside to making this the default?

No, I think it makes @patch even more useful by removing its main disadvantage (the dynamic nature) and increases the utility of nbdev: you can safely improve productivity in notebooks by adding more and more to the Python "dialect" by leveraging dynamic features of Python (in this case runtime patching of classes) while "processing" notebooks into more "standard" Python modules which don't need to leverage as much of the "dialect" since it's no longer in a notebook.

Hmm that’s a fascinating idea! It’s extending the dialect (started by fastcore) to language syntax and compilation. And since it compiles to more traditional-looking Python, it benefits from its ecosystem (especially with 2way sync)
Some loose thoughts off the top of my head:
One downside that comes to mind is that it’s more complex (I think) and might confuse beginners. I don’t think your patch extension is particularly difficult, provided it fails well with clear messages/diagnostics. I guess this would be up to us to ensure the new dialect’s “compiler” is delightful and beginner-friendly
I wonder if there’s a benefit to the dialect being aimed at notebooks in particular, rather than compiling from plaintext? I suspect there would be advantages afforded by notebooks, even if we aren’t leveraging them yet (are we?)

Let's go ahead and make this an nbdev extension, if you're up for it. Then we'll all be able to try it out, and see how it goes, and potentially merge it back into the main project in the future. So I guess I should close this issue.

I am new to things like @patch and the fastcore "dialect" of Python and hopefully my fresh eyes can offer some insight from a beginners perspective. I found methods from fastcore defined using @patch quite difficult to track down even with the doc pages open (I would find myself clicking through each page doing a ctrl-f to find something), and my IDE was not much help either

@dleen I find your insights extremely helpful. It might be worth jumping on a call to discuss this more f2f, but in the meantime I'll jot down some thoughts here. I should say though -- we're all pretty new to this way of working, and we're figuring out stuff as we go! I guess I've been doing this the longest, but I still feel like I've got a lot of things I'd like to improve. I'm many times more productive than I was when using TDD and vim/vs/pycharm/etc, but I suspect I'm only scratching the surface still.
In general, the fast.ai/nbdev smooth path is to do nearly everything in notebooks. One foundational premise is that python is a dynamic language, and that this can be leveraged to write more expressive, concise, and clear code more easily than in static language. The python stdlib takes advantage of this, for instance, to give us stuff like dataclasses. However, python's dynamic features are not compatible with static tooling, such as nearly all IDEs and editors. Instead, IDEs have to put in place hacks to recognise stuff like dataclasses.
OTOH Jupyter doesn't have to "guess" what a symbol is or where it comes from. When you're coding interactively, it knows, because the symbol is attached to a real object. So to find details about the type of an object, or the signature/docstring of a method, type object? or object.method?. To see the source, use ?? instead of ?. Use dir(obj) to see what attrs it has. You can see exactly what its value is, and how it responds to different methods. And so forth...
My way of working nowadays looks very different to what I did in the pre-nbdev days! I generally put a 1-2 lines of code into a cell, evaluate it, check it's what I want, and then write another cell to further process that result, and so forth. Once I've got a bunch of cells that have done the thing I want, I merge them, add a function/class/whatever header, and then write some examples/tests.
I'm very interested in things that make it easier to use IDEs with fast.ai's libraries. But I'm also interested in finding ways to better explain how to fully take advantage of notebook-based development!


Allow user to request record transfer

When a resource if a BF:instance, for each group that the user is a member of that allows ILS transfer, render a "Transfer to ILS" button. When the user clicks the button, a transfer request is sent to the Sinopia API.

Similarly, MARC Button only renders when BF:instance. See https://github.com/LD4P/sinopia_editor/blob/main/src/components/editor/actions/MarcButton.jsx#L18
Groups that support ILS transfer will be provided by configuration.
Per design for "Transfer to ILS" button (or whatever the design specifies).
See https://github.com/LD4P/sinopia_api/issues/145 for transfer endpoint.

Stretch goal:

Adding the button into the current visual design:

looks good!

Notes for developer:

Please place to the left of MARC so that MARC can drop left.
If the user is a member of more than one group that supports ILS transfer, the button should be a dropdown containing the names of the groups. Otherwise, it should be a plain button.


internal Flash Memory example??

cant find any internal Flash Memory example to use this

https://github.com/adafruit/Adafruit_SPIFlash

https://github.com/adafruit/Adafruit_SPIFlash

So I would need to read/write flash with flash examples or SDFlash examples?
PS: can flash memory be written with VSCODE>Platformio?

So I would need to read/write flash with flash examples ...

Access to T-Echo's 2 Mbytes QSPI flash memory is possible with FAT filesystem and USB Mass Storage method. See this example:
https://github.com/lyusupov/SoftRF/wiki/Badge-Edition.-Aircrafts-database

so the flash data is added just the uf2 files when starting the USB Mass Storage method ??
on the same folder and all?

the uif2 firmware binary is applicable when the device in Adafruit bootloader mode only
in application mode (Arduino) -it is possible to use the same 'Drag and Drop' method as well, read

Adafruit SPIflash examples and
Adafruit TinyUSB Arduino examples

the uif2 firmware binary is applicable when the device in Adafruit bootloader mode only

in application mode (Arduino) -it is possible to use the same 'Drag and Drop' method as well, read

Adafruit SPIflash examples and
Adafruit TinyUSB Arduino examples

https://github.com/adafruit/Adafruit_TinyUSB_Arduino/tree/master/examples/MassStorage/msc_external_flash

sorry I got lost for a moment:
My The T-echo is running as "Adafruit bootloader mode" and I can upload like a "external mass flash disk" the .uf2 file and also through VSCODE+Platformio. This works fine.
But this is where I need to be specific: will I be able to add also a .json file into the flash of T-echo by copying it also to the "external mass flash disk" that "Adafruit bootloader mode" enables?

will I be able to add also a .json file into the flash of T-echo by copying it also to the "external mass flash disk ...

Play with msc_external_flash sketch (mentioned above) to answer your question by yourself.
You may borrow T-Echo specific GPIOs and flash types from SoftRF source code:
https://github.com/lyusupov/SoftRF/blob/master/software/firmware/source/SoftRF/src/platform/nRF52.cpp#L199-L233

will I be able to add also a .json file into the flash of T-echo by copying it also to the "external mass flash disk ...

Play with msc_external_flash sketch (mentioned above) to answer your question by yourself. You may borrow T-Echo specific GPIOs and flash types from SoftRF source code: https://github.com/lyusupov/SoftRF/blob/master/software/firmware/source/SoftRF/src/platform/nRF52.cpp#L199-L233

thanks for the guidance!!!
I will try (as this is all new to me)
;)


CVAT-3D milestone6

Hi @bsekachev , @nmanovic , @zhiltsov-max
CVAT 3D Milestone 6 changes:
Added support for Dump annotations, Export Annotations and Upload annotations in PCD and Kitti formats.
The code changes are only in 4 files i.e  bindings.py, registry.py and added new datatsets pointcloud.py and velodynepoint.py.
The rest of the files are from M5 base branch, was waiting for it to be merged but since comments are in progress created one for M6.
If you're unsure about any of these, don't hesitate to ask. We're here to help! -->

[x] I submit my changes into the develop branch

We shall add the changes in CHANGELOG after M5 code is merged .

(https://github.com/opencv/cvat/blob/develop/CHANGELOG.md) file
Datumaro PR - https://github.com/openvinotoolkit/datumaro/pull/245

[x] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.

[x] I have updated the license header for each file

Tested the patch roughly. Found issues are:

In 2D when you are pasting object holding Ctrl, you can paste copied object several times. It does not work in 3D mode.
List of shortcuts shows some shortcuts unapplicable in 3D (switch keyframe, to background, to foreground, next/previous keyframe)
Changing color does not work correctly (when Color by Instance is activated). Using both UI and hotkey (Enter). It does not change color of the shape on canvas.
The issue with selection appeared again with M6. On M5 selection works when hover an object on the canvas. On M6 you need to click it.

Also I did pip install -r cvat/requirements/development.txt, but when I am trying to dump annotations/dataset, I get error:
raceback (most recent call last):
  File "/home/user/cvat/.env/lib/python3.8/site-packages/rq/worker.py", line 936, in perform_job
    rv = job.perform()
  File "/home/user/cvat/.env/lib/python3.8/site-packages/rq/job.py", line 684, in perform
    self._result = self._execute()
  File "/home/user/cvat/.env/lib/python3.8/site-packages/rq/job.py", line 690, in _execute
    return self.func(*self.args, **self.kwargs)
  File "/home/user/cvat/cvat/apps/dataset_manager/views.py", line 84, in export_task_as_dataset
    return export_task(task_id, dst_format, server_url=server_url, save_images=True)
  File "/home/user/cvat/cvat/apps/dataset_manager/views.py", line 61, in export_task
    task.export_task(task_id, temp_file, dst_format,
  File "/home/user/cvat/cvat/apps/dataset_manager/task.py", line 749, in export_task
    task.export(f, exporter, host=server_url, save_images=save_images)
  File "/home/user/cvat/cvat/apps/dataset_manager/task.py", line 631, in export
    exporter(dst_file, task_data, **options)
  File "/home/user/cvat/cvat/apps/dataset_manager/formats/registry.py", line 37, in __call__
    f_or_cls(*args, **kwargs)
  File "/home/user/cvat/cvat/apps/dataset_manager/formats/pointcloud.py", line 31, in _export_images
    dataset = Dataset.from_extractors(CvatTaskDataExtractor(
  File "/home/user/cvat/cvat/apps/dataset_manager/bindings.py", line 530, in __init__
    dm_anno = self._read_cvat_anno(frame_data, task_data)
  File "/home/user/cvat/cvat/apps/dataset_manager/bindings.py", line 665, in _read_cvat_anno
    anno = datumaro.Cuboid(id=anno_id, points=anno_points,
AttributeError: module 'datumaro.components.extractor' has no attribute 'Cuboid'

Also I did pip install -r cvat/requirements/development.txt, but when I am trying to dump annotations/dataset, I get error:
raceback (most recent call last):
  File "/home/user/cvat/.env/lib/python3.8/site-packages/rq/worker.py", line 936, in perform_job
    rv = job.perform()
  File "/home/user/cvat/.env/lib/python3.8/site-packages/rq/job.py", line 684, in perform
    self._result = self._execute()
  File "/home/user/cvat/.env/lib/python3.8/site-packages/rq/job.py", line 690, in _execute
    return self.func(*self.args, **self.kwargs)
  File "/home/user/cvat/cvat/apps/dataset_manager/views.py", line 84, in export_task_as_dataset
    return export_task(task_id, dst_format, server_url=server_url, save_images=True)
  File "/home/user/cvat/cvat/apps/dataset_manager/views.py", line 61, in export_task
    task.export_task(task_id, temp_file, dst_format,
  File "/home/user/cvat/cvat/apps/dataset_manager/task.py", line 749, in export_task
    task.export(f, exporter, host=server_url, save_images=save_images)
  File "/home/user/cvat/cvat/apps/dataset_manager/task.py", line 631, in export
    exporter(dst_file, task_data, **options)
  File "/home/user/cvat/cvat/apps/dataset_manager/formats/registry.py", line 37, in __call__
    f_or_cls(*args, **kwargs)
  File "/home/user/cvat/cvat/apps/dataset_manager/formats/pointcloud.py", line 31, in _export_images
    dataset = Dataset.from_extractors(CvatTaskDataExtractor(
  File "/home/user/cvat/cvat/apps/dataset_manager/bindings.py", line 530, in __init__
    dm_anno = self._read_cvat_anno(frame_data, task_data)
  File "/home/user/cvat/cvat/apps/dataset_manager/bindings.py", line 665, in _read_cvat_anno
    anno = datumaro.Cuboid(id=anno_id, points=anno_points,
AttributeError: module 'datumaro.components.extractor' has no attribute 'Cuboid'

@bsekachev : Are you trying Dump Annotations for 3D in the same branch , kindly confirm

@bsekachev : Are you trying Dump Annotations for 3D in the same branch , kindly confirm

Actually I used cvat-3D-M6, now I see cvat-3D-Milstone6 is the right

@manasars
I've changed the branch, and still get similar exception, but a bit another.
Traceback (most recent call last):
  File "/home/user/cvat/utils/dicom_converter/.env/lib/python3.8/site-packages/rq/worker.py", line 936, in perform_job
    rv = job.perform()
  File "/home/user/cvat/utils/dicom_converter/.env/lib/python3.8/site-packages/rq/job.py", line 684, in perform
    self._result = self._execute()
  File "/home/user/cvat/utils/dicom_converter/.env/lib/python3.8/site-packages/rq/job.py", line 690, in _execute
    return self.func(*self.args, **self.kwargs)
  File "/home/user/cvat/cvat/apps/dataset_manager/views.py", line 87, in export_task_annotations
    return export_task(task_id, dst_format, server_url=server_url, save_images=False)
  File "/home/user/cvat/cvat/apps/dataset_manager/views.py", line 61, in export_task
    task.export_task(task_id, temp_file, dst_format,
  File "/home/user/cvat/cvat/apps/dataset_manager/task.py", line 749, in export_task
    task.export(f, exporter, host=server_url, save_images=save_images)
  File "/home/user/cvat/cvat/apps/dataset_manager/task.py", line 631, in export
    exporter(dst_file, task_data, **options)
  File "/home/user/cvat/cvat/apps/dataset_manager/formats/registry.py", line 37, in __call__
    f_or_cls(*args, **kwargs)
  File "/home/user/cvat/cvat/apps/dataset_manager/formats/pointcloud.py", line 21, in _export_images
    dataset = Dataset.from_extractors(CvatTaskDataExtractor(
  File "/home/user/cvat/cvat/apps/dataset_manager/bindings.py", line 535, in __init__
    dm_anno = self._read_cvat_anno(frame_data, task_data)
  File "/home/user/cvat/cvat/apps/dataset_manager/bindings.py", line 664, in _read_cvat_anno
    anno = datumaro.Cuboid3D(id=anno_id, points=anno_points,
AttributeError: module 'datumaro.components.extractor' has no attribute 'Cuboid3D'

What is wrong? Of course I did pip install again and restarted the server.
Issue with shape selection fixed in this branch.

@manasars ,
Could you please fix tests?
======================================================================
960FAIL: test_stats (tests.test_ops.TestOperations)
961----------------------------------------------------------------------
962Traceback (most recent call last):
963  File "/home/travis/build/openvinotoolkit/datumaro/tests/test_ops.py", line 139, in test_stats
964    self.assertEqual(expected, actual)
965AssertionError: {'ima[265 chars]2}, 'polygon': {'count': 0}, 'polyline': {'cou[1278 chars]]}}}} != {'ima[265 chars]2}, 'mask': {'count': 1}, 'points': {'count': [1302 chars]]}}}}
966Diff is 5243 characters long. Set self.maxDiff to None to see it.
967
968======================================================================
969FAIL: test_stats_with_empty_dataset (tests.test_ops.TestOperations)
970----------------------------------------------------------------------
971Traceback (most recent call last):
972  File "/home/travis/build/openvinotoolkit/datumaro/tests/test_ops.py", line 190, in test_stats_with_empty_dataset
973    self.assertEqual(expected, actual)
974AssertionError: {'ima[224 chars]0}, 'polygon': {'count': 0}, 'polyline': {'cou[421 chars]]}}}} != {'ima[224 chars]0}, 'mask': {'count': 0}, 'points': {'count': [447 chars]]}}}}
975Diff is 1489 characters long. Set self.maxDiff to None to see it.

@manasars
I've changed the branch, and still get similar exception, but a bit another.
Traceback (most recent call last):
  File "/home/user/cvat/utils/dicom_converter/.env/lib/python3.8/site-packages/rq/worker.py", line 936, in perform_job
    rv = job.perform()
  File "/home/user/cvat/utils/dicom_converter/.env/lib/python3.8/site-packages/rq/job.py", line 684, in perform
    self._result = self._execute()
  File "/home/user/cvat/utils/dicom_converter/.env/lib/python3.8/site-packages/rq/job.py", line 690, in _execute
    return self.func(*self.args, **self.kwargs)
  File "/home/user/cvat/cvat/apps/dataset_manager/views.py", line 87, in export_task_annotations
    return export_task(task_id, dst_format, server_url=server_url, save_images=False)
  File "/home/user/cvat/cvat/apps/dataset_manager/views.py", line 61, in export_task
    task.export_task(task_id, temp_file, dst_format,
  File "/home/user/cvat/cvat/apps/dataset_manager/task.py", line 749, in export_task
    task.export(f, exporter, host=server_url, save_images=save_images)
  File "/home/user/cvat/cvat/apps/dataset_manager/task.py", line 631, in export
    exporter(dst_file, task_data, **options)
  File "/home/user/cvat/cvat/apps/dataset_manager/formats/registry.py", line 37, in __call__
    f_or_cls(*args, **kwargs)
  File "/home/user/cvat/cvat/apps/dataset_manager/formats/pointcloud.py", line 21, in _export_images
    dataset = Dataset.from_extractors(CvatTaskDataExtractor(
  File "/home/user/cvat/cvat/apps/dataset_manager/bindings.py", line 535, in __init__
    dm_anno = self._read_cvat_anno(frame_data, task_data)
  File "/home/user/cvat/cvat/apps/dataset_manager/bindings.py", line 664, in _read_cvat_anno
    anno = datumaro.Cuboid3D(id=anno_id, points=anno_points,
AttributeError: module 'datumaro.components.extractor' has no attribute 'Cuboid3D'

What is wrong? Of course I did pip install again and restarted the server.
Issue with shape selection fixed in this branch.

Hi @bsekachev ,
We have changed the datumaro to point to the local branch which has M6 changes in base.txt file.
So might need to do a docker-prune for the changes in datumaro repository to be reflected.

We have changed the datumaro to point to the local branch which has M6 changes in base.txt file.
So might need to do a docker-prune for the changes in datumaro repository to be reflected.

I do not use docker. I've setup local environment. Looks like removing the virtual environment and creating it from scratch helped, but doing that and docker-prune is not an option for the most of CVAT users, who are not experienced in docker or programming. Will it be a problem for them after we merge the changes to the main datumaro repository, or it is going to work without extra actions?

We have changed the datumaro to point to the local branch which has M6 changes in base.txt file.
So might need to do a docker-prune for the changes in datumaro repository to be reflected.

I do not use docker. I've setup local environment. Looks like removing the virtual environment and creating it from scratch helped, but doing that and docker-prune is not an option for the most of CVAT users, who are not experienced in docker or programming. Will it be a problem for them after we merge the changes to the main datumaro repository, or it is going to work without extra actions?

After the datumaro changes are merged, it will work without any extra actions just like other datasets in 2D.

@manasars In point cloud dump format only nine values for points are needed. "Position": x, y, z, "rotation": x, y, z, "dimensions":  x, y, z. But requests have other 7 extra values and they are always equal to zero regardless of the cuboid position. Could you please explain what these extra values are for?

Tested the patch roughly. Found issues are:

In 2D when you are pasting object holding Ctrl, you can paste copied object several times. It does not work in 3D mode.
The key controls are handled separately in 3D(using Threejs) , and so on click of Ctrl the screen operations are disabled(as per the change in M5 for object activation issue).
So if the user needs to copy paste several times, they can still do Ctrl + V multiple times to achieve the same.
List of shortcuts shows some shortcuts unapplicable in 3D (switch keyframe, to background, to foreground, next/previous keyframe)
Resolved
~3. Changing color does not work correctly (when Color by Instance is activated). Using both UI and hotkey (Enter). It does not change color of the shape on canvas.~
~4. The issue with selection appeared again with M6. On M5 selection works when hover an object on the canvas. On M6 you need to click it.~
The issue with updating text attributes. It is very laggy. Try to compare changing text attributes in 2D and in 3D.
This issue occurs since on any key press the canvas sends an update to redux(as per the normal design) and in 3D since it uses Threejs and not SVG, this causes a slight lag.

@bsekachev : We have fixed the tests and conflicts.

Hi @manasars
Some found issues with pinned property:
On the scenario below:

Object cannot be deactivated
Additionally fitting leads to issues on side views

With active pinned property clicked at the center of a shape, then just move the cursor (without release it) at corners, the object starts resizing (and rotating) what is a bug

@bsekachev : We have fixed the tests and conflicts.

Some of shortcuts still not applicable for 3D:

Switch keyframe
Next keyframe
Previous keyframe

Issue "paste with ctrl hold" was not fixed as I see, please let me know if I misunderstand something
Issue with lagging text aditing was not fixed as I see, please let me know if I misunderstand something

Hi @manasars
The functionality for the "Point Cloud Format" annotation upload has stopped working. Please take a look PR #3263
Error: Request failed with status code 500.  "Position": x, y, z, "rotation": x, y, z, "dimensions": x, y, z. But requests have other 7 extra values and they are always equal to zero regardless of the cuboid position. Could you please explain what these extra values are for?

Hi @MashaSS : For point cloud(3D), the other 7 values are not applicable and by default will be zero.

Hi @MashaSS : For point cloud(3D), the other 7 values are not applicable and by default will be zero.

Whey are they applicable?

@manasars @nmanovic @zhiltsov-max
I've just noticed it does not dump any attributes in both pointclound and velodyne formats.
Do you have any ideas if these formats support attributes, should we dump them anyhow?

Issue with context menu and doublclick shape. Side views show the object wrong:

After previous gif I fitted canvas and got following issue:

Just pressed "play", then "stop" and see how many pointclouds from different images are drawn on the same canvas:

Rotation canvas by left/right arrows conflicts with frame navigation. These keys are already used to search non-empty frame.

We need to add a spin while loading and setup data. You can see it in 2D canvas and in the reference tool:

I see a significant difference in how the camera works in the reference tool and your implementation.
For example, in your implementation, it cannot go through the center (see the second gif). Also, I believe we should decrease the inertia effect. They are two things making camera navigation inconvenient.

Summary post:

[ ] Spin is absent in 3D canvas
[ ] Rotation canvas by left/right arrows conflicts with frame navigation. These keys are already used to search non-empty frame
[ ] Multiple point clouds are drawn on the canvas after pressing play/pause. Context image also shifted a couple of times
[ ] Inconvenient camera behaviour
[ ] Object keeps being activated + exception in the console + wrong top/side/front views
[ ] Attributes are not dumped
[ ] Changes breaks one of cypress tests
[ ] Extra shortcuts in the list (are not applicable for 3D)
[ ] When paste holding ctrl, an object can be pasted a lot of times
[ ] Changing text attribute is very lagging on 3D workspace
[ ] Since review more is not supported for 3D, "Issues" tab is extra in this workspace
[ ] Multiple context images are supported when create a task, but the server is able return only one and UI is able to show only one
[ ] Issue with "pinned" property, shown on the gif

@manasars @nmanovic @zhiltsov-max
I've just noticed it does not dump any attributes in both pointclound and velodyne formats.
Do you have any ideas if these formats support attributes, should we dump them anyhow?

@bsekachev @zhiltsov-max @nmanovic : The way attributes are fetched and stored in CVAT(Mutable, default, etc) is different from the supervisely format, so if we add specific to CVAT then when we import the Point cloud in the other application may fail.
Is this fine, kindly confirm.

@manasars @nmanovic @zhiltsov-max
I've just noticed it does not dump any attributes in both pointclound and velodyne formats.
Do you have any ideas if these formats support attributes, should we dump them anyhow?

@bsekachev @zhiltsov-max @nmanovic : The way attributes are fetched and stored in CVAT(Mutable, default, etc) is different from the supervisely format, so if we add specific to CVAT then when we import the Point cloud in the other application may fail.
Is this fine, kindly confirm.

Manasa, if a task doesn't have attributes, we don't have problems. Thus I think it is fine to dump attributes if we have them. At the same time I don't think that we should ask you to extend other formats. Thus if an original format doesn't support attributes, let's concentrate on other problems.

@manasars , could you please look at https://docs.supervise.ly/data-organization/00_ann_format_navi/03_supervisely_format_tags? Does it look like an attribute in CVAT?

@manasars , could you please look at https://docs.supervise.ly/data-organization/00_ann_format_navi/03_supervisely_format_tags? Does it look like an attribute in CVAT?

Hi @nmanovic
Supervisely tags:

CVAT tags:

Here text,number attributes matches with Supervisely.
we can also consider "One of" attribute from Supervisely as it matches with the the Select type in CVAT
But for "radio","checkbox","Mutable" type of attribute in CVAT, there's no matching attribute in supervisely.
so if we import the Point cloud with  "radio","checkbox" or "Mutable" attribute in the other application may fail.
We wanted to know if we need to add only the matching attributes  with respect to both the applications.

@manasars , could you please look at https://docs.supervise.ly/data-organization/00_ann_format_navi/03_supervisely_format_tags? Does it look like an attribute in CVAT?

Hi @nmanovic
Supervisely tags:

CVAT tags:

Here text,number attributes matches with Supervisely.
we can also consider "One of" attribute from Supervisely as it matches with the the Select type in CVAT
But for "radio","checkbox","Mutable" type of attribute in CVAT, there's no matching attribute in supervisely.
so if we import the Point cloud with "radio","checkbox" or "Mutable" attribute in the other application may fail.
We wanted to know if we need to add only the matching attributes with respect to both the applications.

Hi @jayraj-solanki
"Radio" is the same like "Select", just another HTML element is used for convenience.
"Checkbox" can be considered like one of "True", "False" for example.
Mutable attributes are possible only for tracks. CVAT 3D does not support tracks, so I think we can just ignore this flag.

Hi @bsekachev,
Following are the updated review comments:

[x]  Spin is absent in 3D canvas
=>Fixed, when we have multiple frames and if it takes time to load, spinner is added in 3d view & context image
[x]  Rotation canvas by left/right arrows conflicts with frame navigation. These keys are already used to search non-empty frame
=>Shift+arrows keys are now used for Camera tilt and rotate respectively
[x]  Multiple point clouds are drawn on the canvas after pressing play/pause. Context image also shifted a couple of times
=>We have increased the play instance delay time in 3D to 100ms, but since threejs requires more resourcs for computation, sometimes on the last frame the points collide
[x]  Object keeps being activated + exception in the console + wrong top/side/front views
[x]  Attributes are not dumped
=>Fixed as a part of Datumaro code
[x]  Changes breaks one of cypress tests
=>Fixed as a part of Datumaro code
[x]  Since review more is not supported for 3D, "Issues" tab is extra in this workspace
[x]  Extra shortcuts in the list (are not applicable for 3D)
[x]  Issue with "pinned" property, shown on the gif
[ ]  Inconvenient camera behaviour
=> Supervisely is continously updating their features, and during the development of Milestone-3,
we followed this design approach and it was similar to supervisely
[ ]  When paste holding ctrl, an object is expected to be pasted a lot of times
=>Not fixed, Reason: The key controls are handled separately in 3D(using Threejs) , and so on click of Ctrl the screen operations are disabled(as per the change in M5 for object activation issue).
So if the user needs to copy paste several times, they can still do Ctrl + V multiple times to achieve the same.
[ ]  Changing text attribute is very lagging on 3D workspace
=>Cannot be fixed, Reason : This issue occurs since on any key press the canvas sends an update to redux(as per the normal design) and in 3D since it uses Threejs and computational time is more unlike SVG, this causes a slight lag.
[ ]  Preview image is always the same image
=> Solution using open3d is a going to be heavy as discussed earlier, and it cannot be accomodated at this time
[ ]  Multiple context images are supported when create a task, but the server is able return only one and UI is able to show only one
=> During the initial phase it was discussed that we will allow multiple images to be supported for one pcd which might be useful for implementation in the future phases

Hi @jayraj-solanki

[x]   Changes breaks one of cypress tests
=>Fixed as a part of Datumaro code

Still preproducing.

Rotation canvas by left/right arrows conflicts with frame navigation. These keys are already used to search non-empty frame
=>Shift+arrows keys are now used for Camera tilt and rotate respectively

[ ] Need to update hints and F1 shortcut help.

Multiple point clouds are drawn on the canvas after pressing play/pause. Context image also shifted a couple of times
=>We have increased the play instance delay time in 3D to 100ms, but since threejs requires more resourcs for computation, sometimes on the last frame the points collide

[ ] Why 100ms? Why not 1000ms? Could you please look for a more robust solution? I believe threejs should provide an event when a scene is rendered.

Changing text attribute is very lagging on 3D workspace
=>Cannot be fixed, Reason : This issue occurs since on any key press the canvas sends an update to redux(as per the normal design) and in 3D since it uses Threejs and computational time is more unlike SVG, this causes a slight lag.

The issue should be fixed. I see it is as an optimization problem. I'm updating a text box. I see no reason why the whole canvas should be redrawn.

When paste holding ctrl, an object is expected to be pasted a lot of times
=>Not fixed, Reason: The key controls are handled separately in 3D(using Threejs) , and so on click of Ctrl the screen operations are disabled(as per the change in M5 for object activation issue).
So if the user needs to copy paste several times, they can still do Ctrl + V multiple times to achieve the same.

[ ] Could you please fix the behaviors? It doesn't important how ctrl is handled. Need to be consistent between 2D and 3D cases as much as possible. I see no reasons why it cannot be supported.

Hi @nmanovic , @dvkruchinin , @bsekachev

[x]  Still reproducing. Need to fix.
[x]  Need to update hints and F1 shortcut help.
[x]  The issue should be fixed. I see it is as an optimization problem. I'm updating a text box. I see no reason why the whole canvas should be redrawn.
[x]  Could you please fix the behaviors? It doesn't important how ctrl is handled. Need to be consistent between 2D and 3D cases as much as possible. I see no reasons why it cannot be supported.
[x]  Why 100ms? Why not 1000ms? Could you please look for a more robust solution? I believe threejs should provide an event when a scene is rendered.

Regarding failure of one unit test("Exception: Failed to find 'coco' dataset at '/tmp/cvat_1ln1_5h3o"), We ran the unit tests on OpenVino/develop branch and got the same exception, kindly confirm

@jayraj-solanki
I found the issue when interacting with the buttons to change the position of the point cloud. Alt + keys (U, I, O, J, K, L)
When I press on the keyboard shortcuts, I get an error in the browser console.
mousetrap.js:616 Uncaught TypeError: e is not a function
    at u (mousetrap.js:616)
    at b.t._handleKey (mousetrap.js:677)
    at b.handleKey (mousetrap.js:1008)
    at HTMLDocument.d (mousetrap.js:737)
u @ mousetrap.js:616
t._handleKey @ mousetrap.js:677
b.handleKey @ mousetrap.js:1008
d @ mousetrap.js:737

@manasars , there are some problems with tests
======================================================================
ERROR: test_tasks_upload (tests.test_cli.TestCLI)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/django/utils/cli/tests/test_cli.py", line 138, in test_tasks_upload
    self.cli.tasks_upload(1, 'COCO 1.0', path)
  File "/home/django/utils/cli/core/core.py", line 208, in tasks_upload
    response.raise_for_status()
  File "/opt/venv/lib/python3.8/site-packages/requests/models.py", line 941, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: http://testserver/api/v1/tasks/1/annotations?format=COCO%201.0

@manasars , there are some problems with tests
======================================================================
ERROR: test_tasks_upload (tests.test_cli.TestCLI)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/django/utils/cli/tests/test_cli.py", line 138, in test_tasks_upload
    self.cli.tasks_upload(1, 'COCO 1.0', path)
  File "/home/django/utils/cli/core/core.py", line 208, in tasks_upload
    response.raise_for_status()
  File "/opt/venv/lib/python3.8/site-packages/requests/models.py", line 941, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: http://testserver/api/v1/tasks/1/annotations?format=COCO%201.0

Hi @nmanovic ,
This test is failing even when we tried in CVAT cvat/develop with develop branch datumaro code as mentioned above.
https://github.com/openvinotoolkit/cvat/pull/3234#issuecomment-864748899

This test is failing even when we tried in CVAT cvat/develop with develop branch datumaro code as mentioned above.

CVAT is only expected to work with the currently pinned version of Datumaro in cvat/requirements/base.txt.

Hi @manasars,
There was also some strange behavior.

Create a cuboid
Ctrl+C on the cuboid
Ctrl+V
Without double-clicking on the perspective, go to another frame
The display of the cuboid to paste disappears. And on the frame where the cuboid was copied, it can no longer be copied. It is not possible to do this both through hot keys and through the sidebar "Make a copy".

Hi. Some issues were found:

Due to an annotated object is getting active after it was highlighted by mouse cursor, we deal with some freezes while moving the image when another object appears under the cursor. We tried to show it on the gif below:

An image blocks after pressing alt+i several times (6-8). Double mouse click fixes it:

A context image in the upper right angle disappears after pressing ctrl+z or undo button. Need to reload a task to return it back:

Holding right mouse click uses for moving around an image and also for quick new cuboid drawing. It leads to inconvenient behavior while creating new cuboids in quick mode. Need to assign another button for adding cuboids, instead of right mouse click:

The escape button doesn't work after using quick cuboid adding with right mouse click.

Hi @nmanovic , @dvkruchinin , @bsekachev,@zhiltsov-max, @aschernov,

Following are status of review comments:

[x]   I found the issue when interacting with the buttons to change the position of the point cloud. Alt + keys (U, I, O, J, K, L) When I press on the keyboard shortcuts, I get an error in the browser console.
Fixed
[x]   The display of the cuboid to paste disappears. And on the frame where the cuboid was copied, it can no longer be copied. It is not possible to do this both through hot keys and through the sidebar "Make a copy".
We cannot view the cuboid as 2D,but when we paste it, it will still have the reference
[x]   Due to an annotated object is getting active after it was highlighted by mouse cursor, we deal with some freezes while moving the image when another object appears under the cursor.
Modified as 2d, with Select tool, camera movement is disabled
[x]   An image blocks after pressing alt+i several times (6-8).
Fixed
[x]   A context image in the upper right angle disappears after pressing ctrl+z or undo button.
Context image changes were done internally,but it's fixed
[x] Holding right mouse click uses for moving around an image and also for quick new cuboid drawing. It leads to inconvenient behavior while creating new cuboids in quick mode. Need to assign another button for adding cuboids, instead of right mouse click
Right mouse click conflict will not happen since now Select and Move contols are independent just like 2D
[x] The escape button doesn't work after using quick cuboid adding with right mouse click.
Fixed

@dvkruchinin, the test case 80(cuboid_make_copy) in canvas3d_functionality is failing, though it works correctly in UI, kindly help

Hi @jayraj-solanki,

the test case 80(cuboid_make_copy) in canvas3d_functionality is failing, though it works correctly in UI, kindly help

Unfortunately, I can't say exactly why this is happening. I have identified a pattern. Reproducing the scenario Copy a shape to an another frame after press "Ctrl+V" on the first frame. does not work on Linux. At the same time, it works in the develop branch.
I also checked it manually. On the current commit on Linux OS, it also does not work to copy.

Hi @jayraj-solanki,

the test case 80(cuboid_make_copy) in canvas3d_functionality is failing, though it works correctly in UI, kindly help

Unfortunately, I can't say exactly why this is happening. I have identified a pattern. Reproducing the scenario Copy a shape to an another frame after press "Ctrl+V" on the first frame. does not work on Linux. At the same time, it works in the develop branch.
I also checked it manually. On the current commit on Linux OS, it also does not work to copy.

Hi  @dvkruchinin ,
In 3D, We cannot view the cuboid reference when navigating between frames because when we press "Ctrl+V", a new object instance is created to be placed in the particular pcd with the copied dimensions. So you can see the copied object after  "Ctrl+V" to create the copied cuboid and "Dbl click" to place in the frame.
In the below video, I've used "Ctrl+C" to copy and "Ctrl+V" to paste in next frame.
https://user-images.githubusercontent.com/25260417/123628134-633e7700-d830-11eb-892c-e0a6a1fbe646.mp4

In 3D, We cannot view the cuboid reference when navigating between frames because when we press "Ctrl+V", a new object instance is created to be placed in the particular pcd with the copied dimensions. So you can see the copied object after "Ctrl+V" to create the copied cuboid and "Dbl click" to place in the frame.
In the below video, I've used "Ctrl+C" to copy and "Ctrl+V" to paste in next frame.

This scenario is also checked in the test. Copy a cuboid to an another frame.
If the fall of scenario Copy a shape to an another frame after press "Ctrl+V" on the first frame. is expected in this PR, then this scenario needs to be disabled.

In 3D, We cannot view the cuboid reference when navigating between frames because when we press "Ctrl+V", a new object instance is created to be placed in the particular pcd with the copied dimensions. So you can see the copied object after "Ctrl+V" to create the copied cuboid and "Dbl click" to place in the frame.
In the below video, I've used "Ctrl+C" to copy and "Ctrl+V" to paste in next frame.

This scenario is also checked in the test. Copy a cuboid to an another frame.
If the fall of scenario Copy a shape to an another frame after press "Ctrl+V" on the first frame. is expected in this PR, then this scenario needs to be disabled.

Hi @dvkruchinin : Yes you are right, we will have to disable this test since in 3D:
When any draw event is in progress, we cannot change the frame as the current object which is being dragged gets reset by the new frame from threejs. So the user can still use Ctrl+V to paste the object in any other frame.

@manasars , could you please appropriately update tests? They should be fixed or disabled with a corresponding comment.

https://github.com/openvinotoolkit/cvat/pull/3234/checks?check_run_id=2928943230
https://github.com/openvinotoolkit/cvat/pull/3234/checks?check_run_id=2928943633

@manasars , our team has a number of automated tests for 3D feature. A lot of regression tests which were implemented after our team found problems with your PR. Could you please check that these tests work as well?
https://github.com/openvinotoolkit/cvat/pull/3286
https://github.com/openvinotoolkit/cvat/pull/3263

Hi @nmanovic, @zhiltsov-max

Done Datomaru specific changes in cvat.
For cypress(canvas3d_functionality), we have disabled one of the non-applicable test. https://github.com/openvinotoolkit/cvat/pull/3234#issuecomment-869603842

@zhiltsov-max, CI / Unit_testing (pull_request) are failing.
These are failing even in the develop branch before 3D changes were done as mentioned before https://github.com/openvinotoolkit/cvat/pull/3234#issuecomment-866621612, and we are not sure of the cause.
Can you please help us understand the root cause.

@jayraj-solanki,

CI / Unit_testing (pull_request) are failing.

CVAT requires some updating to use the develop version of Datumaro. We'll apply them this week.

@jayraj-solanki,

CI / Unit_testing (pull_request) are failing.

CVAT requires some updating to use the develop version of Datumaro. We'll apply them this week.

@zhiltsov-max : Thank you , so currently is there any other change expected as a part of Milestone-6, could you kindly confirm.

@manasars , if the PR works as expected, all tests are passed, I'm OK to merge it. Could you please check that tests for 3D functionality works as expected to save time and accept the PR faster?

[ ] https://github.com/openvinotoolkit/cvat/pull/3286
[ ] https://github.com/openvinotoolkit/cvat/pull/3263

@manasars , if the PR works as expected, all tests are passed, I'm OK to merge it. Could you please check that tests for 3D functionality works as expected to save time and accept the PR faster?

[ ]  [Dependent] Server tests for CVAT-3D-M6 #3286
[ ]  [Dependent] Cypress tests for CVAT-3D-M6. #3263

Hi @nmanovic ,
So in-order to check if only known 2D cases are failing and 3D test cases have passed, can we pull the latest cvat-3D-Milestone6 branch changes in the above mentioned PRs, can someone help us with that?

@manasars , I believe you always can merge both PRs into your branch. I don't think you need help from our side.

@manasars , I believe you always can merge both PRs into your branch. I don't think you need help from our side.

@nmanovic , ok sure we shall do that then and confirm once we test.

Hi @zhiltsov-max,
In the latest datumaro code, the exported annotation in "SLY point cloud format", the annotation files are exported as  filename.pcd.pcd.json.Since filename contains .pcd twice, some unit tests are failing for point cloud (tests.test_rest_api_3D.Task3DTest)

So will this be changed in Datumaro or should we update the unit tests accordingly?

Probably, you don't need to pass .pcd in the DatasetItem.id. We don't have such problem in the format tests. https://github.com/openvinotoolkit/datumaro/blob/develop/tests/test_sly_pointcloud_format.py

@manasars , do we have any other questions? Really need to complete the PR this week and merge.

@manasars , do we have any other questions? Really need to complete the PR this week and merge.

Hi @nmanovic , We do not have any further questions, as per Maxim's latest update we are modifying one portion of code and testing, we shall be pushing the changes in a while.

Hi @nmanovic,
We have fixed the cypress tests and all the tests have passed.
Kindly review and merge the PR.

Hi @zhiltsov-max : I hope we are fine with all the review changes, kindly confirm.

@manasars , did I miss something? I cannot rotate, zoom in/out, move the primary view using mouse. Is it expected?

@manasars , did I miss something? I cannot rotate, zoom in/out, move the primary view using mouse. Is it expected?

Hi @nmanovic : We can rotate, zoom in/out etc when we select Move Controls in the left side bar similar to 2D, this was changed a part of one of the review comment changes.

@manasars , could you please point me on the review comment?

@manasars , I see a problem with projections of points. If you look at the screenshot below, you will see that side and front views are not informative at all. At the same time in the alternative annotation tools, it is easy to see boundaries of these objects on side and front views.
From my perspective, in the patch CVAT tries to project all points on these views. In reality it is a bad idea.

@manasars , could you please point me on the review comment?

Please find points 3 and 6 in the below link
https://github.com/openvinotoolkit/cvat/pull/3234#issuecomment-869423620

@manasars , could you please point me on the review comment?

Please find points 3 and 6 in the below link
#3234 (comment)

Do you mean the comment below?

If it isn't a request from our team, I'm not OK with such fix. In CVAT 2D and other annotation tools it is possible to interact with a frame using mouse by default. In the reference tool the mode is also activated by default. I like the ability to press buttons, but in reality it is much faster to interact with a scene using mouse. Do you agree?

@manasars , let me merge the PR, but I will wrote a separate mail with known problems which should be resolved.

@manasars , I summarized found issues here: https://github.com/openvinotoolkit/cvat/issues/3438
It isn't all issues, but which I found during the final review today. I hope the list will not grow. Please review and comment.
To simplify next reviews and avoid the overhead on your side, I will merge the PR because all checks are passed. But I want to emphasize that it isn't an approval for milestone #6. The PR isn't completed and contains several critical issues which have to be fixed.


separated the data preparation file into different files

I separated the data preparation file into different files: one for loading the packages, one for loading the data, one for data cleaning and one for the data preparation itself.  There is also a new RMarkdown file that sources from the other files.

git fetch origin
git checkout 52-seperate-datapreperation-file-into-multiple-files-to-prepare-for-automation


ecmo-subject.toml

First draft of subjects table for the ECMO dataset. Have a look! Hopefully I have created the branch correctly ... via web interface.

@abhidg - check the new edits and changes regarding admission dates ..

Validated the parser and added in the visit table from Rosario - the majority of the data appear to be missing an outcome date which Is causing a low valid % for the visits


Fix typo

Please answer these questions before submitting pull request

Why submit this pull request?

[x] Bug fix

[ ] New feature provided

[ ] Improve performance

Related issues

Bug fix

Bug description.
Is it a typo or not?
How to fix?
Delete... 💯

New feature or improvement

Describe the details and related test reports.

/run ci

/run e2e

/run e2e


"Cannot read properties of undefined (reading 'videoId')" in nodejs lambda environment.

Describe the bug
I'm running into an issue where supplying a valid videoId throws a stack trace when running in a lambda environment. This happens:
TypeError: Cannot read properties of undefined (reading 'videoId')
at BaseVideoParser.loadBaseVideo (/var/task/index.js:79129:44)
at Video.load (/var/task/index.js:79289:43)
at Video.load (/var/task/index.js:80595:15)
at Client3. (/var/task/index.js:80753:113)
at Generator.next ()
at fulfilled (/var/task/index.js:80655:28)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
when the videoId is defined.
Could there be some async client issue? Static loadBaseVideo member? parseRawData returning null or no data? I'm thinking the latter could be likely, are there some options I need to set for different environments?
const youtube = new Client();

To Reproduce
Steps to reproduce the behavior:
Expected behavior
It not throw, as it doesn't locally.

Me too, my own crawler tool is also facing this problem, I'm working on it

Could you please provide the minimum code that reproduces this problem?

Could you please provide the minimum code that reproduces this problem?

Sure thing, here's my deployment code:
const apiHandler = new NodejsFunction(this, env("api-handler"), {
      architecture: Architecture.ARM_64,
      memorySize: 512,
      runtime: Runtime.NODEJS_20_X,
      timeout: Duration.seconds(20),
      entry: path.join(__dirname, "./lambda/api.handler.ts"),
      bundling: {
        minify: environment === "prod",
        target: "esnext",
      },
    });

export const handler = async (
  event: APIGatewayProxyEventV2,
): Promise<APIGatewayProxyResult> => {
  const youtube = new Client();
  console.log("v2");
  const video = await youtube.getVideo("dMvw7xx9HhQ");
  console.log(video);
  return {
    statusCode: 200,
    body: JSON.stringify({ message: "Hello from Lambda!" }),
  };
};

2024-11-15T18:13:11.638Z    ad0f6f85-9f76-4a06-ac79-b227475701d4    ERROR   Invoke Error    {"errorType":"TypeError","errorMessage":"Cannot read properties of undefined (reading 'videoId')","stack":["TypeError: Cannot read properties of undefined (reading 'videoId')","    at BaseVideoParser.loadBaseVideo (/var/task/index.js:79129:44)","    at Video.load (/var/task/index.js:79289:43)","    at Video.load (/var/task/index.js:80595:15)","    at Client4.<anonymous> (/var/task/index.js:80753:113)","    at Generator.next (<anonymous>)","    at fulfilled (/var/task/index.js:80655:28)","    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"]}

Is there a debugging method to log the http calls from the Client? I'm thinking that perhaps the call for the video is being blocked or erroring out, ending up being empty?
https://github.com/SuspiciousLookingOwl/youtubei/blob/1460ae806473127ac36b449f41fe78d553ab402e/src/youtube/Client/Client.ts#L121-L134

seems like YouTube made some changes to the response data, this changes rolled up on some user / IP (my local PC loads the data just fine, but I'm facing similar error on my server), checking it

Hi, I've working on this issue for a while and find the solution for getting video information #126
But i didn't confirm that is it necessary to add params to nextPromise above, can you please check it? @SuspiciousLookingOwl  Thanks！

I got same error and using proxy：
/www/wwwroot/youtubei/node_modules/youtubei/dist/cjs/youtube/BaseVideo/BaseVideoParser.js:14
target.id = videoInfo.videoDetails.videoId;
^
TypeError: Cannot read properties of undefined (reading 'videoId')
at Function.loadBaseVideo (/www/wwwroot/youtubei/node_modules/youtubei/dist/cjs/youtube/BaseVideo/BaseVideoParser.js:14:44)
at Video.load (/www/wwwroot/youtubei/node_modules/youtubei/dist/cjs/youtube/BaseVideo/BaseVideo.js:21:43)
at Video.load (/www/wwwroot/youtubei/node_modules/youtubei/dist/cjs/youtube/Video/Video.js:30:15)
at Client. (/www/wwwroot/youtubei/node_modules/youtubei/dist/cjs/youtube/Client/Client.js:94:55)
at Generator.next ()
at fulfilled (/www/wwwroot/youtubei/node_modules/youtubei/dist/cjs/youtube/Client/Client.js:5:58)
at processTicksAndRejections (node:internal/process/task_queues:96:5)

as far i know, youtube always flag suspicious IP, make sure you have to slow down or make random interval request, so your server IP doesn't get flag 'spam' by Youtube

I found what file was erroring, I edited the build (sorry) and made it log the "raw" thing it got before it tried to get values from it and saw that the response was beautiful and in my case I would actually be fine with just having that data and parsing it myself (but obviously its not that easy)
So I don't think its an error due to YouTube returning a bad response, they probably changed how the response looks and yeah. Unless I'm not recognizing it's not returning the actual info.


[bug] Black screen and unresponsive buttons on Windows after minimizing a maximizing frameless window

Describe the bug
When you have a frameless window with custom titlebar buttons and you maximize, minimize, then maximize again, the entire window sometimes just goes black. Sometimes the window won't be black, but the buttons no longer function. In the cases where the window isn't black the window remains responsive to system commands that control the window, such as clicking the application icon in the taskbar in order to minimize it. The behavior seems to be more stable when using toggleMaximize() rather than just maximize() and minimize().
Minimizing the window while not in maximized mode by clicking the application icon in the taskbar appears to fix the button as long as you're not in maximized mode.
As long as you don't enter maximized mode the behavior is stable, it's only when you've entered maximized mode that bugs start appearing.
Reproduction

Create a new project
Set "decorations": "false" in tauri.conf.json
Create buttons that run appWindow.toggleMaximize() and appWindow.minimize()
Maximize the window
Minimize the window
Open the window again
The minimize and/or maximize buttons now don't work, and sometimes the window is black

Expected behavior
The window was supposed to be maximized, minimized, then opened again, without buttons seizing to function or the window being black.
Platform and versions
Operating System - Windows, version 10.0.22000 X64
Webview2 - 98.0.1108.50
Visual Studio Build Tools:
   - Visual Studio Community 2019
   - Visual Studio Build Tools 2017
   - Visual Studio Community 2017

Node.js environment
  Node.js - 14.17.4
  @tauri-apps/cli - 1.0.0-rc.4
  @tauri-apps/api - 1.0.0-rc.1

Global packages
  npm - 7.22.0
  pnpm - Not installed
  yarn - Not installed

Rust environment
  rustup - 1.24.3
  rustc - 1.58.1
  cargo - 1.58.0
  toolchain - stable-x86_64-pc-windows-msvc

App directory structure
/.git
/.github
/.idea
/.nuxt
/node_modules
/src
/src-tauri
/target

App
  tauri - 1.0.0-rc.2 (no lockfile)
  tauri-build - no manifest (no lockfile)
  tao - no manifest (no lockfile)
  wry - no manifest (no lockfile)
  build-type - bundle
  CSP - unset
  distDir - ../public
  devPath - http://<IP_ADDRESS>:32146/
  framework - Vue.js (Nuxt)
  bundler - Webpack

Stack trace
No response
Additional context
I believe the issue is related to e.g. booleans being in the improper state, e.g. that using maximize() sets an internal value to keep track of its state, rather than fetching the actual state every time from the system. I have absolutely no idea why the maximized state of the application would influence the ability to minimize the window. So far I've only had these issues when using custom buttons with a frameless window, using a normal decorated window has thus far been problem free.
The black window issue only happens sometimes when I try the procedure on one of my monitors, on the other it never happens. On both monitors the buttons no longer functioning occurs. By exiting maximized mode and using system commands to minimize and unminimize the window it would appear that the buttons start to work again, until you break then again.

Hello, same pb win11

Can you guys record this behavior? While investigating this, I encountered a bug where custom minimize button doesn't minimize the window correctly if it is maximized but I never got that black screen.

I updated to the latest version and indeed I have the same problem as you with custom minimize button. We can reproduce the black screen bug with the button to minimize, but as this one does not work anymore...

This may not be the page to talk about it but is it possible to reproduce the win11 hover?

@Silbad this minimize bug I talked about is fixed in tauri-apps/tao#334 and will be available in the next release.
I can't reproduce The black screen bug however so I will close this issue now. And let me know if it happens on the next release.

This may not be the page to talk about it but is it possible to reproduce the win11 hover?

This doesn't work when decorations is disabled which is intended because it is hard to know the location of the custom maximize button. I think I have a way to achieve this, similar to data-tauri-drag-region but It will have to wait until tauri v2.

Thanks, ok I wait for the next release ;)

tao hasn't been published yet which includes the fix for the bug. I will see if it can be published today. For now you can try the fix by adding this inside your Cargo.toml
[patch.crates-io]
tao = { git = "https://github.com/tauri-apps/tao", rev = "475e64d2873c233e60cb74e52e91282d18e13780" }

@Silbad it is now published, run cargo update -p tao inside src-tauri

oh... (-_-) ok :)

Ok I update to tao v0.6.4, and I find the initial bug with the black screen (win11) :

launch dev mod
maximize : not ok => a flash and the window returns to its initial state
re-maximize : ok
minimize : ok
clic on the icon in the taskbar to maximize : not ok => black screen. The famous.

@Silbad I can't reproduce this at all and I am on win11. Try creating a minimal repro and post it here and if the bug happens, try to record it.

Okay I'll do that for you. What is the best application to record the Win11 desktop? I tried win+g but it doesn't work with tauri app...

use ScreenToGif

I update the process https://github.com/tauri-apps/tauri/issues/3498#issuecomment-1061234686

For me setting 1.0.0-rc.4 in Cargo.toml and running cargo update has resolved the issue. The only problem that remains seems to be that toggleMaximize() only maximizes but never minimizes as would be expected from a function called "toggle".
So my solution for that problem was simply doing it "manually":
async maximize() {
  if (await appWindow.isMaximized()) {
    appWindow.unmaximize()
  } else {
    appWindow.maximize()
  }
}

The minimize() seems also to be a problem. It does work when you don't maximize the window, but after maximizing it, the subsequent minimize events will not work.  ```js
// this condition is valid when pressing minimize
if (await appWindow.isMaximized()) {
        console.log('minimized the maximized window!')
        appWindow.minimize() // the program minimizes for like 1 frame

        // then goes back into maximized again
        // after then the condition is still valid on subsequent press events but won't minimize.

    } else {
        console.log('minimized the normal window!')
        appWindow.minimize()
    }

@arkhon7 this should be fixed now, make sure to use latest version

only maximizes but never minimizes

minimize is not the opposite of maximize, but judging from your code snippet that may just be misphrased i guess?
And about that snippet, that's actually the same toggleMaximize does behind the scenes. On that note, toggleMaximize seems to work as intended on my end (and if i understood the messages here correctly, then it does for the others too). Edit: "intended" as in, it calls either maximize or unmaximize (so it never minimizes), just to be 100% clear.

Yea sorry just misphrased, you undestood me correctly.
Also I discovered that the black screen still sometimes happens, but only on one monitor for some reason. Seems more stable now at least, I'm no longer afraid of my window control buttons haha.

@arkhon7 this should be fixed now, make sure to use latest version

I update cargo, the issue still here :(

The minimize issue is fixed in the latest tauri release. It has nothing to do with cargo or rust version.

I update cli and api too (https://tauri.studio/docs/development/updating-dependencies), issue still here, sorry

The issue described in this comment https://github.com/tauri-apps/tauri/issues/3498#issuecomment-1070848736 is fixed, the black screen is not as I am not able to reproduce it nor I have a clue what might cause it.

Ok I understand...

ok I have a new clue, then I'll stop bothering you with it. I have three screens, it works on screen 2, and I reproduce the bug on screens 1 and 3. So actually not a code problem I think.

FWIW, I also have the black screen issue. Similarly to @Silbad I have 2 monitors, the issue occurs reliably on my right monitor, but on the left most monitor, everything works fine.

FWIW, I also have the black screen issue. Similarly to @Silbad I have 2 monitors, the issue occurs reliably on my right monitor, but on the left most monitor, everything works fine.

I'm not alone 🙏

Also got this problem with exactly the same procedures. I have two screens and set the left one as the 2nd screen and the right one as the 1st screen. The issue could be reproduced in my 1st screen as it is not the leftmost screen 🤔

I have the same issue. Got 2 monitors and on the left everything is fine, but on my primary screen i have the bug.

I can reproduce this issue with 100% success on a fresh project. Here is a video showing the full setup (the secondary monitor is displayed in the bottom right corner as Picture-In-Picture).
https://user-images.githubusercontent.com/817256/170193070-4fdea4cb-3270-4b4d-a674-139f82516faf.mp4
The steps are:

Follow the Getting Started guide on tauri.studio to create a new project (I used Vanilla.js to minimize moving parts but I originally ran into this in a Vue application).
Follow the Window Customization guide on tauri.studio
Run the application via cargo tauri dev
Drag the application to secondary monitor
Maximize the application through any means (appWindow JS API, using Windows Key + arrow keys, etc.)
Minimize the application through any means (appWindow JS API, task bar button, etc.)
Click the task bar button to maximize the window again
Observe black screen

tauri info output:
Environment
  › OS: Windows 10.0.19044 X64
  › Webview2: 101.0.1210.53
  › MSVC:
      - Visual Studio Build Tools 2019
  › Node.js: 14.16.0
  › npm: 6.14.11
  › pnpm: Not installed!
  › yarn: Not installed!
  › rustup: 1.24.3
  › rustc: 1.61.0
  › cargo: 1.61.0
  › Rust toolchain: stable-x86_64-pc-windows-msvc

Packages
  › @tauri-apps/cli [NPM]: 1.0.0-rc.11(outdated, latest: 1.0.0-rc.12)
  › @tauri-apps/api [NPM]: 1.0.0-rc.6
  › tauri [RUST]: 1.0.0-rc.12,
  › tauri-build [RUST]: 1.0.0-rc.10,
  › tao [RUST]: 0.9.1,
  › wry [RUST]: 0.17.0,

App
  › build-type: bundle
  › CSP: unset
  › distDir: ../dist
  › devPath: ../dist

App directory structure
  ├─ dist
  ├─ node_modules
  └─ src-tauri

I'm having the same issue when minimizing on my primary monitor of my two monitors - I think this should be a priority since several users are reporting this bug to me in my application.

@amrbashir can you check this one?

I can't investigate this probably since I don't have a multi-monitor setup but I made two attempts and I need you guys to test them and post the logs from each one.
notify_parent_window_pos_changed.zip
resize_on_moved.zip

@amrbashir Your attempts don't use an undecorated window. The bug only happens on undecorated windows

Oh my bad, here is one with undecorated windows
resize_on_moved.zip
notify_parent_window_pos_changed_on_moved.zip

notify_parent.txt
resize_on_moved.txt

resize_on_moved:

notify_parent:

@amrbashir  That's the complete output from the test, there's nothing more above or below. So yea that might be a hint as to what the bug is 🙂
notify_parent:

resize_on_moved:

opened an upstream issue at https://github.com/MicrosoftEdge/WebView2Feedback/issues/2549


Keep _users in sync with the actual users on the server.

Fixes #70
Rather naive PR, interested in feedback from maintainer(s)

Codecov Report

Merging #117 into master will decrease coverage by 0.11%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #117      +/-   ##
==========================================
- Coverage   20.99%   20.88%   -0.12%
==========================================
  Files          12       12
  Lines        1124     1130       +6
  Branches      185      186       +1
==========================================
  Hits          236      236
- Misses        888      894       +6

Impacted Files
Coverage Δ

lib/MumbleClient.js
20.46% <0%> (-0.75%)
:arrow_down:

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 62a2e3f...867ed5a. Read the comment docs.

@Rantanen - Fixed linting problems, but tests are gonna keep failing due to the mumble server being offline.

@Rantanen - updates made, let me know what you think!

Pushed version 0.3.20 to npm

Thanks! :shipit: 🎉


Define translation terms

[ ] Identify terms that require translation
[ ] Create list of terms and i18n variables to be used (=contexts in POEditor)
[ ] Define contexts
[ ] Define references
[ ] Enter terms,contexts, references into POEditor
[ ] Pull en (default) JSON (format TBD. most likely key-value term-message)
[ ] Create folders with placeholder JSON

Excel file to document wording changes (#81 #96  ) , translation terms and contexts:
https://1drv.ms/x/s!AltDg56lsquDgpNuuHRIwozLBESRYw?e=cH8UFK

POEditor "terms"
Translation terms in POEditor are assigned a "context"
Context is the Key in exported key-value  JSON files
Proposed Contexts naming rules:
Context=   Context prefix by component as   per table "components" & name (to be chosen while capturing to-be-translated items) &   suffix (_all/_nano/_ban)
Examples:

Prefix
name
currency
context
Term (en)

cfg-app_
head
_ban
cfg-app_head_ban
Configure Banault

cfg-app_
head
_nano
cfg-app_head_nano
Configure Nault

cfg-app_
fiat
_all
cfg-app_fiat_all
FIAT Currency


Docker-apps: Updates requested by George

Per George's feedback.

Docs for e020b70b170d55e5ea05f24f7c7dbcc367f440d9 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/348/docs/artifacts/html/index.html

Docs for b4ea121f1be057762425d73e2a3f5472b431d2f2 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/349/docs/artifacts/html/index.html

Docs for 9398fe021bf6b065122394341edaa2d8004c4ba6 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/350/docs/artifacts/html/index.html

Docs for 8a3f9695155c35fb6ab669e84ab763b274084efe are browesable at: https://ci.foundries.io/projects/fio-docs/builds/352/docs/artifacts/html/index.html

Docs for fedaad1febc39871be2f173223b55d38e8f2a379 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/353/docs/artifacts/html/index.html


Storybook don't job

I have a problem when i run Storybook, @jbosse
My steps:
Install the app to the simulator device:

react-native run-ios 'iphone 6'
then i close the React Native packager.

Check storybook files:
2) getstorybook
Run storybook which host on port 7007:
3) yarn run storybook
i run RN
4)  react-native start --port=8081
and then it return: undefined is not an object (evaluating 'RCTAsyncStorage.multiMerge'), why? 🤔

@jbosse @dgptamayo @toussa any fix for Storybook?

hey @pherm - i have a pending PR that's failing on integration tests, ping @jbosse

come on @jbosse help us to solve this issue!

Sorry work has been consuming all of my mental resources. I will take a look at the PR tonight. I think it was failing some tests.
On Feb 13, 2018, 11:35 AM -0500, pherm<EMAIL_ADDRESS>wrote:

come on @jbosse help us to solve this issue!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

I think I may have a problem with the linter. it seems to only be complaining about spaces. I wasnt able to figure it out last night. Take two tonight.

Should be fixed in https://github.com/jbosse/ignite-expo-boilerplate/pull/19