"Add to IPFS" from Native File Manager

Summary
Installation of IPFS Desktop could register native integration that enables user to add files to IPFS (MFS) directly from operating system's file manager.
For example: a dedicated context menus in Windows and analogous UX for other OSes.
Status
Right now we are in design stage, gathering prior art and ideas.
If you are familiar with good UX specific to your operating system, or got some examples, comment below :)
Prior Art
MS Windows
"add and copy link to public gateway" by @djdv:

MacOS
:grey_question:
Linux/BSD
:grey_question:  – which desktop environments should we target?

Targeting GNOME would be a risky move since they tend to remove features quite often, with the latest removal being desktop icons. Maybe they'll follow the path of Pantheon by removing the system tray next. However, GNOME is the default of Ubuntu, the most popular distribution. I'm not really sure what DE to target.

@djdv do you happen to have that code public somewhere? 😄 I really want to add that feature to Windows, but haven't taken a look at it yet.

A ref for macOS: https://developer.apple.com/app-extensions/

On macOS it doesn't seem to be simple to do. That functionality seems to be called a Plugin and generally comes with a containing application even though the binaries are not related to each other.
The only option I found was to create a dummy CLI app and add an extension/plugin. Then compile and copy the .appex file to a PlugIns folder in the final .dmg. I wonder if in the future we couldn't move to platform specific solutions (see #867).

Summary
grey_question
Linux/BSD
grey_question – which desktop environments should we target?

Rather than looking at Desktop Environments (DEs), would a better approach be to look at the most used File Managers, as that's what this issue pertains to? We can then raise feature requests against each file manager, to incorporate this functionality. As of 14 Feb 2021, this looks like a fairly representative list of most used file managers:
https://www.ubuntupit.com/linux-file-manager-reviewed-for-linux-users/
So as a start, it would be good to raise requests against the following:
Dolphin,
Nautilus,
Thunar,
Konqueror,
Midnight Commander,
Krusader,
PCMan,
Nemo,
XFE,
emelFM2,
SpaceFM.
The list goes on, but returns diminish.
If this is considered a sensible approach, I could start to raise the requests, against the most popular, first.
Thanks,
Chris
chris_debian
2E0FRU

@chrisdebian sadly I am not familiar with graphical FMs to advise here, but if you want to look into this, I believe each file manager would have to somehow:

Detect that IPFS Desktop is installed  (check if  its .desktop file present or something)
If present, then add the option to "Import to IPFS" that executes ipfs-desktop --add="/path/to/file.jpg"

Just want to note that as soon as I installed IPFS Desktop and restarted (Windows 10 Home - 21H2 v_19044.1706)  "Add to IPFS" showed up in the context menu of File Explorer for directories and files. I didn't make any registry changes or change the install (aside from installing to second drive).
The feature works great, shows up in my Files ready to pin. Another note, the context menu item was there many versions ago since I first installed the program, and not new to the recent version.

Windows 10 Home (21H2) Version: 19044.1706
IPFS Desktop UI Version: 2.15.0
IPFS Agent: go-ipfs v0.12.2 desktop

@chrisdebian sadly I am not familiar with graphical FMs to advise here, but if you want to look into this, I believe each file manager would have to somehow:

Detect that IPFS Desktop is installed  (check if  its .desktop file present or something)
If present, then add the option to "Import to IPFS" that executes ipfs-desktop --add="/path/to/file.jpg"

Correct, a properly designed File Manager is doing only that, managing files. All of it's back-end instructions are coming from system environment variables and registry entries.
@chrisdebian It would be a tedious task to work on an Explorer to Explorer basis, and make forward and backward compatibility a big undertaking for every update. The most streamlined way that would only require the one-time change would be to, on install:

Check OS
Add context variable to controlling file (.bashrc, PATH, Windows Registry Entry).
Add the updated command/UUID as a config entry with warning that it's an advanced feature. As some users may want to disable IPFS uploads for certain file types or entire directories to not accidentally upload sensitive info.
Installer should remove the context menu entry. Another reason I think it should be written to the config file and not added to uninstall instructions during install is in case a user does update the config file to exclude certain files or directories, the uninstaller can reference the config file with the most recent changes, and not what could be outdated info from the install.

can we add such functionality to nemo file browser that is available for linux?


[Doc Improvement][Add-client-IDs]

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/tabs/how-to/authentication/tab-sso-register-aad.md
95
14
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Docs Build status updates of commit 4fc2a6f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/tabs/how-to/authentication/tab-sso-register-aad.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/tabs/how-to/authentication/tab-sso-register-aad.md
95
14
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Docs Build status updates of commit d5e34ae:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/assets/images/authentication/teams-sso-tabs/register-azure-ad.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/authentication/teams-sso-tabs/register-azure-ad-old.png
:white_check_mark:Succeeded
View

msteams-platform/tabs/how-to/authentication/tab-sso-register-aad.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/tabs/how-to/authentication/tab-sso-register-aad.md
95
14
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Docs Build status updates of commit 50be1da:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/assets/images/authentication/teams-sso-tabs/register-azure-ad.png
:white_check_mark:Succeeded
View

msteams-platform/tabs/how-to/authentication/tab-sso-register-aad.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Learn Bootstrap

http://getbootstrap.com/
https://www.codeschool.com/courses/blasting-off-with-bootstrap

Bootstrap is great to learn! If you are new to CSS, I recommend learning Materialize as well.


Remove use of unapproved crypto libraries

To comply with Microsoft security policies, we must use only approved crypto libraries.
Notably, ring is not on the approved libraries list. We should use the platform crypto libraries instead, which means:

on Windows, schannel and friends
on Linux, the OpenSSL 1.1.1 series if available, otherwise OpenSSL 3.0. OpenSSL must be dynamically and not statically linked so that distro-provided updates can be used.

