Issue with Incorrectly Generated analysisInterval.tsv File While Using the Example Data

Hi @dcnieho
I'm facing an issue while attempting to run the example data. The problem stems from the generated analysisInterval.tsv, which significantly differs from the provided data in the example.
When I opt not to annotate the data myself and follow the Example Recordings section of the readme file, the software presents this error: 'There is no data quality for the selected recordings. Did you code any validation intervals (see manual)?'
On the occasions when I manually annotate the data, the results appear to be incorrect. As an example, here is my 'markerInterval.tsv' for the Tobii Glasses 2 example.

However, the code generates this 'analysisInterval.tsv,' leading to inaccuracies in all subsequent analyses.

I'm using Windows 11 and have experimented with both Python 3.10 and 3.11, employing pip for GlassesValidator installation or compiling from the source. Unfortunately, the issue persists.

It seems that the problem is in 'e2_determineFixationIntervals.py' as it doesn't allocate the correct target for the fixation. I replaced the part of the code that finds the closest fixation with the below code, and it seems to have fixed the problem. However, I need to collect more data to validate the fix.
# For each fixation, find the closest target
for i in range(len(fix['start'])):
    if fix['dur'][i] >= minDur:
        # Calculate distances to all targets
        distances = [np.hypot(fix['xpos'][i] - target[0], fix['ypos'][i] - target[1]) for target_id, target in targets.items()]

        # Find the index of the closest target
        closest_target_index = np.argmin(distances)

        # Get the target ID and coordinates
        closest_target_id = list(targets.keys())[closest_target_index]
        closest_target_coords = targets[closest_target_id]

        # Assign the fixation to the closest target
        print(f"Fixation {i+1}: Target {closest_target_id} at {closest_target_coords}, Duration: {fix['dur'][i]} ms")

        # Create a dictionary with the fixation information
        fixation_data = {
            'target': closest_target_id,
            'marker_interval': ival+1,
            'start_timestamp': fix['startT'][i],
            'end_timestamp': fix['endT'][i],
        }

        # Append the fixation data to the list
        fixation_data_list.append(fixation_data)

I realized my error; for each round of the experiment, I should simply annotate the start and end of the experiment. Therefore, the markerInterval.tsv should consist of just one row of values per each round of experiment. Then, the software will generate the correct analysisInterval.tsv. I'll now close this issue;

No worries, thanks for writing in. I have your original messages in my email, so can see what you said. Indeed, there should be one entry for one series of validation points, so one whole validation session. Not one per point.
Is there something in the documentation i can improve? I must have misled you somewhere or not provided sufficient guidance.
Thanks for your interest in glassesValidator!


KeyError in GriffeLoader.load_module if two or more dots in python file name

Describe the bug
If there is a file with name which contains more than one dot (for example gunicorn.conf.py)
GriffeLoader.load_module fails with KeyError here
https://github.com/mkdocstrings/griffe/blob/master/src/griffe/mixins.py#L82-L83
...
  File "../python3.10/site-packages/griffe/loader.py", line 407, in _load_submodule
    member_parent[subparts[-1]] = self._load_module(
  File "../python3.10/site-packages/griffe/mixins.py", line 85, in __setitem__
    self.members[parts[0]][parts[1:]] = value  # type: ignore[attr-defined]
KeyError: 'gunicorn'

To Reproduce
Steps to reproduce the behavior:

create module with this structure

test/
       __init__.py
       some.thing.py

Run command

python -c "import griffe.loader;griffe.loader.GriffeLoader().load_module('test')"

See error

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/m/.local/share/virtualenvs/griffe-bug-j_gvc5DW/lib/python3.10/site-packages/griffe/loader.py", line 149, in load_module
    top_module = self._load_package(package, submodules=submodules)
  File "/Users/m/.local/share/virtualenvs/griffe-bug-j_gvc5DW/lib/python3.10/site-packages/griffe/loader.py", line 346, in _load_package
    top_module = self._load_module(package.name, package.path, submodules=submodules)
  File "/Users/m/.local/share/virtualenvs/griffe-bug-j_gvc5DW/lib/python3.10/site-packages/griffe/loader.py", line 362, in _load_module
    return self._load_module_path(module_name, module_path, submodules, parent)
  File "/Users/m/.local/share/virtualenvs/griffe-bug-j_gvc5DW/lib/python3.10/site-packages/griffe/loader.py", line 390, in _load_module_path
    self._load_submodules(module)
  File "/Users/m/.local/share/virtualenvs/griffe-bug-j_gvc5DW/lib/python3.10/site-packages/griffe/loader.py", line 395, in _load_submodules
    self._load_submodule(module, subparts, subpath)
  File "/Users/m/.local/share/virtualenvs/griffe-bug-j_gvc5DW/lib/python3.10/site-packages/griffe/loader.py", line 406, in _load_submodule
    member_parent[subparts[-1]] = self._load_module(
  File "/Users/m/.local/share/virtualenvs/griffe-bug-j_gvc5DW/lib/python3.10/site-packages/griffe/mixins.py", line 83, in __setitem__
    self.members[parts[0]][parts[1:]] = value  # type: ignore[attr-defined]
KeyError: 'some'

Expected behavior
Name for .py files with more then one dot symbol works
System (please complete the following information):

griffe version: 0.22.0
Python version: 3.10.1
OS: [Mac]

Additional context
Encountered this behavior using mkdocs with mkdocstrings and python handler to generate
documentation for project with fastapi api's with a lot of gunicorn.conf.py

Hello, thanks for the report.
Is there any benefit in naming the file gunicorn.conf.py rather than gunicorn_conf.py for example. Is it the file name expected by Gunicorn itself?

Unfortunately yes:(
From the official documentation:
The third source of configuration information is an optional configuration file gunicorn.conf.py searched in the current working directory...
https://docs.gunicorn.org/en/stable/configure.html

I've pushed a fix that simply skip modules with dots in their names.


Multiple Files being written into

Describe the bug
I was provided with an architecture for a streamlit build and I was provided two directories that contained the same file, those file did not match the directory structure I provided via screenshot of my streamlit buiid. when I make requests, it writes to both files although ive pointed out several times and included screenshots on what the front end response looks like.  to the app's credit it apologizes for the oversight however continues to do the same thing.
Link to the Bolt URL that caused the error
https://bolt.new/~/sb1-n6u8xa
Steps to reproduce
Simply enter any change, issue, etc with the map_visualization.py file as a reference
it will write into both map_visualization files,. only writing 72 lines into one and the full code to another
it also bounces you from the first file it wrote into STOPS and writes the full code into the other file
Expected behavior
I expect the file directory NOT being used to be removed leaving on one file so there isnt duplication
Screen Recording / Screenshot
No response
Platform
Browser name = Chrome
Full version = <IP_ADDRESS>
Major version = 129
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
performance.memory = {
  "totalJSHeapSize": 60218922,
  "usedJSHeapSize": 53872046,
  "jsHeapSizeLimit":<PHONE_NUMBER>
}
Username = DistinctlyMktgLLC
Chat ID = da08987498a0

Additional context
No response

@DistinctlyMktgLLC thanks for the feedback! We are currently building a feature that allows you to lock files that are done, so the AI cannot make additional changes. This will be shipping in the next 1-2 weeks!

This feature will be announced this week in #678


mockComponent: add ability to accept react component

Actually depends on https://github.com/facebook/jest/pull/1795 which adds ability to mock stateless components
Why? These 2 PRs actually enable usage of this module in app tests.
It would be just nice to import and use jest-react-native as a small utility module...

Current coverage is 87.44% (diff: 100%)

Merging #1796 into master will not change coverage

@@             master      #1796   diff @@
==========================================
  Files            38         38
  Lines          1211       1211
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits           1059       1059
  Misses          152        152
  Partials          0          0

Powered by Codecov. Last update f5aef40...7b25259

I don't think jest-react-native's mockComponent call should support this. It is specifically made to mock react-native components. If you'd like to have this helper method, I recommend creating an npm module for it and publishing it yourself. We are happy to accept a PR that adds it to our documentation :)


Enum name Sync in sendqueue

I named the enum to enable/disable synchronous transfers in sendqueue Sync.  Upon reflection I realize there are reasons to name it something else, as std::marker::Sync is imported as Sync in std's prelude.  (The name Sync was chosen because it's what the argument name is called in the winpcap/npcap apis).
To be clear, I'm completely agnostic on this.  I can keep it or change it -- it doesn't matter to me  (my code uses sendqueue::Sync::Off, so there's no conflict).  That said, before 1.0.0 I thought it would probably be good to bring attention to this so people can voice their opinions on it.
The name collision will affect people who want to use Sync from std and import pcap::sendqueue::Sync in the same module:
use pcap::sendqueue::Sync;

struct Foo { }

// Must specify std::marker::Sync here
unsafe impl Sync for Foo { }

That is a good point. Thank you for raising it and I do think it should be addressed.
I can suggest two possibilities:

Just use a bool since there's only two values.
Call it SendSync which I think reflects what it's used for and avoids the name clash.

A while back someone convinced me that bool should only be used when it's obvious what the argument does (self.use_checksums(true)), and that enums should be used when it's not clear (prepare_transaction(true, false))  (as a service to readers/reviewers).  Following this principle I would prefer SendSync.
If there are no other objections I'll rename the type from Sync to SendSync.

description say:

sync determines if the send operation must be synchronized: if it is non-zero, the packets are sent respecting the timestamps, otherwise they are sent as fast as possible.

SendSync look ok for me


feat: better news ui

Sorry for changing this again. But after learning some new stuff from the forum feed pr I decided to implement some changes here also.

Could you add a screenshot also just so I know what I'm looking at when reviewing the PR.

You can make use of ListView.serparated to get a list with separation(this will act as a border between the list items) between them. So then you won't have to add in a separate border to the Container.


ci(gha): fix CMake builds for macOS and Linux

This change is

This is not what I want. Closing.


Build problem

Greetings i have configured the library with

./configure --with-oracle_home=/opt/oracle/instantclient --with-oracle_headers_path=/opt/oracle/instantclient/include  --with-oracle_lib_path=/opt/oracle/instantclient

everything goes ok but when i invoke make the following is returned

configure.ac:24: the top level
configure:10484: error: possibly undefined macro: LT_MAJOR
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
make: *** [configure] Error 1

I tried

autoreconf -fi

but the following is returned

../libtool: line 478: CDPATH: command not found
libtool: Version mismatch error.  This is libtool 2.4.2 Debian-2.4.2-1.7ubuntu1, but the
libtool: definition of this LT_INIT comes from an older release.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.2 Debian-2.4.2-1.7ubuntu1
libtool: and run autoconf again.
make[2]: *** [libocilib_la-array.lo] Error 63

Thank you in advance.

Hi,
Thanks for reporting issues :)
I will check this issue for next release.
Regards,
Vincent

I have the same problem. I've tried my (very shallow) knowledge of autotools, but haven't succeeded in getting things to build... It would be nice if autoconf && ./configure ... && make could be used :)

Hi,
It shall be now okay with latest commits (autotools updates).
Let me know if it is not the case.
Regards,
Vincent


Lower the related content box

This moves the box to be in line with the title as per the design. In an ideal world I'd do this by passing a margin top parameter to the component but it doesn't support that
Before

After

:warning: This application is Continuously Deployed: :warning:

Merged changes are automatically deployed to staging and production.

Make sure you follow the guidance for deployments before you merge.

Check your branch is being deployed in the Release app, after merging.

@JonathanHallam just for future PRs it would be good to include screenshots for how it looks on mobile too

@chao-xian nice one, thanks, will do :)


