Move in examples repositories

Move the 3 example repositories into this monorepo (i.e., moved folders into examples/ and removed .git/ for each):

https://github.com/magicbell-io/react-native-demo
https://github.com/magicbell-io/react-native-notifications-example
https://github.com/magicbell-io/gatsby-example

I'm creating a PR in each of the above to replace the README with a link to this monorepo. I assume we want to make them public archives for the time being and remove them later to avoid breaking any links that could be out there).

I grepped the docs and found that:

https://github.com/magicbell-io/react-native-demo is never mentioned in the docs
https://github.com/magicbell-io/gatsby-example is never mentioned in the docs
https://github.com/magicbell-io/react-native-notifications-example is mentioned once (https://www.magicbell.com/docs/react-native/implement-mobile-push-notifications)

Are there any other places that point to the above repos?

Here are the PRs for the READMEs in the examples repositories:

https://github.com/magicbell-io/react-native-demo/pull/1
https://github.com/magicbell-io/react-native-notifications-example/pull/4
https://github.com/magicbell-io/gatsby-example/pull/1

Up to you if you prefer to:

disregard the PRs and delete the repositories already
merge the PRs, make the repositories public archives, and delete them some time in the future

This is ready for review/merge cc @smeijer @unamashana


ERROR: Failed building wheel for curl_cffi