These can be used by switching to the default-tls feature of reqwest.  (Verified by inspection that ring and rustls are no longer in Cargo.lock files.)
The downside of this is that we are now dynamically-linked against OpenSSL on Linux, which undoes the work which took place earlier (in, for example, #1029 and #1952) to make our binaries version-independent. As a consequence, we will need to produce version-specific binaries. (This is possibly something we would need to do at some point in any case, as it appears that due to some of our dependencies we are unable to be statically linked against musl, see previous attempt in #2097.)
Summary of the Pull Request
What is this about?
PR Checklist

[ ] Applies to work item: #xxx
[ ] CLA signed. If not, go over here and sign the CLI.
[ ] Tests added/passed
[ ] Requires documentation to be updated
[ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

Info on Pull Request
What does this include?
Validation Steps Performed
How does someone test & validate?

Codecov Report

Merging #2423 (7e26f62) into main (39c3736) will increase coverage by 1.11%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #2423      +/-   ##
==========================================
+ Coverage   29.85%   30.97%   +1.11%
==========================================
  Files         289      254      -35
  Lines       35084    28932    -6152
==========================================
- Hits        10476     8963    -1513
+ Misses      24608    19969    -4639

Impacted Files
Coverage Δ

src/agent/coverage/src/test.rs
92.85% <0.00%> (-7.15%)
:arrow_down:

src/agent/coverage/src/code.rs
8.29% <0.00%> (-6.12%)
:arrow_down:

src/agent/onefuzz/src/machine_id.rs
51.21% <0.00%> (-5.63%)
:arrow_down:

src/agent/onefuzz/src/sanitizer.rs
69.69% <0.00%> (-2.91%)
:arrow_down:

src/agent/onefuzz-agent/src/worker/tests.rs
99.10% <0.00%> (-0.11%)
:arrow_down:

src/agent/onefuzz/src/asan.rs
0.00% <0.00%> (ø)

src/agent/coverage/src/cache.rs
0.00% <0.00%> (ø)

src/agent/onefuzz-agent/src/setup.rs
0.00% <0.00%> (ø)

src/agent/onefuzz-agent/src/reboot.rs
0.00% <0.00%> (ø)

src/agent/onefuzz/src/input_tester.rs
0.00% <0.00%> (ø)

... and 46 more

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


put mutex around installplan creation

Signed-off-by: akihikokuroda<EMAIL_ADDRESS>
Description of the change:
This PR makes the check if the InstallPlan has to be created and the creation of the installplan in a locked block so that 2 namespace queue workers don't create the Installplan for the subscription.
Motivation for the change:
Closes #2544
Reviewer Checklist

[ ] Implementation matches the proposed design, or proposal is updated to match implementation
[ ] Sufficient unit test coverage
[ ] Sufficient end-to-end test coverage
[ ] Docs updated or added to /doc
[ ] Commit messages sensible and descriptive

/lgtm

The e2e test failure is addressed in https://github.com/operator-framework/operator-lifecycle-manager/issues/2542.

@akihikokuroda could you please rebase

/lgtm

/ok-to-test

/lgtm

/approve

/retest

@akihikokuroda Can you rebase this when you get a chance? I think this is ready to go.


[REVIEW] imlakshay08

GitHub Profile Link
https://github.com/imlakshay08

Looks good, reviewed on live stream, some suggestions...

animated svg is broken on safari
GitHub stats section is a whole page and delays me getting to your repos (suggest doing a collapsable section)
try to get issues to 10%


feat: Add new 'import w/ link' UI

https://nearinc.atlassian.net/browse/WAL-168

Testnet account with a named and implicit account: testing-pr-2521.testnet
https://near-wallet-pr-2521.onrender.com/recover-with-link/testing-pr-2521.testnet/mobile element anxiety giraffe beef brand pistol steak cook dad spatial found
Testnet account with only a named account: testing-pr-2521-1.testnet
https://near-wallet-pr-2521.onrender.com/recover-with-link/testing-pr-2521-1.testnet/loyal inhale milk neither eyebrow plate dinner super project hurt adjust game

@agileurbanite @andy-haynes I haven't feature flagged this yet because I'm not sure if we actually have/should since we're handling named and implicit accounts in this PR? I spoke with some active community members regarding possibility of 'corrupt' localStorage, and clearing cache, using incognito, or using the wallet logout site seems standard in case of a problem. That doesn't mean that users wouldn't appreciate a logout button in the wallet ASAP :)
Let me know your thoughts - I can add a feature flag for this to deploy on testnet/staging only for now if needed.

@Patrick1904 that sounds reasonable to me. If we're not going to feature flag it then let's go ahead and get rid of RecoverWithLink as well 🎉

@Patrick1904 yeah makes sense to put it behind a feature flag until we get some notion of logout implemented.  @gutsyphilip is 'logout' being addressed in your work with lock / lock?

Thanks for the review @andy-haynes 🙏 I've made the requested changes after our sync
@agileurbanite I've feature flagged this so that this 'recover with link' UI/UX will only be activated in a development environment, not testnet/staging/mainnet, until we've shipped the logout functionality.


WIP - add support for SQL queries distribution against different SQL engines

What do these changes do?
The goal of this PR is to created a common layer for generating the SQL queries which are used for the distribution of user queries. Currentlly, only 2 variations will be supported: mssql (MssqlSqlQuery) and all the rest (BaseSqlQuery).
Unit tests needs to be added against different SQL engines.
Related issue number
will resolve #979
will be used in #923

[x] passes flake8 modin
[x] passes black --check modin
[ ] tests added and passing

@eavidan, @devin-petersohn, what is the status here?


Level is not defined in Logger.php

Hello!
There is an error after updating:
InvalidArgumentException in Logger.php line 461: Level "" is not defined, use one of: 100, 200, 250, 300, 400, 500, 550, 600
in Logger.php line 461
at Logger::getLevelName(null) in Logger.php line 292
at Logger->addRecord(null, 'pc wtfzdotnet/php-tmdb-api (v2.1.4) - [08/Nov/2016:13:45:53 +0000] "GET /3/configuration?api_key=xxxxxx HTTP/1.1" NULL NULL', array('request' => object(Request), 'response' => null, 'reason' => null)) in Logger.php line 517
at Logger->log(null, 'pc wtfzdotnet/php-tmdb-api (v2.1.4) - [08/Nov/2016:13:45:53 +0000] "GET /3/configuration?api_key=xxxxxx HTTP/1.1" NULL NULL', array('request' => object(Request), 'response' => null, 'reason' => null)) in Logger.php line 137
There is a line in config/app.php:
'log_level' => env('APP_LOG_LEVEL', 'debug'),

hi i once got exactly the same error and while i was searching for help, i upgraded my laravel using composer update, and the error was gone, what version of laravel are you using ?
i am using Laravel Framework version 5.3.22

Fatih90, hi!
The same version - 5.3.22. Two month ago I updated from 5.2 by following the guide https://laravel.com/docs/5.3/upgrade
Maybe something missed. I'll check again.

Do you think you two can figure out what's wrong and make a pull request? Though I'm the maintainer of this package I'm not using it so debugging is difficult / would take quite some time.

What's the value of your APP_LOG_LEVEL entry in your .env file?

APP_LOG_LEVEL=debug
I must first check the upgrade process. Maybe it's my fault.

@rifats try it in a new laravel installation usin the laravel installer: laravel new app
or share you code where this error happens and i will see if i get the same error

@Fatih90 it is Tmdb\Helper\ImageHelper
In controller's __construct
    function __construct(MovieRepository $movieRepository,
                         MovieEntityManager $movieEntityManager,
                         CreditEntityManager $creditEntityManager,
                         MovieCreditManager $movieCreditManager,
                         ImageHelper $helper,
                         UpdateChecker $updateChecker)
    {
        $this->movieRepository      = $movieRepository;
        $this->movieEntityManager   = $movieEntityManager;
        $this->creditEntityManager  = $creditEntityManager;
        $this->movieCreditManager   = $movieCreditManager;
        $this->helper               = $helper;
        $this->updateChecker        = $updateChecker;
    }

or in blade:
@inject('image', 'Tmdb\Helper\ImageHelper')

@rifats
it works just fine, did you try it on a brand new installation of laravel

I created a new project, a test controller for tmdb - works fine. So it must be some mistake of upgrade process. I'll copy the files of my project to the new one. @Fatih90 thank you for participating.

@Fatih90, hi!
Do you have log enabled in config/tmdb.php?

@rifats  ya i do

Any news for this bug?
I think it has something to do with the cache plugin: https://github.com/rtheunissen/guzzle-log-middleware
The logging level will be set here:
https://github.com/php-tmdb/api/blob/857e6f6541582d7275e608ab4232e479e151b852/lib/Tmdb/HttpClient/HttpClient.php#L488


Short solution needed: "How to get length of column" (python-pandas)

Please help us write most modern and shortest code solution for this issue:
How to get length of column (technology: python-pandas)
Fast way
Just write the code solution in the comments.
Prefered way

Create pull request with a new code file inside inbox folder.
Don't forget to use comments to make solution explained.
Link to this issue in comments of pull request.

How to get length of a dataframe column


add option

add option to add download and let the user download on demand, not enqueing where the download is downloaded automatically

@duncanokeyo Sorry. I do not understand this request.

instead on enqueueing  the download so that it is downloaded automatically, let the download be added to the download list, so that the user can choose to download

@duncanokeyo looking into this issue.

yeah, for example in ADM we have two option when user inputs URL, first option is to start the download,
second is just to add the download in the download list,

@duncanokeyo New version of Fetch released 2.1.0-RC11. This release adds a new boolean field on the Request class called downloadOnEnqueue. If true, Fetch will begin downloading the request when its turn arrives after being enqueued. If false, Fetch will only store the request in the database with a status of Status.None after being enqueued. The Fetch Listener onQueued method will still be called for request that were successfully enqueued with the downloadOnEnqueue == false .
Example:
Request request = new Request(url, file);
request.setDownloadOnEnqueue(false); //true by default.
fetch.enqueue(request, successCallback, errorCallback);

// The request will be added to Fetch but the request will not begin downloading until you call the resume method on the Fetch instance.

fetch.resume(request.getId()); //The request will now be queued for downloading and downloading will begin when its turn arrives in the downloading queue.

@duncanokeyo Please let me know if this works well for you.

Thanks alot, but it would be more concise if we store this request in the database with a status of ADDED.

@duncanokeyo Agreed. Working on a revision update


Missing Contribution.md file

There a need to add a contribution.md file .So, that anyone who want to contribute have a idea of what steps to follow for contribution.
I want to work on this issue. Please assign me this task.

@Parth4git Thank you very much.  assigned.


:emenu behaves differently when called from a user command defined in a script

Steps to reproduce

Run vim --clean
Source the following file:

let g:log = []
nnoremenu Foo.Bar <Cmd>let g:log += ['n']<CR>
inoremenu Foo.Bar <Cmd>let g:log += ['i']<CR>
command -nargs=* Emenu emenu <args>
call feedkeys("i\<C-O>:emenu Foo.Bar\<CR>\<C-O>:Emenu Foo.Bar\<CR>\<Esc>", 't')

Running :echo g:log print ['i', 'n']

Expected behaviour
I guess ['i', 'i'] may be the expected behavior, but maybe the current behavior isn't worth changing?
Version of Vim
9.0.1337
Environment
Operating system: Arch Linux
Terminal: kitty
Value of $TERM: xterm-kitty
Shell: fish
Logs and stack traces
No response

Steps to reproduce

Run vim --clean
Source the following file:

let g:log = []
nnoremenu Foo.Bar <Cmd>let g:log += ['n']<CR>
inoremenu Foo.Bar <Cmd>let g:log += ['i']<CR>
command -nargs=* Emenu emenu <args>
call feedkeys("i\<C-O>:emenu Foo.Bar\<CR>\<C-O>:Emenu Foo.Bar\<CR>\<Esc>", 't')

Running :echo g:log print ['i', 'n']

Expected behaviour
I guess ['i', 'i'] may be the expected behavior, but maybe the
current behavior isn't worth changing?

This happens because near the start of execute_menu() the value of
"restart_edit" is not used when the script context is set.  And
executing a user command sets the script context to where the command
was defined.
I do not recall when this condition was added, but in this specific
situation it doesn't make sense.  The condition has been there for a
long time (at least 5 years), very likely before executing a user
command caused the script context to be set.
--
hundred-and-one symptoms of being an internet addict:
267. You get an extra phone line so you can get phone calls.
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///


[Doc] Add SUN RGB-D doc

Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
Motivation
Add SUN RGB-D doc.
Modification

Add SUN RGB-D doc (mainly based on ScanNet doc).
Modify ScanNet doc for consistency.

BC-breaking (Optional)
Does the modification introduce changes that break the back-compatibility of the downstream repos?
If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.
Use cases (Optional)
If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.
Checklist

Pre-commit or other linting tools are used to fix the potential lint issues.
The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness.
If the modification has potential influence on downstream projects, this PR should be tested with downstream projects.
The documentation has been modified accordingly, like docstring or example tutorials.

TBD: Multi-modality related contents.

Made a mistake in the dataset preparation part. @Wuziyi616 Please go through that part again. It's been too long that I've processed the raw data orz


Support Pod secondary interfaces on VLAN network

This commit adds support for connecting Pod secondary interfaces to a VLAN network. A Pod secondary interface configured with the VLAN networkType will be connected to the secondary network OVS bridge, and the specified VLAN tag will be set on the OVS port.
This commit mostly follows the existing SR-IOV secondary network implementation, in which a Pod controller configures Pod secondary interfaces based on the local Pod events. It thus inherits the existing limitations, like secondary interface configuration is not persisted on the Node and may get lost after antrea-agent restarts.
Reorganize some files:
Renamed pkg/agent/cniserver/sriov.go to secondary.go, and put secondary interface configuration funcs there.
Move SR-IOV interface related code in pkg/agent/secondarynetwork/podwatch/controller.go to sriov.go.
Issue: #5278

/test-all


Migrate Docker Compose Teslamate & Postgres To New Host System

Hi there,
I had been running the advanced setup of Teslamate on an Ubuntu VM.  I recently, tested a Linux Mint VM, and really like it.  I was able to get the advanced setup of Teslamate working in the Linux Mint environment.  However, I was wondering if there's a way to migrate over the historical data easily?  I looked up how to migrate docker containers, and honestly couldn't make much sense of what needed to be done.  Can it be done through Portainer? Or can I copy the specific Image/Volumes from the /var/lib/Docker/ folder?  Any suggestions on where to start would be greatly appreciated.
Thanks in advance,
J

HI, I migrated today from my Mac Docker setup to a Raspberry Pi docker setup.
I migrated the data as described in the manual. It worked flawless for me. I also looked first at how to migrate in docker, in Postgresqlm .... But the teslamate manual was the solution for me!
https://docs.teslamate.org/docs/maintenance/backup_restore
good luck with it!
P@

I would say, the easiest way would be to backup the database and restore it on the target system. All data is in the database.
See https://docs.teslamate.org/docs/maintenance/backup_restore

Follow the backup and restore options.  https://docs.teslamate.org/docs/maintenance/backup_restore

lol I think we all had the same idea at the same time :)

Thanks @patman2520 @DrMichael  @Dulanic  . Going to try it now.  To be honest, I tried the previously to upgrade to Postgres 12 - but couldn't get it to work, and didn't try again.  Hoping this all works out this time!

...But the teslamate manual was the solution for me!
https://docs.teslamate.org/docs/maintenance/backup_restore

@patman2520 somehow the link in your post doesn't have proper url, clicking on the link opens a GitHub "No results matched your search" page.

Thanks to everyone's replies.  It was a much cleaner process than what Google had suggested.
As I was not totally familiar with the process - I've decided to screen capture the steps for future reference :
Part A - Original Environment

Assuming the teslamate docker-compose is already running, open up another instance of terminal.
Navigate to the folder where your teslamate docker-compose (eg) cd /Desktop/teslamate/
Execute : sudo docker-compose exec database pg_dump -U teslamate teslamate > teslamate.bck

When the command completes, the teslamate.bck (backup file) is created in the /Desktop/teslamate/ folder.

Copy the backup file to your new host system, to where your new teslamate docker-compose folder is (eg) /Desktop/teslamate/ .... I used Teamviewer to transfer the files

Part B - New Environment

Assuming the teslamate docker-compose is already running, open up another instance of terminal.

Navigate to the folder where your teslamate docker-compose (eg) cd /Desktop/teslamate/

Stop teslamate by running : sudo docker-compose stop teslamate

Execute the following command to drop the data from the new docker-compose, and reinitialize the data :
**docker-compose exec -T database psql -U teslamate << .
drop schema public cascade;
create schema public;
create extension cube;
create extension earthdistance;
CREATE OR REPLACE FUNCTION public.ll_to_earth(float8, float8)
RETURNS public.earth
LANGUAGE SQL
IMMUTABLE STRICT
PARALLEL SAFE
AS 'SELECT public.cube(public.cube(public.cube(public.earth()*cos(radians($1))*cos(radians($2))),public.earth()*cos(radians($1))sin(radians($2))),public.earth()sin(radians($1)))::public.earth';
.

Now restore the database form the backup :
docker-compose exec -T database psql -U teslamate -d teslamate < teslamate.bck

Once restore complete.

Now reload everything with : sudo docker-compose up.

Check Grafana to see if your data is there.

Thanks bro!


Adding .clr icon in the section to download color pallets

Hello, I was a little confused on the carbon site about where/how to download the .clr pallete for Sketch. In the section to download the color palette, the only icon visible is for .ase. Can you all add an icon for .clr as well?
Relevant information

This has been fixed!

Never mind, I thought it was talking about the download icon. Still an issue.

At the moment we can only put one icon in the corner, maybe we should put a generic color palette icon there instead so it doesn't exclude either. OR we can make this separate file and tiles all together.


[BUG] Enums are not being deserialized correctly for all plugins

Describe the bug
Due to some jackson dependabot update, but deserializing Enums does not work in data-prepper-core for all plugins now
I noticed this when Enum deserialization for the opensearch source mysteriously started failing with
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Cannot construct instance of `java.lang.Enum` (no Creators, like default constructor, exist): abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type information

for the search_context_type. I manually fixed that but the http sink http_method also does not work (not sure if it worked before). There may be other places where enums would fail to deserialize too now
To Reproduce
Steps to reproduce the behavior:
Create a pipelines with http sink and http_method will not deserialize
sink:
  - http:
      http_method: "POST"
      url: "test-url"

Same fails for sqs notification_type
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):