Qiskit pulse and dynamics tutorial

Summary
This PR shows a tutorial connecting pulse and dynamics.
Details and comments
We simulate the dynamics of a pulse schedule that implements a sx followed by a sy rotation.

Looking really good. To recap our discussion from earlier: I've been working on a tutorial for optimizing pulses using JAX here as part of PR #26 , and we should try to converge on a consistent style.
I think this tutorial and the optimization one above already very similar writing-wise: they are broken into small, relatively self-contained steps/accomplishments for the user to follow. In terms of technical formatting: I've numbered my sections and also outlined all of the steps the tutorial goes through at the beginning, in a numbered list. Take a look and see if you are good with using this formatting or want to change it.
The only other thing I think is where to put the big import block. I kind of like putting them after the introduction, or even as you go (which maybe gives the reader a bit more context for what/where things are being imported from and why). I think mainly though I like to see the title/text introduction at the top of the file. Let me know what you think.

That makes sense. I updated accordingly in 638e609


Compute satellite visibility

Compute the visibility of a satellite during an overpass event.

To compute apparent magnitude, refer to this equation from http://www.satobs.org/seesat/Apr-2001/0313.html:

Mag = Std. Mag - 15 + 5LOG(Range) -
2.5LOG(SIN(B) + (pi-B)*COS(B))
where Range is in km, and B is in radians and measures
the angle from the sun to the satellite to the observer.
At full phase, B is 0; at new phase, B is pi (i.e.
satellite transiting the sun).
I want to emphasize that this is the correct equation for
a spherical satellite with a perfectly Lambertian surface.
Of course, few satellites are spherical, and none have
perfectly Lambertian surfaces.  Still, it is a good
approximation when you don't know the orientation of
a satellite.

And from this stackexchange post: https://astronomy.stackexchange.com/questions/28744/calculating-the-apparent-magnitude-of-a-satellite

Created initial implementation of brightness magnitude in commit 90cee6c596dba7ae052f2d11e9b0b52052763426


Mixins for Class Based Views

Does anyone have example code for a mixin that would work outside the admin app. The mixins in this project are very tightly coupled to the admin app.

Looks like #692 is going in that direction.

@ZuluPro the ExportView looks really good. If there is an import view that goes with it. I would love to see it.

Haha, I do it step by step, and ImportView is the next step. ;)

@ZuluPro did you ever get around to the ImportView?

@jangeador I just begin to need it,
So I think I will implement it and make a PR soon.

@ZuluPro I would be happy to help if there is anything I can do. Let me know.

Did someone ever implement ImportView?

@leonardodepaula Yup, I did,
Just need commit that here.


Added listview to see the log immediately

Added more features. Like listview to see the log immediately allowing sorting by column. Allow create task scheduler for startup as admin.

Hi @BDisp, thanks for this contribution!
It'll take a few days until I can check it in detail, but it looks great so far.

Hi @zeh, thank for your feedback. Yes, Ctrl+K+D sometimes spoils everything. I'll update with your preference format.


dataset

can i use the Ember data set directly as input for the malicious and benign data, if so how can I do it, as in which path to give and where?

Sorry, no.  The raw binaries are unavailable.
With a little work, you might get the first example working
https://github.com/endgameinc/youarespecial/blob/master/BSidesLV -- your model isn't that special -- (1) MLP.ipynb
with data/code provided in the EMBER dataset:
https://github.com/endgameinc/ember


LearningRateMonitor callback doesn't work with manual optimization

Bug description
When setting self.automatic_optimization to False in a LightningModule, a LearningRateMonitor callback will not log the learning rate, even though lr_schedule.step() is called.
How to reproduce the bug
https://colab.research.google.com/drive/16wvrmKqGtVrOCd8Uo3K83WLeIATChFbF?usp=sharing
Error messages and logs
See colab
Environment
See colab
More info
It seems trainer._logger_connector.should_update_logs at https://github.com/Lightning-AI/lightning/blob/8266300b29e14d719945e153dcb18743c0449966/src/pytorch_lightning/callbacks/lr_monitor.py#L151 is False, and therefore no logging takes place.
cc @carmocca @nbcsm @guotuofeng

@carmocca mind having a look? :rabbit:


cant install auto script

Hi dev, I cant install your script.. please fix

Fixed

On Sat, 10 Jul 2021 at 1:30 AM, XiiHaiqal @.***> wrote:

Closed #9 https://github.com/xiihaiqal/AutoScriptVPS/issues/9.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/xiihaiqal/AutoScriptVPS/issues/9#event-5001516833,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATVHQUWYE6GCVESNACADJA3TW4W3RANCNFSM5AC7BDNA
.

Thanks


chore(ui): move changelog entries that were added to the previous release

Closes #16116
Moves changelog changes into proper place.
Method I used to figure out what to moved (I'm pretty proud of this git foo):

Find the commit hash from yesterday where I added the new unreleased changes.
If you don't know how to do that, go to influxdb on github and click commits and search through them.

Since we last released on Nov 20 (the date on the last release on the changelog) look for the commit on that day that represents the last commit in the old changelog: https://github.com/influxdata/influxdb/commit/1177ba3cfd91e72be64ca3a5dfd2b2e09119dd02
Now that we have the commit range of incorrect changelog changes, we can find all changes to changelog between this commit range:git log 1177ba3..e52705d -p CHANGELOG.md

After that, take the changes produced by that diff and add them to the new release.

[x] CHANGELOG.md updated with a link to the PR (not the Issue)
[x] Well-formatted commit messages
[x] Rebased/mergeable
[x] Tests pass

:eyes: 👍


[auth] added base auth 🔨

@CarolineBasta you'll need to accept the invite to collaborate in your GitHub email :)


expose input in output

This has come up before and ties into discussions around v3.
Exposing the input in a data-* attribute would provide easier programmatic access to it and also preserve.
Use cases would be scraping, exposing data when serving mathjax-node output, and also copy&paste.
For copy&paste there's interest at Wikimedia.

Of course, assistive-mml.js exposes MathML this way (no matter the input).


Implement Diagnostic Logging cluster (Server side)

Problem
The CHIP spec defines a Diagnostic Logging cluster for retrieving unstructured diagnostic logs from devices but the SDK currently does not implement said cluster's server side logic
Proposed Solution
Implement Diagnostic Logging cluster (Server side)

src/app/clusters/diagnostic-logs-server/diagnostic-logs-server.cpp exists.  What remains to be done here, if anything?  @mrjerryjohns @BroderickCarlin @kghost


How much time it takes when training the first frame (e.g. t = 0)?

Thanks for your great work! It takes about 12 seconds for per-frame training, but does it also take only 12 seconds for the first frame?

Thanks for your interest in our work!
The Initialization (i.e., get the 3dgs of t=0) is a typical 3DGS training and it takes about 10-15 minutes.
Therefore, in fact, our training time for each subsequent frame only takes about 9 seconds, but when we calculate the average, we take into account the training time of init_3dgs, so the metric we show in our paper is 12s.

Thanks for your interest in our work! The Initialization (i.e., get the 3dgs of t=0) is a typical 3DGS training and it takes about 10-15 minutes. Therefore, in fact, our training time for each subsequent frame only takes about 9 seconds, but when we calculate the average, we take into account the training time of init_3dgs, so the metric we show in our paper is 12s.

Thanks for your reply. I focus on NVS for static scenes, and I wonder are there any 3dgs based method with accelerated training time?

Maybe you can take a look at this work https://github.com/city-super/Scaffold-GS, it converges in shorter time.

Maybe you can take a look at this work https://github.com/city-super/Scaffold-GS, it converges in shorter time.

Thanks!

Glad to help:)


When sources are deleted manually it is not possible to run protofetch fetch again

Since we are using git worktree to build sources directory tree, when sources are deletes manually (from ~./protofetch/cache), it is not possible to run protofetch fetch since the worktree already exists (the metadata). Thus, that metadata needs to also be deleted for it work again. The library does not support git worktree removal at the time this ticket was opened.
Tip: Look at fetch::fetch method
Edit: Since now we copy proto files as the actual output that is fine to delete. Only the folder inside cache with the source code errors out.

protofetch.toml:
name = "corp"

[envoy]
url = "github.com/envoyproxy/envoy"
revision = "72d653e2540cc5f77e2acdc1c9a57a10263d74dc"
protocol = "https"
allow_policies = ["envoy/*"]
content_roots = ["api"]

[grpc]
url = "github.com/grpc/grpc"
revision = "b8a04acbbf18fd1c805e5d53d62ed9fa4721a4d1"
protocol = "https"
allow_policies = ["grpc/health/v1/*"]
content_roots = ["src/proto"]

[udpa]
url = "github.com/cncf/udpa"
revision = "c52dc94e7fbe6449d8465faaeda22c76ca62d4ff"
protocol = "https"
allow_policies = ["udpa/*"]

Test after deleting proto_src and added that udpa dependency above:
% protofetch fetch
INFO Resolving github.com/grpc/grpc
INFO Resolving github.com/envoyproxy/envoy
INFO Resolving github.com/cncf/udpa
INFO Wrote lockfile to /Users/kris/Code/appbiotic/corp/protofetch.lock
INFO Fetching dependencies source files...
INFO Copying proto files from corp descriptor...
INFO Found existing worktree for envoy at /Users/kris/.cache/protofetch/dependencies/envoy/72d653e2540cc5f77e2acdc1c9a57a10263d74dc.
ERROR Error while canonicalizing path /Users/kris/.cache/protofetch/dependencies/grpc/b8a04acbbf18fd1c805e5d53d62ed9fa4721a4d1: No such file or directory (os error 2)

Only is resolvable if I delete the cache and lockfile and start over:
% protofetch fetch
INFO Resolving github.com/cncf/udpa
INFO Resolving github.com/grpc/grpc
INFO Resolving github.com/envoyproxy/envoy
INFO Wrote lockfile to /Users/kris/Code/appbiotic/corp/protofetch.lock
INFO Fetching dependencies source files...
INFO Copying proto files from corp descriptor...
INFO Creating new worktree for envoy at /Users/kris/.cache/protofetch/dependencies/envoy/72d653e2540cc5f77e2acdc1c9a57a10263d74dc.
INFO Creating new worktree for grpc at /Users/kris/.cache/protofetch/dependencies/grpc/b8a04acbbf18fd1c805e5d53d62ed9fa4721a4d1.
INFO Creating new worktree for udpa at /Users/kris/.cache/protofetch/dependencies/udpa/c52dc94e7fbe6449d8465faaeda22c76ca62d4ff.