When trying to install curl_cffi in Termux, via the pip install curl_cffi command, I get the error:
Collecting curl_cffi                                Using cached curl_cffi-0.5.7.tar.gz (27 kB)       Installing build dependencies ... done            Getting requirements to build wheel ... done      Preparing metadata (pyproject.toml) ... done    Requirement already satisfied: cffi>=1.12.0 in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from curl_cffi) (1.15.1)
Requirement already satisfied: pycparser in /data/data/com.termux/files/usr/lib/python3.11/site-packages (from cffi>=1.12.0->curl_cffi) (2.21)
Building wheels for collected packages: curl_cffi
  Building wheel for curl_cffi (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for curl_cffi (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [91 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-aarch64-cpython-311
      creating build/lib.linux-aarch64-cpython-311/curl_cffi
      copying curl_cffi/[const.py](https://const.py/) -> build/lib.linux-aarch64-cpython-311/curl_cffi
      copying curl_cffi/[build.py](https://build.py/) -> build/lib.linux-aarch64-cpython-311/curl_cffi
      copying curl_cffi/[curl.py](https://curl.py/) -> build/lib.linux-aarch64-cpython-311/curl_cffi
      copying curl_cffi/[aio.py](https://aio.py/) -> build/lib.linux-aarch64-cpython-311/curl_cffi
      copying curl_cffi/[init.py](https://init.py/) -> build/lib.linux-aarch64-cpython-311/curl_cffi
      creating build/lib.linux-aarch64-cpython-311/curl_cffi/requests
      copying curl_cffi/requests/[cookies.py](https://cookies.py/) -> build/lib.linux-aarch64-cpython-311/curl_cffi/requests
      copying curl_cffi/requests/[errors.py](https://errors.py/) -> build/lib.linux-aarch64-cpython-311/curl_cffi/requests
      copying curl_cffi/requests/[headers.py](https://headers.py/) -> build/lib.linux-aarch64-cpython-311/curl_cffi/requests
      copying curl_cffi/requests/[init.py](https://init.py/) -> build/lib.linux-aarch64-cpython-311/curl_cffi/requests
      copying curl_cffi/requests/[session.py](https://session.py/) -> build/lib.linux-aarch64-cpython-311/curl_cffi/requests
      running egg_info
      writing curl_cffi.egg-info/PKG-INFO
      writing dependency_links to curl_cffi.egg-info/dependency_links.txt
      writing requirements to curl_cffi.egg-info/requires.txt
      writing top-level names to curl_cffi.egg-info/top_level.txt
      reading manifest file 'curl_cffi.egg-info/SOURCES.txt'
      reading manifest template '[MANIFEST.in](https://manifest.in/)'
      warning: no files found matching 'curl_cffi/cacert.pem'
      warning: no files found matching 'curl_cffi/_wrapper.*'
      warning: no files found matching 'curl_cffi/include/curl/*'
      adding license file 'LICENSE'
      writing manifest file 'curl_cffi.egg-info/SOURCES.txt'
      /data/data/com.termux/files/usr/tmp/pip-build-env-wydui0is/overlay/lib/python3.11/site-packages/setuptools/command/build_py.py:204: _Warning: Package 'curl_cffi.ffi' is absent from the packages configuration.
      !!

              ****************
              ############################
              # Package would be ignored #
              ############################
              Python recognizes 'curl_cffi.ffi' as an importable package[^1],
              but it is absent from setuptools' packages configuration.

              This leads to an ambiguous overall configuration. If you want to distribute this
              package, please make sure that 'curl_cffi.ffi' is explicitly added
              to the packages configuration field.

              Alternatively, you can also rely on setuptools' discovery methods
              (for example by using find_namespace_packages(...)/find_namespace:
              instead of find_packages(...)/find:).

              You can read more about "package discovery" on setuptools documentation page:

              - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html
If you don't want 'curl_cffi.ffi' to be distributed and are
              already explicitly excluding 'curl_cffi.ffi' via
              find_namespace_packages(...)/find_namespace or find_packages(...)/find,
              you can try to use exclude_package_data, or include-package-data=False in
              combination with a more fine grained package-data configuration.

              You can read more about "package data files" on setuptools documentation page:

              - https://setuptools.pypa.io/en/latest/userguide/datafiles.html

              [^1]: For Python, any directory (with suitable naming) can be imported,
                    even if it does not contain any .py files.
                    On the other hand, currently there is no concept of package data
                    directory, all directories are treated like packages.
              ****************

      !!
        check.warn(importable)
      creating build/lib.linux-aarch64-cpython-311/curl_cffi/ffi
      copying curl_cffi/ffi/cdef.c -> build/lib.linux-aarch64-cpython-311/curl_cffi/ffi
      copying curl_cffi/ffi/shim.c -> build/lib.linux-aarch64-cpython-311/curl_cffi/ffi
      copying curl_cffi/ffi/shim.h -> build/lib.linux-aarch64-cpython-311/curl_cffi/ffi
      running build_ext
      generating cffi module 'build/temp.linux-aarch64-cpython-311/curl_cffi._wrapper.c'
      creating build/temp.linux-aarch64-cpython-311
      building 'curl_cffi._wrapper' extension
      creating build/temp.linux-aarch64-cpython-311/build
      creating build/temp.linux-aarch64-cpython-311/build/temp.linux-aarch64-cpython-311
      creating build/temp.linux-aarch64-cpython-311/curl_cffi
      creating build/temp.linux-aarch64-cpython-311/curl_cffi/ffi
      aarch64-linux-android-clang -DNDEBUG -g -fwrapv -O3 -Wall -fstack-protector-strong -O3 -fstack-protector-strong -O3 -fPIC -Icurl_cffi/include -Icurl_cffi/ffi -I/data/data/com.termux/files/usr/include/python3.11 -c build/temp.linux-aarch64-cpython-311/curl_cffi._wrapper.c -o build/temp.linux-aarch64-cpython-311/build/temp.linux-aarch64-cpython-311/curl_cffi._wrapper.o
      build/temp.linux-aarch64-cpython-311/curl_cffi._wrapper.c:884:10: error: call to undeclared function 'curl_easy_impersonate'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
        return curl_easy_impersonate(x0, x1, x2);
               ^
      build/temp.linux-aarch64-cpython-311/curl_cffi._wrapper.c:928:14: error: call to undeclared function 'curl_easy_impersonate'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
        { result = curl_easy_impersonate(x0, x1, x2); }
                   ^
      2 errors generated.
      error: command '/data/data/com.termux/files/usr/bin/aarch64-linux-android-clang' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for curl_cffi
Failed to build curl_cffi
ERROR: Could not build wheels for curl_cffi, which is required to install pyproject.toml-based projects

see the solution here: #74


Comment two-way selection

[ ] When selecting a comment thread, highlight the associated text (scroll to, etc.)
[ ] Button to resolve thread.
[ ] Users can edit their own thread messages.

I'm going to try and use this issue to get an understanding of the set of requirements for the comment system. @richburdon, maybe you could answer the questions below and point out where I'm off with my assumptions.
I guess the data model for comments is a set of commented ranges, each with a resolved flag and an array of comment messages.

Where are these maintained? I would guess in the CRDT. How do they flow from there into the editor (including updates after the editor has been initialized). Should the editor track them separately as edits happen, or re-sync with the CRDT on every update?
Are messages plain text? Or should they also support Markdown?
 Or do we provide some alternative control for that?
Is it reasonable to move focus to comment textbox when creating a comment, to make it obvious how to proceed?

The comments are shown in the sidebar. Currently ordered by document position. Focusing one should move the text that it's associated into view (and highlight it) in the editor.

Should they align vertically to this text, as in Google Docs?
Should they always be visible or only when the commented text is scrolled into view?

What Google docs does is if you copy commented text and paste it back (into the same document), the same comment is associated with both copies. Clipboard integration seems useful when cut-pasting to move text, at least.

Is allowing multiple references to a comment worth the bother? It'd require some kind of id-based data model, and some additional cleverness in the association between text and comment sidebar widgets.
We'd have to hook into the editor's copy-paste logic to support this—either by using the HTML clipboard to smuggle metadata into the text, or by keeping side data for the current clipboard content, if it only has to work within a browser tab.

I still see footnote logic (options.footnote) in the comment code. What was/is the vision for this? Markdown footnotes have the footnotes in the document itself. That seems at odds with how these comments work—it's inserting an orphan footnote marker without definition. Or is this an entirely different syntax, unrelated to GFM-style footnotes?

Comments are implemented by the posting events (intents) between the Markdown and Thread plugins:

The Markdown plugin's comments extension uses a callback to dispatch to the Threads plugin to create a thread: https://github.com/dxos/dxos/blob/main/packages/apps/plugins/plugin-markdown/src/extensions.tsx#L120
It also notifies the Thread plugin when a selection is entered or clicked: https://github.com/dxos/dxos/blob/main/packages/apps/plugins/plugin-markdown/src/extensions.tsx#L139; it passes an array of currently visible selections, that includes the currently measured y position so that the thread could (it doesn't yet) scroll with the main content.
The Thread plugin's CommentsSidebar posts a Focus intent whenever a comment is clicked: https://github.com/dxos/dxos/blob/main/packages/apps/plugins/plugin-thread/src/ThreadPlugin.tsx#L123; this intent is handled by the Markdown plugin to scroll the associated selection into view: https://github.com/dxos/dxos/blob/main/packages/apps/plugins/plugin-markdown/src/components/EditorMain.tsx#L43

Where are these maintained? I would guess in the CRDT. How do they flow from there into the editor (including updates after the editor has been initialized). Should the editor track them separately as edits happen, or re-sync with the CRDT on every update?

The data model for comments is currently described in the Document type: https://github.com/dxos/dxos/blob/main/packages/apps/types/src/proto/schema.proto#L73
Each document maintains an array of Thread objects (which contain message objects) where each Thread (comment stream) is associated with a selection range, which is represented by a serialized string representing the relatively position of the selection anchor and head using the YJS/automerge cursor.

Are messages plain text? Or should they also support Markdown?

 Or do we provide some alternative control for that?

Yes it should. We should also implement a Resolve comment button that would also close the thread. The plumbing for this is pretty straightforward (and under way). Similarly when deleting a range in the text editor, we should detect which comment threads should be deleted.

Is it reasonable to move focus to comment textbox when creating a comment, to make it obvious how to proceed?

Yes, but in general I don't have a reliable (foolproof) way to set the focus, other than passing a property into the editor: https://github.com/dxos/dxos/blob/main/packages/ui/react-ui-editor/src/components/TextEditor/TextEditor.tsx#L81

Should they align vertically to this text, as in Google Docs?
Should they always be visible or only when the commented text is scrolled into view?

It's complicated since the comment threads are managed by a different plugin and are in a different scroll container. Currently both sides scroll into view when the other is clicked. That feels sufficient for this first phase.

Is allowing multiple references to a comment worth the bother? It'd require some kind of id-based data model, and some additional cleverness in the association between text and comment sidebar widgets.

No, I think just the original selection should reference the comment. But, as you point out we need to track which threads (ids) were affected when selections are cut/deleted and then pasted so that the new range can be updated. I think this is actually the main issue to solve for the entire issue.
(Re footnotes: I will remove this soon. I kept it in there since a colleague has implemented exporting documents that contain comments using footnotes.)

Detect thread deleted (mark for garbage collection).

Is the editor the proper place for this? It seems like it'd be better done at the Automerge-data level—once a comment has no text between its start and end points, it is a candidate to be deleted. But since we'd still want it to survive cut-paste, this cannot be done immediately anyway. I don't know the system well enough to say where the appropriate place for this would be, but I feel it's probably not the editor.

Fix theme/slots for TextEditor (currently applied to container div not cm-scroller).

I don't know what this refers to.

Consider how to not require comments to be passed to TextEditor (instead update extension?)

Why would that be better? As the data changes (say, a peer client adds a new comment), these need to flow back into the editor. A prop seems reasonable way to do that.

You had an idea about capturing some additional metadata on cut?

Will it have to work when you cut in one tab and paste in another, or should it work across pages? (It can be less invasive in the first case.)

so there are gaps between the highlighted rows

The way browsers do this is that line height is determined by the line-height style, but the actual height of the inline elements is determined by the font, so it's almost impossible to align those robustly. We could use a layer for this, if it bothers you hugely, but that's a bit more expensive, computationally.

the beauty of the extensions is how they are self-contained.

I see what you mean. But I really appreciate a simple data flow, and separate data channels hidden in extensions tend to make that a lot more messy. Maybe some kind of provision in the editor abstraction for generic prop-based input, that extensions can subscribe to with some custom key, would work. But I'd leave that to someone else, since my React knowledge is pretty shallow.

i think we can safely ignore the multi-tab case.

thanks for the info. no action required: at this stage just trying to firm up my understanding. (i'm mostly a back-end engineer so a lot of this dom/css is new to me).

ok agreed. we've done quite a lot of work with https://www.npmjs.com/package/@deepsignal/react to make ECHO objects reactive (i.e., to the developer you just set/get properties and ECHO handles all of the replication and consistency of the graph). so like you suggest i was thinking about a property abstraction for reactive extensions -- but i think that's for a later stage. i'm quite happy about how relatively simple the current TextEdtior class is given the number of extensions we now have.

when deleting a range in the text editor, we should detect which comment threads should be deleted.

From a UX perspective, we probably don't want to actually delete comments that refer to text selections that are no longer present. Rather, we might use something like "Outdated" that GitHub comments do when the file lines change.

From a UX perspective, we probably don't want to actually delete comments that refer to text selections that are no longer present. Rather, we might use something like "Outdated" that GitHub comments do when the file lines change.

Agreed, once we track that a selection has been removed, we can update the data structure to observe this and keep it around until the user explicitly closes the thread (and we can later add a UX control to show closed threads).


Fix saveEtag hook

The etag wouldn't be stored in the all.env.etags as the etag value was within the header not the response itself.

Thanks @kevinjalbert for catching that. Published to npm as v1.0.2


Review groups

Currently, groups have a few limitations, some of it:

You can't drag in/out nodes
No options for size/grow, constraints
Since they have a nested structure, lot of trouble comes with links not showing probably (z-order)
They aren't added to the nodes layer
...

Ideas:

Have groups as non-hierarchical in HTML/SVG to make everything easier
Add a bunch of options in order to control how the groups look AND behave

Hi @zHaytam , thanks for nice library? Is this feature is out in beta version?

You can have groups in 2.1.6, but a lot of changes happened in 3.0.0 (which is in beta)

Actually with drag and drop I want to place a node in group is it possible? Means node is out of the group and dragging I want to place in the group? if possible can you please give me example for the same.

That feature will come in 3.0.0, sorry

ok Thank you for quick reply. Even drag resizing groups will come in 3.0.0

What do you mean by drag resizing groups?

With mouse drag I can grow size for the group

Do you have an example or something I can look at?

Do you have an example or something I can look at?

chrome-capture-2022-8-6 (1).zip

Oh, I get it now. Do you mind sharing your use case? I dont see why you would want to change the size of groups like that.

No use case right now. but we want 2 groups which are divided into 2 part as full screen then we can decide the size for the same.

I guess that can be done using 2 diagrams no? Or do you want to be able to drag nodes from group 1 to group 2 and vice versa?

yes I want to drag nodes from group 1 to group 2 and vice versa. Also Is there anything like this for selecting nodes https://github.com/Blazor-Diagrams/Blazor.Diagrams/issues/122

Yes, just use <SelectionBoxWidget/> inside Widgets.

With this I am not able to get drag box selection for nodes. and also what is the use of navigatorWidget? Can please explain

With this I am not able to get drag box selection for nodes. and also what is the use of navigatorWidget? Can please explain

I got it..Thanks..

Yes i want in between group also.
On Tuesday, September 6, 2022, Haytam Zanid @.***>
wrote:

I guess that can be done using 2 diagrams no? Or do you want to be able to
drag nodes from group 1 to group 2 and vice versa?
—
Reply to this email directly, view it on GitHub
https://github.com/Blazor-Diagrams/Blazor.Diagrams/issues/216#issuecomment-1238210855,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AM4MS627XOTF7VJVDZU7QKLV45GRFANCNFSM53Y2NDGA
.
You are receiving this because you commented.Message ID:
@.***>

--
Regards,
Sneha Bihani
Mob:9960298364


Rename repo

https://github.com/stolostron/backlog/issues/18733
Signed-off-by: clyang82<EMAIL_ADDRESS>

/cherry-pick release-2.4

/lgtm

/retest

/lgtm


Decode VM names containing URI entities (e.g. '%2f' -> '/')

Resolves #202 .
Example: in Jeff's cluster, there is a VM named fdupont/test, which was being displayed as fdupont%2ftest and will now display correctly.

Closing in favor of https://github.com/konveyor/virt-controller/issues/75.

Why not call directly decodeURIComponent(vm.name)?

The only reason was just because we needed it in several places and I was trying to save some keystrokes / make sure we never use the VM name without it. Maybe was unnecessary.


[python-package] updated test_consistency.py to use f-strings

Updated the strings were catenation had been done using using + to the new fstring format.
Contributing to the issue #4136

Thank you so much for merging it.
I will update other files as well soon.


A column can not be "NOT NULL" unless it has a default value (SQLite)

In the SQLite adapter you can not use just array('null' => false) to specify that a column is "NOT NULL", you also have to specify a default value[1].
$def .= ($column->isNull() || is_null($default)) ? ' NULL' : ' NOT NULL';

This behavior is different from the other adapters[2][3], so I am assuming it is a bug.
$def .= ($column->isNull() == false) ? ' NOT NULL' : ' NULL';
$buffer[] = $column->isNull() ? 'NULL' : 'NOT NULL';

I've merged a test which is reproducing this behaviour, but I've marked it as skipped for now.
I tried to fix this bug but it turns out its not as simple as it seems. I can make it work when creating a table, however altering one is a different story. SQLite only supports a limited subset of ALTER TABLE:

The new column may take any of the forms permissible in a CREATE TABLE statement, with the following restrictions:

If a NOT NULL constraint is specified, then the column must have a default value other than NULL.

See: http://www.sqlite.org/lang_altertable.html for more information.
I guess Phinx would have to work around this behaviour and inject a default value say an empty string or 0 depending on the column type when altering a table.
I'll leave this open for now.

Hi, do we have any progress with that bug?

having ['null' => false, 'default' => '']in DDLs created by create table is pretty insane. basically you allow creating rows with almost as bad as with null values enabled.
Maybe getColumnSqlDefinition could know in which ddl context it is called (CREATE/ALTER/...) and in sqlite not force you to use default?

I would like to point out that Sqlite ALTER TABLE does not support altering existing column. So there is no way you could alter NOT NULL column to NULL value - therefore I think CREATE should not force column NOT NULL with DEFAULT set.
and adding new column with NOT NULL and without DEFAULT would trigger database level error anyway
create table person (
   id integer PRIMARY KEY  NOT NULL,
   name text NULL
);

alter table person add column age integer not null;

SQLSTATE[HY000]: General error: 1 Cannot add a NOT NULL column with default value NULL

there is no need to hold Phinx user hand as sqlite will do it itself if query is faulty.

Running into the same issue. I'd lilke to use Phinx to "migrate" from no database to a full up to date database with SQLite. The resulting SQLite "CREATE TABLE" syntax has issues...
$table = $this->table('foo');
$table->addColumn('bar', 'string', ['limit' => 255])->create();

CREATE TABLE `foo` (`id` INTEGER NULL PRIMARY KEY AUTOINCREMENT, `bar` VARCHAR(255) NULL);

The primary key has NULL which makes no sense, and the bar column has NULL even though that was not specified.
Expected behavior: no NULL for the primary key, and a NOT NULL instead of NULL for the bar column.

in my PR this is fixed.
        $table = new \Phinx\Db\Table('testtable', array(), $this->adapter);
        $table->addColumn('realname', 'string')
              ->save();

would result executed

CREATE TABLE testtable (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, realname VARCHAR(255) NOT NULL);

I point out that by design Phinx assumes that by default every column is defined as NOT NULL
https://github.com/robmorgan/phinx/blob/0.6.x-dev/src/Phinx/Db/Table/Column.php#L55
protected $null = false;

even tho Sqlite/Mysql defaults to NULL if NULL/NOT NULL is specified in DDL.

even tho Sqlite/Mysql defaults to NULL if no NULL/NOT NULL is specified in DDL.

I don't see this in my local MariaDB server though, there everything is NOT NULL as it should be, it is just in SQLite that the columns become/are NULL by default.

PR open and waiting to be merged.


Implements new docker images for CI

Now that Python 3 support is merged, this change points towards
the updated v500 docker hub tags which contain images built for
Python 3 support.

@jetwhiz
I might have to switch to relative imports so we can get travis working:
https://www.python.org/dev/peps/pep-0328/
Before:
from keylime import common
After
from . import common
This will be for files that are in keylime importing from the same directory.

@jetwhiz https://travis-ci.org/keylime/keylime/jobs/583224883#L616


Allow users to pass in custom exceptions.

Updates user_passes_test to accept a custom exception.
My main reasoning for this is so that I can pass in specific exceptions for each type of user. E.g.:
login_required = user_passes_test(lambda u: u.is_authenticated, Unauthenticated('You are not logged in.'))
special_permission = user_passes_test(lambda u: u.is_authenticated, UserNotSpecial('You are not special enough to do this.'))

Under the hood, each of my exceptions has a status_code field and I'm using the extensions field on an error response to put that particular status code (e.g. 401, 403, 405, 409, etc) in the error response.

Codecov Report

Merging #82 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master    #82   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          17     17
  Lines         280    280
  Branches       31     31
=====================================
  Hits          280    280

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 ad07aae...461341f. Read the comment docs.

Codecov Report

Merging #82 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master    #82   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          17     17
  Lines         280    280
  Branches       31     31
=====================================
  Hits          280    280

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 ad07aae...461341f. Read the comment docs.

Hi @frenchtoast747 ,
I'm sorry for the delay in my response.
In the same way as the specification, I think the right approach is to include a code field as a string to specify the error type, not an integer.
Thanks for the PR!

Thanks for this! I really appreciate it!


Use @namespace in addition to @enum for jsdoc

Old
When using the @enum tag by itself it puts the documentation in the global section and omits static functions on the enum. It's cluttered and missing information.

New
By adding the @namespace tag it creates a new page for the enum and show the static functions:

Here's how the fix would look for VoxelShapeType:
/**
 * An enum of voxel shapes supported by EXT_primitive_voxels. The shape controls
 * how the voxel grid is mapped to 3D space.
 *
 * @namespace
 * @enum VoxelShapeType
 */

One way to go about fixing this for all enums is to:

Run npm run generateDocumentation
Go to http://localhost:8080/Build/Documentation/global.html
Add @namespace to every enum until there are no more in the global section

Also, update https://github.com/CesiumGS/cesium/tree/main/Documentation/Contributors/DocumentationGuide with information about enums / namespace.

We need to be careful here. For things in the public API, making them a namespace means they are not enums, they are namespaces. This matters a lot when generating TypeScript bindings.  However, if we are globbing functions on to enums, they aren't enums either.
I did a bunch of work to make sure we made enums actually enums as part of the initial TS works: https://github.com/CesiumGS/cesium/pull/8878 This included removing functions being globbed onto them and changing them to actually use @enum in JSDoc.
CesiumJS should have a clear policy for all of this, what we have may be out of date.
If the goal is to put them into their own page, we could probably do that at the JSDoc template level.
What does this do to TS output?

Ahh good catch. When I do npm run build-ts it errors with:
Source/Cesium.d.ts:28217:21 - error TS2709: Cannot use namespace 'VoxelShapeType' as a type.
28217     readonly shape: VoxelShapeType;

The goals are:

Preserve the documentation for static functions (most important)
Put enums and their static functions into their own page (JSDoc template idea) (less important but still good to have)

Are there any examples of well behaved public enums that have static functions? Any workarounds you found during the TS cleanup? It seems like an increasingly common pattern in the codebase. For example, it's nice to be able to do VoxelShapeType.BOX and VoxelShapeType.getMinBounds(shape).
EasingFunction is the closest I can find. It's an enum that uses @namespace. TweenCollection references it with @type {EasingFunction} but since TweenCollection is @private the TS build doesn't catch the mistake.

The fundamental issue here is that an enums don't exist in JavaScript (because types don't exist). I don't know of any strongly typed language that lets you define an enum that also has methods on it (static or not). So we should not every augment enums with function definitions in Cesium is we want to cleanly interop with strongly typed languages, like TypeScript.
I believe the documentation side can be handled entirely in JSDoc. I don't know the direct solution off the top of my head, but JSDoc gives you a lot of control over how the doc is generated.


Fix three spinner bounce buffer handling

Can't assume the playback is still buffering a tick after the point the plugin loads.
Was causing bug when native hls used. Loading indicator was sticking on screen until play clicked on iOS. Think it might be that on ios the buffering doesn't start until play is requested.

@tjenkinson THANK YOU VERY MUCH! :clap: :clap: :clap: :clap: Well Done :clap: :clap: :clap:


Refactor/exported symbols

I started this effort inspired by https://github.com/mvukov/rules_ros2/discussions/180 (where I learned about dynamic symbol exports) and https://github.com/mvukov/rules_ros2/pull/148.
Here are some thoughts:

symbols rosidl_typesupport_introspection_c__identifier (C) and rosidl_typesupport_introspection_cpp::typesupport_identifier (C++) must be kept/exposed globally such that a rmw serdes works as expected. Both for shared/static libraries. Note: in ros 2 setup w/ C++ nodes w/o plugins this is sufficient. The current solution is a rmw_cyclonedds patch.
similarly, a subset of symbols from class_loader::impl namespace must be kept/exposed globally such that plugin registration works as expected (#180). This is in particular interesting when dynamic_cast is implemented by comparing pointers, e.g. clang+libc++ AFAIK. The current solution for this is to compiler class_loader lib explicitly as a shared lib, cf. https://github.com/mvukov/rules_ros2/blob/main/repositories/class_loader.BUILD.bazel#L7.
For Python, it looks like more symbols needs to exported, haven't figure out which ones yet.

In Bazel context and different compiler/linker combos we need to handle properly gcc/clang linking, ros 2 rmw serdes intricacies.
This PR aims to nail all those problems. We basically have two options:

Use "-Wl,--export-dynamic" as linker flags for all C++ stuff. Searching the web, I couldn't find any downsides of this TBH.
We can use finer granularity alternative, "-Wl,--dynamic-list=$(location @com_github_mvukov_rules_ros2//ros2:exported_symbols.lds)", see the PR where we give a list of symbols for dynamic export. For C++ code this should be sufficient, but for Python stuff to work some symbols are still missing (anything that calls ROS 2 rmw from python segfaults (IIRC) at the moment with this approach).

The part that I don't like much is that in any case we need to every "main" Python script the os.RTLD_GLOBAL dlopen flag for this to work; got inspiration from rosbag2 tests. This may not be the nicest solution but it works. If we decide to go this route this will be properly documented.
@ahans @mikebauer @kgreenek @lalten I'd like to hear your opinions.

Seems to me like you have to patch every Python binary to load plugins like this from Python with libc++, independent of rules_ros2, correct? If I'm correct that this is a fundamental restriction of that combination of things outside of this project, then I think adding that so CI can test libc++ and telling users that they will have to do the same is fine.
From past experience with libc++ incompatibilities, I think there just aren't very many people using libc++ in complex open source projects. I think there's much more usage in proprietary codebases (which have no problem patching Python to add the flag everywhere), and leaf dependencies that just want run msan/etc (which don't run into problems like this).
Also, for reference https://python-dev.python.narkive.com/P6UYSCLF/problems-with-python-s-default-dlopen-flags is some (only vaguely civil) discussion around the problems RTLD_GLOBAL will cause with some other libraries. I think the answer if anybody wants to use ROS2, libc++, and one of those annoying libraries is "don't". C++ is much less prone to that class of problems due to name mangling too.

As my interest is mainly on the C++ side, I don't have much commentary on the python patching stuff, but the change of adding "-Wl,--export-dynamic" seems reasonable to me as discussed in https://github.com/mvukov/rules_ros2/discussions/180. Thanks for your efforts in doing further research on potential downsides. No objections from me here!

clang+libc++ issue(s) just served me to investigate the mentioned problems above. Issues with handling global symbol are very relevant for other compiler and libc combinations. This PR basically aims to nail all those issues.
On the C++ side, users won't have to do a thing: I already added linker flag at relevant places.
But, yes, all Python binaries will need be patched to have something like sys.setdlopenflags(os.RTLD_GLOBAL | os.RTLD_NOW) before any ros related code is imported. Personally, I don't consider this to be a big issue, given the issues this PR solves on the C++ side. Having to patch third-party ROS 2 Python binaries might be an annoyance, that's a fair point.

I've been diving deep into something that I only just realized is related to this. I've got another solution, which I think is better: make it so rosidl_typesupport_cpp::typesupport_identifier etc are only linked once. I'm close to having that implemented (and having permission from my employer to share it). All the existing tests pass with the strcmp patches removed with GCC.
Linking any symbol into multiple ELF libraries (or multiple times into a single ELF library) is kinda-sorta a violation of the One Definition Rule. For things like string constants it mostly works (except for having multiple pointer values), but I've had more complex global variables give weird segfaults from doing that before. Also linking things multiple times bloats the output binaries/shared libraries significantly.
Using cc_shared_library and rearranging the cc_common rules was harder than it looked, but I'm pretty sure I've got it working. I wrote a little test utility to look through all the binaries and shared objects in a runfiles tree and check for duplicate symbols, which passes with my changes.
What should I run to check if my changes fix everything you're aiming to fix here? I'm not sure if bazel test --config=clang //... is enough or if there are more changes to enable libc++.

Hi, very nice! Thanks for the efforts. I think we covered regular and edge cases well enough with tests. So, if gcc and clang pass both in the root of the repo and for examples, we're good.

@brians-neptune Following your comments and suggestions I dig deeper into this matter and took another shot at this: please take a look at 299. That one provides a working solution that is minimal, transparent for users and looks like it works both for gcc and clang.

If #299 works as expected, I'll just close this PR (for good :)).

Closing this one in favor of #299 .


Electrolyte potential strangely large

Describe the bug
When you run the example scripts for the SPMe and the DFN models the dimensional electrolyte potential is surprisingly large (of the order of 3V or higher). That is strange, especially for the SPMe in which the predicted size, from the analysis, is that it should be of the order of 180 \pm 25 mV.
To Reproduce
Steps to reproduce the behaviour:

Go to '/PyBaMM/examples/scripts/DFN.py' or /PyBaMM/examples/scripts/SPMe.py'
Run it
Check electrolyte profile at late times.

have fixed this. looks like the potential scale had been inadvertently deleted at some point. will make a PR now


feat(compat): Adds headless Linux support using keyctl

Originally pass was chosen as the alternative for headless Linux users, but unfortunately it also requires an initial keyring unlock before storing/reading credentials. keyctl avoids this and works as intended in a headless Linux environment.
In addition, since keyctl is a Linux library and wraps around the Linux kernel key retention service, this should be optimal for all Linux environments. My proposal is to drop secret_service as it is based off of the GNOME library libsecret, which would be another requirement for Linux users. keyctl should exist on all Linux variants that use the Linux kernel - in addition, interfacing w/ keyctl directly results in far fewer dependencies than secret_service.
This should also fix FreeBSD as secret_service < 3 was dependent on a broken version of zbus for FreeBSD environments - pipeline results should determine whether this issue was also solved

No sense in keeping this around as keyctl does not persist between reboots. Documentation was unclear at first but this was confirmed after some more testing. Will keep branch around in case a similar idea comes around in the future.


How to use multiple canvas in 64*64 size ?

I like to know how to implement like this?

If user upload a image, i need to show preview how their image looks when applied a filter.
Suppose if i have 100 filters then i need to show 100 preview. If i create 100 small canvas and execute then process will take time and will be too slow.
How others are doing in photo filter app?
What is the best way to show preview of 100 filters in effectively.
someone help me please

are you making an desktop app? If you use nwjs, you can make sure that user users latest chromium. If so, you have access to OffscrenCanvas, which gives an ability to copy image across canvases :) Theoretically. Practically i didnt check it yet.

No. It is mobile app.. I need to show filters preview like this.  What is the perfect and optimized way to show this.

What is the perfect and optimized way to show this.

well, first you have to understand how to stop and start rendering when its needed. https://github.com/pixijs/pixi.js/wiki/v5-Custom-Application-GameLoop
thumbs can be obtained through extract plugin. https://pixijs.download/dev/docs/PIXI.extract.html

Load the image in the PIXI app and then create 100 sprites for it, each one with a different filter. Also make sure to pause the updates (so don't run at 60FPS if nothing changes).


client: fix returning the wrong error

err goes out of scope at the end of the if-block
Bug found with ineffassign.

Thanks!


CPack Hotfix - Install Directory

This PR changes where the Etterna files are installed. Previously, the files were placed in
C:\Games\Etterna <version>\Etterna\<ALL_GAME_FILES>. Since that middle Etterna directory was unnecessary, it has been removed.

👍


feat: add support for sourcery

Description
Add support for https://github.com/sourcery-ai/sourcery
Related discussions: https://github.com/LunarVim/LunarVim/issues/850 and https://github.com/sourcery-ai/sourcery/issues/43

TODO

[ ] make sure it's clear that the token is required
[ ] find some testers who already use the service

I am already using the service if you`d like a tester.

Any updates regarding this PR?

@Uzaaft, I was waiting for your tests results 😅

Huston, we had a little miscommunication here. xD I'll test it ASAP. Hopefully within 12h.

@kylo252 The sourcery token is often located in the path: ~/.config/sourcery/auth.yaml file.
I propose that we remove the token part from the config(I did it locally). Makes it more secure as well regarding pushing your config to github.

Other than that, it works beautifully <3

If you need another tester, I can help :)

It is easy to test. If you are using packer, just change the repository from which you pull the source code of nvim-lspconfig to the one in the PR.

There is a typo sourcey -> sourcery which means this branch does not correctly: https://github.com/kylo252/nvim-lspconfig/blob/c45b65667b7603e246f8a53da5e0950ee1397a3e/lua/lspconfig/server_configurations/sourcery.lua#L14
Is there any progress being made on this PR? I agree the auth.yaml should be used for the token, but unsure how to implement myself.

There is a typo sourcey -> sourcery which means this branch does not work correctly

Thanks for catching that, fixed!

Is there any progress being made on this PR? I agree the auth.yaml should be used for the token, but unsure how to implement myself.

Basically waiting on https://github.com/neovim/nvim-lspconfig/pull/1495#discussion_r774138304, unless you guys have some suggestions for auth handling.

Auth.yaml hasn't been added to the docs. I've been stalking the docs for a few weeks now.

Sent sourcery.ai an email since their maintainer on GitHub didn't answer.

@kylo252  I think what you have currently is good enough for usage, despite auth.yaml perhaps being a good way to avoid pushing tokens to GitHub. We can't be stuck just because the a maintainer of an external repo does not answer.


fix: Correct typo in es2015 build

The outDir in the tsconfig.build.es2015.json file was incorrectly set to dist/es2016, meaning that the reference to dist/es2015 in package.json is incorrect and causes errors.
Addresses issue #12

Thanks!


react-joyride fails to build on @import

im at MacOS 10.12.6 with node -v 8.4.0 npm 5.3.0
My homebrew installation lets the npm run dev fail.
ERROR in ./~/css-loader!./~/sass-loader!./src/styles/scss/oi_editor.scss
Module build failed:
@import '../../../node_modules/react-joyride/lib/styles/react-joyride';
^
      File to import not found or unreadable: ../../../node_modules/react-joyride/lib/styles/react-joyride
Parent style sheet: stdin
      in /Users/novski/Sites/Oi/src/styles/scss/oi_editor.scss (line 8, column 1)
 @ ./src/styles/scss/oi_editor.scss 4:14-128 13:2-17:4 14:20-134
webpack: Failed to compile.

is this Issue reproducible?

Hi @novski
Thanks for this issue, I fix this problem but this project had too many things to update...
So, I just only deal you issue currently, but not update other modules this time!

eg. webpack, react, etc.

Please pull this and run it again, thanks.


[Python] file INSTALL cannot duplicate symlink because: A directory already exists at that location

Describe the bug, including details regarding any error messages, version, and platform.
I was having this issue https://github.com/apache/arrow/issues/34120, which I wasn't able to solve. So, for 1-2 weeks, I didn't do anything about it. Now, I'm back to it because I actually need to solve it. I tried to do a simple pip install pyarrow and I get this different error
Collecting pyarrow
  Using cached pyarrow-11.0.0.tar.gz (1.0 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy>=1.16.6 in /Users/ME/Library/Caches/pypoetry/virtualenvs/cornucopia-dyX6J5JG-py3.7/lib/python3.7/site-packages (from pyarrow) (1.21.6)
Building wheels for collected packages: pyarrow
  Building wheel for pyarrow (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for pyarrow (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [550 lines of output]
      running bdist_wheel

...
      CMake Error at cmake_install.cmake:58 (file):
        file INSTALL cannot duplicate symlink

          /opt/homebrew/include/arrow

        at

          /private/var/folders/9l/5rlxs0hd68j70xl9_4q01shr0001cb/T/pip-install-dto72zm3/pyarrow_441ee5835a0b469c9333c69d970d8694/build/lib.macosx-12.5-arm64-cpython-37/pyarrow/include/arrow

        because: A directory already exists at that location

      make: *** [install] Error 1
      error: command '/Applications/CMake.app/Contents/bin/cmake' failed with exit code 2
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pyarrow
Failed to build pyarrow
ERROR: Could not build wheels for pyarrow, which is required to install pyproject.toml-based projects

I don't know if this is due to some leftovers of my previous attempts to install pyarrow and arrow from source and with brew (as reported here https://github.com/apache/arrow/issues/34120) or not. In any case, I'm not sure how to solve this problem and I think other people may face it.
I tried to do

a brew reinstall apache-arrow and then pip install pyarrow
a brew uninstall apache-arrow and then pip install pyarrow

But I still get the error above
So, now that I'm not specifying version 7.0.0 now. If I do, I get another completely different error
Collecting pyarrow==7.0.0
  Using cached pyarrow-7.0.0.tar.gz (816 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy>=1.16.6 in /Users/ME/Library/Caches/pypoetry/virtualenvs/cornucopia-dyX6J5JG-py3.7/lib/python3.7/site-packages (from pyarrow==7.0.0) (1.21.6)
Building wheels for collected packages: pyarrow
  Building wheel for pyarrow (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for pyarrow (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [649 lines of output]

...

          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'pyarrow.vendored' as an importable package,
          but it is not listed in the `packages` configuration of setuptools.

          'pyarrow.vendored' has been automatically added to the distribution only
          because it may contain data files, but this behavior is likely to change
          in future versions of setuptools (and therefore is considered deprecated).

          Please make sure that 'pyarrow.vendored' is included as a package by using
          the `packages` configuration field or the proper discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).

          You can read more about "package discovery" and "data files" on setuptools
          documentation page.

      !!

        check.warn(importable)
      error: command '/Applications/CMake.app/Contents/bin/cmake' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pyarrow
Failed to build pyarrow
ERROR: Could not build wheels for pyarrow, which is required to install pyproject.toml-based projects

Python version: 3.7.13
Component(s)
Python

I don't know if this is due to some leftovers of my previous attempts to install pyarrow and arrow from source and with brew or not. In any case, I'm not sure how to solve this problem and I think other people may face it.

I've just run into this same problem, first time. Might still be a config issue but more likely an issue with the pyarrow build.
Time to start digging through source code 😞

You can try #34674 by:
git clone https://github.com/kou/arrow.git
cd arrow
git switch python-include-arrow-symlink
pip install ./python


Please add VIM shortcut key

swq1998,
perhaps you're talking about integrating the iVim app into LibTerm? That would be a lot of work though.

maybe like "Suggestions bar 2" ESC , Ctrl , Alt , Tab


Adding a "pressed" and "depressed" state

Feedback by fitim

It would be awesome to have a way to visualize "on" and "off" state of an entity, like in "Most used" here: https://github.com/N-l1/lovelace-soft-ui/raw/master/images/UI_lights_page_dark_theme.png
Great job so far!

Thanks for the feedback! I was thinking of adding support for templates to icon_color.
Would this be an acceptable solution for you?

Wow, thanks for the prompt response!
Yes, template for icon_color would definitely be helpful, but what would be
even better is:

in addition to template-able icon_color / font_color: implement default
behavior (mainly for switches and/or lights that support on/off state),
e.g. by default set icon_color = var(--primary-color) if state==='on'; else
var(--text-disabled-color) [these CSS variables are only suggestions, not
sure what is best practice]
have an even better visual representation of on/off using this "3D
pressed down" effect (different style box shadow) as in the screenshot I
posted earlier

If I can support in any of this with my very limited JS / CSS experience,
let me know :-)
Am Mo., 30. März 2020 um 09:08 Uhr schrieb Xavier Decuyper <
<EMAIL_ADDRESS>
Thanks for the feedback! I was thinking of adding support for templates to
icon_color.
Would this be an acceptable solution for you?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Savjee/button-text-card/issues/13#issuecomment-605822460,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFC2JIMPOCGC6GP42XKQ7ZDRKBAPNANCNFSM4LPU423Q
.

Same comment, with better formatting:
Wow, thanks for the prompt response!
Yes, template for icon_color would definitely be helpful, but what would be even better is:

in addition to template-able icon_color / font_color: implement default behavior (mainly for switches and/or lights that support on/off state), e.g. by default set icon_color = var(--primary-color) if state==='on'; else var(--text-disabled-color) [these CSS variables are only suggestions, not
sure what is best practice]
have an even better visual representation of on/off using this "3D pressed down" effect (different style box shadow) as in the screenshot I posted earlier

If I can support in any of this with my very limited JS / CSS experience, let me know :-)

Thanks for the suggestions.
I've just implemented your first suggestion in the dev branch and will push it live soon. I decided to handle it like this:

By default, the text color is used as icon color.
User can change icon_color with a HEX code or template
User can set icon_color to auto, in which case it will look at the state of the entity

Makes sense?
(Working on pressed/depressed state)

Sounds like exactly what I envisioned :) This and the pressed/depressed update will be a game changer. Thanks a lot!

Is there a solution for this already?

@MEKadan No not yet. I was struggling a bit to make it work for both light and darkmode. Suggestions are welcome!


Write genesis file in state migration

Rebase of #167 on celo7 branch with some edits to support baklava and mainnet in addition to alfajores.

Output the genesis json to --outfile.genesis path.  Nodes will need this in order to sync.
During the migration some hardforks are enabled. To make syncing work, they need to be added to the config stored in the genesis file so that the forkids match
Write genesis allocs to new db for forward compatibility

Other changes:

Fixes an unrelated error in the pre-migration where getStrayAncients and migrateAncients were competing for a lock on the oldDB freezer.

Tested:

Manually / locally on alfajores datadir

Fixes https://github.com/celo-org/optimism/issues/159

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

Project coverage is 27.14%. Comparing base (e5c7e34) to head (b0d0280).

:exclamation:  There is a different number of reports uploaded between BASE (e5c7e34) and HEAD (b0d0280). Click for more details.
HEAD has 2 uploads less than BASE

Flag
BASE (e5c7e34)
HEAD (b0d0280)

sdk-tests
1
0

cannon-go-tests
1
0

Additional details and impacted files
@@             Coverage Diff             @@
##            celo7     #219       +/-   ##
===========================================
- Coverage   61.32%   27.14%   -34.19%
===========================================
  Files          20        4       -16
  Lines        1753      140     -1613
  Branches       71       12       -59
===========================================
- Hits         1075       38     -1037
+ Misses        646      102      -544
+ Partials       32        0       -32

Flag
Coverage Δ

cannon-go-tests
?

chain-mon-tests
27.14% <ø> (ø)

sdk-tests
?

Flags with carried forward coverage won't be shown. Click here to find out more.
see 16 files with indirect coverage changes

@piersy @palango Okay I've fixed two issues since the last round of reviews.
(1) Some extra fields were getting added to the genesis.json that we are now deleting. These fields are part of the Genesis type in the current code base but were not present in the legacy Genesis type. They were getting set to null / zero values but this was changing the hash.
(2) We were reading the exraData field from block 0 stored in the non-ancient db. This is a duplicate record of the genesis block to the one stored in ancients and is only accessed when we open a db instance without access to ancients. This is what we were doing in the state migration function before writing the genesis.json, so we were getting an extraData field there that was not transformed and did not match the one in Dango.
After these changes, the diff between the Dango genesis.json posted here and the genesis.json output by the migration script is shown below.
You'll see that the only remaining diff is in the hardfork block numbers and timestamps, which is to be expected as the Dango migration was run much earlier than the test migration that generated the genesis.json using the changes in this PR.

Waiting to merge into celo8 @karlb

Can we backport this to celo8? I've run a test on an archive node but get this error, I think because the rollup.json and genesis.json was generated with a more updated branch:
INFO [09-16|19:02:21.072] Processing Block Range                   process=non-ancients          from=26,211,658 to(inclusve)=26,216,657 count=4999
INFO [09-16|19:02:21.826] TIMER                                    process=migrateNonAncientsDb  duration=31.248367644s
INFO [09-16|19:02:21.827] TIMER                                    process=removeBlocks          duration="409.547µs"
INFO [09-16|19:02:21.827] Removed stray ancient blocks still in leveldb process=non-ancients          removedBlocks=36
INFO [09-16|19:02:21.827] Non-Ancient Block Migration Completed    process=non-ancients          migratedNonAncients=89999
INFO [09-16|19:02:27.991] TIMER                                    process="non-ancient migration" duration=41.846648191s
INFO [09-16|19:02:27.991] State Migration Started                  newDBPath=/output/celo/chaindata_migrated deployConfig=/output/config/config.json l1Deployments=/output/config/deployment-l1.json l1RPC="https://holesky.cel2.celo-networks-dev.org?apikey=69a921736b1a9abcda36d138f39d919c3478d969e770e09e1d614ba7e720a4f4" l2AllocsPath=/output/config/l2-allocs.json outfileRollupConfig=/output/config/rollup.json
INFO [09-16|19:02:28.002] TIMER                                    process="state migration"       duration=10.56922ms
INFO [09-16|19:02:28.002] TIMER                                    process="full migration"        duration=1h58m6.60066968s
CRIT [09-16|19:02:28.003] error in migration                       err="failed to run full migration: failed to run state migration: cannot unmarshal deploy config: json: unknown field \"useAltDA\""
Command exited with non-zero status 1

@palango @piersy Rebased this onto celo8 but now I'm getting an error. Will have to investigate when I'm back on Thursday
CRIT [09-17|19:28:45.858] error in migration                       err="failed to run full migration: failed to run state migration: cannot unmarshal deploy config: json: unknown field "usePlasma""

CRIT [09-17|19:28:45.858] error in migration err="failed to run full migration: failed to run state migration: cannot unmarshal deploy config: json: unknown field "usePlasma""

Plasma as been renamed to AltDA, so this might just be in need of a rename.

I think you need to generate the migration config files from this branch (or ~celo8) to work.
I'm testing with these files if you want to use them:
      wget -O /output/config/config.json https://storage.googleapis.com/cel2-rollup-files/alfajores-mvp/config.json
      wget -O /output/config/deployment-l1.json https://storage.googleapis.com/cel2-rollup-files/alfajores-mvp/deployment-l1.json
      wget -O /output/config/l2-allocs.json https://storage.googleapis.com/cel2-rollup-files/alfajores-mvp/l2-allocs.json

Finished successfully from a recent alfajores full data dir. Full logs.
INFO [09-18|11:28:25.221] Copied account                           address=0x42000000000000000000000000000000000002F6
INFO [09-18|11:28:25.222] Migrated OP contracts into state DB      totalAllocs=2079 copiedAccounts=2064 overwrittenAccounts=2
INFO [09-18|11:28:25.224] Setting up CeloDistributionSchedule balance
INFO [09-18|11:28:25.231] Read contract addresses                  tokenAddress=0xF194afDf50B03e69Bd7D057c1Aa9e10c9954E4C9 distributionScheduleAddress=0x78Af211Ad79bCE6BF636640CE8c2C2b29e02365A
INFO [09-18|11:28:25.232] Set up CeloDistributionSchedule balance  distributionScheduleAddress=0x78Af211Ad79bCE6BF636640CE8c2C2b29e02365A balance=889,746,012,574,949,080,212,044,180 total_supply=110,253,987,425,050,919,787,955,820 ceiling=1,000,000,000,000,000,000,000,000,000
INFO [09-18|11:28:25.233] Committing state DB
INFO [09-18|11:28:26.370] Build Cel2 migration header              header="&{ParentHash:0xc3a663bf1e5f5f2a29a522a7746787d81222aaf323dcf4183ad30cbccd8e8652 UncleHash:0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347 Coinbase:0x4200000000000000000000000000000000000011 Root:0x4cfa0514d6b362556090b665b8e096107ed59bc3c75c365e8b16ad2387c0278f TxHash:0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421 ReceiptHash:0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421 Bloom:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] Difficulty:+0 Number:+26247232 GasLimit:35000000 GasUsed:0 Time:1726658906 Extra:[67 101 108 111 32 76 50 32 109 105 103 114 97 116 105 111 110] MixDigest:0x0000000000000000000000000000000000000000000000000000000000000000 Nonce:[0 0 0 0 0 0 0 0] BaseFee:+25000000000 WithdrawalsHash:0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421 BlobGasUsed:0xc035c5f9f8 ExcessBlobGas:0xc035c5fa00 ParentBeaconRoot:0x2813e4233b3cc22cb6a3c031d5b04e4e5e4845eddadb897258fbe1d1a0d2c251}"
INFO [09-18|11:28:26.371] Built Cel2 migration block               hash=f7d0f9..13af9b root=4cfa05..c0278f number=26,247,232
INFO [09-18|11:28:26.371] Committing trie DB
INFO [09-18|11:28:26.465] Persisted trie from memory database      nodes=7993 size=2.21MiB time=94.30249ms gcnodes=0 gcsize=0.00B gctime=0s livenodes=0 livesize=0.00B
INFO [09-18|11:28:26.470] Wrote updated chain config               config="{\"chainId\":44787,\"homesteadBlock\":0,\"daoForkSupport\":true,\"eip150Block\":0,\"eip155Block\":0,\"eip158Block\":0,\"byzantiumBlock\":0,\"constantinopleBlock\":0,\"petersburgBlock\":0,\"istanbulBlock\":0,\"berlinBlock\":26247232,\"londonBlock\":26247232,\"arrowGlacierBlock\":26247232,\"grayGlacierBlock\":26247232,\"mergeNetsplitBlock\":26247232,\"shanghaiTime\":1726658906,\"cancunTime\":1726658906,\"bedrockBlock\":26247232,\"regolithTime\":1726658906,\"canyonTime\":1726658906,\"ecotoneTime\":1726658906,\"fjordTime\":1726658906,\"graniteTime\":1726658906,\"cel2Time\":1726658906,\"gingerbreadBlock\":19814000,\"terminalTotalDifficulty\":0,\"terminalTotalDifficultyPassed\":true,\"optimism\":{\"eip1559Elasticity\":6,\"eip1559Denominator\":50,\"eip1559DenominatorCanyon\":250}}"
INFO [09-18|11:28:26.476] Wrote genesis file for syncing new nodes path=/output/config/genesis.json
INFO [09-18|11:28:26.476] Wrote genesis state spec (alloc) to database
INFO [09-18|11:28:26.477] Wrote CeL2 migration block               height=26,247,232 root=0x4cfa0514d6b362556090b665b8e096107ed59bc3c75c365e8b16ad2387c0278f hash=0xd68a25ced7a2c91e07ff282dcc98eed15a05c7314f8dd94afd5b184255fff54e timestamp=1,726,658,906
INFO [09-18|11:28:26.548] Updated Cel2 state
INFO [09-18|11:28:26.549] Writing rollup config                    file=/output/config/rollup.json
INFO [09-18|11:28:26.549] State Migration Completed
INFO [09-18|11:28:26.549] TIMER                                    process="state migration"       duration=17.039925787s
INFO [09-18|11:28:26.549] Full Migration Finished                  oldDBPath=/output/celo/chaindata newDBPath=/output/celo/chaindata_migrated
INFO [09-18|11:28:26.549] TIMER                                    process="full migration"        duration=31m34.645560461s
INFO [09-18|11:28:26.549] Finished full migration successfully!
real	31m 37.38s
user	17m 7.63s
sys	7m 34.76s

Okay I've also been able to successfully run the migration with the testdata @jcortejoso provided (which I've added to the PR in the last commit)
Gonna go ahead and merge this so it doesn't block anyone


Better data exploration

ground truth
section support
individually togged maps

@jf87 @hariv you might find the new data exploration template useful 😄

Merging this now; LMK if you have any questions

@hariv just merged his now, should make it easier to work with maps and actually compare against ground truth as opposed to other sensed data


Just a question about suffix -sori

For partial layouts that end with suffix -sori what is different and is the use of -sori version or without the suffix determined by choice of "casper" or "caspertwo"?
Thanks.

@lewisl Yes, casper vs caspertwo determines that - you can see a lot of if-then statements in the layout files, mainly 'if casper do this, else do that'


[riscv64] Make MICROPYTHON work for riscv64

Thanks for this change, @aenrbes. I think the change fixes an actual bug, but Micropython still doesn't build for me on RISCV64:
In toolchain2/riscv64/micropython/ports/unix/build_2.log we have:
main.c:56:33: error: argument 2 of type ‘char[4096]’ with mismatched bound [-Werror=array-parameter=]
   56 | realpath(const char *path, char resolved[PATH_MAX]);
      |                            ~~~~~^~~~~~~~~~~~~~~~~~
In file included from main.c:32:
/home/vlad/dev/tilck2/toolchain2/host_x86_64/gcc_12_3_0_riscv64_musl/riscv64-buildroot-linux-musl/sysroot/usr/include/stdlib.h:115:41: note: previously declared as ‘char * restrict’
  115 | char *realpath (const char *__restrict, char *__restrict);
      |                                         ^

Did you observe this error? Of course, this should be easy to fix in my Micropython fork, but I wonder if I'm missing something, since it looks like that you made it work somehow with this change. I compiled Micropython with the build_toolchain script:
vlad@K4:~/dev/tilck2$ ./scripts/build_toolchain -s micropython

ARCH=riscv64
HOST_ARCH=x86_64
GCC_TC_VER=12.3.0
DEFAULT_GCC_TC_VERSION=12.3.0
ARCH_GCC_TC_VER=stable-2024.02-1
ARCH_GCC_TC_EXT=tar.bz2
USE_SYSCC=
CC=
CXX=

CI Detected: None [Assuming user machine]
[build_toolchain] Executing single function 'build_micropython'

*** MICROPYTHON ***

Extracting micropython-1.13-tilck.tgz...
Extracting completed.
Running command: make V=1 MICROPY_PY_FFI=0 MICROPY_PY_THREAD=0 -j &> build_1.log
Running command: make submodules &> make_submodules.log
Running command: make V=1 MICROPY_PY_FFI=0 MICROPY_PY_THREAD=0 -j &> build_2.log
vlad@K4:~/dev/tilck2$ less toolchain2/riscv64/micropython/ports/unix/build_2.log

@vvaltchev, I have not observe any error.
./scripts/build_toolchain -s build_micropython

ARCH=riscv64
HOST_ARCH=x86_64
GCC_TC_VER=12.3.0
DEFAULT_GCC_TC_VERSION=12.3.0
ARCH_GCC_TC_VER=stable-2024.02-1
ARCH_GCC_TC_EXT=tar.bz2
USE_SYSCC=
CC=
CXX=

CI Detected: None [Assuming user machine]
[build_toolchain] Executing single function 'build_micropython'

*** MICROPYTHON ***

Extracting micropython-1.13-tilck.tgz...
Extracting completed.
Running command: make V=1 MICROPY_PY_FFI=0 MICROPY_PY_THREAD=0 -j &> build_1.log
Running command: make submodules &> make_submodules.log
Running command: make V=1 MICROPY_PY_FFI=0 MICROPY_PY_THREAD=0 -j &> build_2.log
[build_toolchain] Executing single function: DONE

@vvaltchev, I have not observe any error.

That's interesting. I'll dig further about that. For the moment, I'll merge this PR since it's still need for micropython.


Desktop shelving/storage

I need to get some extra counter top space (LOL). It would be nice to get the printer and scanner off the desktop and up onto a shelf or something. plus some other things maybe.
Ideas:

Found another solution, but similar.


[5.9] Per environment config caching

This PR is part one of two PRs (part two). Together these PRs can reduce the boot time of the Kernel during a test run by ~50% without any additional work by the developer. This will only really have an impact on a larger test suite, but personally I think it is a worthwhile thing to consider.
I recently did some benchmarking (which I wrote about over here) of Laravel's TestCase class. Naturally, as we would expect, extending Laravel's base class instead of PHPUnit's base class comes with some overhead as the Kernel is being booted before every test.
I found that I was able to reduce this overhead by 50% if I first cached the configuration, just like you would in production. The test suite ended up with the following durations:

Without caching: 9.15s
With caching: 4.2s

Doing this is good for a couple of reasons:

It's faster.
It is closer reflects what you use in production.

There are however a few issues.

Whenever you cache the config it always ends up in bootstrap/cache/config.php so when you cache your testing environment config it overrides any local config caching. This means that your testing config is now used when using your app locally (unless you clear the config cache of course).
The process of caching / clearing the config before and after a test run is a manual one.

I am proposing we introduce 2 new features.
Per environment config caching
When you cache the config, it will now use the following cache files...
php artisan config:cache
# bootstrap/cache/config.php

php artisan config:cache --env=testing
# bootstrap/cache/config.testing.php

php artisan config:cache --env=whatever
# bootstrap/cache/config.whatever.php

A PHPUnit Listener
The PHPUnit listener will cache the config for the test environment before a test is run. Because it is in "User land" it is 100% opt-in. If you don't want it, don't use it.
One handy thing about running the cache command in a PHPUnit listener (as opposed to say in a composer script) is that it will already have the environment variables from the phpunit.xml file loaded, so we don't need to read those ourselves.
The PR for the listener is over here: https://github.com/laravel/laravel/pull/5049
Notes

There is an environment variable to override the config cache path. I'm not entirely sure the best way to use that existing override to allow this to all happen behind the scenes.

I'm checking if we are running in the console in these adjustments so that we don't affect production speeds while trying to improve test run speeds.

This PR might need adjustments depending on the outcome of https://github.com/laravel/framework/pull/28982

Am I crazy or are there no existing test for the config commands? Is this on purpose or would you like me to write some tests for the new functionality?

It should be possible to achieve all of this from a 3rd party package, but I think it is something that would actually be handy in core. If it isn't suitable, I'll attempt to package it up.

It would be great if someone familiar with complex environment setups in CI / production could give any feedback on this. My env setup is always pretty basic TBH.

Further improvements
If this kind of thing is wanted in core, there is also potential to cache routes, events, etc. But I wanted to see if it was wanted before putting in the work to do all of them.

Edit:
An alternative approach
In my first run at this I was having issues using the APP_CONFIG_CACHE but I just had another run at it and this improvement looks like it is possible without any changes to the existing framework.
This new PR to laravel/laravel does the same thing as this 2 part PR - all in one, i.e. you don't need any changes to laravel/framework.

@timacdonald would you not be able to set the env var APP_CONFIG_CACHE with a testing-specific path when running your tests instead?
e.g.,
APP_CONFIG_CACHE=/test/cache/path/for/config.php php artisan config:cache
phpunit
APP_CONFIG_CACHE=/test/cache/path/for/config.php php artisan config:clear

@matthewnessworthy I did consider that variable (and mentioned it in my first comment) but I ran into some issues. That being said, I didn't actually document what they were, and I've also change my approach and have a better understanding of this part of the system, so it might be worthwhile giving it another spin. Will report back shortly.

@matthewnessworthy I'm not sure what issues I was running into. I just made a complete working version in like 2 minutes with that env variable 😆

2. The process of caching / clearing the config before and after a test run is a manual one

Is this still the case?
If the environment variable to a different cache file works, it's only relevant to clear the config cache once before the test suite which should be rather easy to detect.

I've a test suite of ~6k tests to this test on though there are (unfortunately) a LOT of integration tests so not sure if the framework boot time is even relevant. But I try to see if I can test it until tomorrow.

Gonna close this in favour of this alternative approach which has a much smaller footprint on the framework: https://github.com/laravel/laravel/pull/5050


opengl and opengl3 examples need new GLCreateContext and GLSwap methods

I wasn't able to compile the opengl examples (opengl, opengl3), the sdl.createContext and sdl.GLSwapWindow methods were undefined.
I found issue below and used window.GLCreateContext() and window.GLSwap() and was able to then compile and run.
should GLCreateContext use a *Window receiver? #325
those 2 methods should be fixed in the master branch of the examples repo so new users can run them.
Cheers on this library, I consider it one of go's best!

Hi @jojomickymack, thanks for the report! It should have been fixed in the latest commit now.

works great!


feat: preparations for theming

Description

How and where has this been tested?
Please tag yourself on the tests you've marked complete to confirm the tests have been run by someone other than the author.
Validation steps

Regression testing
Validate:

The documentation pages for at least two other components are still loading, including:

[ ] The pages render correctly, are accessible, and are responsive.

If components have been modified, VRTs have been run on this branch:

[ ] VRTs have been run and looked at.
[ ] Any VRT changes have been accepted (by reviewer and/or PR author), or there are no changes.

Screenshots

To-do list

[ ] I have read the contribution guidelines.
[ ] I have updated relevant storybook stories and templates.
[ ] I have tested these changes in Windows High Contrast mode.
[ ] If my change impacts other components, I have tested to make sure they don't break.
[ ] If my change impacts documentation, I have updated the documentation accordingly.
[ ] ✨ This pull request is ready to merge. ✨

Early chromatic run: https://www.chromatic.com/build?appId=64762974a45b8bc5ca1705a2&number=3743


work on uauth

In order to be able to test out we need to fill in a NEXT_PUBLIC_WALLETCONNECT_ID Env variable.
Wallet button not stylized/tested, sits near the rainbowWallet button

Downgraded mantine import so it builds


Reject job requests for invalid rounds

For incoming job, what is a valid range?

A full end 2 end solution can currently not be implemented because when the proxy receives an error ack, it does not know which job it belongs to. This is here in the source code: https://github.com/noislabs/nois-contracts/blob/main/contracts/nois-proxy/src/contract.rs#L593-L601
So ideally we just add a range check in the proxy for now to rect invalid requests early on.

has this issue been fixed on the new proxy ?

What I suggest is move this check from airdrop to the proxy:
https://github.com/noislabs/nois-contracts/pull/243/commits/8fd6d2b9aaee52c27b08e34e68b2142255cfd19e

yeah I think this makes sense. then the tx simulation would also fail right with the same error and same everything?

Yes. The simulation executes the transaction as if it was in a block. Some data is mocked (e.g. block time is currect time) but the Wasm execution is the same in the simulation.

Very nice. So who takes this task ?

I'm happy to do this tomorrow. The code chance is small but it's a good opportunity to increase test coverage and finalize version 0.13.5 of the proxy.

nice

A proxy-based version was added in 0.13.5: https://github.com/noislabs/nois-contracts/pull/247


suggestion on type errors

Type:  Infrastructure

After upgrading to 10+ we noticing few type errors.

Packages
Version

fela
10.2.4

Description
Following type errors we see.
// styles
    otherSelectors: {
        // .a .sub-class
        '& .sub-class': {
            color: 'blue',
            // they can contain nested objects e.g.
            // .a .sub-class:hover
            ':hover': {
                color: 'black',
            },
        },
    },

// type errors
Type '({ fontScale, theme }: OwnProps & FelaWithThemeProps<Theme>) => { container: { display: string; flexDirection: "column"; alignItems: string; }; firstSection: ({ theme }: OwnProps & FelaWithThemeProps<Theme>) => { ...; }; secondSection: { ...; }; thirdSection: { ...; }; otherSelectors: { ...; }; }' is not assignable to type
'TMultiRule<OwnProps & FelaWithThemeProps<Theme>, Styles>'.
  Type '({ fontScale, theme }: OwnProps & FelaWithThemeProps<Theme>) => { container: { display: string; flexDirection: "column"; alignItems: string; }; firstSection: ({ theme }: OwnProps & FelaWithThemeProps<Theme>) => { ...; }; secondSection: { ...; }; thirdSection: { ...; }; otherSelectors: { ...; }; }' is not assignable to type 'TMultiRuleFunction<OwnProps & FelaWithThemeProps<Theme>, Styles>'.
    Type '{ container: { display: string; flexDirection: "column"; alignItems: string; }; firstSection: ({ theme }: OwnProps & FelaWithThemeProps<Theme>) => { backgroundColor: string; fontSize: string; }; secondSection: { ...; }; thirdSection: { ...; }; otherSelectors: { ...; }; }' is not assignable to type
'TMultiRuleObject<OwnProps & FelaWithThemeProps<Theme>, Styles>'.
      Types of property 'otherSelectors' are incompatible.
        Type '{ '& .sub-class': { color: string; ':hover': { color: string; }; }; }' is not assignable to type 'IStyle | TRule<OwnProps & FelaWithThemeProps<Theme>>'.
          Type '{ '& .sub-class': { color: string; ':hover': { color: string; }; }; }' is not assignable to type 'TRule<OwnProps & FelaWithThemeProps<Theme>>'.
            Type '{ '& .sub-class': { color: string; ':hover': { color: string; }; }; }' provides no match for the signature '(props: OwnProps & FelaWithThemeProps<Theme>, renderer: IRenderer): IStyle'.

Currently, this is one of the solutions suggested in csstypes. Wondering if there is any better way to generate .d.ts from styles file.
    otherSelectors: {
        // .a .sub-class
        ['& .sub-class' as any]: {
            color: 'blue',
            // they can contain nested objects e.g.
            // .a .sub-class:hover
            ':hover': {
                color: 'black',
            },
        },
    },

I have tried something like this, still no luck.
@sample-stack/counter-module-browser:       TS2322: Type '() => { container: { display: string; flexDirection: string; alignItems: string; }; firstSection: ({ theme }: { theme: any; }) => { backgroundColor: any; fontSize: string; }; secondSection: ({ theme, fontScale }: { theme: any; fontScale: any; }) => { ...; }; thirdSection: ({ theme, fontScale }: { ...; }) => { ...; }...' is not assignable to type 'TMultiRule<OwnProps & FelaWithThemeProps<Theme>, { container: { display: string; flexDirection: string; alignItems: string; }; firstSection: ({ theme }: { theme: any; }) => { backgroundColor: any; fontSize: string; }; secondSection: ({ theme, fontScale }: { ...; }) => { ...; }; thirdSection: ({ theme, fontScale }: {...'.
@sample-stack/counter-module-browser:   Type '() => { container: { display: string; flexDirection: string; alignItems: string; }; firstSection: ({ theme }: { theme: any; }) => { backgroundColor: any; fontSize: string; }; secondSection: ({ theme, fontScale }: { theme: any; fontScale: any; }) => { ...; }; thirdSection: ({ theme, fontScale }: { ...; }) => { ...; }...' is not assignable to type 'TMultiRuleFunction<OwnProps & FelaWithThemeProps<Theme>, { container: { display: string; flexDirection: string; alignItems: string; }; firstSection: ({ theme }: { theme: any; }) => { backgroundColor: any; fontSize: string; }; secondSection: ({ theme, fontScale }: { ...; }) => { ...; }; thirdSection: ({ theme, fontSc...'.
@sample-stack/counter-module-browser:     Type '{ container: { display: string; flexDirection: string; alignItems: string; }; firstSection: ({ theme }: { theme: any; }) => { backgroundColor: any; fontSize: string; }; secondSection: ({ theme, fontScale }: { theme: any; fontScale: any; }) => { ...; }; thirdSection: ({ theme, fontScale }: { ...; }) => { ...; }; othe...' is not assignable to type 'TMultiRuleObject<OwnProps & FelaWithThemeProps<Theme>, { container: { display: string; flexDirection: string; alignItems: string; }; firstSection: ({ theme }: { theme: any; }) => { backgroundColor: any; fontSize: string; }; secondSection: ({ theme, fontScale }: { ...; }) => { ...; }; thirdSection: ({ theme, fontScal...'.
@sample-stack/counter-module-browser:       Types of property 'container' are incompatible.
@sample-stack/counter-module-browser:         Type '{ display: string; flexDirection: string; alignItems: string; }' is not assignable to type 'IStyle | TRule<OwnProps & FelaWithThemeProps<Theme>>'.
@sample-stack/counter-module-browser:           Type '{ display: string; flexDirection: string; alignItems: string; }' is not assignable to type 'IStyle'.
@sample-stack/counter-module-browser:             Types of property 'flexDirection' are incompatible.
@sample-stack/counter-module-browser:               Type 'string' is not assignable to type 'FlexDirectionProperty'.

@veeramarni Feel free to send a PR improving the TypeScript types. I'm not a TypeScript user nor expert so I can't really help out here at all.

I think this problem is alreay soved, see fela-plugin-typescript, there is explanation there how to use this plugin to achive typechecking in nested css rules


Registration failed generic message

Seen several registration failed errors without an explanation.
The bidders were actually registered, but their credit card wasn't added. This is probably a viable scenario given our general rate of cc failures, and given that it's possible users just enter bad credit cards, so maybe the registration should just succeed in this case and tell you that adding the cc has failed. When you bid, we will ask you for your cc again when that's the case.

We can ignore failures for CC registration while the use is signing up through the "Register" button flow. It's going to be tricky for actually placing a bid, though. I think what would probably be best would be a more specific error message asking the user to talk to an Artsy rep. Does that make sense?

Any thoughts on this @dblock ? @katarinabatina ?

We shouldn't complete a registration if the card read is bad/fails. One first card read error, we should prompt the user to swipe again, on the second we should prompt the user to add their details manually, and if that doesnt work then we ask them to speak with an artsy rep. (in both cases of registering or placing a bid)

Tracking in Trello: https://trello.com/c/LyhcOr1f/19-kisoks-registration-failed-generic-message


Download Error

+---------------------------------------------------+
|            UNATTENDED UBUNTU ISO MAKER            |
+---------------------------------------------------+
which ubuntu edition would you like to remaster:
[1] Ubuntu href="precise/" LTS Server amd64 - Precise Pangolin
[2] Ubuntu href="trusty/" LTS Server amd64 - Trusty Tahr
[3] Ubuntu href="xenial/" LTS Server amd64 - Xenial Xerus
[4] Ubuntu href="bionic/" LTS Server amd64 - Bionic Beaver
please enter your preference: [1|2|3|4]: 4
please enter your preferred timezone: Etc/UTC
please enter your preferred username: whittinghamj
please enter your preferred password:
confirm your preferred password:
Make ISO bootable via USB: yes
downloading ubuntu-href="bionic/"-server-amd64.iso: 11:52: DONE
Error: Failed to download ISO: http://cdimage.ubuntu.com/releases/href="bionic/"/release/ubuntu-href="bionic/"-server-amd64.iso
This file may have moved or may no longer exist.
You can download it manually and move it to /root/ubuntu-href="bionic/"-server-amd64.iso
Then run this script again.
Any ideas?

Ubuntu change urls, which cause the problems:

http://releases.ubuntu.com/
http://cdimage.ubuntu.com/releases

Script create-unattended-iso.sh run through:

line 74-77: Get wrong name
line 92-107: Get wrong download link

You may work around as hard-code download link. Ex:
For ubuntu 18.04
[4]* )  download_file="ubuntu-18.04.2-server-amd64.iso"
           download_location="http://cdimage.ubuntu.com/releases/18.04/release/"
           new_iso_name="ubuntu-18.04.2-server-amd64-unattended.iso"
           break;;

Or if the change is for all images, you could just change the main download URL in the script; if you do, please submit a PR and I will merge it into the main script!


VTK build broken again

Hello,
Now I get this error message on the ANTs build:
[ 30%] Linking CXX executable ../../bin/GetMeshAndTopology
../../lib/libl_GetMeshAndTopology.so.2.1.0: undefined reference to vtkScalarBarActor::New()' ../../lib/libl_GetMeshAndTopology.so.2.1.0: undefined reference to vtkSTLWriter::New()'
I believe these were the same errors I was receiving in a previous issue.

Did you completely remove your current build including any VTK or ITK superbuilds?  If not, you probably want to  start with a fresh checkout as there's been some recent VTK-related changes.

Fixed via #383

OK, I can verify that this has been fixed.


feat: project user and role binding under project

Signed-off-by: xu.jingwen<EMAIL_ADDRESS>
What type of PR is this?
/kind feature

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #305
Special notes for reviewers:

Does this PR introduced a user-facing change?

Additional documentation, usage docs, etc.:

/cc @x893675
/cc @lixd

/milestone v1.3.2

Codecov Report

Merging #306 (c5f2015) into feature/v1.3.2 (a36b92c) will decrease coverage by 0.08%.
The diff coverage is 0.00%.

@@                Coverage Diff                 @@
##           feature/v1.3.2     #306      +/-   ##
==================================================
- Coverage           12.97%   12.88%   -0.09%
==================================================
  Files                  99       99
  Lines               15545    15648     +103
==================================================
  Hits                 2017     2017
- Misses              13285    13388     +103
  Partials              243      243

Impacted Files
Coverage Δ

pkg/models/iam/iam.go
8.02% <0.00%> (-2.03%)
:arrow_down:

/approve


fix(forge): shortcuts footer not showing in debug mode

Motivation
#5310
Solution
It seems that in a previous PR,  a new keystroke was added to hide the footer with the shortcuts in the debug mode. The variable responsible for this functionality was set to false by default, to fix the bug I changed it to true so that once someone opens the debug window can optionally hide it by typing h.
I also renamed the variable in order to make it clearer what aspect of the UI it manages.
When opening the debug window the first time:

After typing h:

ah, true. @xeno097 that's another easy pr :)

ah, true. @xeno097 that's another easy pr :)

Sure I'll submit a pr later with the updated footer


Improve resillience when any CodeceptJS helper crashes in "_before"

If something breaks in "_before" in any helper, then "mailslurper" helper will throw an unnecessary error, because "this.mailboxes" is "undefined":
🔴 "Cannot read property 'length' of undefined"
This PR fixes it.

This will fix the annoying situation that, if some helper crashes, this will make crash "Mailslurper" as well, although this can be prevented.

Thanks!


[BUG] OPENSEARCH_INITIAL_ADMIN_PASSWORD doesn't work with opensearch:2.17.0 docker image

Describe the bug
In version 2.17 of the official OpenSearch Docker image, the environment variable OPENSEARCH_INITIAL_ADMIN_PASSWORD is not functioning as expected. When launching the container, OpenSearch prompts for an admin password despite the variable being set in the docker-compose.yml file.
The admin password is correctly set in the container and can be verified within the environment variables.
  opensearch-node:
    image: opensearchproject/opensearch:2.17.0
    environment:
      - cluster.name=${CLUSTER_NAME}
      - node.name=${NODE_NAME}
      - discovery.seed_hosts=${NODE_NAME}
      - cluster.initial_master_nodes=${NODE_NAME}
      - bootstrap.memory_lock=true
      - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
      - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_ADMIN_PASSWORD}
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
      - opensearch-data:/usr/share/opensearch/data
    ports:
      - "9200:9200"
      - "9600:9600"
    networks:
      - opensearch-net

curl
curl -k -u admin:<password> https://localhost:9200
Unauthorized
Using version 2.16 of the OpenSearch Docker image works perfectly fine, with the OPENSEARCH_INITIAL_ADMIN_PASSWORD variable being recognized correctly and allowing the container to start without issues.
curl -k -u admin:<password> https://localhost:9200
{
  "name" : "opensearch-node",
  "cluster_name" : "opensearch-cluster",
  "cluster_uuid" : "dGE6WpovS7u-C8Y_qwhL1Q",
  "version" : {
    "distribution" : "opensearch",
    "number" : "2.16.0",
    "build_type" : "tar",
    "build_hash" : "f84a26e76807ea67a69822c37b1a1d89e7177d9b",
    "build_date" : "2024-08-06T20:32:34.547531562Z",
    "build_snapshot" : false,
    "lucene_version" : "9.11.1",
    "minimum_wire_compatibility_version" : "7.10.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "The OpenSearch Project: https://opensearch.org/"
}

Related component
Build
To Reproduce

Use the official OpenSearch Docker image version 2.17.
Set the environment variable OPENSEARCH_INITIAL_ADMIN_PASSWORD in the docker-compose.yml.
Start the container using docker-compose up.
try to curl https://localhost:9200

Expected behavior
The container should start successfully without prompting for an admin password. It should utilize the password provided through the OPENSEARCH_INITIAL_ADMIN_PASSWORD environment variable, allowing access to the OpenSearch instance without any authentication issues.
Additional Details
Plugins
Please list all plugins currently enabled.
Screenshots
If applicable, add screenshots to help explain your problem.
Host/Environment (please complete the following information):

OS: macos M3
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Hi @hainenber ,
OPENSEARCH_INITIAL_ADMIN_PASSWORD wont take effect if you havent delete the volume.
If you already have 2.16 started and set password to 123, then update to 2.17 with password 456 wont take effect.
The password will still be 123.
Would need more log about the error to know exactly what is happening.
Thanks

Oh im a bystander in this case 😄
I assume you are trying to resolve @Tlecomte13 case

Also I just checked that build code did not make any related changes for months.
I do see some changes related to the cert and user setup here directly in https://github.com/opensearch-project/security/compare/2.16...2.17.
cc: @cwperks @DarshitChanpura @derek-ho to take a look here.
We have tested the docker container in 2.17.0 here and seems it works fine:
https://build.ci.opensearch.org/blue/organizations/jenkins/distribution-validation/detail/distribution-validation/1250/pipeline/51

Hi @peterzhuamazon, @hainenber
So, after a night’s sleep, I wanted to try what @peterzhuamazon suggested, which was to upgrade from version 2.16 to 2.17 while keeping my volumes. It worked fine. I thought it must be something during the project’s initiation, so I deleted all the volumes using docker system prune -a to make sure I had nothing left.
And it works... even though the day before I did the same steps and only changed the image version.
The only thing I can recall is that before setting up OpenSearch, in the meantime, I updated my Docker version to 4.34.2. I don't think it’s related, but how can I explain how crazy this is driving me? I can’t understand why it didn’t work yesterday.
I can now upgrade to version 2.17 and stay up to date, but I don’t know what happened or how to reproduce it now.
Thanks anyway for your help, I'm going to close the ticket.


SECRET_KEY in app.ini not generated during unattended install

Gitea Version
1.15.7
Git Version
N/A
Operating System
N/A
How are you running Gitea?
docker image 1.15.7 from Docker hub
Database
No response
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Description
After starting docker image of gitea with INSTALL_LOCK set to true (unattended install) I have found out SECRET_KEY in the app.ini is not set. I assume this is a bug, or is it?
Steps to reproduce
docker run -d --rm --name gitea_test -e INSTALL_LOCK=true gitea/gitea:1.15.7
docker exec gitea_test cat /data/gitea/conf/app.ini | grep -A6 "\[security\]"
# cleanup
docker stop gitea_test

Output
[security]
INSTALL_LOCK                  = true
SECRET_KEY                    =
REVERSE_PROXY_LIMIT           = 1
REVERSE_PROXY_TRUSTED_PROXIES = *
INTERNAL_TOKEN                = <deleted>

Screenshots
No response

If you set INSTALL_LOCK=true, then you must generate SECRET_KEY manually.
INSTALL_LOCK=true means the Gitea instance has been installed, and no secret key will be generated anymore.
Empty SECRET_KEY means disabling the database encryption, that's also a correct option.

I see. Thank you for the explanation.


Clean up portforward methods

So this strips the ports down to the bare minimum? (ie, no s3g, etc)

Nope, we have the exact same behaviour, just without 4 copies of the same method with different names


not linux platform GPIO simulation

All GPIO command simulated on not-linux platform
Useful for debugging while developing on Windows platform eg.

@JamesBarwell will you ever complete this PR?

Thanks for contributing, but sorry I'm not going to merge it. It's beyond the scope of this project to "work" on non-Linux systems and given I already don't have time to actively maintain it, it's not something I'd wish to try and support.
What problem are you trying to solve with this patch? Given it won't work on non-Linux systems anyway, could you solve it by swapping out this module in your own code instead?

Do you develop your code directly on the Raspberry? I use vscode on other devices and don't think I am the only. In that case is impossible to run it step by step because your library throws errors
p.s. you could have said that 3 years ago instead of leaving the PR open indefinitely

I've only developed this module on Linux computers (using the test suite) and the Pi itself. I don't have the facility to test it in other environments and therefore am not willing to say its officially supported (see the note in the readme). Though I was under the impression from others that it did work on Windows - see #93.
If you mean developing an application that uses this module - as said, my expectation is that it should be possible to mock out this module in your own code. Another possible option in Windows would be to develop using WSL2 or containers.
Sorry it took so long to reply. But I have other commitments and no longer use it myself (I first wrote it 12 years ago when little else was available!). I updated the readme previously to try to highlight this.


verify sign with python

apkverify uploaded to https://pypi.org/project/apkverify/

@shuxin can you fix the bugs?
There is also this one:
Traceback (most recent call last):
  File "/home/travis/build/androguard/androguard/tests/test_session.py", line 47, in testSessionLoad
    session.Save(s, "test_session")
  File "/home/travis/build/androguard/androguard/androguard/session.py", line 27, in Save
    pickle.dump(session, fd)
TypeError: can't pickle _thread.RLock objects

I already encounted this one, which comes from pickling zip files.
Does self.apksig in APK contain such things? In that case you need to remove this object before pickling.


rust: Add dns support

Due to lacking support of auto_dns: false, currently, only support using
static default gateway interface as DNS interface.
Rust code will try to use valid(ip enabled and manual dns allowed)
interface from desire state first, then search static gateway. I(Gris)
think this provides the small opportunity for user to enforce a interface
to hold the DNS configuration regardless the static gateway preference.
Integration test case enabled.
Changed one test case test_add_non_canonicalized_ipv6_nameserver:
The test expect nmstate to
compress `0000:0000:0000:0000:0000:0000:0000:0100` to `::100`.

This IPv6 is IPv4-Compatible IPv6 Address(RFC 4291), so it is also
legal to show as `::<IP_ADDRESS>` which is used by rust `std::net::Ipv6Addr`.

Hence change the test IP to 2000::100 which is not ambiguous.

There is a trivial lint error, could you take a look? Other than that, it looks good :-)