OS: [e.g. Ubuntu 20.04 LTS]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Ran into the same issue on main branch with enum field (TargetType) in translate and convert_entry_type processors. Same for enum field flattened_element in list_to_map processor. It's possible all enum fields are being affected.
Also tested on 2.4 branch, everything seems OK.

That's interesting. So, some bug was introduced in 2.5? @dlvenable any idea what could be causing this?

My initial guess is that something changed in Jackson and we pulled this in with one of our dependency updates.
@oeyh , Were there any changes on the 2.4 branch since your testing which might relate to Jackson?

Looks like there are couple of changes in data-prepper-core parser recently which might be causing this, I might be wrong. These changes are introduced in 2.5 branch
https://github.com/opensearch-project/data-prepper/tree/2.5/data-prepper-core/src/main/java/org/opensearch/dataprepper/parser

I just tested against the released 2.4.1 Docker image to double check. I can verify that the following enums work in it: source.s3.notification_type, source.s3.compression, sink.s3.compression, sink.s3.buffer_type.

I think the problem here is the inclusion of Enum in the ObjectMapperConfiguration for variable injection.
https://github.com/opensearch-project/data-prepper/blob/b47b3d5a7a0bd450cdf8121926ed009e6fdbe0fd/data-prepper-core/src/main/java/org/opensearch/dataprepper/plugin/ObjectMapperConfiguration.java#L20
@chenqi0805 , Do you have any concerns with removing Enum from here for now? This means that you can't use environment variables or AWS Secrets Manager for enum values, which is probably fine.

We should probably also remove Duration. I'd guess the Data Prepper duration deserializer is not in use as a result.

@dlvenable I do not have particular concern on removing Enum since we are parsing it as String mostly. But I am not sure about Duration

@dlvenable On a second thought, we might be OK to document that Duration and Enum are not supported for secrets.


It loads forever

Hi
Well first of all your work is amazing!!
I added this code to my webView based app.But it loads forever.
When my website completes loading it still running.
Can you guide me what to do for that

When you want to hide the view use setVisivility to hide it, and call stopAnimation to prevent any any animations while invisible


Strange GPU Memory Cost of DPOTrainer

Hi team,
I am trying to use DPOTrainer, and noticed the GPU memory cost is quite unstable during training, which caused OOM in V100 GPU after a few batches. On A100 GPU the training could complete, but the GPU memory cost looks strange, which went up to almost 40GB and went down to 20GB later. Is this behavior expected?

Please find the reproducible code here, which is adapted from examples/scripts/dpo.py: https://colab.research.google.com/gist/chenmoneygithub/ddd6af5e5ed2e57f25fbad7b1263b8ed/rlhf-with-huggingface-dpotrainer.ipynb?authuser=1

Hi @chenmoneygithub, this could for example be due to varying sample length. Maybe @kashif has some ideas as well?

@chenmoneygithub
the fix might be to clear out cuda and GC cache after each training step as we do it in PPO: https://github.com/huggingface/trl/blob/ef441ea02818a08b5cd26536446f19c3678dd58b/trl/trainer/ppo_trainer.py#L617C6-L617C19 can you try that out by:
1- Importing that class in dpo_trainer.py
2- overwriting the train_step method of Trainer by simply adding that decorator

@younesbelkada Thanks for the information! Curious - I have seen that after training is done, or cancelled mid-way, the GPU memory is not freed up. Does this annotation resolve that issue as well?
Will give it a try and loop back, and to confirm, you are suggesting code like below?
class CustomRewardTrainer(RewardTrainer):

    @PPODecorators.empty_device_cache()
    def train_step(*args, **kwargs):
        super().train_step(*args, **kwargs)

Thanks again!

Thanks @chenmoneygithub - what I am suggesting is:
class CustoDPOTrainer(DPOTrainer):

    @PPODecorators.empty_device_cache()
    def train_step(*args, **kwargs):
        super().train_step(*args, **kwargs)

Let me know if that works!

hahah no worries

@younesbelkada I reran the colab with the annotation, the GPU memory usage still looks a bit strange:

The first dip might be caused by starting running evals, but I would imagine after the eval the gpu usage should come back to the original level, and before eval the usage should be stable.

I am having similar OOM issue #1667


New release (python:python:3.5.6) available! (Herald System)

This issue created programmatically and automatically by Heroku, on behalf of Casey Faist, the owner of the python buildpack.

This is being addressed in #772. closing as that release encompasses several new runtimes.


PCD_Authenticate() failed: Timeout in communication.

Hello,
I am using the lib on the Arduino Leonardo, I now encountered the following problem, when I write something on the rfid chip with the android app NFCTools, I from this point can't dump the chip anymore instead I get the following error:
PCD_Authenticate() failed: Timeout in communication
I could reproduce this with several chips (NXP Mifare Classic 1K)

I just started today. I figured out if you use NFCTools, it will format your card into NDEF. This RFID code doesn't work on NDEF format, it only works on blank card.
Read more about these 2 formats here:
https://learn.adafruit.com/adafruit-pn532-rfid-nfc/ndef
https://learn.adafruit.com/adafruit-pn532-rfid-nfc/mifare
The thing is, the authentication is different between these two. Key A and B from blank card is 0XFF 0XFF 0XFF 0XFF 0XFF 0XFF, while NDEF has different keys.
You can reuse this code: https://github.com/BoolLi/RC522_RFID_NFC_Utilities
It has read/write/format solution for NDEF cards, but you gotta edit it someway. Hope this helps, i'm trying to edit it to make it work for both blank and NDEF cards. Cheers!

@lal12 Did you solved your problem? Can you share your experience with us? Otherwise I will close this issue within 14 days. Thanks.