It is not clear what is the root issue nor how the user should resolve it.


[CARBONDATA-1931]DataLoad failed for Aggregate table when measure is …

Root Cause  , during data loading ,dataframe columns are sorted based on selection order but  in RowConverter fileds values are compared based on ordinal column .
Solution  = while making CarbonLoadModel set header sorted by ordinal columns instead of selection order.

add to whitelist

retest this please

LGTM

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/2518/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/2267/

Build Success with Spark 2.2.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/1046/

Build Success with Spark 2.2.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/1058/

retest this please

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/2314/

Build Success with Spark 2.2.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/1098/

Merged


clarify that we re-trigger alerts every 24 hours if not recovered

…65916125]
Signed-off-by: Tom Charles<EMAIL_ADDRESS>

I don't know why it commented three times but oh well


SugarSS Highlighting and Autocomplete

There is very weak syntax highlighting (and broken for sugarss scopes in .vue files) and no autocomplete for SugarSS at all atm.
Is there any hope to see highlighting and autocomplete work how they work in Sass package?

Any luck with this? Typing everything out isn't super fun. :(


Prepare README.md for the 0.2 release

@hobofan

@homu r+

:pushpin: Commit 1b21580 has been approved by hobofan

:zap: Test exempted - status


Vault Policy Secrets UI

Wireframes still needed.
The UX for this should present the user with a form unique to the Vault Policy inputs.
At a minimum this will include:
Vault Endpoint
Issuing Token
Vault Role
Advanced options:
Instance Token TTL
Instance Token Renewable
Intermediate TTL
Write Vault URL Option.

Depends on #9901 and #9902


增加 readme

Codecov Report
Base: 100.00% // Head: 100.00% // No change to project coverage :thumbsup:

Coverage data is based on head (0586379) compared to base (ac3686e).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #10   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines            6         6
  Branches         2         2
=========================================
  Hits             6         6

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Patern Match UserAgent is not automatically updated...

Patern Match - UserAgent. When we define an user agent for a site by selecting one we previously defined in the UserAgent option for global use, the UA defined for each site won't automatically update when we edit the saved UA. This can potentially cause headaches when many domains share the same UA which is updated often.
While I agree that allowing to set a custom UA for each domain is a very nice feature, when user selects a predefined UA, he will expect sites using it will use the current definition instead of the one when the domain was added to the Pattern Match list.

Steps to reproduce:

Add an entry under "Page settings > UserAgent settings" called "Latest Safari". Enter string for Safari 12
Add pattern matching for site X. Choose "Latest Safari"
Add pattern matching for site Y. Manually enter string for Safari 12
Under "Page settings > UserAgent settings", update "Latest Safari" to v 13
Go to pattern matching settings

Expected behavior:

Site X user agent should be updated to v 13 because it was chosen from the list.
Site Y user agent should remain v 12 because it was added manually.

Current behavior:

Site X user agent is still v 12


0.0.255: C4 selector prefix emits warning and maps to C40 only (subset of flake8-comprehensions)

#3452 changed the mapping of some selector prefixes, one of them being C for C40, as C is used for both mccabe (C90) and flake8-comprehensions (C4).
However, the rules of flake8-comprehensions are prefixed with both C40 and C41, so emitting a warning when C4 is chosen that it was remapped to C40 doesn't make sense, because it ignores parts of the available flake8-comprehensions rules.
Ruff's docs list flake8-comprehensions explicitly as C4:
https://beta.ruff.rs/docs/rules/#flake8-comprehensions-c4
$ ruff --version
ruff 0.0.255
$ ruff --select C4 .
warning: `C4` has been remapped to `C40`.
warning: `C4` has been remapped to `C40`.
warning: `C4` has been remapped to `C40`.

Ah yeah, I think ("C4", "C40") is probably a mistake and can just be omitted from that list.


npm run build error at build:typescript task

I wanted to try out tandem, as it has been mentioned in my company.
I've installed everything so far, got the project and everything ready but it fails at the command npm run build.
I've  added a screenshot of the console error and the npm log file.
NPM version: 4.5.0
NODE version: 7.9.0
OS: Win7 64-bit

LOG:
0 info it worked if it ends with ok
1 verbose cli [ 'C:\Program Files\nodejs\node.exe',
1 verbose cli   'C:\Users\IBM_ADMIN\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js',
1 verbose cli   'run',
1 verbose cli   'build' ]
2 info using<EMAIL_ADDRESS>3 info using<EMAIL_ADDRESS>4 verbose run-script [ 'prebuild', 'build', 'postbuild' ]
5 info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>6 silly lifecycle<EMAIL_ADDRESS>no script for prebuild, continuing
7 info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>8 verbose lifecycle<EMAIL_ADDRESS>unsafe-perm in lifecycle true
9 verbose lifecycle<EMAIL_ADDRESS>PATH: C:\Users\IBM_ADMIN\AppData\Roaming\npm\node_modules\npm\bin\node-gyp-bin;C:\xampp\htdocs\Tandem\node_modules.bin;C:\Program Files\Git\cmd;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client;C:\Program Files\Intel\iCLS Client;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0;C:\Program Files\IBM\Infoprint Select;C:\Program Files (x86)\Lenovo\Access Connections;C:\Program Files\Lenovo\Touch Fingerprint Software;C:\Program Files (x86)\IBM\Java70\jre\bin;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\TortoiseGit\bin;C:\Program Files\Intel\WiFi\bin;C:\Program Files\Common Files\Intel\WirelessCommon;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit;C:\Program Files\Microsoft SQL Server\130\Tools\Binn;C:\Program Files\dotnet;C:\Program Files (x86)\GtkSharp\2.12\bin;C:\Program Files\nodejs;C:\Ruby193\bin;C:\Users\IBM_ADMIN\AppData\Local\atom\bin;C:\Program Files\Intel\WiFi\bin;C:\Program Files\Common Files\Intel\WirelessCommon;C:\Users\IBM_ADMIN\AppData\Roaming\npm
10 verbose lifecycle<EMAIL_ADDRESS>CWD: C:\xampp\htdocs\Tandem
11 silly lifecycle<EMAIL_ADDRESS>Args: [ '/d /s /c', 'gulp build' ]
12 silly lifecycle<EMAIL_ADDRESS>Returned: code: 1  signal: null
13 info lifecycle<EMAIL_ADDRESS>Failed to exec build script
14 verbose stack Error<EMAIL_ADDRESS>build: 'gulp build'
14 verbose stack Exit status 1
14 verbose stack     at EventEmitter. (C:\Users\IBM_ADMIN\AppData\Roaming\npm\node_modules\npm\lib\utils\lifecycle.js:279:16)
14 verbose stack     at emitTwo (events.js:106:13)
14 verbose stack     at EventEmitter.emit (events.js:194:7)
14 verbose stack     at ChildProcess. (C:\Users\IBM_ADMIN\AppData\Roaming\npm\node_modules\npm\lib\utils\spawn.js:40:14)
14 verbose stack     at emitTwo (events.js:106:13)
14 verbose stack     at ChildProcess.emit (events.js:194:7)
14 verbose stack     at maybeClose (internal/child_process.js:899:16)
14 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
15 verbose pkgid<EMAIL_ADDRESS>16 verbose cwd C:\xampp\htdocs\Tandem
17 verbose Windows_NT 6.1.7601
18 verbose argv "C:\Program Files\nodejs\node.exe" "C:\Users\IBM_ADMIN\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js" "run" "build"
19 verbose node v7.9.0
20 verbose npm  v4.5.0
21 error code ELIFECYCLE
22 error errno 1
23 error<EMAIL_ADDRESS>build: gulp build
23 error Exit status 1
24 error Failed at the<EMAIL_ADDRESS>build script 'gulp build'.
24 error Make sure you have the latest version of node.js and npm installed.
24 error If you do, this is most likely a problem with the tandemapp package,
24 error not with npm itself.
24 error Tell the author that this fails on your system:
24 error     gulp build
24 error You can get information on how to open an issue for this project with:
24 error     npm bugs tandemapp
24 error Or if that isn't available, you can get their info via:
24 error     npm owner ls tandemapp
24 error There is likely additional logging output above.
25 verbose exit [ 1, true ]

Have same error

I figured out a temporary working, but very dirty solution to this.
Assuming you are in your tandem root directory:
First, run the typescript build process manually (for some odd reason, that works):
./node_modules/.bin/tsc --declaration --pretty --watch

Then, open your gulp/tasks.js file and comment out the 'build:typescript', line like this:
const buildTasks = [
  'build:peg',
  // 'build:typescript',
  'build:symlinks',
  // 'build:electron',
  'build:playground'
];

After that, run npm run build again and it should build. Be careful, because you don't run the typescript build task automatically from now on so you need to run it manually as shown above. Also, keep in mind that this is a very dirty solution because I did not have the time to fix this problem permanently, although I might make a pull request regarding this soon.

Thanks for coming up with that quick fix @ThePlatzhalter.
I'd come up with a permanent solution -- #405 should fix this issue, but I don't currently have the time to work on that now.
I'm currently in the process of modularizing Tandem so that parts of the code can be used independently from the app - particularly the synthetic browser engine, and a few smaller utilities.
Once I've stabilized some of the core features, I'll bring them all together and start moving forward with the main desktop application.

Closing for the same reasons posted here: #406. Newer version of Tandem shouldn't have this problem anymore. :)

Just pulled on master, npm pruned and installed and now the build is successful!  Where do I go from here?  How do I run this thing in Atom?

Awesome, glad to hear it's working for you. 👍
I'm still in the process of porting code over from the Electron app, so Atom isn't supported for now. It's in the roadmap for a beta launch though.

Is it able to be launched as an Electron App currently or is that essentially broken until the text editor plugins are finished?

The app is still pretty unusable at this point. And yeah, the text editor plugins are some of the last items on my TODO list. Once those are done (VSCode for starters, Atom soon after), I'll start user testing.

Thanks for the update @crcn !  I'll keep following the project, am very interested in doing some testing for you!


Add doc note for nesting wrapped navigator

After having to look for a solution for nesting a navigator embedded in a component, found this issue that dealt with the same problem: https://github.com/react-community/react-navigation/issues/90.
Added the solution to the guide as a side note.

@matthamil Thanks for the feedback!
I've updated the doc.


[Discussion] Scully platform-server peerDependencies versioning

Description
Current version of Scully platform-server requires Angular peerDependencies to be strictly higher than 12.2.0 :
"peerDependencies": {
    "@angular/common": ">12.2.0",
    "@angular/core": ">12.2.0",
    "@angular/platform-server": ">12.2.0",
    "@scullyio/ng-lib": "x.x.x"
  },

Is there a reason not to include 12.2.0 with >=12.2.0?
It makes creating a new Scully project with nx quite painful as the latest Angular 12 nx-create-workspace version (12.10.2) includes the 12.2.0 Angular version. It means Angular dependencies have to be updated to 12.2.1 or higher before including Scully.

@geromegrignon I can't recall a reason for that. I think >12.1 should do it too.


better UI for the Options Page

I changed the code of options.chrome.html design to be pleasing to end users and feel alive.
I added an options.chrome.css (following the naming conventions of other files) file for the design
I added an icon.png file
I modified the options.chrome.html file to reflect the CSS
Classes and IDs of elements weren't changed, hence the script files still work as intended.

Thanks for the help! Was going to let @waltzaround style this and tidy up the page but thank you so much. I'll leave it for @waltzaround to review


Update louvain call to a more recent method

Current version raises BaseException: Could not construct partition: vector error when calculating metrics that use Louvain clustering algorithm. As discussed in https://github.com/vtraag/louvain-igraph/issues/61 and scanpy docs, the code should use sc.tl.leiden instead.

Thanks for this PR @johnarevalo. I agree this is a good idea. The tests would also need to be adapted though. Is this the only place we have louvain in the code @mumichae?

Thanks for the PR. Leiden clustering was on the ToDo, but I didn't quite get to implement it. I wanted to implement a more flexible function that can use different clustering functions. I address this in #343


Update TypeScript ESLint configuration

Using TypeScript-specific ESLint rules fixes some spurious ESLint warnings, such as "was used before it was defined" (which isn't a problem for TS types) or bogus "was already declared in the upper scope" warnings for TypeScript enums.

I also added a few more rules for TypeScript in the datalabels plugin that could work in core as well. We may at some point create an ESLint preset in our shared ESLint config that we could extend in each project:
extends:
- chartjs/typescript

I also added a few more rules for TypeScript in the datalabels plugin that could work in core as well. We may at some point create an ESLint preset in our shared ESLint config that we could extend in each project:
extends:
- chartjs/typescript


[WIP] Fix SQLite 'database table is locked' problem

Fixes #2040
CAVEAT: the PR hasn't fixed the issue yet.
According to the documentation, the upper layer has to handle the SQLITE_LCOKED status code reported by the underlying sqlite_unlock_notify API as well. The proper approach to fix it in upper layers still needs investigation but the basic mechanism described in the following link has been implemented in the PR.
If this can eventually fix the issue, I will propose the PR to upstream.
Reference: https://sqlite.org/unlock_notify.html.

You should consider sending this PR upstream to https://github.com/mattn/go-sqlite3 instead for two reasons:

No one here have enough knowledge of SQLite internals to review this. @mattn, on the other side, will be able to tell if what you are trying to do is right.
We usually should not change vendor/ folder directly. (We would have to manually rebase future upstream changes).

@andreynering Understood and agreed. I will continue working on it later.

Closing this for now. #2040 exists to track this bug


2.x minor documentation change: substitute attribute name in custom validation rule message

[x] Changes have been thoroughly tested to not break existing functionality.
[x] New functionality has been documented or existing documentation has been updated to reflect changes.
[x] Visual changes are explained in the PR description using a screenshot/recording of before and after.

Just a non-functional minor documentation change that may save people a little time and frustration. I can do this for V3 once I've tested it  there. I'm using the documented technique on V2 and it works for me.

An example of how I am using it:
            Password::make('current_password')
                ->label('Current Password')
                ->validationAttribute('Current Password')
                ->password()
                ->required()
                ->minLength(1)
                ->maxLength(100)
                ->rules([
                    function () {
                        return function (string $attribute, $value, Closure $fail) {
                            if (! Hash::check($value, auth()->user()->password)) {
                                // Using {$attribute} here shows "current_password", lc with an underscore
                                $fail("The :attribute field does not match the current password on your account.");
                            }
                        };
                    },
                ])
                ->autocomplete('new-password')
                ->lazy(),

Not convinced the what-the-diff bot has added anything useful here, appart from a bunch of sales spiel.

Yes, it would make sense for the message could then use single quotes instead of double for this. Saw that as a "suggested change" via email, but no idea where it is on this site.

I committed it before I merged the PR


Background color Problem on Firefox[68.7.0esr]

Current Behavior

Supposed Behavior

Hey @orionpax00, We have checked the behavior on Firefox 68 and 69 stable versions and seems to be working fine. Please upgrade to the latest browser for best experience :)


SVG file creation not properly initialized. (create mode)

From @oskay on March 17, 2015 20:53
Drawings created in Create mode save poorly (with malformed SVG), unless you first select New Document or open an existing file.
To reproduce:
(1) Launch robopaint. Make simple drawing with just a circle, try to save.
-> Result: Bad SVG file, with extra <rect ...> and  </g> before first <g>.
<svg width="10.99986in" height="7.998293in" xmlns="http://www.w3.org/2000/svg">    <rect fill="url(#gridpattern)" stroke-width="0" y="0" x="0" height="100%" width="100%"/>  </g> [...] </svg>
(2) Try to load that file.
-> Result: Cannot load file (since it's a bad SVG).
(3) Make new document, or open existing document, and try to save
-> Result: Success; makes working SVG.
(4) Restart RoboPaint, File > New Document
-> Result: Saving works OK.
Copied from original issue: evil-mad/robopaint#212

Ouch, yea, that's real. Thanks method-draw! Sheesh. Will fix in 0.9.6 as listed.

@rogerfachini has claimed this one, a PR is likely soon forthcoming.


[HOLD for payment 2022-02-22] Android - Close account text box pointer doesn't start on top - Reported by @Tushu17

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open app
Navigate to Settings>Security>Close Account
Star typing in the Text box

Expected Result:
Text pointer should start on top
Actual Result:
Close account text box pointer doesn't start on top
Workaround:
unknown
Platform:

Where is this issue occurring?

Android

Version Number: 1.1.32-0
Reproducible in staging?: Y
Reproducible in production?: Y
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/43995119/150910421-dd2737de-4747-41ee-a98c-800384f3a985.mp4
Expensify/Expensify Issue URL:
Issue reported by: @Tushu17
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1642236846478400
View all open jobs on GitHub

Triggered auto assignment to @JmillsExpensify (AutoAssignerTriage), see https://stackoverflow.com/c/expensify/questions/4749 for more details.

PROPOSAL (if considered external)
we need add:
textAlignVertical="top" prop to CloseAccountPage.js

Upwork job is posted here: https://www.upwork.com/jobs/~019e4050a252db42da

Triggered auto assignment to Contributor-plus team member for initial proposal review - @parasharrajat (Exported)

Triggered auto assignment to @iwiznia (Exported), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

thanks, proposal posted on upwork @JmillsExpensify

@mateusbra Your proposal looks good to me. Can't we pass the same via styles?
:ribbon: :eyes: :ribbon:  C+ reviewed

@parasharrajat  sure we can!

Alright, lets do that instead.

inputStyle prop is used for passing styles to input but if that does not work direct prop works for me. Only issue with the later is that it is deprecated.

inputStyle, didn't worked I think this prop is being overwritten when we call BaseTextInput:
https://github.com/Expensify/App/blob/07582967349266b430103b11a94839bf40d8bccb/src/components/TextInput/index.native.js#L6-L17
So, we should follow with my first proposed fix?

Already fixed it here https://github.com/Expensify/App/pull/7318. We can wait for that to merge.

Ok, so, once I be hired on upwork I'll rise a PR

@JmillsExpensify did you received my proposal in upwork?

Yes! Thanks, I received and hired you for your proposal in Upwork. Please continue with the PR.

Thank you @JmillsExpensify !

PR ready for review!

Thanks for the quick turnaround!

PR deployed to staging yesterday. We're moving forward MelvinBot.

The solution for this issue has been :rocket: deployed to production :rocket: in version 1.1.38-3 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

https://github.com/Expensify/App/pull/7498
https://github.com/Expensify/App/pull/7498

If no regressions arise, payment will be issued on 2022-02-22. :confetti_ball:

Jumping in to processes contributor payments. I'll close the issue when that step is complete for all contributors.

📣 @mateusbra You have been assigned to this job by @JmillsExpensify!
Please apply to this job in Upwork and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑💻
Keep in mind: Code of Conduct | Contributing 📖

All contributors, let me know if you have any issues with payments. Thank you!


Refactor Validation Function

Validation on Assumption
Validation on Waterfall

resovled at https://github.com/yellowbean/AbsBox/commit/dcf6c53cd0c52604f3b0a89c4638ca049b9ea0e0


Add Italian translation it.po

Initial Italian translation for Clipman.
Nice works popov895! :)
F3FFO

Thanks!


React and defaultProps cant pass correct props to inner function

TypeScript Version:  2.4.0
Code
import * as React from 'react';
interface CircleProps {
    percent?: number
}
export default class Circle extends React.Component<CircleProps> {
    public static defaultProps: Partial<CircleProps> = {
        percent: 100
    }

    calculateDashArray(percent: number): string {
        return `${percent}`
    }

    render() {
        const strokeDasharray = this.calculateDashArray(this.props.percent)
        return (

{strokeDasharray}

        )
    }
}

Expected behavior:
this.calculateDashArray should correct accept value of defalutProps
Actual behavior:
Argument of type 'number | undefined' is not assignable to parameter of type 'number'.   Type 'undefined' is not assignable to type 'number'.

How do you suddenly expect TypeScript to figure out that something that is marked as optional is actually there?
interface CircleProps {
    percent?: number
}

If the interface was:
interface CircleProps {
    percent: number
}

You would not be having the problem, which represent the value of this.props at runtime.

@kitsonk if I marked percent as non optional, then I got error when I use this component.
I can't use it in such way <Circle />. TypeScript highlight it as error

`
    let { percent } = this.props as CircleProps;
    const strokeDasharray = this.calculateDashArray(percent)
    return (

{strokeDasharray}

    )
`

In the mean time you can write something like
interface DefaultCircleProps {
    percent: number;
}
interface CircleProps extends Partial<DefaultCircleProps> {
}

There is a bit of a close tie of the static side of a class and the instance side with React. We've been trying to think about this a bit more recently.


Run near_test.go unit test failed