i ran into the same problems: [https://github.com/BoolLi/RC522_RFID_NFC_Utilities] solved the problem for me(thx to jackblk), i had to modify the cpp to get it compiled. In line 95, 130, 267 and 276 you have to change byte status/readStatus to MFRC522::StatusCode status/readStatus, because the rfid library has changed the datatype.

@cologne86
I can't find anything in examples, can somebody help me ?
I changed byte -> MFRC522... like you said and can't find it.
Thank you

I found a solution for me, idk if it work for you but you can try. I know it's a strange solution, but it works. I download the app mifare classic tool on smartohone. Choose "write tag" -> "factory format" -> "select all" -> "start mapping and format tag". active your nfc option on the phone. Put the card on the back and start mapping. it's reset the data and after u can write data ^^ hope that help <3 (and sorry for my poor english)

I found a solution for me, idk if it work for you but you can try. I know it's a strange solution, but it works. I download the app mifare classic tool on smartohone. Choose "write tag" -> "factory format" -> "select all" -> "start mapping and format tag". active your nfc option on the phone. Put the card on the back and start mapping. it's reset the data and after u can write data ^^ hope that help <3 (and sorry for my poor english)

thank you, it worked!


Improve the Create API doc structure

Description:
The following is the proposed documentation structure.

The following is a rough description of the new page layout that will be pointed to from the UI as mentioned in https://github.com/wso2/product-apim/issues/10955

I had an offline discussion with Sanjeewa and got approval for this change.


[ADD] add another docker image/project

Description

Name: Apache Spark Standalone Cluster on Docker
URL:  https://github.com/cluster-apps-on-docker/spark-standalone-cluster-on-docker
License: MIT License

Why
This is a great project, it provides spark cluster on standalone mode, running on top of docker. There is a master spark instance and two workers configured by default, but you can create more and change their configuration as you please. This spark cluster communicates with a simulated HDFS and a JupyterLab is started to run on top of all this ecosystem.
Checklist

[x] Item hasn't been proposed yet (there is no open PR, it hasn't been rejected or removed).
[x] Item is added at the on of the relevant section.
[ ] Description ends with period and doesn't contain trailing whitespace.

Code of Conduct

[x] I agree to follow Awesome Spark's Code of Conduct.

Havent been updated last two years?


update policy-integrity-shield.yaml and add description

update deafult signer config in IntegrityShield CR to set *
add comment description for the policy-integrity-shield.yaml
add misc other comments to policy-integrity-shield.yaml

@ycao56 Could you review this PR? Thank you.
/cc @ycao56

@ycao56 Could you review this PR? Thank you.
/cc @ycao56

/cc @ycao56

/cc @ycao56

will update policy-integrity-shield for another reason, so cancel this PR once. thank you.


source in zip should be main.go not main

when is a binary main should be in the zip
when is a source main.go is the more natural thing since users most probably have .go in all source files

in PR#49 no more restrictions, no need to have a main in a zip file any more , fixed


How to get updated rssi?

I'm populating an array with scanned device and if already present, I  update the rssi value, but some devices is scanned every second, other after a lot of seconds.
How to get "near to realtime" rssi values for all scanned devices (not connected)?
To understand, I would like to replicate a list like the main page of LightBlue where rssi is updated every in realtime for every row

You will need to ping that value every X seconds (or any time frame that makes sense for you).
You can create your own subscription-like functions.

thank, will try tomorrow

Closing for now. Please reopen if there are any issues.


Clarification regarding "_corouteInclusion" constraint model

The new "_corouteInclusion" constraint (connectivityService) is defined as a leaf-list of connectivityService uuid. This seems to indicate that it would be possible to request a connectivityService that is corouted to a given set of existing connectivityServices. The question is how to interpret the use case:

Should the new service be corouted to all services in the set? This might not be feasible since the services in the set might not share the same route...

Should the new service be corouted to one of the services in the set?

Probably it would be better to have the "_corouteInclusion" as a "leaf" instead of a "leaf-list". The orchestrator would have to indicate the exact connectivityService to which the new service should be corouted.

I would tend to agree to define it as a leaf.

Fixed by #173


Flaky Incremental Model Selection tests

tests/model_selection/test_incremental.py::test_gridsearch and tests/model_selection/test_incremental.py::test_transform occasionally fail on CI.
https://dev.azure.com/dask-dev/dask/_build/results?buildId=1154&view=logs&j=2eab4704-62a3-55d0-a524-46b534a6e811&t=24a2918a-3d47-54f3-09aa-2db1b58035d7&l=549
================================== FAILURES ===================================
_______________________________ test_gridsearch _______________________________

    def test_func():
---------------------------- Captured stderr call -----------------------------
distributed.scheduler - ERROR - Couldn't gather keys {'_score-4d2165fa-45ff-4705-90a5-5c464fb49b2a': [], '_score-d139b189-4b59-4823-a75e-76613308362a': [], '_score-2de29df9-0e9f-4d81-8032-4b41d918fb18': [], '_score-35f12ba1-3806-4b51-8307-a42da6d043ef': [], '_score-2dc00b23-6a1b-4312-8b97-a05a9d1c391c': [], '_score-fb91dd67-dee3-4e81-9bf6-1384f42bd993': []} state: [None, None, None, None, None, None] workers: []
NoneType: None
distributed.scheduler - ERROR - Workers don't have promised key: [], _score-4d2165fa-45ff-4705-90a5-5c464fb49b2a
NoneType: None
distributed.scheduler - ERROR - Workers don't have promised key: [], _score-d139b189-4b59-4823-a75e-76613308362a
NoneType: None
distributed.scheduler - ERROR - Workers don't have promised key: [], _score-2de29df9-0e9f-4d81-8032-4b41d918fb18
NoneType: None
distributed.scheduler - ERROR - Workers don't have promised key: [], _score-35f12ba1-3806-4b51-8307-a42da6d043ef
NoneType: None
distributed.scheduler - ERROR - Workers don't have promised key: [], _score-2dc00b23-6a1b-4312-8b97-a05a9d1c391c
NoneType: None
distributed.scheduler - ERROR - Workers don't have promised key: [], _score-fb91dd67-dee3-4e81-9bf6-1384f42bd993
NoneType: None
distributed.client - WARNING - Couldn't gather 6 keys, rescheduling {'_score-4d2165fa-45ff-4705-90a5-5c464fb49b2a': (), '_score-d139b189-4b59-4823-a75e-76613308362a': (), '_score-2de29df9-0e9f-4d81-8032-4b41d918fb18': (), '_score-35f12ba1-3806-4b51-8307-a42da6d043ef': (), '_score-2dc00b23-6a1b-4312-8b97-a05a9d1c391c': (), '_score-fb91dd67-dee3-4e81-9bf6-1384f42bd993': ()}
tornado.application - ERROR - Exception after Future was cancelled
Traceback (most recent call last):
  File "C:\Miniconda\envs\dask-ml-test\lib\site-packages\tornado\gen.py", line 742, in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "D:\a\1\s\tests\model_selection\test_incremental.py", line 405, in test_gridsearch
    yield search.fit(X, y, classes=[0, 1])
  File "C:\Miniconda\envs\dask-ml-test\lib\site-packages\tornado\gen.py", line 735, in run
    value = future.result()
  File "C:\Miniconda\envs\dask-ml-test\lib\site-packages\tornado\gen.py", line 742, in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "D:\a\1\s\dask_ml\model_selection\_incremental.py", line 625, in _fit
    prefix=self.prefix,
  File "C:\Miniconda\envs\dask-ml-test\lib\site-packages\tornado\gen.py", line 735, in run
    value = future.result()
  File "C:\Miniconda\envs\dask-ml-test\lib\site-packages\tornado\gen.py", line 742, in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "D:\a\1\s\dask_ml\model_selection\_incremental.py", line 297, in _fit
    scores = yield client.gather(scores)
  File "C:\Miniconda\envs\dask-ml-test\lib\site-packages\tornado\gen.py", line 735, in run
    value = future.result()
  File "C:\Miniconda\envs\dask-ml-test\lib\site-packages\distributed\client.py", line 1865, in _gather
    self._send_to_scheduler({"op": "report-key", "key": key})
  File "C:\Miniconda\envs\dask-ml-test\lib\site-packages\distributed\client.py", line 960, in _send_to_scheduler
    "Message: %s" % (self.status, msg)
Exception: Tried sending message after closing.  Status: closed
Message: {'op': 'report-key', 'key': '_score-4d2165fa-45ff-4705-90a5-5c464fb49b2a'}

The errors on the scheduler about seem related.
distributed.scheduler - ERROR - Workers don't have promised key: [], _score-4d2165fa-45ff-4705-90a5-5c464fb49b2a

But I can't reproduce this locally.

This is also failing in #527, which rips out a lot of Tornado and instead relies on native async/await syntax.

Can the tornado-specific changes be done in a dedicated PR?
On Tue, May 26, 2020 at 4:18 PM Scott Sievert<EMAIL_ADDRESS>wrote:

This is also failing in #527 https://github.com/dask/dask-ml/pull/527,
which rips out a lot of Tornado and instead relies on native async/await
syntax.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask-ml/issues/673#issuecomment-634284358, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKAOIXUSB4GSE75BJOHZITRTQWYTANCNFSM4NKKSUDQ
.


saga can use @GlobalTransactional?

How to use Class DefaultSagaTransactionalTemplate?
when i run demo example , i did not see  that class be invoked, and RM method branchCommit never invoked.
So i am confused.

Saga use the StateMachineEngine to start a GlobalTransaction.


W (1579) phy_init: failed to load RF calibration data (0x1102), falling back to full calibration

W (1579) phy_init: failed to load RF calibration data (0x1102), falling back to full calibration
hi, after compile the project step by step writting in the readme, idf.py -p /dev/ttyUSB0 monitor give me this error .

i finally figure out that is the power setting problem.

esp32-cam requires a lot of current.


Merge Application & Viewer tabs

Proposal that the application & viewer tabs be merged. Not enough information on either of them, and easy to combine them.
New tab would called 'Viewer'.

good suggestion - thanks.  for now we've confirmed that leaflet is the only map viewer type.
Base Map choices could be in a drop down list to minimize screen real estate if level if effort is low to implement.

1.0.0-beta.5


Why cond_num_out is fixed to 5?

self.cond_num_out = nn.Sequential(nn.Linear(N_h, N_h),nn.Tanh(), nn.Linear(N_h, 5))
https://github.com/xxj96/SQLNet/blob/master/sqlnet/model/modules/sqlnet_condition_predict.py#L22
@xxj96 Thank you!!

I think is N+1


feat(put): add support for passing a default value

This is to add back in logic that was part of #10 that got removed shortly after.  The logic was changed slightly to catch undefined/null values but let all other falsy values pass through unchanged.

apologies for the late response... added back in... will tag a releae soon


merge from template-arlac77-github

.github/workflows/ci.yml

chore(deps): add 20.15.0 remove 20.14.0 (jobs.test-node.strategy.matrix.node-version)
chore: add 20.15.0 (jobs.test-browser.steps.with.node-version)
chore: add 20.15.0 (jobs.release.steps.with.node-version)

.github/workflows/codeql_analysis.yml

chore: add 20.15.0 (jobs.analyze.steps.with.node-version)

.github/workflows/update_package_lock.yml

chore(deps): add 20.15.0 (jobs.update_package_lock.strategy.matrix.node-version)

.github/workflows/update_readme_api.yml

chore: add 20.15.0 (jobs.update_readme_api.steps.with.node-version)

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
96

Relevant Lines:
96

💛  - Coveralls


Add running scripts for cnn and cifar_distributed_cnn examples

For cnn and cifar_distributed_cnn examples, we need to add running scripts for different models and datasets so that it is easier for users to try out the example.

This has been addressed by files of https://github.com/apache/singa/blob/dev/examples/cifar_distributed_cnn/run-rtx.sh and https://github.com/apache/singa/blob/dev/examples/cnn/run.sh

Resolved

Need to consider different datasets, i.e., mnist, cifar-10 and cifar-100

this has been resolved


Minimal roundtrip fails with WireError: truncated message.

Ok so maybe (a) my computer is in a weird state or (b) I'm misunderstanding the API, but the following:
main.rs:
extern crate protobuf;

mod test;
use test::Foo;
use protobuf::Message;
use protobuf::stream::CodedInputStream;

fn main() {
    let mut x = Foo::new();
    x.set_value(23);
    let bytes = x.write_to_bytes().unwrap();
    println!("{:?}", bytes);

    let y: Foo = CodedInputStream::from_bytes(&bytes).read_message().unwrap();
    println!("{:#?}", y);
}

test.proto:
message Foo {
  optional int32 value = 1;
}

Then the following fails with:
$ protoc --rust_out=src/ test.proto
$ cargo run
    Finished debug [unoptimized + debuginfo] target(s) in 0.0 secs
     Running `/home/ccc/p/proto-test/target/debug/proto-test`
[8, 23]
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: WireError("truncated message")', ../src/libcore/result.rs:799
note: Run with `RUST_BACKTRACE=1` for a backtrace.

I installed the protoc plugin with cargo install protobuf. I'm on Ubuntu 16.10 with protobuf-compiler=2.6.1-1.3.

Argh, right, if I use with_coded_input_stream then all's good forgot about that nevermind. Sorry!
(I'm trying to isolate a more complex bug and struggling to see where to find exactly where the issue is)


vex-open remains on body in chrome if dialog is closed in background with child browser window & print dialog is called (then print cancelled or proceed)

We are using angular + vex.js + vex-dialog.js + modialog vex plugin. But id doesn't seems like modialog bug.
Can be reproduced in chrome with some unusual scenario :

Open dialog
Create window
Create window document
Write some content to document
Close document
Request for animation frame, then call window.print() and window.close()
Cancel the print in chrome dialog.
Return back to page.

Sorry, it is modialog issue.


User left but room still shows user's name

So like Ben was in a room right now and even after he left, the room on the home page was showing Ben's name and even after I refreshed 3-4 times, it still showed Ben Awad in room user list at the hoom screen. It only got removed when he made a new room...

Has anyone experienced this ever since or was it just a one off?


Migrate dependencies from git submodules to CPM.cmake

Use cmake package manager instead of git modules for spdlog/fmt. Also update the versions of these libraries.

Jenkins, test this please once more time


[Improvement][Create Cluster] Provide real-time display of background logs to improve user experience.

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Description
在通过 Web UI 创建集群时，提供后台日志实时显式功能。

如图所示，点击进度条，显示每个 worker 节点详细日志信息。
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

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

Thank you for your suggestion. The DataSophon community will carefully consider your suggestion


[BUG] WalletConnect key being console logged in browser

Describe the bug
Developing a dApp on Fantom where infura / alchemy are not available, and whenever opening the WalletConnect qr modal, the console logs the bridge/key uri, which could potentially be abused.
To reproduce
Using the latest version of ConnectKit (v1.2.1), if opening the qr modal it will console.log the uri. I've tried using the defaultClient from ConnectKit as well as a custom wagmi client configuration, present everywhere.
Expected behavior
I am expecting the WalletConnect qr modal to not console log the connection uri.
Screenshots

Environment details
Chrome
Additional context
Add any other context about the problem here.

Issue seems to stem from here:
https://github.com/family/connectkit/blob/97a0bb64e314a0dcc13c579d6f84ff91e832bee9/packages/connectkit/src/components/ConnectModal/ConnectWithQRCode.tsx#L77
And possibly here:
https://github.com/family/connectkit/blob/97a0bb64e314a0dcc13c579d6f84ff91e832bee9/packages/connectkit/src/components/Pages/MobileConnectors/index.tsx#L92

This log comes from WalletConnect V1's SDK and can be replicated in their example: https://example.walletconnect.org/
Also worth noting that we are introducing a debugMode flag which shows/hides ConnectKit console logs overall.


Display bug with Overlay2 layer and right walls in Jail map

Because of how map rendering works, walls can be drawn over the Overlay2 layer:

Map rendering should be changed to use a depth buffer approach instead of trying to draw each entity in the proper order based on the ordering in MapEntityRendererProvider. See: https://github.com/Cirras/eomap-js/blob/3595405bbb5623287a172985467a242ea5f3ce58/src/gameobjects/eomap.js#L10-L26

Another one for the depth buffer: map objects and walls

The second example is fixed in #213 - unfortunately the first example is not.


windows   or  linux？

i run this module in windows10，but      bash  setup.sh         is error

We have only tested the code on linux. If you want to run it on windows, you can refer to #2.


TLS Boolean Property Fix

This patch changes the TLS boolean properties to strings so that they can have a default, empty value. As boolean properties their default, empty value was false, overriding any auto-magic functionality that flipped the TLS insecure bit to true. This way the properties can have three states: empty, false, and true.
Thanks to @cduchesne for helping me figure this out. This is partially related to codedellemc/rexray#833.

Codecov Report

Merging #542 into release/0.6.0 will not change coverage.
The diff coverage is n/a.

@@              Coverage Diff              @@
##           release/0.6.0    #542   +/-   ##
=============================================
  Coverage           28.4%   28.4%
=============================================
  Files                 34      34
  Lines               2003    2003
=============================================
  Hits                 569     569
  Misses              1373    1373
  Partials              61      61

Continue to review full report at Codecov.

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


Problem activate MFA

Hello,
I have a problem with activate MFA and login again in admin portal
For exemple I use the MFA ton login in the admin interface and i have this page after type my password :

I Use Europe/Paris in my physical machine and test with UTC and same problem.
And the log :
firezone-firezone-1  |     ** (FunctionClauseError) no function clause matching in DateTime.compare/2
firezone-firezone-1  |         (elixir 1.14.2) lib/calendar/datetime.ex:1362: DateTime.compare(~U[2023-01-16 15:54:54.321799Z], nil)
firezone-firezone-1  |         (fz_http 0.7.2) lib/fz_http_web/live/hooks/live_mfa.ex:13: FzHttpWeb.LiveMFA.on_mount/4
firezone-firezone-1  |         (phoenix_live_view 0.18.6) lib/phoenix_live_view/lifecycle.ex:148: anonymous fn/4 in Phoenix.LiveView.Lifecycle.mount/3
firezone-firezone-1  |         (phoenix_live_view 0.18.6) lib/phoenix_live_view/lifecycle.ex:183: Phoenix.LiveView.Lifecycle.reduce_socket/3
firezone-firezone-1  |         (phoenix_live_view 0.18.6) lib/phoenix_live_view/utils.ex:333: anonymous fn/6 in Phoenix.LiveView.Utils.maybe_call_live_view_mount!/5
firezone-firezone-1  |         (telemetry 1.2.0) /app/deps/telemetry/src/telemetry.erl:321: :telemetry.span/3
firezone-firezone-1  |         (phoenix_live_view 0.18.6) lib/phoenix_live_view/static.ex:269: Phoenix.LiveView.Static.call_mount_and_handle_params!/5
firezone-firezone-1  |         (phoenix_live_view 0.18.6) lib/phoenix_live_view/static.ex:110: Phoenix.LiveView.Static.render/3

Disable the MFA resolved this issue
Is a docker installation.
Can you help me please ?

 Can you please describe how you set up the MFA method so I can have ways to reproduce it? Was it done in the UI, or did you add a record to the database table? Were there any errors during the process?

Hello,
I setup the MFA with UI.
I take a screenshot :

I confirm with 6 digits OTP
I logout and login
This is very strange, because while I have just redone the manipulation to reproduce the bug, I no longer have the problem ;).
Could the problem be random?
Thank you

Hello,
I reproduce this problem and at the stage where he asks us to validate the OTP, I have to enter it twice for it to be taken into account.
Then when trying to connect I get the message "internal server error"

Thank you for clarifying this, I'm working on a fix

Ok thank you ;)


Trying to use the source code but pub get not working

Hello I am trying to call this by doing the git clone etc and that works but the pub get does not work. How do I get this to work? Also I am making a one to one chat app and I want to implement either that here or this their. Could you point out where exactly the code for the create group is there? As I have a find users option but I want the create new group and find group option. If you can do that this would rlly help me out. Thanks

@akshaybalaji123 The UI implementation of the 'Create new group' is present in lib/pages/home_page.dart file and the logic which means creating a new group in the firebase backend is implemented in lib/services/database_service.dart file.

Hello thanks for that but what about the join group?

Is there anyway you could add the one to one chattting as well

I will finish my one to one chatting in about 2-5 days could I get you to help me out with add the groups like you have done? Or perhaps get a tutorial??

Lastly where does the chats display? I want to make a fragment for groups so that they are easy to differentiate

I am wondering how you add members because the way I add friends is perhaps different from your method. So sorry for the spam texts but this would be great for some help

@ahmedgulabkhan Sorry for all the trouble just get to it whenever you can

@akshaybalaji123 For joining any group, just search for the group from the homepage and click on 'JOIN' button of the group you want to join. For one-to-one chatting, i'll try working on it when i find time. The chats display on the homepage of the app when you are a member of atleast one group

Is jt possible for it to get the chats inside a different recycled view inside a page fragment. I just want the code to you recycled view similar to the java as well. Could you try explaining the code because I am trying to utilize the same method as above. I am adding the one to one chat in one of the fragments and then the group chat in another tab or fragment or whatever it is. Could you format it this way whenever you can?

Also I am having trouble with the Auth service dart. The User _user app the capital Users are not calling from user.dart even though I have imported it. How to fix it!