I'm trying to run  TestNewConfig (from gopkg/da-rpc/near_test.go) ，but failed with error like below:
# github.com/near/rollup-data-availability/gopkg/da-rpc.test
/usr/local/go/pkg/tool/darwin_arm64/link: running clang failed: exit status 1
ld: Undefined symbols:
  _SCDynamicStoreCopyProxies, referenced from:
      core::ops::function::FnOnce::call_once::hf31048800dc57d98 in libnear_da_rpc_sys.a[2](near_da_rpc_sys.near_da_rpc_sys.9dfcc68c0f1d74b3-cgu.0.rcgu.o)
  _SCDynamicStoreCreateWithOptions, referenced from:
      system_configuration::dynamic_store::SCDynamicStore::create::h708ad7e2ea11a551 in libnear_da_rpc_sys.a[2](near_da_rpc_sys.near_da_rpc_sys.9dfcc68c0f1d74b3-cgu.0.rcgu.o)
  _SSLClose, referenced from:
      tokio_native_tls::TlsStream$LT$S$GT$::with_context::h6c1132c9262a265f in libnear_da_rpc_sys.a[2](near_da_rpc_sys.near_da_rpc_sys.9dfcc68c0f1d74b3-cgu.0.rcgu.o)
  _SSLCopyPeerTrust, referenced from:
      security_framework::secure_transport::SslContext::peer_trust2::h441268f37ce4c659 in libnear_da_rpc_sys.a[2](near_da_rpc_sys.near_da_rpc_sys.9dfcc68c0f1d74b3-cgu.0.rcgu.o)
  _SSLCreateContext, referenced from:
      security_framework::secure_transport::SslContext::new::h2eff7a9ebd737bcf in libnear_da_rpc_sys.a[2](near_da_rpc_sys.near_da_rpc_sys.9dfcc68c0f1d74b3-cgu.0.rcgu.o)

I find a new err msg after changing golang to 1.20. That's :

Thank you for reply, I find a new error msg after changing golang version into 1.20: Undefined symbols for architecture arm64. So, does the da-rpc library support ARM64? Error msg such as:
Undefined symbols for architecture arm64:
  "_SCDynamicStoreCopyProxies", referenced from:
      core::ops::function::FnOnce::call_once::hf31048800dc57d98 in libnear_da_rpc_sys.a(near_da_rpc_sys.near_da_rpc_sys.9dfcc68c0f1d74b3-cgu.0.rcgu.o)
  "_SCDynamicStoreCreateWithOptions", referenced from:
      system_configuration::dynamic_store::SCDynamicStore::create::h708ad7e2ea11a551 in libnear_da_rpc_sys.a(near_da_rpc_sys.near_da_rpc_sys.9dfcc68c0f1d74b3-cgu.0.rcgu.o)
  "_SSLClose", referenced from:
      tokio_native_tls::TlsStream$LT$S$GT$::with_context::h6c1132c9262a265f in libnear_da_rpc_sys.a(near_da_rpc_sys.near_da_rpc_sys.9dfcc68c0f1d74b3-cgu.0.rcgu.o)
  "_SSLCopyPeerTrust", referenced from:
      security_framework::secure_transport::SslContext::peer_trust2::h441268f37ce4c659 in libnear_da_rpc_sys.a(near_da_rpc_sys.near_da_rpc_sys.9dfcc68c0f1d74b3-cgu.0.rcgu.o)
  "_SSLCreateContext", referenced from:

These are configs from go env around gcc and architecture:
GOARCH='arm64'
CC='clang'
CXX='clang++'
CGO_ENABLED='1'
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
GOGCCFLAGS='-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/cf/6qw3h4t92rb6jpxrt__17wxr0000gn/T/go-build225930869=/tmp/go-build -gno-record-gcc-switches -fno-common'

this is /usr/local/lib looks like:
➜  rollup-data-availability git:(main) ✗ ls /usr/local/lib
libnear_da_rpc_sys.a

There might be two issues here:

go120 was causing me issues when we initially built the FFI lib, so it could be that
FFI lib incompatibility

For #2, could you try a few things for me?

build the lib yourself and place it into /usr/local/lib: Either make da-rpc-sys or the are some other docs written here specifically for ARM machines
Could you also run ldd /usr/local/lib for me?

Now I have switched to Go 1.19，and run make da-rpc-sys-unix. I got lib with 4 libnear_da_rpc_sys.*, and copy libnear_da_rpc_sys.a into /usr/local/lib.
Then I run a test in near_test.go, error msg:
# github.com/near/rollup-data-availability/gopkg/da-rpc.test
/usr/local/go/pkg/tool/darwin_arm64/link: running clang failed: exit status 1
ld: warning: '/private/var/folders/cf/6qw3h4t92rb6jpxrt__17wxr0000gn/T/go-link-2524508680/go.o' has malformed LC_DYSYMTAB, expected 56 undefined symbols to start at index 4417, found 66 undefined symbols starting at index 41
ld: archive member '/' not a mach-o file in '/usr/local/lib/libnear_da_rpc_sys.a'
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I tried to run otool -L /usr/local/lib/libnear_da_rpc_sys.a, the output is so long, sooo~~~~long,  let me copy little portion of it:
/usr/local/lib/libnear_da_rpc_sys.a(
                                    �zJ): is not an object file
/usr/local/lib/libnear_da_rpc_sys.a(�IJMIK
�J�|J��
���|J�J): is not an object file
�usr/local/lib/libnear_da_rpc_sys.a(�|J��
���|J�J): is not an object file
/usr/local/lib/libnear_da_rpc_sys.a(�J): is not an object file
/usr/local/lib/libnear_da_rpc_sys.a(
                                    �zJ): is not an object file
/usr/local/lib/libnear_da_rpc_sys.a(� ILHL$
���|J��
���|J��): is not an object file
�usr/local/lib/libnear_da_rpc_sys.a(��
���|J��): is not an object file
/usr/local/lib/libnear_da_rpc_sys.a(�): is not an object file
/usr/local/lib/libnear_da_rpc_sys.a(src): is not an object file
/usr/local/lib/libnear_da_rpc_sys.a(a87f3ff04063800aec256c3d4b4be): is not an object file
/usr/local/lib/libnear_da_rpc_sys.a(be): is not an object file
/usr/local/lib/libnear_da_rpc_sys.a(v.rs): is not an object file
/usr/local/lib/libnear_da_rpc_sys.a(): is not an object file

Interesting, does it fail in the docker build for you? Were you able to check any linked dependencies? ld/ldd

Looks like might have solved the issue here, can you pull and try again?
https://github.com/near/rollup-data-availability/pull/85

Thank you for everything you've done. I've pulled and tried again, and now everything is working fine. Well done!


OCPBUGS-29249: Never delete a Machine when there's a single Machine in an index

When applying a MachineConfig update, and a CPMS update at the same time, it is possible that the CPMS will prematurely delete a later index, when it is not yet ready to be replaced.
Applying a MachineConfig will drain and reboot the machine, for some period of time, this means the node goes unready.
If we also apply a CPMS change, then all indexes suddenly become outdated.
While replacing index 0, I observed that MCO was updating index 1, therefore the outdated index 1, suddenly became outdated and non ready. Our deletion logic decides that this machine is fit for removal, however, because it has no replacement, this is bad for the cluster. The etcd operator protection does step in, so in my experience, the cluster eventually recovered, but at points, we were down to 2 functional indexes which is not ideal.
To prevent ever getting into a situation like this, we should never delete a machine if an index has fewer than 2 machines. There is no scenario where we would ever want to delete the last machine in an index, unless and until we horiztonal vertical scaling down of the control plane. This is not presently on the roadmap, so this fix should be appropriate for a while.

/test unit

/retest-required

/cherry-pick release-4.15


Issue with kubernetes kubeadm not able to load balance traffic to pods

We have installed Kubernetes Master (kubeadm) and worked nodes kubectl.
I have a image deployed as pod and scaled it. When i invoke the service it is always sending to same pods and load balancing is not happenning.
Can any one suggest what we are missing here.

@ManikanthKoganti :wave: This issue sounds more like a request for support and less like an issue specifically for docs. I encourage you to bring your question to the #kubernetes-users channel in Kubernetes slack. You can also search resources like Stack Overflow for answers to similar questions.
You can also open issues for Kubernetes functionality in https://github.com/kubernetes/kubernetes.


Issue/upgrade datamodel

Pull Request
Description
upgrade data model
Fixes #
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.
Please also list any relevant details for your test configuration

[ ] Yes

If your changes affect data processing, have you plotted any changes? i.e. have you done a quick sanity check?

[ ] Yes

Checklist:

[ ] My code follows OCF's coding style guidelines
[ ] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have checked my code and corrected any misspellings

Codecov Report

Merging #17 (01a3094) into main (a476343) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main      #17   +/-   ##
=======================================
  Coverage   89.84%   89.84%
=======================================
  Files           3        3
  Lines         128      128
=======================================
  Hits          115      115
  Misses         13       13

Impacted Files
Coverage Δ

gspconsumer/__init__.py
100.00% <100.00%> (ø)

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


added gitpod config

This PR adds a config so that users can run the installer from within gitpod.
It also fixes #6 and runs some commands (e.g. creating and opening .env) to streamline the process.

For visibility, I'd like to get the rest of the work required on #12 finished off before we look at this. It may be that much of the Installer stuff fixes these issues and, in any case, there's likely to be conflicts between the two

@svenefftinge I've set it as my team target to complete it this week

I'm going to close this as we'll be doing a complete overhaul of the guides in the new year

I'm going to close this as we'll be doing a complete overhaul of the guides in the new year

@MrSimonEmms could you add some context, please?

@ionutale we're moving to a monthly release cycle before the end of Jan. The docs will be released at the same time


feat: macOS CI Builds

macOS CI builds working
package name in tauri config

Builds expected to fail on publishing package release until merged to main once.
Linting / formatting warnings are legit but not new


Read epub from remote server

It would be nice to have withEpubURL to load remote epub documents.

how can we do this? I need it too

Disclaimer: I am closing GH Issues on this project, I don't work full time on it and I haven't been able to update that recently if you would like to help to maintain that and to push the development of this project forward, just reach me out or open a PR and we can discuss it there.


Style System: CSS-in-JS Workflow

Haiii!! 👋
I've been thinking and researching a lot in various technical areas for component libraries + css. The notable topics involve performance and user experience (users being designers/devs).
Performance
Since there will be many instances of these components, it is favourable that they have high performance out-of-the-box, with little to no overhead from consumers of the library.
User Experience
The trade-off for having high-perf typically comes at a cost of the internal code being more verbose. This ultimately degrades user experience - for contributors working on the internals and for consumers of the library.
css vs styled
Without question, it appears that the (mostly) static css is more performant. There's less computation, and there are far less component wrappers. styled offers a much more fluid user experience when it comes to (automatic) prop filtering, theme context consumption, composition and more.
For this "system" idea, I've attempted to go with css.
Concept
I have a working example of this system concept. The main workflow revolves around a (singleton) system object.
From a component library workflow perspective, system offers 2 things:

A way to quickly access config values (e.g. color)
A way to render high performant (enhanced) React primitive components (e.g. system.div)

Example
import { css, system } from '@wp-g2/system';
const { get } = system;

// Defining component styles
const button = css`
	background: ${get('colorBrand')};
	border-radius: ${get('buttonBorderRadius')};
	color: ${get('colorBrandText')};
	display: inline-flex;
	font-weight: 400;
	justify-content: center;
	padding: ${get('buttonPadding')};
	user-select: none;
`;

const buttonLarge = css`
	font-size: 22px;
`;

// component library level
// uses system.base component
const Button = ({ isLarge, ...props }) => {
	return (
		<system.button
			cx={[button, isLarge && buttonLarge]}
			{...props}
		/>
	);
};

// consumer level
// overrides can happen with special css prop, enabled by system.base
const Example = () => {
	return (
		<>
			<Button css={`background: red;`} isLarge>
				Example
			</Button>
		</>
	);
};

I feel like this offers a balanced workflow!

A "CSS framework" layer is not required. An example of this would be something like Taychons or Tailwind.
Library level: Main difference would be using system.div vs div. Otherwise, it's mostly the same.
Consumer level: Unchanged. A bonus would be the inclusion of a special css prop for ad-hoc modifications.

system.base
The system primitives are light-weight wrappers around React.createElement. They include a couple of special props that would be used internally.

cx : Accepts styles generated by css. Streamlines className merging with incoming props

The result is a much lighter component tree stack.
Before (using styled and BaseView)

After (using css and system)

system.get
The idea for get would be a hook-less way to retrieve (config) values for styling with css.
System Config
In order for hookless features like .get() to work, the system config exists as a singleton - not unlike (deep) emotion internals.
Link to Storybook experiments:
https://github.com/ItsJonQ/g2/blob/master/packages/components/src/__stories__/System.stories.js
cc'ing @diegohaz <3

Leaving some more thoughts!
I think the ideal goals for a CSS-in-JS experience would be:

Zero config. No babel and no webpack modifications. Ideally, no Provider required.
As close to existing (neo)native* workflows as possible
Separation of styles logic from component logic. This is more apparent in larger/more complex components (like Buttons)

*Neo-native: By this, I mean CSS workflows that have been enhanced with .scss compiling and/or CSS modules
Below is a collection of thoughts based on my experiences + experiments within this area.
Feels Great

Sass-like nested with & is amazing. Non-negotiable.
Not having to think of classNames for styling. Non-negotiable.
Portable. Zero config. Works out of the box. Across libraries and apps. Non-negotiable.
The [mobile, tablet, desktop] interface for the sx prop from Theme UI.

Feels Good

styled directly binds CSS + component. Don't need to manually connect them with className
styled is automatically connected to theme (provided by a ThemeProvider)
css is super light-weight

Feels Ok

Combining css styles with cx with logic (e.g. variant === 'small')

Feels Bad

Complex dynamic logic in styled
Having to use several hooks to compose css based styles
Getting (and maybe) setting values in some global config. The equivalent workflow to SCSS $variable
Theme UI values like fontSize[2], which corresponds to the second value in the fontSize theme array. It's confusing (for me).
Styling with Object - especially if there are many values and/or nested values (e.g. pseudo, media queries, etc...)

OooOo. If we split the styles into a dedicated file, then we can have a CSS modules like workflow.
Example
// Button.styles.js
import { css, system } from '@wp-g2/system'

export const Button = css`...`

export const Content = css`...`

export const Prefix = css`...`

// Button.js
import { system as sys } from '@wp-g2/system'
import * as styles from './Button.styles.js'

const Button = ({ children, prefix, props }) => {
    return (
        <sys.button cx={styles.Button}>
            <sys.span cx={styles.Prefix}>
                {children}
            </sys.span>
            <sys.span cx={styles.Content}>
                {children}
            </sys.span>
        </sys.button>
    )
}

I would also add that it would be ideal to extract static CSS to static zero-runtime CSS files. I know that some solutions like linaria transform dynamic CSS into CSS variables. I would be okay with only extracting the CSS slice that is static though, and letting the dynamic styles be computed at runtime.
Do you think it's doable? I guess that would probably require some config, webpack or babel plugin. But for those who don't need zero-runtime they could just go for the zero-config solution.
Besides that, I really like the API, and I totally agree with the great, good, ok and bad points you've mentioned, especially this one:

Having to use several hooks to compose css based styles. Even having to use useTheme() feels too much.

From previous experiences, I can confirm that this results in bad DX.
Great job! ❤

Ah yes, static zero-runtime extraction. Like you had mentioned, I think a babel plugin would be required for that feature. Otherwise, it should be zero config (like styled components or Emotion.
Update~! I'm exploring the idea of a custom jsx pragma. Something that Emotion and Theme UI have.
It's not... bad, but I'd prefer to not have to do that 🙈
/** @jsx jsx */
import { jsx } from '@wp-g2/system';
import React from 'react';
import * as styles from './System.styles';

// component library level
const Button = ({ children, isLarge, ...props }) => {
	return (
		<button {...props} cx={[styles.Button, isLarge && styles.Large]}>
			{children}
		</button>
	);
};

The JSX feels better vs.
import { system } from '@wp-g2/system';
import React from 'react';
import * as styles from './System.styles';

// component library level
const Button = ({ children, isLarge, ...props }) => {
	return (
		<system.button {...props} cx={[styles.Button, isLarge && styles.Large]}>
			<system.button cx={styles.Content}>{children}</system.button>
		</system.button>
	);
};

However, if it's only at the component library level. It may be okay.
I suppose the jsx pragma would be abstracted away into a babel plugin or something (for component library compiling only).

I refactored some of the small primitives to system. It doesn't feel too bad~!
// packages/components/src/Text/Text.js

import { connect } from '@wp-g2/provider';
import { css, cx, system } from '@wp-g2/system';
import React from 'react';

import { Truncate } from '../Truncate';
import * as styles from './Text.styles';

function Text({
	align,
	as = 'span',
	className,
	display,
	isBlock = false,
	lineHeight = 1.2,
	size,
	truncate,
	variant,
	weight = 400,
	...props
}) {
	styles.Base = css({
		display,
		fontSize: size,
		fontWeight: weight,
		lineHeight,
		textAlign: align,
	});

	const classes = cx(
		[styles.Text, styles.Base],
		{
			[styles.Block]: isBlock,
			[styles.Destructive]: variant === 'destructive',
			[styles.Positive]: variant === 'positive',
			[styles.Muted]: variant === 'muted',
		},
		[className],
	);

	const componentProps = {
		...props,
		as,
		className: classes,
	};

	if (truncate) {
		return <Truncate {...componentProps} />;
	}

	return <system.span {...componentProps} />;
}

export default connect(Text);

Styles look like this:
// packages/components/src/Text/Text.styles.js

import { css, system } from '@wp-g2/system';
const { get } = system;

export const Text = css`
	color: ${get('colorText')};
`;

export const Block = css`
	display: block;
`;

export const Positive = css`
	color: ${get('colorPositive')};
`;

export const Destructive = css`
	color: ${get('colorDestructive')};
`;

export const Muted = css`
	opacity: 0.5;
`;

Note! Light/dark mode is built in, leveraging CSS variables to do it. I feel like this is the best way. Otherwise, the CSS-in-JS gets verbosely polluted with colour switching logic.
P.S. system does value -> CSS variable transforms for setters and getters. This implementation detail should feel invisible to folks using system.get.

The vibe of this workflow is starting to resemble the spirit of Atlassian's CSS-in-JS project:
https://compiledcssinjs.com/
I recently tried to give that a shot, but I wasn't able to get the babel loader to work correctly.
It did say:

Make sure the Compiled plugin is the first plugin in the array.

That's probably where things went wrong. That feels like a pretty strong requirement though 🙈

Nice! ❤
I wonder if the connect HOC is still necessary if system components resolve getters internally?

@diegohaz I was going back and forth with this. I think it's still needed.
Here's my thinking!
The system.base components would be used for markup within a component (e.g. Button or Card).
connect would connect the Button or Card component to the context system.
In other words, from the library level, I think we'd only connect the root Components, rather than the (many) base markup elements within.
There may be a better way though 😊

@diegohaz Continuing exploring ideas! Iterating and rolling it out to other components.
The Text component feels pretty good to me - from a DX perspective:
https://github.com/ItsJonQ/g2/blob/master/packages/components/src/Text/Text.js
I've also enhanced the base css compiler from emotion with the responsive array feature from theme-ui.
That means we can do stuff like this:
<system.div css={{
    display: ['none', 'block'],
}}>
    ...
</system.div>

It compiles down to static @media query CSS ✌
I've opted out of Theme UI does some dynamic calculations for their responsive experience. For that, they compute values based on window.resize and window.matchMedia. From my tests, the sudden change in breakpoints causes a brief browser freeze as it re-computes and re-renders. At least, with my Stories (and how I've used the library)
https://github.com/system-ui/theme-ui/blob/1f554bb7c0078f29b5495424c8c0aa0fa5dc90ee/packages/match-media/src/index.ts

I've also noticed that I haven't really used system.base elements so far. But just BaseView, like:
import { BaseView } from '@wp-g2/system';

Which follows the DX pattern of using <Box /> as your primitive, and changing the element with as.
P.S. BaseView or Box is an alias for system.div

I thought system components would use the context internally. So they would be already the "root" components.

@diegohaz Hmm! Let's explore this :). It might be easier to have an example.
Let's say.. a Card component.
const Card = ({children, ...props}) => {
    return (
        <system.div {...props} cx={styles.Card}>
            <system.div cx={styles.Content}>
                {children}
            </system.div>
        </system.div>
    )
}

To connect it...
export default connect(Card)

The biggest benefit of the HOC is that it handles prop merging for us. Props coming from context and incoming component props.
With hooks, we'd have to do something like this:
const Card = (props) => {
    const contextProps = useConnect('Card')
    const mergedProps = {...contextProps, ...props}
    const { children } = mergedProps

    return (
        <system.div {...props} cx={styles.Card}>
            <system.div cx={styles.Content}>
                {children}
            </system.div>
        </system.div>
    )
}

Other thing connect does is:

forwardRef
hoist statics
attach special (secret) static, which the context system can use to identify other connected components

Hopefully this helps a bit!
Thank you so much for coming along for the ride!~ ❤

Why does Card need access to the context?
Hmm, I was thinking about the ns prop, which I think would enable system.div to access the context by itself, right? But now I see that you've removed it from the original post. 😅
Now I also understand why it's necessary for the other reasons you mentioned.
I would rather try to avoid the name connect and go with something like createComponent, or more descriptive: createSystemComponent, createStyledComponent, createThemedComponent etc.
If we stick with the name connect, because it resembles the Redux API, I would change the API to this:
connect(namespace, options)(Component);

This function is intended to be used only internally or people consuming the library would also benefit from using this? If this is only internal, this is not really important. :P