Hello how do I import your code? I am trying to open a project with yours by creating a new flutter project then adding my google services.json. Then it says that Firebase Not initialized


[PROJECT] Host Dashboard Revamp

Purpose
This project's goal is to improve the experience of hosts on the platform by re-designing the dashboard. We prioritized this because it's aligned with the new business model of plans for hosts.
There are other improvements to be done for hosts, they are listed here but they are outside of the scope of this project. Full document here
Owner
@piamancini
Design owner @Memo-Es
Note: Project owner responsibilities include coordinating all the different people that need to contribute to the project, defining specs and goals, communicating project progress, being the point person for decisions, QA, documentation, and a plan for ongoing maintenance. If the project owner can't continue, they need to hand the role over to another person explicitly.
Prioritization

Does this serve our mission?
Yes, it enables fiscal hosts to better manage their finances for their communities.

Will this help to make us financially sustainable within a year?
Yes, by improving the experience we aim to attract more hosts on the platform.

Is it feasible to build and maintain with our team and runway?
The scope of this project is to re-design.

Can this make us move faster?
Hopefully it'll make it less buggy and more intuitive. Lowering both the support time and the many requests for mall improvements.

Does this increase quality and not technical debt?
yes.

Will this bring us more Collective and financial contributors?
It aims at brining more hosts.

Is this already solved elsewhere or is it our unique contribution?
Unique.

Roadmap & Timeframe
(Key milestones or phases and estimated delivery dates, including specs, design, feature development, feedback, marketing/comms, and documentation)
Specs below
Design Delivery: April
Implementation: Q2
Design Specs
Expense Actions
As a host Admin I want to be able to