And what if connect (or another name) just received a render function instead of a component? This would one less component to render, right?
const Card = createComponent({
  render({ children, ...props }, ref) {
    return (
        <system.div {...props} cx={styles.Card} ref={ref}>
            <system.div cx={styles.Content}>
                {children}
            </system.div>
        </system.div>
    );
  }
})

If we stick with the name connect, because it resembles the Redux API, I would change the API to this:

Redux is where the original inspiration came from 😊
At the moment, it's used internally. However, it doesn't have to be. I'm not sure what the potential of users creating their own connected components may be (yet).
Let's go with 95% internal use for now ✌
In that case, I think createComponent or something similar is more fitting. The render prop is interesting! I'm play around 😊 .
P.S. createStyledComponent is giving me some interesting ideas... haha.

This issue describes the "Style/Theme" part of the core component library systems

Fun update!~ I've brought in the lower-level create-emotion package in order to inject stylis plugins features (automatically) for the css function.
https://github.com/ItsJonQ/g2/blob/master/packages/styles/src/style-system/emotion.js#L6
Plugins I've added so far are:

Handle CSS variable fallbacks for IE11
Detect/transform ltr -> rtl styles

At the moment, these plugins are naively implemented. This technique feels promising though!
I like that I no longer have to think about these things as I use the css function.
The DX feels similar to that of a project with a robust postCSS workflow :v:

Oooo! The system.get + variable + css workflow is is feeling nice!
Here's an example (from Elevation)
import { css, get } from '@wp-g2/styles';

const transition = `box-shadow ${get('transitionDuration')} ${get(
    'transitionTimingFunction',
)}`;

styles.base = css({
    borderRadius,
    bottom: offset,
    boxShadow: styles.getBoxShadow(value),
    left: offset,
    right: offset,
    top: offset,
    transition,
});

We use get() to retrieve the CSS variable associated with a key (e.g. transitionTimingFunction).
(These variable values start off as a flat object, that are transformed into a CSS variable map, and are auto-injected into the DOM)
Here's the resulting CSS output:
transition: box-shadow 200ms cubic-bezier(0.08,0.52,0.52,1);
transition: box-shadow var(--wp-g2-transitionDuration,200ms) var(--wp-g2-transitionTimingFunction,cubic-bezier(0.08,0.52,0.52,1));

Automatic variable reference and IE11 friendly CSS variable fallbacks.
🤤

system.get is possible because of a singleton that automatically syncs with the theme context, right?
I wonder if it will work well on server side. I say this because, on server side, multiple clients may share the same server instance:
// shared by all clients accessing this server instance
const globalArray = [];

// callback is called once for every client
app.get("/", (req, res) => {
  globalArray.push(0);
  res.send(JSON.stringify(globalArray));
});

In the example above, globalArray will be set once the server is up. And then only the callback passed to app.get() will run on every request. If 1000 people access the site while the server is up (considering there's only one instance of the server), the 1000th person will see a thousand zeros on the screen.
You can see a live example here: https://codesandbox.io/s/server-side-global-variables-rf82x?file=/pages/index.js (try to access https://rf82x.sse.codesandbox.io/ on different browsers).
This will only be a problem though if, for some reason, the theme is updated on the server (like the globalArray.push(0) above). Then, a client may affect the rendering of the next clients.
If this is a problem, system.get shouldn't be resolved statically at the module scope. Instead, it could just return a descriptor string that would be parsed later (maybe using a PostCSS plugin?) when it has access to the theme context in the React tree.

Oh! I see 🤔 . That's an excellent point! I'm so glad you're able to think about these aspects 🤗 .
I've been mostly focused on the DX side at the moment.
I suppose a good question is... Is there a way values (like theme) can be reliably rendered and accessed without Context wrappers and/or hooks? Having a singleton was the only strategy I could think of.

Is there a way values (like theme) can be reliably rendered and accessed without Context wrappers and/or hooks? Having a singleton was the only strategy I could think of.

I think we can use a singleton if:

values will never be updated on the server;
we don't need to support specific themes for subtrees.

The former is fine I guess. I've never seen that, but there may be some use cases that I'm not aware. The latter would be easily solved by wrapping subtrees in your app within the theme context provider. With a singleton, the only solution I can think is passing another key to the getter function, but this is not the same thing.
Is it possible to resolve the getter only in React.createElement (when using the jsx pragma)?
Otherwise, I think the solution is to introduce a useCX, useClassName or something that would useContext(ThemeContext) underneath, and resolve the getter at this point.

Also, another problem with the getter resolved at the module scope is that it'll only return the initial value. If the theme is updated at runtime, styles will not be affected.

😭 (lol)
Sanity check... Let's say, all the values from get() are CSS variables. (Let's pretend it's a requirement. That's how it works right now)
In that case, the values shouldn't necessarily matter... Correct?
Only the key matters (the CSS variable reference).
Assuming the key does not change (which it shouldn't 🤔), then we should be okay (🤞).
At the moment:

All key/values live in some (default) theme.js
These values are translated into valid CSS variables that are attached to :root on first render.
get() is a key to reference these CSS variables.

ThemeProvider
Let's bring in our friend Ms. ThemeProvider.
Perhaps in our system, ThemeProvider doesn't work like how it does in Emotion, Theme UI. It's used purely to adjust values from theme.js, which renders out as CSS variables. There isn't any value passing/interpolation with the css function.
Let's say... <ThemeProvider value={{colorText: 'red'}} />
By default, the ThemeProvider could transform the theme values into CSS variables and inject it into :root {} (like the initial render).
So far so good! I think this is the typical use-case.
Scoped Variables
Let's say... We don't want to modify things at the global level. But rather... we want to modify theme things in a certain part of the app (e.g. Sidebar?).
Maybe we can do something like:
<ThemeProvider value={{colorText: 'red'}} isGlobal={false}>
  ...
</ThemeProvider>

This may render something like this:

    ...

Components that render within can adapt the (scoped) CSS variable.
The part where this breaks... is if a component within that <ThemeProvider /> scope is portaled outside. It won't be able to absorb the CSS variable since it's no longer a child (within the DOM tree 😭 )

Hmm, thanks for the explanation. I think I may have misinterpreted system.get. I thought it was just a function that would return a value from a theme object (the singleton).
Is it possible to use var(--key) instead of get("key")?

I thought it was just a function that would return a value from a theme object (the singleton).

That's how it originally worked! You're not wrong :).
The switch to CSS variables was a more recent development.

Is it possible to use var(--key) instead of ${get("key")}?

Absolutely ✌ . Although, I feel like there may be some DX advantages for get() (even if it may be something like autocompleting in VSCode via types)

css & styled 🤤
Haiii!! I experimented with something recently that yielded very interesting results!
That experiment being... what if we had both styled and css? Best of both worlds?
I recently added a SegmentedControl component that's based on the iOS component. Powered by Reakit goodness 👍

This is one of the more complex components in this library (so far). There are quite a few styled moving parts (literally) to make this work.
Below, I'm going to be sharing a bit of markup  used to generate a piece of SegmentedControl via several CSS-in-JS strategies we've discussed so far.
system.div
<system.div
    cx={[styles.Label, isBlock && styles.labelBlock]}
    data-active={isActive}
    >
    <Radio
        {...props}
        as={system.button}
        cx={[styles.Button, isActive && styles.buttonActive]}
        data-value={value}
        value={value}
    >
        <system.div cx={styles.ButtonContent}>{label}</system.div>
        <system.div cx={styles.LabelPlaceholder} aria-hidden>{label}</system.div>
    </Radio>
    <SegmentedControlSeparator isActive={!showSeparator} />
</system.div>

This isn't too bad. Having to prefix the HTML tag with system.div feels a little clunky. Also, as more tags add up, we start seeing a wall of system. everywhere, which makes it harder to parse.
This "wall of sameness" can definitely be felt with...
BaseView
<BaseView
    cx={[styles.Label, isBlock && styles.labelBlock]}
    data-active={isActive}
    >
    <Radio
        {...props}
        as={BaseView}
        cx={[styles.Button, isActive && styles.buttonActive]}
        data-value={value}
        value={value}
    >
        <BaseView cx={styles.ButtonContent}>{label}</BaseView>
        <BaseView cx={styles.LabelPlaceholder} aria-hidden>{label}</BaseView>
    </Radio>
    <SegmentedControlSeparator isActive={!showSeparator} />
</BaseView>

Less verbose! Using a <BaseView /> component for everything, specifying a tagName with as as needed. However, after the number of BaseView component exceeds about 2, the markup becomes really difficult to read.
The "wall of sameness" is very strong here!
styled and css

    <Radio
        {...props}
        as={Button}
        cx={[isActive && styles.buttonActive]}
        data-value={value}
        value={value}
    >
        <ButtonContent>{label}</ButtonContent>
        <LabelPlaceholder aria-hidden>{label}</LabelPlaceholder>
    </Radio>
    <SegmentedControlSeparator isActive={!showSeparator} />

🤤 ! Compared to the other 2, this feels a lot better to write and read! At a quick glance, we're able to understand the various pieces based on the (styled) component names! The component name indicates what the element is, and the cx prop indicates style variations.
I think this is the biggest win here in terms of DX.
How does styled work?
styled works very similarly to Emotion, Styled Components, etc... when it comes to creating styled components:
export const Label = styled.div`
	display: inline-flex;
	max-width: 100%;
	min-width: 0;
`;

Where it differs is how the component is generated.
Earlier in this thread, we favoured the static css approach for the sake of performance (which is valid). Dynamic styled components suffered due to the layers of Context consumers and series of prop resolutions.
This custom implementation of styled is basically one layer away from using a system.div primitive.
There is no Context involved.
The result is a shallow (in comparison) tree of React components:

Limitations
This custom styled implementation is still static. It does not do prop resolution. Therefore, any dynamic variations need to be provided via the cx or className props.

All of this is still early of course! SegmentedControl was the first component this strategy was tested on. So far, it feels nice!

More feedback on CSS + Styled.
Managing ClassNames
Really digging it. The only clunky bit I've noticed is having to manage cx / className hand-off + merging.
Example:
https://github.com/ItsJonQ/g2/blob/master/packages/components/src/TextInput/TextInput.js#L71
I can't pass cx into <Flex /> as it already uses it internally for it's own styles. Therefore, I have to combine classes before passing it through as className.
This problem isn't new in the CSS-in-JS space. I wish it was a little more seamless.
CSS Variables Workflow
I'm really liking the CSS variable based workflow (rather than traditional Theme context props).
It feels a lot simpler. That is, not having to do dynamic CSS value calculation or having to use a hook / context consumer.
Also, not having to manage/juggle light/dark mode values.
Theme UI attempts to streamline this via color modes.
styled Conventions
A convention I've used for a while is to suffix styled components with something. Like UI or View. For example... InputView or ContainerView rather than Input or Container.
The reason for this is that it indicates to the person reading that they are looking and working with a styled component. I'm not sure if entirely matters, but I've found this distinction to be useful. To be more specific, useful in the sense of code organization + navigation.