Mark an expense as paid
Mark an expense as unpaid (#2773)
Pay an expense with PayPal
Pay an expense with Transferwise
Pay expense with payment method Other
Reject and Expense
Approve an expense
Un-approve an expense
Delete and expense
Edit an expense (incl. paypal and transferwise details)
See expense status / narrative
Add funds on a particular tier (for example, I want to add funds from someone who is a platinum sponsors)
Edit an added funds transaction

Search and Sort

Filter by payout type (paypal, manual, transferwise)
Search expenses and pending orders by
date,
status,
collective,
user,
type,
tax form
ID number
amount
Search/sort Collectives:
display and search/sort collective list
balance,
date of last activity
fee

Fees Actions

As a host Admin I want to manage the different fees I charge per collective. (#2821)

Reports & Data Export

As a host admin I want to have access to the archive of host reports. (#2798)

As a host admin, I want to be able to export data about my host. (#2808)
All transactions across all collectives
Collectives information
Collective name
Collective slug
Approved date
Collective admins name and email addresses
Collective balance
Annual Budget
Number of Financial contributors
Active / Archived Status
Financial Contributors Info
List of Financial Contributors across collectives
Email addresses
Billing address
Accumulated amount donated

Bank Transfers (Pending Orders)

As a host admin I want to manage my pending orders (manual donations that need to be confirmed, for example bank transfers) from my host dashboard.
I want to edit the amount received (or include a box for payment processor fees) (#2702)
I want to send a company an invoice in advance to create and create a pending order for ir (#2456)
Search and filter per date, collective, id, amount

Email Service & Community Engagement

As a host admin I want to send an update to collective admins and financial contributors across my collective. Enable Updates for Hosts (#2314)
As a host admin I want to edit the thank you / receipt emails that get sent automatically to financial contributors.

Pending Applications

Show detailed Collective info and responses to application questions in pending applications tab on dashboard

Success metrics
(What we will judge outcomes of the project by)
Number of hosts on the platform on a paid plan

To discuss: plan for talking to hosts and potential hosts to get customer feedback before finalising and prioritising project specs.

@alanna Yes - I already posted it in all hosts channels on Slack. I'm not sure I would do a specific communication about this, we can bundle it with other information - Include it in the next newsletter. Any ideas in particular?

Should also be able to search expenses/pending orders by their ID number (as it is what is communicated as part of the wire transfer)
I’d also love to see the first page of the host dashboard to show the different items that require the host’s attention, i.e. expenses ready to be paid, pending orders that need to be marked as paid (moving the latter to a different tab has been a regression for that as there is now two places to check every time the host checks the dashboard). This page could also show a feed of the latest updates across all the hosted collectives.
It would also be interesting to have a way to see the list of inactive collectives with an easy way to reach out to them. This will help hosts keep their community of collective admins alive.

Not sure if this the right place to put this, but I'd love to be able to use structured communication +++.../.../...+++ for incoming payements so that we dont have to mark financial contributions as paid.
In relation to expense payement, and when people select "Other" instead of "Paypal" to get reimbursed, it would be nice to have a third option such as select "IBAN" and then force people to insert their first name, last name, IBAN, and communication desired.

Thank you @jfdh !

it would be nice to have a third option such as select "IBAN" and then force people to insert their first name, last name, IBAN, and communication desired.

This will happen, it's part of the expense flow re-design being implemented now.

structured communication +++.../.../...+++ for incoming payements so that we dont have to mark financial contributions as paid.

Can you explain this further?

structured communication +++.../.../...+++ for incoming payements so that we dont have to mark financial contributions as paid.

Can you explain this further?

Sure. For now, when people people choose to make a donation through bank transfer / virement bancaire on Open Collective, they receive an email "Action required". On this email, we are asking them to write a communication of this type: xr-belgium order 64329. This is nice because I can link the code 64329 from the bank account to what appears on my dashboard (but I need to check this for each payement and manually mark as paid).
That is why it would be even nicer if instead of asking them "xr-belgium order 64329", there was a code (structured communication +++.../.../...+++) in the email that sends a payement instruction to my bank account and to open collective so that open collective knows that this code was received on my bank account, and thus paid. A lot of services use this, see also https://help.ticketmaster.be/hc/en-us/articles/360007609313-Why-do-you-need-to-use-a-structured-communication-
I also attached an invoice which is asking me to write a structured communication when doing the payement (so that Smart doesn't have to manually check if all the clients pay their invoices).
Let me know if I can help.
Facture 2020.PFV.011885.pdf

Want a section for managing collectives, both approved and pending.
I have several groups with a "pending" status that are in limbo. They're on my collective and I don't have a way to remove them.

hi @elijahv you should see a pending applications tab on your host dashboard where you can reject expenses. We definitely need to improve usability here.

A different matter is that pending collectives should not show on your host (cc @Betree I think we fixed this already?

@jfdh thank you! This is super useful

A different matter is that pending collectives should not show on your host (cc @Betree I think we fixed this already?

@piamancini they should not show indeed, we had this issue at some point but it has been fixed a while ago. If they are still showing then that's a new bug.

First design wireframes → Overarching structure

Section
Image
Description

Primary Navigation

Where you see the main sections that conforms the dashboard: Priority (Home), Expenses, Collectives and Contributions

Secondary Navigation

Each of the main sections will have a contextual nav bar with different sub-sections

Global info

Here hosts will have important global info always at hand

Host Profile and Settings

Host info and link to settings page

Action space

The space where hosts will interact with all the elements and perform tasks

I'll be uploading the definition of each section in the next days...

We are a brand new host from Estonia so we only have limited hands-on experience with the interface, but we have been evaluating OC for some time so some feedback that might be worth having find its way into the new version.
Expense details are inconsistent across UI

Above: excerpt from a hosted collective, below: host dashboard (same transaction)

The information displayed differently in the views, and in some cases even missing details (the charged host/payment fees is the most annoying here). We understand that privacy consideration might be at play in these interfaces (as some are also shown to the public), but interestingly the one that's missing the detailed information on fees (below) is from the dashboard.
As mentioned above, more consideration towards management of fees would be much welcome.
First-class treatment for off-site financial transactions
Again, a theme mentioned above multiple times. As an Estonian host most often interacting with entities inside the EEA/EMU (eurozone), our primary interaction with these entities will be via our bank, and mostly in Euros. Wire transfers within SEPA are provided free-of-charge so this is our preferred method of reimbursements, invoice and other expense payments. Facilitating this with workflows that actively enable and make these transactions easier to execute and less hassle to deal with inside OC would be highly preferred. Relatedly:
Need better UI discoverability (aka "finding Add Funds")
I've spent long minutes staring at the dashboard, clicking around in vain trying to find the way to add external funds received by the host to show up in OC. Then I spent a few hours carefully reading through the docs (I know, RTFM, I should have started there) until I finally found out that I needed to click into the search box on the dashboard, select a collective and only THEN this button will show up. Hopefully this will be fixed in the new edition, but hopefully discoverability of functions will be a prime factor in the new refactor as I consider myself a technically adept person, but I'd assume the dashboard would be used by many more folks with much less technological experience.

Regarding the wireframes shared @Memo-Es above for now these look promising. One question here: if the secondary navigation contains "sub-sections" of the primary navigation, what is the reasoning behind moving these to the top of the action area instead of the (perhaps more common) inlining in the rectangle of the primary navigation (and showing/hiding upon selection of primary element, a la accordion boxes)?

Hope this helps! In general we are really psyched about the upcoming host dashboard changes as we have high hopes for using OC and the affordances it will provide us to more efficiently cater for our collectives! :sparkling_heart:

Hello @flaki !! 👋🏼
Thank you very much for taking the time to test the platform and write such an insightful review, this is super useful and much appreciated!

Totally agree with the feature discoverability, it is in fact one of the priorities of this project
Will definitely take into account your suggestion on the navigation of the dashboard, will be sharing further wireframes in this issue, stay tuned!

Thanks again and I hope your experience using Open Collective helps you connect and better maintain your community!

Update → Expenses (Wireframes)
In this screencap is showed the following features and user experience regarding expense management for fiscal host admins:

Main actions
Filter and search

Pay expensesMark an expense as paid / unpaid Pay an expense with PayPal Mark an expense as paid / unpaid Add fees when paying Change expense status (Reject / Approve / Un-approve...) Delete an expense Edit an expense See expense narrative and status changes
Filter expenses by:Date Status Type Status Amount Status Search expenses by Title Collective Submitter (User) Expense ID

@Memo-Es I can't see the GIF

@Memo-Es can you please update when you can with the application views you demoed on Friday? Thanks!

Since each expense is a conversation, it's important to also show the number of comments and the avatar of the last few people who participated in the conversation.
A common use case is that the host posts a comment to ask for more info. They need to be able to quickly see if someone has responded without having to open that actual expense.

I don't understand the goal of the "global info cards" up there. I don't see why knowing the PayPal/transferwise balance is important information that you need to know outside of any context. I'd only show them whenever you need to select a payout method to pay out an expense (in the exact same way that we show you the different payment methods that you can use when making a donation, each with their available balance if any).
More interesting info for those cards (if you want to keep them), would be an overview of how much work the host has to do right now. That is:

how many expenses are ready to pay,
how many orders are pending (and need to be marked as paid or cancelled),
how many applications for hosting are pending
how many conversations are unanswered on the host page

Update → Expenses and Collectives (Wireframes)
In this screencap is showed the following features and user experience of expense management, application management and Collectives for fiscal host admins:

Main updates

Showing number of comments and last usersSee application listSelect an application and its details Approve application Send a message to the Collective with a public conversation in the Collective's page Send a private message to the Collective admins with an email Reject an application (Providing a reason with n email to Collective admins  See list of Collectives hosted  Possibility to Add funds, set custom fee, contact or un-host the selected Collective

Update → Collective actions (Wireframes)
In this screencap is showed the following features and user experience of interacting with Collectives through the following actions:

Add funds
Set custom fees
Contact
Un-host

 Add funds to the CollectiveSet extra fees (Optional)
  Use global fees (Inherited from settingsSet custom fee for this Collective only  Set a monthly retainer for this Collective (Subscription)
  Send message to Collective using a public conversationSend a private email to Collective admins
  Un-host (Delete) a Collective from your hosted Collectives Send a private email to Collective admins explaining why

These look great! Looking forward to trying the new dashboard!
RE: Set custom fees
This also looks great.
One potential request -- how about making the "monthly retainer" rather a "charge host fee"?
I think monthly retainers make sense, but I also imagine some might only want to charge a collective e.g. after every event they do (a flat fee), or only if they reached a certain point or whatever else.
The host could pre-agree on a fee, instead of charging a monthly fee, and charge that once the requirements are met. Monthly retainers could be made just by clicking in a [x] make it monthly checkbox right underneath.
So something like:
Host fees

[ ] Use global host fees

Custom

[ ] ___% custom host fee

One-time host fee

$____ enter host fee [Charge] [x] make it recurring: monthly

@Memo-Es - The mockups look fantastic! What would be useful to give feedback on at this stage? Can I get access to the prototype you make these gifs from to click through myself? I am available to get involved a bit in this project now if I can help.
@flaki I totally agree! That issue is detailed here: #2843 - seeing how it could be incorporated into these designs is helpful. I also agree that one-time fee is a good option to add.

Update → Expenses UI
Final UI of the expenses section of the host dashboard
Note: There is still an update pending with the payout experience, I will update that soon.
(There can be some modifications to the specific wording in future updates)

This is looking really good! Can't wait to play with it. :nerd_face:

@Memo-Es comments about the Organization settings based on this screenshot:

Overall, I love the settings menu design. It's just a question of what order and sections things should be in.
Connected accounts: doesn't make sense here to me. I think that only has Twitter right? Why is that an Organization setting not Collective setting?
Your team: let's stick with Team - no need to change stuff so small and have to update docs any everything, and Team is more general.
Gift cards: also doesn't seem to make sense here. I know it's here because you've pulled through the settings that are currently seen for Org profiles, but this is a chance to rethink that. Gift Cards are something the admin will create, manage, and refer to similar to Expenses or Virtual Cards, not like static org info. Actually Gift cards is on here twice! Also at the bottom.
Collective settings: really doesn't make sense to a Host admin. They don't think of their Host as a Collective and Organization combined, that's just an artefact of how our system evolved. I tried to think of another word for this section heading, but actually given how I think we should remove several of the items in the about your organization section, I think what's needed is a rethink of all the sections.
Let's just remove the about your organization and Collective Settings sub-sections, and simply list out all these things under the overall Organization settings header. I still think that on the next level up, Organization Settings and Fiscal Hosting make sense, but we just don't need these other subsections.
I don't think Updates and Conversations need to even exist as settings. They are enabled and disabled in the Profile Page settings, and these separate settings don't have any function. Maybe @Betree will comment here saying he's about to introduce settings around Updates to non-contributor subscribers, but in that case, let's have one list item called Communication with Updates and Conversations settings under that. Considering how you've merged all Fiscal Host settings into one scrolling page, why not stick with that and further consolidate other areas?
In this context with contribution tiers and manage contributions right next to each other, it seems easily confusing. I don't know the solution.
Where are payment methods, as in managing the credit card this Host Org uses to contribute to other Collectives? Is it under Manage Contributons?
Where is 2FA?
Why get rid of Advanced? We have traditionally used that section for a lot more than only delete organization and we need a cluster of functions including archive and deactivate as host. So just Delete organization on its own doesn't work. We also often use Advanced to roll out new features or special functions we don't want to reveal in the main settings areas.

@alanna, I'm totally up for combining sections and narrowing down the number of options available. Still, according to feedback from @znarf, it is complicated to do that right now, so as far as I understand, we will need to continue having the different sections as we have them now. That's why I think we can at least bundle them together with the dropdown behavior

This is a really old issue, @memo-es is it time to close and open related issues instead? Many of the things proposed here have been deployed. This issue should have been closed when the host dashboard project was finished.

Yes @piamancini I just added the implementation specs to this other issue #3880 Ben opened some time ago. When that's done we can close the issues referenced there, including this one

Adding this to the roadmap as a 'catch all' for the two issues that we're addressing this sprint: https://github.com/opencollective/opencollective/issues/4300 and https://github.com/opencollective/opencollective/issues/3880

@BenJam I think we are ready to close this issue as well wdyt?

This is all done. We'll be removing the old dashboard entirely in #4914


Closes #2480 derive pair of variables

Thank you for your Pull Request! We have developed this task checklist from the Development Process Guide to help with the final steps of the process. Completing the below tasks helps to ensure our reviewers can maximize their time on your code as well as making sure the admiral codebase remains robust and consistent.
Please check off each taskbox as an acknowledgment that you completed the task or check off that it is not relevant to your Pull Request. This checklist is part of the Github Action workflows and the Pull Request will not be merged into the main branch until you have checked off each task.

[x] Place Closes #<insert_issue_number> into the beginning of your Pull Request Title (Use Edit button in top-right if you need to update)
[x] Code is formatted according to the tidyverse style guide. Run styler::style_file() to style R and Rmd files
[x] Updated relevant unit tests or have written new unit tests, which should consider realistic data scenarios and edge cases, e.g. empty datasets, errors, boundary cases etc. - See Unit Test Guide
[x] If you removed/replaced any function and/or function parameters, did you fully follow the deprecation guidance?
[x] Review the Cheat Sheet. Make any required updates to it by editing the file inst/cheatsheet/admiral_cheatsheet.pptx and re-upload a PDF and a PNG version of it to the same folder. (The PNG version can be created by taking a screenshot of the PDF version.)
[x] Update to all relevant roxygen headers and examples, including keywords and families. Refer to the categorization of functions to tag appropriate keyword/family.
[x] Run devtools::document() so all .Rd files in the man folder and the NAMESPACE file in the project root are updated appropriately
[ ] Address any updates needed for vignettes and/or templates
[x] Update NEWS.md under the header # admiral (development version) if the changes pertain to a user-facing function (i.e. it has an @export tag) or documentation aimed at users (rather than developers). A Developer Notes section is available in NEWS.md for tracking developer-facing issues.
[x] Build admiral site pkgdown::build_site() and check that all affected examples are displayed correctly and that all new functions occur on the "Reference" page.
[x] Address or fix all lintr warnings and errors - lintr::lint_package()
[x] Run R CMD check locally and address all errors and warnings - devtools::check()
[x] Link the issue in the Development Section on the right hand side.
[x] Address all merge conflicts and resolve appropriately
[ ] Pat yourself on the back for a job well done! Much love to your accomplishment!

@bundfussr This is still very bare-bones. I want to finalise the function before adding assertions and tests, and descriptions.
What do you think needs changing?
The function is flexible enough to derive multiple columns at once, based on as many conditions as required.

@bundfussr How would you expect users to use this function?
As ADVS usually has more than one VSTESTCD would users filter for one VSTESTCD first, or supply the condition via the definition?
i.e. :
definition <- exprs(
  ~condition,                                              ~AVALCAT1,  ~AVALCA1N,   ~NEWCOL,
  VSTEST == "HEIGHT" & AVAL >= 150,                     ">=150 cm",          1,  "extra1",
  VSTEST == "HEIGHT" & AVAL > 140 & AVAL < 150, "[140 cm, 150 cm]",          2,  "extra2",
  VSTEST == "HEIGHT" & AVAL <= 140,                     "<=140 cm",          3,  "extra3"
)

Like this they could centrally specify all groups, also for other VSTEST values.
If they would do it subsequentially, they would keep overwriting if they don't filter for VSTEST.
I guess my question is:
Should the function check first whether the new columns already exist in the dataframe and have different behaviour then?

@bundfussr How would you expect users to use this function? As ADVS usually has more than one VSTESTCD would users filter for one VSTESTCD first, or supply the condition via the definition?
i.e. :
definition <- exprs(
  ~condition,                                              ~AVALCAT1,  ~AVALCA1N,   ~NEWCOL,
  VSTEST == "HEIGHT" & AVAL >= 150,                     ">=150 cm",          1,  "extra1",
  VSTEST == "HEIGHT" & AVAL > 140 & AVAL < 150, "[140 cm, 150 cm]",          2,  "extra2",
  VSTEST == "HEIGHT" & AVAL <= 140,                     "<=140 cm",          3,  "extra3"
)

Like this they could centrally specify all groups, also for other VSTEST values. If they would do it subsequentially, they would keep overwriting if they don't filter for VSTEST.
I guess my question is: Should the function check first whether the new columns already exist in the dataframe and have different behaviour then?

Good question!
I don't like adding the condition for selecting the test/parameter to the condition for the categories because it makes the code less readable.
If the categories are defined within the ADaM script, slice_derivation() could be used to define them depending on the parameter.
However, if the categories are defined centrally, this would be cumbersome because you would need to specify the condition for the parameter twice, once in the filter argument of the slice and again to restrict the central dataset to the parameter. I think in this case it would be more convenient to have a by_vars argument. (It also may convenient to allow both a data.frame and a list of expressions for the definition argument.)

Ah its quite interesting, this function can also recreate the functionality of derive_vars_merged_lookup if you put in the right condition...

TODO: Update

[ ] ~/admiral/inst/templates/ad_advs.R
[ ] ~/admiral/inst/templates/ad_adpp.R
[ ] ~/admiral/inst/templates/ad_adex.R
[ ] ~/admiral/inst/templates/ad_adeg.R
[ ] ~/admiral/inst/templates/ad_adpc.R
[ ] vignettes/pk_adnca.Rmd:
[ ] vignettes/questionnaires.Rmd:
[ ] vignettes/bds_finding.Rmd:
[ ] vignettes/bds_exposure.Rmd:

Best to be done in a new issue, I think

@bundfussr How would you expect users to use this function? As ADVS usually has more than one VSTESTCD would users filter for one VSTESTCD first, or supply the condition via the definition?
i.e. :
definition <- exprs(
  ~condition,                                              ~AVALCAT1,  ~AVALCA1N,   ~NEWCOL,
  VSTEST == "HEIGHT" & AVAL >= 150,                     ">=150 cm",          1,  "extra1",
  VSTEST == "HEIGHT" & AVAL > 140 & AVAL < 150, "[140 cm, 150 cm]",          2,  "extra2",
  VSTEST == "HEIGHT" & AVAL <= 140,                     "<=140 cm",          3,  "extra3"
)

Like this they could centrally specify all groups, also for other VSTEST values. If they would do it subsequentially, they would keep overwriting if they don't filter for VSTEST.
I guess my question is: Should the function check first whether the new columns already exist in the dataframe and have different behaviour then?

Good question!
I don't like adding the condition for selecting the test/parameter to the condition for the categories because it makes the code less readable.
If the categories are defined within the ADaM script, slice_derivation() could be used to define them depending on the parameter. However, if the categories are defined centrally, this would be cumbersome because you would need to specify the condition for the parameter twice, once in the filter argument of the slice and again to restrict the central dataset to the parameter. I think in this case it would be more convenient to have a by_vars argument. (It also may convenient to allow both a data.frame and a list of expressions for the definition argument.)

Do you mean with something like this:
definition <- exprs(
~by_vars,        ~condition,                                              ~AVALCAT1,  ~AVALCA1N,   ~NEWCOL,
"HEIGHT",      AVAL >= 150,                     ">=150 cm",          1,  "extra1",
"HEIGHT",      AVAL > 140 & AVAL < 150, "[140 cm, 150 cm]",          2,  "extra2",
"HEIGHT",      AVAL <= 140,                     "<=140 cm",          3,  "extra3"
)

derive_params_cat(advs, definition, by_vars = VSTEST)

To be honest, I would leave the function as is, and recommend to users to use the higher level functions or specify more complex conditions in condition.
I would also be hesitant to allow different types of input. I think it makes more sense to be strict with the inputs, it let's us be more consistent and allows for a more stable code-base.

Do you mean with something like this:
definition <- exprs(
~by_vars,        ~condition,                                              ~AVALCAT1,  ~AVALCA1N,   ~NEWCOL,
"HEIGHT",      AVAL >= 150,                     ">=150 cm",          1,  "extra1",
"HEIGHT",      AVAL > 140 & AVAL < 150, "[140 cm, 150 cm]",          2,  "extra2",
"HEIGHT",      AVAL <= 140,                     "<=140 cm",          3,  "extra3"
)

derive_params_cat(advs, definition, by_vars = VSTEST)

Yes, something like that but I would name the first column VSTEST instead of by_vars.

TODO: Update

[ ]  ~/admiral/inst/templates/ad_advs.R
[ ]  ~/admiral/inst/templates/ad_adpp.R
[ ]  ~/admiral/inst/templates/ad_adex.R
[ ]  ~/admiral/inst/templates/ad_adeg.R
[ ]  ~/admiral/inst/templates/ad_adpc.R
[ ]  vignettes/pk_adnca.Rmd:
[ ]  vignettes/questionnaires.Rmd:
[ ]  vignettes/bds_finding.Rmd:
[ ]  vignettes/bds_exposure.Rmd:

Best to be done in a new issue, I think

I would do it in this MR because updating the templates and vignettes may reveal bugs in the implementation. In this case it is easier to have everything in the same MR.

Do you mean with something like this:
definition <- exprs(
~by_vars,        ~condition,                                              ~AVALCAT1,  ~AVALCA1N,   ~NEWCOL,
"HEIGHT",      AVAL >= 150,                     ">=150 cm",          1,  "extra1",
"HEIGHT",      AVAL > 140 & AVAL < 150, "[140 cm, 150 cm]",          2,  "extra2",
"HEIGHT",      AVAL <= 140,                     "<=140 cm",          3,  "extra3"
)

derive_params_cat(advs, definition, by_vars = VSTEST)

Yes, something like that but I would name the first column VSTEST instead of by_vars.

I think the name should be something more general, as VSTEST is VS specific and this function could be applied to other datasets as well.
Then the user would have to specify somehow which variable is used for that purpose.
I still think the current implementation is better, where we leave his up to the user.
Any opinions on this, @pharmaverse/admiral ?

TODO: Update

[ ]   ~/admiral/inst/templates/ad_advs.R
[ ]   ~/admiral/inst/templates/ad_adpp.R
[ ]   ~/admiral/inst/templates/ad_adex.R
[ ]   ~/admiral/inst/templates/ad_adeg.R
[ ]   ~/admiral/inst/templates/ad_adpc.R
[ ]   vignettes/pk_adnca.Rmd:
[ ]   vignettes/questionnaires.Rmd:
[ ]   vignettes/bds_finding.Rmd:
[ ]   vignettes/bds_exposure.Rmd:

Best to be done in a new issue, I think

I would do it in this MR because updating the templates and vignettes may reveal bugs in the implementation. In this case it is easier to have everything in the same MR.

Happy to do this, but I want to finalise the function first.

Do you mean with something like this:
definition <- exprs(
~by_vars,        ~condition,                                              ~AVALCAT1,  ~AVALCA1N,   ~NEWCOL,
"HEIGHT",      AVAL >= 150,                     ">=150 cm",          1,  "extra1",
"HEIGHT",      AVAL > 140 & AVAL < 150, "[140 cm, 150 cm]",          2,  "extra2",
"HEIGHT",      AVAL <= 140,                     "<=140 cm",          3,  "extra3"
)

derive_params_cat(advs, definition, by_vars = VSTEST)

Yes, something like that but I would name the first column VSTEST instead of by_vars.

I have now updated the function, please check the example.
It works now, what I do is essentially I concatenate the suppied condition plus the condition VSTESTCD == "HEIGHT" or whatever is specified.
Alternatively, I could implement it so that it uses our slice_derivation function, i.e.
1: get unique VSTESTCD values in the definitions.
2: Split the definition tibble (after conversion) by VSTESTCD values
3: Create a list of derivation_slice objects based on the splitted definition tibble
3: call the existing derivation function
Would be fun to implement this in a recursive way, and you should never be able to go more than one level down :)

tried my shot at the recursive implementation, but I ran into an error in slice_derivation.
I think the implementation without slice_derivation is sufficient. What do you think, @bundfussr?

tried my shot at the recursive implementation, but I ran into an error in slice_derivation. I think the implementation without slice_derivation is sufficient. What do you think, @bundfussr?

Yes, I don't think we need to use slice_derivation().

Thanks for the in-depth review, @bundfussr. Really helpful feedback.
Updated everything accordingly.
If checks pass, this is ready for review again.
Ah but I still have to test and document the helping function.

I think this is done now, if everything works...

I think this is done now 👍

Let's see if this one is it.. :)

Let's try again, @bundfussr

Hey @StefanThoma!  I would like one more pass at this from before it gets merged in.
Maybe some fresh eyes on the documentation would be handy as well.  @pharmaverse/admiral @pharmaverse/admiral_comm anyone want to review the documentation for this function - does it make sense to you as a new user of this function?  Is it working as intended?

Hey @StefanThoma! I would like one more pass at this from before it gets merged in.
Maybe some fresh eyes on the documentation would be handy as well. @pharmaverse/admiral @pharmaverse/admiral_comm anyone want to review the documentation for this function - does it make sense to you as a new user of this function? Is it working as intended?

Sounds good to me!
Let's try to get it out before my end of year review.. 😂

Hey @StefanThoma! I would like one more pass at this from before it gets merged in.
Maybe some fresh eyes on the documentation would be handy as well. @pharmaverse/admiral @pharmaverse/admiral_comm anyone want to review the documentation for this function - does it make sense to you as a new user of this function? Is it working as intended?

I had a look as a "new user" of this function. The reference page is well written and self-explanatory - great job @StefanThoma LGTM!

If tests pass this is done!

If tests pass this is done!

There is one finding left. In line 220 cli_warn() instead of warning() (https://github.com/pharmaverse/admiral/pull/2503/files#r1773577190) should be used.

@StefanThoma , all is fine from my side now. 🎉 Well done! Thanks for you patience.

🎉🎉🎉 Thank you for the thorough reviews, that was really helpful :)


Allow cluster admins view logs from no longer existing projects

@jcantrill @ewolinetz This might be naive solution, please review/advice.
Steps I used for testing:

Create project and deploy some app that writes logs - both, project owner and cluster admin can view logs
Delete project - only cluster admin can view logs
Delete index from es - no logs in es, no index mapping for project in .kibana index

How is this different than the current logic where a cluster admin can view old logs of deleted namespaces within the .all alias?

@ewolinetz it could be our logic currently removes the alias from the index.  I have not reviewed in depth to be certain

Closing for now.  We should be able to do this using the '.all' alias or by the fact admins can see all indices


camera animation support with constraints

Is your feature request related to a problem? Please describe.
When an object is animated through a follow path constraint, I have to bake it manually for the animation to export. I'm not the first to have filed this issue, the old repo already had an issue filed for it (https://github.com/KhronosGroup/glTF-Blender-Exporter/issues/44). These animations don't export whether or not "Always sample animations" is enabled.
Describe the solution you'd like
I'd like the glTF exporter to automatically bake these animations.
Describe alternatives you've considered
I can't think of any that's more convenient than checking a checkbox in the exporter.

This is a duplicate of #481