Extra Specificity (Automatically)
Oh boy! I just add a custom stylis plugin that boosts specificity of rendered styles.
That means, that (Emotion) generated styles automatically look like this:

This greatly improves the reliability of these Components rendering into an environment with existing CSS rules.
Everything still works as expected ✌
Note: This isn't full-proof. Existing rules that are MORE specific (e.g. prefixed with an #id) still beat these.

Performance gains for @wp-g2/styles approach!
I recently recorded some profile tests to examine the computational impact of how @wp-g2/styles handles ThemeProvider updates.
Some notable points:
<ThemeProvider /> does not require any children to work
This avoids React having to drill through every component to update theme-based values!
Theme values use CSS variables
That means that the coordination/cascade and swapping is handled natively by the browser 🙏
Results:
The following screenshots are the results of my switching from dark to light theme (several times) in various component libraries (including G2), tested on production builds.
Note: Most important parts are the yellow (CPU/JS computation) and the green areas (FPS. Dips indicate dropping of frames)
G2

Computation happens in very short bursts. Very minimal yellow. The majority of the rendering has handled by GPU (purple), which has much higher performance.
Theme UI

Similar to G2, but with a longer "burst". Most of the work happens in yellow. Pretty good!
Material UI

"Burst" is noticeably longer with a lot more computation in yellow.
Bumbag

Theme switching was really heavy in this one. The stretch of yellow is quite long, and the FPS essentially drops to zero.

I think the Style system has really matured! I'm closing this up :)


Nabhoneel

Hello ML mentors,
Completed the 1st and the 3rd parts of the 2nd assignment.
Didn't commit the 2nd one since it contains examples.

Commit the 2nd as well it will help us keep track of what you have done.


ApiRequest obfuscates nodeos like erros in DfuseAPiError

ApiRequest obfuscates nodeos like erros if used to fetch or push a transaction using dfuse endpoint
The reason is the handling of DfuseApiError class
https://github.com/dfuse-io/client-js/blob/master/src/client/http-client.ts#L235
Example nodeos error and the "error" field with "code" and "what" is obfuscated.
{"code":500,"message":"Internal Service Error","error":{"code":3090005,"name":"irrelevant_auth_exception","what":"Irrelevant authority included","details":[{"message":"action declares irrelevant authority '{"actor":"pixeos1issue","permission":"issue"}'; minimum authority is {"actor":"pixeos1issue","permission":"active"}","file":"authorization_manager.cpp","line_number":534,"method":"check_authorization"}]}}

Yeah that was meant to be used only for dfuse REST API error but now with apiRequest call. Should be easy to fix however. I'll try to find time to work on this.


Running Mediapipe on GPU with OpenGL ES < 3.0

Hi,
I realised after multiple days of testing and deep googling that currently no Virtual Machine supports OpenGL ES 3+. I tested on VirtualBox and VMware Player, no one supports it. As said in your docs, "OpenGL ES 3.1 or greater is required (on Android/Linux systems) for running machine learning inference calculators and graphs." which is what interests me.
Are you aware of any way to bypass the problem ? Or is it in you plans to extend the system requirements ability to OpenGL ES < 3 ?
It surprised me that so little is said on google about it. I don't believe I am the only one to run on virtual machines ...
Thanks for your response !

The requirement of GLES 3.1+ mainly comes from TFLite, and the TFLite GPU delegate for inference. That would mainly be a question for TensorFlow Lite team, also I'm not familiar of any plans to do so.
There is some work being done on improving ML inference graphs/examples on machines with only OpenGL ES 2.0 or 3.0, by supporting a mix of CPU/GPU calculators:  GPU preprocessing > CPU inference > CPU tensor post processing > GPU render.
This would be a hybrid of the current "all CPU" or "all GPU" path calculators.
This can be an option for you right now (GPU input/output + CPU inference), but you would have to design the graph for now, while a more elegant version of that is being developed by the MP team.   Just be sure to compile with this flag.

Thank you for your response @mcclanahoochie . It makes sense.
I hope VirtualBox or VMWare will soon be able to run with GLES 3.1+ ....
Have a great day.


TSC Meeting (14 Mar 2023)

March 2023 @StackStorm/tsc 1 hour meeting plan:

Tuesday, 14 February 2023, 09:30 AM US Pacific.
See https://github.com/StackStorm/community/issues/33 for the schedule.
TLDR; Zoom link: https://us02web.zoom.us/j/81082101702?pwd=N1V4TWdYRVQ4SXBsaFh1TFYvVDA0UT09

Meeting ~Agenda~ Notes
We did not have a meeting ahead of time. So, this is what we talked about:

https://github.com/StackStorm/st2/issues/5934

https://github.com/StackStorm/st2/pull/5936

@bishopbm1 & team want to work on closing old Issues. Just post a quick description of why when closing, and we can reopen things if needed.
SSO/SAML:

Awesome set of PRs we need to review:

https://github.com/StackStorm/st2/issues/5625
https://github.com/StackStorm/st2/pull/5664
https://github.com/StackStorm/st2web/pull/983
https://github.com/StackStorm/st2-auth-backend-sso-saml2/pull/16
https://github.com/StackStorm/st2-docker/pull/246

Jacob noted that CI is woefully out-of-date in st2-auth-backend-sso-saml2 and needs an overhaul
Several TSC members would like to see the auth backend repos merged with the primary ST2 repo, but it would be better to fix CI and merge the SSO/SAML work first before attempting that migration. Also, @cognifloyd does not want to add significantly more to the st2 repo before pants integration is complete.

Pants migration status

Essentially all of the pants PoC branch has been merged!
Open PRs:

Was waiting for 1 review, now merged: https://github.com/StackStorm/st2/pull/5931
This one was blocked by an issue with setup.py in our library repos: https://github.com/StackStorm/st2/pull/5932

https://github.com/StackStorm/st2-rbac-backend/pull/70
https://github.com/StackStorm/st2-auth-backend-flat-file/pull/10
https://github.com/StackStorm/st2-auth-ldap/pull/110

These also have the setup.py issue, but they are not blocking progress on the pants migration. Also, CI needs to be updated for several of them:

https://github.com/StackStorm/st2-auth-backend-keystone/pull/6
https://github.com/StackStorm/st2-auth-backend-mongodb/pull/4
https://github.com/StackStorm/st2-auth-backend-pam/pull/19
https://github.com/StackStorm/st2-auth-backend-sso-saml2/pull/17 (CI config Is out-of-date)
https://github.com/StackStorm/st2-auth-backend-vault/pull/10 (CI config Is out-of-date)

Next steps:

Write mini How-To with links to the pants docs about building the wheels to play with them.
Regenerate the st2 lockfile in https://github.com/StackStorm/st2/pull/5932 to make sure that is working and then mark it ready for review
Build virtualenv with pants and get the Makefile to use that in running tests.

Python updates are waiting on the pants migration to be complete.

Attendees:
@bishopbm1, @cognifloyd, @nzlosh, @pimguilherme, @rush-skills


fit doesn't resize images

OS: Mac OS/X 10.15.3
PHP Version: 7.4.2
Laravel Version: 6.11.0
gd version: 2.2.5 (installed via home-brew )

After configuring as per the documentation, I call the fit method like so in my controller
$thumbnail = Image::make(Storage::disk('public')->path('images/thumbnail-' . $name));
$thumbnail->fit(256, 192);

this is to generate the thumbnail, when in Check the directory public/storage/images/ original and thumbnail have have sizes.

Did you also save it somewhere?
fit only performs the transformation, does not externally persist anything.

nope I hadn't, went by the documentation a bit too literally :-)


Generate the application ID label irrespective of app name.

Closes #330.
Use the application name as prefixes for Kubernetes resource names, but the restrictions on labels enforced by Kubernetes makes it untenable to put the application name in any labels. Therefore use a generated UUID as the "application ID" which we use both for registering with the external shuffle service and also when locating executor pods for the application.

@ash211 I added an integration test.

I just tried a test and underscores aren't allowed in pod names either, unfortunately. Kubernetes documentation has the exact requirements - lowercase and numerical characters, dashes, and dots: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/.

if we rebase this on branch-2.1-kubernetes it should clear the out-of-date warning

rerun integration test please


v2.0.1 build failed

$ export GOPROXY=https://goproxy.io,direct
$ go mod tidy
$ go build
# openp2p
./underlay_quic.go:22:5: quicVersion redeclared in this block
        ./quic.go:22:5: other declaration of quicVersion
./underlay_quic.go:105:6: listenQuic redeclared in this block
        ./quic.go:101:6: other declaration of listenQuic
./underlay_quic.go:115:6: dialQuic redeclared in this block
        ./quic.go:111:6: other declaration of dialQuic
./underlay_quic.go:134:6: generateTLSConfig redeclared in this block
        ./quic.go:130:6: other declaration of generateTLSConfig
./util_linux.go:13:2: defaultInstallPath redeclared in this block
        ./sysinfolinux.go:16:2: other declaration of defaultInstallPath
./util_linux.go:14:2: defaultBinName redeclared in this block
        ./sysinfolinux.go:17:2: other declaration of defaultBinName
./util_linux.go:17:6: getOsName redeclared in this block
        ./sysinfolinux.go:20:6: other declaration of getOsName
./util_linux.go:58:6: setRLimit redeclared in this block
        ./sysinfolinux.go:61:6: other declaration of setRLimit
./util_linux.go:71:6: setFirewall redeclared in this block
        ./sysinfolinux.go:74:6: other declaration of setFirewall
./quic.go:28:7: undefined: quic.Session
./quic.go:28:7: too many errors
$ go version
go version go1.18.2 linux/amd64

use master branch. sync repo to github has some problem


New version: FreeDV.FreeDV version 1.9.8

Pull request has been created with komac v2.0.3 :rocket:
Microsoft Reviewers: Open in CodeFlow

Hi @fancybody,

This PR's version number 1.9.8 has 3 parameters (sets of numbers between dots - major, minor, etc), which is less than the current manifest's version <IP_ADDRESS>, which has 4 parameters.

Does this PR's version number exactly match the version reported in the Apps & features Settings page? (Feel free to attach a screenshot.)
(Automated response - build 726)

@stephengillie https://github.com/drowe67/freedv-gui/releases/tag/v1.9.8

This application appears to not write data to the registry. I'll add it to the exception list for this check.


fix image link

original link is failed to visit

@windsonsea  https://landscape.cncf.io/images/left-logo.svg is bad link right now, I did not find a link supposed to be right

how about this image:
https://landscape.cncf.io/images/cncf-landscape-horizontal-color.svg

how about this image:
https://landscape.cncf.io/images/cncf-landscape-horizontal-color.svg

LGTM