Git Error During Deployment

Deployer version:  7.7.3
Deployment OS: Ubuntu 23.10

<?php
namespace Deployer;

require 'recipe/common.php';

// Config
set('repository', 'git@github.com:thinkcube-solutions/deployer-7-testing.git');

set('http_user', 'deployer');

add('shared_files', []);
add('shared_dirs', []);
add('writable_dirs', []);

set('allow_anonymous_stats', false);
set('git_tty', true);
set('git_ssh_command', 'ssh');

// Set writeable mode to ACL
set('writable_mode', 'acl');

// Hosts
host('deployer_host')
    ->set('branch', 'main')
    ->set('remote_user', 'deployer')
    ->set('deploy_path', '/var/www/deployer-7-testing');

When deploying a simple config based on the above, the following error occours when the update_code task is run by Deployer:
[deployer_host] run export GIT_TERMINAL_PROMPT='0' GIT_SSH_COMMAND='ssh'; [ -f /var/www/deployer-7-testing/.dep/repo/HEAD ] || /usr/bin/git clone --mirror git@github.com:thinkcube-solutions/deployer-7-testing.git /var/www/deployer-7-testing/.dep/repo 2>&1
[deployer_host]
[deployer_host] bash: line 1: syntax error near unexpected token `$'B\E[m/usr/bin/git''
[deployer_host] bash: line 1: `( export GIT_TERMINAL_PROMPT='0' GIT_SSH_COMMAND='ssh'; [ -f /var/www/deployer-7-testing/.dep/repo/HEAD ] || /usr/bin/git clone --mirror git@github.com:thinkcube-solutions/deployer-7-testing.git /var/www/deployer-7-testing/.dep/repo 2>&1 ); printf '' $?;'
[deployer_host]  error  in update_code.php on line 90:
[deployer_host] exit code -1 (Unknown error)
done deploy:update_code 2s 28ms
ERROR: Task deploy:update_code failed!
task deploy:failed
[deployer_host]<EMAIL_ADDRESS>/home/user/Lab/deployer-7-testing/vendor/deployer/deployer/dep worker --port 38861 --task deploy:failed --host deployer_host --decorated -vvv
done on deployer_host
done deploy:failed 61ms

Good morning!
What happens if you remove git_ssh_command?
i would assume, that either there are weird whitespaces or the server has a broken configuration?
you can copy the commands submitted and run them individually. That helps me often to identify issues.

Good morning!
What happens if you remove git_ssh_command?
i would assume, that either there are weird whitespaces or the server has a broken configuration?
you can copy the commands submitted and run them individually. That helps me often to identify issues.

Good morning, @Schrank
I have removed the following line:
set('git_ssh_command', 'ssh');

However, the same error still pops up as before. How can I go about copying the commands individually and running them so I can provide you with more info?

Adding -vv shows you the commands, then you can copy them.

Thanks @Schrank !
Here is the terminal output.
➜ dep7 deploy staging -vv
task deploy:info
[staging] info deploying main
done on staging
done deploy:info 92ms
task deploy:setup
[staging] run [ -d /var/www/deployer-7-testing ] || mkdir -p /var/www/deployer-7-testing;
cd /var/www/deployer-7-testing;
[ -d .dep ] || mkdir .dep;
[ -d releases ] || mkdir releases;
[ -d shared ] || mkdir shared;
[staging]
[staging] run if [ ! -L /var/www/deployer-7-testing/current ] && [ -d /var/www/deployer-7-testing/current ]; then echo +correct; fi
[staging]
done on staging
done deploy:setup 1s 243ms
task deploy:lock
[localhost] run git config --get user.name
[localhost] thinkcube-solutions
[staging] run [ -f /var/www/deployer-7-testing/.dep/deploy.lock ] && echo +locked || echo 'thinkcube-solutions' > /var/www/deployer-7-testing/.dep/deploy.lock
[staging]
[staging] +locked
done on staging
done deploy:lock 698ms
task deploy:release
[staging] run cd /var/www/deployer-7-testing && (if [ -h release ]; then echo +legitimate; fi)
[staging]
[staging] +legitimate
[staging] run cd /var/www/deployer-7-testing && (if [ -d releases ] && [ "$(ls -A releases)" ]; then echo +legitimate; fi)
[staging]
[staging] +legitimate
[staging] run cd /var/www/deployer-7-testing && (cat .dep/latest_release || echo 0)
[staging]
[staging] 1
[staging] run cd /var/www/deployer-7-testing && (if [ -d releases/1 ]; then echo +right; fi)
[staging]
[staging] +right
[staging] run cd /var/www/deployer-7-testing && (echo 1 > .dep/latest_release)
[staging]
[staging] run cd /var/www/deployer-7-testing && (echo '{"created_at":"2024-04-09T11:28:59+0000","release_name":"1","user":"thinkcube-solutions","target":"main"}' >> .dep/releases_log)
[staging]
[staging] run cd /var/www/deployer-7-testing && (mkdir -p releases/1)
[staging]
[staging] run cd /var/www/deployer-7-testing && ((man ln 2>&1 || ln -h 2>&1 || ln --help 2>&1) | grep -- --relative || true)
[staging]
[staging]        -r, --relative
[staging] run cd /var/www/deployer-7-testing && (ln -nfs --relative releases/1 /var/www/deployer-7-testing/release)
[staging]
done on staging
done deploy:release 5s 522ms
task deploy:update_code
[staging] run command -v 'git' || which 'git' || type -p 'git'
[staging]
[staging] /usr/bin/git
[staging] run [ -d /var/www/deployer-7-testing/.dep/repo ] || mkdir -p /var/www/deployer-7-testing/.dep/repo
[staging]
[staging] run export GIT_TERMINAL_PROMPT='0' GIT_SSH_COMMAND='ssh -o StrictHostKeyChecking=accept-new'; [ -f /var/www/deployer-7-testing/.dep/repo/HEAD ] || /usr/bin/git clone --mirror git@github.com:thinkcube-solutions/deployer-7-testing.git /var/www/deployer-7-testing/.dep/repo 2>&1
[staging]
[staging] bash: line 1: syntax error near unexpected token `$'B\E[m/usr/bin/git''
[staging] bash: line 1: `( export GIT_TERMINAL_PROMPT='0' GIT_SSH_COMMAND='ssh -o StrictHostKeyChecking=accept-new'; [ -f /var/www/deployer-7-testing/.dep/repo/HEAD ] || /usr/bin/git clone --mirror git@github.com:thinkcube-solutions/deployer-7-testing.git /var/www/deployer-7-testing/.dep/repo 2>&1 ); printf '' $?;'
[staging]  error  in update_code.php on line 90:
[staging] exit code -1 (Unknown error)
done deploy:update_code 2s 63ms
ERROR: Task deploy:update_code failed!
task deploy:failed
done on staging
done deploy:failed 91ms


[Enhancement] (nereids)implement RefreshDatabaseCommand in nereids

Search before asking

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

Description
RefreshDatabaseCommand is supported in legacy planner but not in nereids(new doris fe planner). you need implement it in nereids.
The DorisParser.g4 has the syntax definition already(see bellow). And you can check RefreshDbStmt.java in legacy planner to see what the command does and migrate it to nereids planner
unsupportedRefreshStatement : REFRESH DATABASE name=multipartIdentifier propertyClause?
Solution
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

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

please assign it to me!


Use monotonic clock

This is to ensure that deadlines work consistently even in face of daylight changes, timezone shifts and such.

FIxed in master.
OTOH, it is said that OSX doesn't support CLOCK_MONOTONIC. I have no way to test thogh.


fix: 未开启自适应, 改变浏览器窗口大小, 会导致表格重新渲染 close #1197

👀 PR includes

🐛 Bugfix

[x] Solve the issue and close #1197

📝 Description
window.visualViewport 的 resize 事件在浏览器窗口大小改变时也能触发, 会产生一次额外的渲染
优化: 在 pixelRatio 改变后才重新渲染
🖼 Screenshot

Before
After

🔗 Related issue link

🔍 Self Check before Merge

[x] Add or update relevant Docs.
[x] Add or update relevant Demos.
[x] Add or update relevant TypeScript definitions.

:tada: This PR is included in version @antv/s2-v1.14.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-react-v1.13.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-v1.13.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-react-v1.12.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


I don't have credit/debit card or paypal.

I wanted to buy and install falconx on microsoft store but I don't have credit/debit card or paypal. And unfortunately, the "via mobile phone" method of purchasing is not available in the philippines.
Is there any other way to donate to you and give me a gift code instead?

I really appreciate you want to buy the store version but, the only way for me would be Paypal.


Update CredScan suppressions

Remove from list in cases where we have a fix pending or an exemption granted w/ inline suppression

Please add relevant PR information in the actual issues once merged.


Weapon-Specific Crosshairs Not Assigning All Weapons

I selected all the weapons in the list, but it doesn't even make some of the selected weapons tf_weapon_(name).txt files.

Having the same problem


"Usefull Links" are actually not very useful

If I visit https://www.osgi.org/ at the bottom there is a section named "Useful Links", but actually from a non expert eclipse/osgi user these are actually not very useful:

Report a Bug links to https://bugs.eclipse.org/bugs/ beside that bugzilla is about to be shut down a user is most likely confused what all this stuff is about and most probably should better link to github
Documentation links to https://help.eclipse.org/latest/index.jsp it is very unlikely that the eclipse help helps anyone who want to learn more about OSGi, most probably should it link to either the current spec or even better a more user friendly "user-doc" that explain: What is OSGi about, Where can I find some examples, Where can I read the Spec ...
How to Contribute links to https://www.eclipse.org/contribute/ what suggest me to to download the current eclipse I-Build, what most likely is not what user want if they like to contribute to OSGi
Mailing Lists links to https://accounts.eclipse.org/mailing-list and should at least link to the OSGi-WG mailing list to be helful for newcomers.
Forums links to https://www.eclipse.org/forums/ which has no real section about OSGi, and often is a dead end as the user-base is quite low. This might better link to more recent communication channels (Slack?).
Marketplace links to https://marketplace.eclipse.org/ very unlikely I'll find anything useful regarding OSGi there, its completely unclear what this is supposed to do with regard to OSGi.

Thanks for the issue, but this is not the correct repo for the www.osgi.org website. Please open this issue in https://gitlab.eclipse.org/eclipsefdn/it/websites/osgi.org. Thanks.

See https://gitlab.eclipse.org/eclipsefdn/it/websites/osgi.org/-/issues/53


feat: update runtime package to 4.9.2

Description

update runtime package to 4.9.2.
no schema update in this patch and all samples are good.
Task Item
#minor

Screenshots

@lei9444  can you update the bf-cli dependencies to a release version.

update in #3217


Closing the app through mac menu or windows taskbar does not save settings

Turns out on a Mac if you click Video Hub App 2 and click Quit, the app will not save the settings or any previously-added tags/stars/etc 😱
Similarly on Windows if you right-click in the taskbar and click Close window the settings edits / new metadata will not be saved 😢
I hope somewhere in Electron there is a way to hook into something and run a script before close 😕

Thank you @martincaron for fixing the problem with your #424 🙇


IPv4 addresses are not handled correctly

When trying to import data containing IPv4 addresses, these are considered numbers, making them unreadable.
Example:
Get-NetTCPConnection -State Established | Export-Excel
Get-NetIPAddress | Export-Excel
It would be great if they could be imported as text.

Try
Get-NetIPAddress | Export-Excel -NoNumberConversion <property name>

This works perfectly. Thanks!


Add Video Playback Ability

Would love to see the ability to trigger Dialog to play a video (just those supported my macOS natively). With the recent custom window size changes, would be good to constrain the window's size to the aspect ratio of the video with space at the bottom to show buttons and exit out of playback.
Additionally, the video could be constrained within the bounds of Dialog's window to give some breathing room.

implemented in https://github.com/bartreardon/Dialog-public/releases/tag/v1.8.0


S3 - Support Jodakshare

Jodakshar - Jodakshar is allowed and Keyboard does not change क to क्प्र - it changes to क् it also changes प  to प् and र to र with color coding. On Keyboard. On Attempt window however क्प्र is highlited. In some color.


HomeAssistant integration

Consider adding homeassistant integration.

Hi @tmigone! Any update on this enhancement? I'm about to install a couple of in-wall speakers around the house with balena sound and would be awesome to somehow integrate these into HA. Maybe as media players?
Thanks in advance!
Daniel

Yeah, would be great! I came across this request hoping to find any way to integrate it into my HA.

Also would like to integrate my Balena Sound into Home Assistant.

Balena Sounds apparently uses Snapcast to enable the multi room audio. Snapcast can be integrated in Home Assistant (https://www.home-assistant.io/integrations/snapcast/).
In my setup I created a host device with Balena Sound. On every client device I installed Snapclients (https://github.com/badaix/snapcast), but Balena Sound clients should also work. This should give you a working multi room audio system.
Each device (host and/or clients) can then be added in the configuration.yaml of Home Assistant:
media_player:
  - platform: snapcast
    host: <IP_ADDRESS>

After a restart, Snapclient devices should appear in your entities list. The devices can then be used in a lovelace dashboard or Node Red for further integration.
I hope this is (a part of) the functionality you are looking for!

I really would like to see a Home Assistant integration because my Balena Sound instance is running in standalone mode so the Snapcast integration isn't an option.
My main use case would be to have the player status in Home Assistant to use it for some automations.

@Sn1cket I am not an expert, and I stopped using BalenaSound about a year ago, but looking quickly through the BalenaSound documentation, it doesn't seem as if there is a simple way to get the player's status. Maybe if you are able to read the logs from the sound supervisor or audioblock service, but then you would need a way to send that to HA, and as far as I know BalenaSound doesn't have an API so you would have to set that up after the fact with some custom script on your device,  alternatively it's possible to modify the relevant docker files for BalenaSound and deploy that, however again I am not an expert so take what I say with a pinch of salt. Depending on your usecase, you can do a workaround. For example, I mainly only used Spotify, so I ran automation using the Spotify integration in HA to turn on my speakers if Spotify was playing via my BalenaSound device, which Spotify could see.
All in all, I do not see a HA integration happening anytime soon unless someone is willing to put together some HACS integration

Yeah, I already had a similar assumption and I looked for alternatives. So far I think I will probably move to moode audio player. It seems like it supports everything I need (BT Audio + API). Their API can be used to integrate into Home Assistant with the RESTful and MPD integration.

@Sn1cket Yes, I moved to Moode Audio as well, and I was pretty happy with it. I haven't done any "direct" integration with Moode and HA yet. I knew it was possible but not plug and play, so I haven't had the time to figure it out. I still just use the Spotify integration, but I wish you luck.


powerlauncher has stopped working

ℹ Computer information

PowerToys version:
PowerToy Utility:
Running PowerToys as Admin:
Windows build number: [run "winver"]

📝 Provide detailed reproduction steps (if any)

…
…
…

✔ Expected result
What is the expected result of the above steps?
❌ Actual result
What is the actual result of the above steps?
📷 Screenshots
Are there any useful screenshots? WinKey+Shift+S and then just paste them directly into the form

Please fill out the template.
Your logs from %localappdata%\Microsoft\PowerToys\PowerToys Run\Logs would be helpful as well.
Right now this isn't enough to debug

dried to debug in command prompt did not show up
%localappdata%\Microsoft\PowerToys\PowerToys Run\Logs

dried to debug in command prompt did not show up
%localappdata%\Microsoft\PowerToys\PowerToys Run\Logs

@Fleetwing
you can use PowerToys Run, but then fails, or does it not open in the first place?

@Fleetwing
you can use PowerToys Run, but then fails, or does it not open in the first place?

@Fleetwing
is this still happening for you?


Connecting trust wallet to other mobile apps via wallet connect doesn't work (Android only)

Describe the bug
When using a low end Android device connecting an app with trust wallet does not bring up the walletconnect dialog. Tested on Redmi 9 and Galaxy a51. Works on iOS fine and newer Android devices such as pixel 4.
To Reproduce

Use a low end Android such as Redmi 9 or Galaxy a51
Install an app that allows you to connect trust wallet. Tested on Opensea, okex defi, and zerion mobile apps.
In the app, select trust wallet as the wallet to connect to.
You will go to trust wallet
There will not be any connection dialog. However if you test on a new Android like a pixel 4, it does work.

Expected behavior
The wallet connect dialog to connect the app to trust wallet should appear.
Screenshots
It's easy to reproduce if you have the said devices.
Additional context
All latest versions of all apps and system ui's.

Describe the bug When using a low end Android device connecting an app with trust wallet does not bring up the walletconnect dialog. Tested on Redmi 9 and Galaxy a51. Works on iOS fine and newer Android devices such as pixel 4.
To Reproduce

Use a low end Android such as Redmi 9 or Galaxy a51
Install an app that allows you to connect trust wallet. Tested on Opensea, okex defi, and zerion mobile apps.
In the app, select trust wallet as the wallet to connect to.
You will go to trust wallet
There will not be any connection dialog. However if you test on a new Android like a pixel 4, it does work.

Expected behavior The wallet connect dialog to connect the app to trust wallet should appear.
Screenshots It's easy to reproduce if you have the said devices.
Additional context All latest versions of all apps and system ui's.

In the dapp browser you are expected to use web3/metamask login - just press that button.
WalletConnect meant to be used via regular browser.

Thanks for the response! However, we're integrating wallet connect in our react native app and letting users connect to trust wallet, not through a browser. It's the same integration you can see on Opensea's mobile app where you can connect to trust wallet.
If this isn't supported, is there a recommended way to directly connect to Trustwallet from another mobile app? For reference, we're able to get this working with metamask, huobi wallet, tokenpocket, imtoken, coin98. But not with trust wallet.

Can you check this again on the latest version? it should be working as rest of the wallets.

Sure! Tested on latest version again and still same results. Again this doesn't happen on newer Android phones, only lower end ones. It happens on redmi 9 (most popular phone in India) and galaxy a51.
We are using version 3.19 on the galaxy a51 which is the latest according to the playstore.
On the redmi 9 we are on the beta track using 3.20 and same issue.
The app we use to test the connection on are zerion, and opensea android mobile apps.

@dokocat hey, could you make a video of this issue? I can't reproduce such behavior on my Redmi 9 and Samsung a30. Tested on 3.20 and 3.19 versions. Connection dialog was displayed correctly.

Hey! I got it to work by creating a new multi coin wallet. The connect dialog works now for both wallets. Also it works if you uninstall trustwallet and reinstall. Not sure why but, yeah all good now!

Ah! I think I found the culprit. If you don't have a pin set on trustwallet, it won't prompt the wallet connect connection screen.


Docs misleading on how to progress from Basics: Data Flow tutorial to Usage with React tutorial

Currently the Basics tutorial in the docs walks you through creating some actions, reducers, and a store for a todo app.
Then at the end of the tutorial at http://redux.js.org/docs/basics/DataFlow.html# it says:
"Now that you know how Redux works, let's connect it to a React app."
This strongly implies you will be extending the files you have developed in the Basics tutorial with React.
In fact, during the Usage With React tutorial you completely reimplement the actions and reducers, in different files, with substantially different style / syntax.
None of the files you use during the Basics tutorial should be used in the Usage with React tutorial.
Worse - if you attempt to continue to follow along you end up with a broken react/redux app that doesn't function properly because of the two implementations of the reducers and an unfortunate name collision between import files.
The Usage With React tutorial has its entry point in:
./index.js
And its reducer code in:
./reducers/index.js
And imports the todoApp into index.js with:
import todoApp from './reducers';
Which is supposed to find ./reducers/index.js
If someone has been following along in the tutorial, they will have a:
./reducers.js
file in the root directory here that also defines a todoApp, and the import line in index.js will get the version of todoApp from reducers.js, not ./reducers/index.js.
This file will have not-completely-incorrect code, things are not totally broken, rather the resulting app has some working functionality (adding todos, filtering on active filter), and some broken functionality (clicking on todos to change their active filter).
The beginner trying to follow the docs is left with the impression that they have some inscrutable error in their code.

Hmm.  Interesting.  If you'd like to submit a PR that improves the examples to be more consistent, we could definitely work to get that in!

I had the same problem. After following the basics tutorial (or what appeared to be that) I got a few error messages so I went on to the 'complete source code' which to my surprise looked quite different (and contained additional code) than the early parts of the tutorial.
Furthermore the tutorial tends to not tell where it expects you to put (and what to name) a given file until the source code recap at the very bottom of the page, which leads to a lot of redundant scrolling.

Did this get solved? It appears so from the current docs. I started working on PR for it but upon looking at https://github.com/reactjs/redux/blob/master/docs/basics/UsageWithReact.md it seems the imports have been fixed.
I did start working on some of the things @ViggoV brought up so if we think that is worth addressing then I'll keep my work going.

Well it still seems a little confusing as to whether or not it is a continuation of the previous tutorial, since both produce almost identical todo-apps. It is never explicitly stated that this is a separate tutorial and in my experience it leaves the impression that this is indeed a continuation.
Maybe you could just add a statement after the line “We will use React to build our simple todo app” stating that this is a separate but similar project to the previous tutorial.
Thanks for the response and keep up the good work :)
—
Victor Eg Frølund
<EMAIL_ADDRESS>+45 29860143
On 7. dec. 2016 14.32 +0100, Darion Welch<EMAIL_ADDRESS>wrote:

Did this get solved? It appears so from the current docs. I started working on PR for it but upon looking at https://github.com/reactjs/redux/blob/master/docs/basics/UsageWithReact.md it seems the imports have been fixed.
I did start working on some of the things @ViggoV brought up so if we think that is worth addressing then I'll keep my work going.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

I've gone back through the basic tutorial and don't see what you're talking about. @digitalmacgyver 's original post said that reducers and actions are reimplemented in the 'Usage with React' section instead of continuing from the previous sections. From what I can tell this has been fixed, as have the file paths from the containers and component files importing actions and reducers from those files.
Please go back through the (https://github.com/reactjs/redux/blob/master/docs/basics/UsageWithReact.md)[Usage with React] section and let me know if you're seeing the same thing I am. I've put in some improvements to the Reducers page that should help new readers not have to scroll the finished implementation as much, so I can submit a PR for that fix. But for the OP's problem I think that has been resolved silently.

Oh, I see.. I thought you were going for a split solution and completely seperate the two! Well, your solution is better, so I tip my hat.. :)

Den 7. dec. 2016 kl. 19.06 skrev Darion Welch<EMAIL_ADDRESS>I've gone back through the basic tutorial and don't see what you're talking about. @digitalmacgyver 's original post said that reducers and actions are reimplemented in the 'Usage with React' section instead of continuing from the previous sections. From what I can tell this has been fixed, as have the file paths from the containers and component files importing actions and reducers from those files.
Please go back through the (https://github.com/reactjs/redux/blob/master/docs/basics/UsageWithReact.md)[Usage with React] section and let me know if you're seeing the same thing I am. I've put in some improvements to the Reducers page that should help new readers not have to scroll the finished implementation as much, so I can submit a PR for that fix. But for the OP's problem I think that has been resolved silently.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Closed via #2142


Dynamic appId

@bugant Hey man, really thank's for this addon!
I need to know: Can I set appId dynamic? For example, I have 2 differents appIds and depend where it is call, I will use appId X or appId Y.

@danilovaz I think that the Facebook JS sdk does not support this scenario, I mean you cannot initialize the sdk twice.

@bugant This is possible. I try setting two differents appIds and this works. The problem is: I can't (or I don't know how) sent to config/environment.js the appId I need.
Example:
ENV.FB = {
appId: someVariable
}
Can I configure your addon to use like an service and send the appId I want?

I can't do something like that, for each call I need?
action1() {
this.get('fb').FBInit({ appId: '12345678' }).then((response) => {
console.log(response);
});
},
action2() {
this.get('fb').FBInit({ appId: '9876543' }).then((response) => {
console.log(response);
});
}

@danilovaz at the moment the addon supports only a single app initialization... one vaiable solution would be the one you suggested of passing parameters to init: in that case the cached init promise could be discarded and a new init will be performed.
I'm not convinced this is something supported by the Facebook SDK though, do you have a link to the documentation that talk about this?

@danilovaz any news on this? My concern is that even if it could work I cannot find any official documentation about initializing the FB js SDK twice in the same page.

@danilovaz I'm closing this issue since I have no new info on it. Please, re-open it if you are willing to discuss on this topic.


GUI allows tagging more rows than actual rows in CSV

Currently, there is no routine to check if all entries in a csv/xes have been tagged already. Thus, it is necessary to implement a routine that checks if all rows have been tagged and the user arrived at the end of the array.

Added a change state function that disables the state of the tag line button
Function is:
if (self.button_tag):             self.button_tag['state'] = state         else:             raise NameError("No such Button - Cannot change state of button in GUI")


fix(vcs): prevent local clone from being stuck by gpg prompts

A quick and simple PR preventing the copy command to get stuck if you have commit.gpgSign and try to run the copy command on WIP local project for trial.

Thanks, I didn saw it (my bad). I'll resubmit the PR integrating #1224 and #856 👍🏼

OK, there is in fact 2 distinct issues in this:

tests runs with the user config which might conflict/interfere witht the test
copier also commit with the user config but this is legit and should be properly handled

PR updated with the following:

tests use a sandboxed .gitconfig using pytest-gitconfig
a test specific explicit test case has been added for the user.gpgsigninkey/commit.gpgsign to ensure copier is properly handling this case
--no-gpg-sign has been added to copier commit calls only (it is faster and easier to maintain than trying to monkeypatch plumbum or gitconfigm there was only 3 calls)

If there are some new or untested case which might conflict with user.gpgsigninkey/commit.gpgsign, am explicit test case for this case should be added on the same model than tests/test_dirty_local.py::test_copy_dirty_head_with_gpg

I made a push including https://github.com/nix-community/poetry2nix/pull/1342 to see if that fixes the build.

I have no expertise on Nix and I really can't help on this part.
TBH I was surprise with the .envrc automatically building for 30min and I wonder if this part should be optin and excluded from CI ? It feels like artificially raising the complexity with an hard system dependency. NiX is meant for reproducibility but I can't reproduce this error, build pass as well as pre-commit checks 🤷♂
However I am the pytest-gitconfig author so if something is needed for NiX compatibility (given the module it would be surprizing, but again, I am not knowledgeable on NiX), tell me, I'll do the change (this is the first time I encounter an error on this one)

Don't worry, it's just a common routine for projects like this one that use poetry2nix. There's nothing special for you to do in pytest-gitconfig to add that compatibility.
Using nix is just because it's great! Most concerns about it is "it's complex", but in reality, once you learn it, it removes lots of complexities. It's obsoleting containers. I just can't live without it. 🤷🏼♂
Regarding test failures, I see mypy failures (probably typing errors in some test) and also gpg signinig failures. It seems like, when you wanted to skip gpg, you actually enabled it everywhere! But you can see that all versions of CI (even those that don't use Nix) are broken, so it doesn't seem like a Nix problem at first sight.
I wouldn't like to go too off-topic about nix here, but if you have any questions please feel free to open thread(s) in the forum. 😊

Last failures were due to:

a pytest-gitconfig compatibility issue with 3.8
plumbum.local.env being snapshotted once at start and requiring its own monkeypatching has changes to os.environ are ignored

PR (and pytest-gitconfig) updated and should be fixed 👍🏼

Sorry, comment posted in the wrong place.
Note: @yajo for nix it was just bad timing, latest update was broken for 3 days on archlinux. It's now fixed and it works 👍🏼
EDIT: I think I also found the Windows issue: some git parameter were set from outside in CI (and so ignored by pytest-gitconfig doing it's job). Given user.name and user.email are already automatically set by pytest-gitconfig, I think windows was just missing the core.autocrlf=input. Ci should pass (unless there are other Windows specific issues)


Make the update statistics button only update the currently shown books -AKA books on the current page-

Is your feature request related to a problem? Please describe.
Currently, the stats update is too slow, specially if you have lots of books, because it updates every single one of them which is unnecessary if you're not seeing all of them anyway.
Describe the solution you'd like
Make it only update the currently shown books.
Describe alternatives you've considered
Add an update option next to each book listing.

Just wiping the stats and re-rendering the page.  The stats have been ajaxed in for a few releases now, so deleting them forces a refresh.  It's not super because users can set their stats calc to a large number of pages, but it's better than it was before.

Launched in 3.5.9.


Display issue on DST transition day

const moment1 = moment('2018-03-25')
  .startOf('day')
  .hour(12);

const moment2 = moment('2018-03-25')
  .startOf('day')
  .minute(12 * 60); // Here I'm adding 12 hours in minutes

Output:
moment1: Sun Mar 25 2018 12:00:00 GMT+0200
moment2: Sun Mar 25 2018 13:00:00 GMT+0200

2018-03-25 is the day when the summertime will be activated. Why is the output different?
When using 2018-03-25 (the day after), both dates are exactly the same.
Is there a difference between using the .hour and .minute method?

@guidsen I don't see this issue.  Can you try these in the same environment - so we can see if the problem is down to the native Date class moment relies on:
new Date(new Date(2018, 2, 25).setHours(12)).toISOString();
new Date(new Date(2018, 2, 25).setMinutes(12*60)).toISOString();

I can't reproduce either. :/
Please re-open or post on Stack Overflow if you are still having trouble.


[Hardware][OpenCL] Intelfocl support

This PR relates to this RFC.
Main changes are:

OpenCL driver
intelfocl implementation for VTA
add ALU MUL and Load INT_8

This is a basic version as a POC, without much performance optimization. We're still optimizing some parts, and will be submitted as a new PR later.

CC-ing @vegaluisjose @huajsj @pasqoc

CC-ing @vegaluisjose @huajsj @pasqoc

Thanks @zhanghaohit for the PR! I left a couple questions, but will need to review in more depth. One question: have you tested it on the Pynq board to see if some changes may affect the existing design? Given that the ISA has changed slightly (some fields are now wider, like VTA_MEMOP_ID_BIT_WIDTH), it may affect some parameterizations of VTA.

Thanks @zhanghaohit for the PR! I left a couple questions, but will need to review in more depth. One question: have you tested it on the Pynq board to see if some changes may affect the existing design? Given that the ISA has changed slightly (some fields are now wider, like VTA_MEMOP_ID_BIT_WIDTH), it may affect some parameterizations of VTA.

Thanks @tmoreau89 for the comments. Yes. We have tested on the ultra96 board (I only have ultra96 board on hand). It works. The only thing we have to change is to re-compile the bitstream with the new ISA. I think we have to update the pre-compiled bitstream here https://github.com/uwsampl/vta-distro/tree/master/bitstreams, right?

That is correct, we'll need to bump the versioning of the bitstream

@tmoreau89 @liangfu any other comments? Thanks.

Thanks for the changes. Please apply the 0.0.2 and rename the vta target to something more specific, e.g. "arria10". Also there are some CI errors related to linting that could be addressed. Thanks!

Thanks for the changes. Please apply the 0.0.2 and rename the vta target to something more specific, e.g. "arria10". Also there are some CI errors related to linting that could be addressed. Thanks!

Sure. We will apply the 0.0.2 and address the linting errors.
However. I believe "arria10" is too restrictive here. The code should work for all devices supported by Intel OpenCL for FPGA, namely Intel Arria 10, Stratix V/10 and Cyclone V/10. So far we have tested it on both Arria 10 and Stratix 10 boards, and it worked.

Thanks for the changes. Please apply the 0.0.2 and rename the vta target to something more specific, e.g. "arria10". Also there are some CI errors related to linting that could be addressed. Thanks!

Thanks. The linting error here is due to filetype checking. I think we have to add the opencl filetype to the lint script. I've created a PR here: https://github.com/apache/incubator-tvm/pull/6092

The code should work for all devices supported by Intel OpenCL for FPGA, namely Intel Arria 10, Stratix V/10 and Cyclone V/10.
Just my humble opinion, given that both "Intel OpenCL for FPGA" and "VTA" requires a large amount of logic utilization, many Cyclone V chips that supports AOCL couldn't get this compiled because of the hardware utilization issue.
In my understanding of @tmoreau89 's comment, which I would agree, setting a proper target device in vta_config gives the property of being "versatile" in VTA - the Versatile Tensor Accelerator. Specifically, we could take the advantage of the properties in vta_config to define an accelerator that could scale from minimal ones towards data center scale accelerators.

As a side note, the reason we are taking these efforts in building open source projects, in part, we are hoping someone in the community could reproduce what we have done, and could easily start to build something that is even better. With the target being defined too board, an potential grad student could fail to reproduce the result, since not all the student could easily purchase a board with Stratix 10, and low cost Cyclone V boards couldn't get this running. In addition, they're wasting large amount of valuable logic resources, even they could afford a board with Stratix 10. Therefore, we should specify a precise target device for the vta_config.

The code should work for all devices supported by Intel OpenCL for FPGA, namely Intel Arria 10, Stratix V/10 and Cyclone V/10.

Just my humble opinion, given that both "Intel OpenCL for FPGA" and "VTA" requires a large amount of logic utilization, many Cyclone V chips that supports AOCL couldn't get this compiled because of the hardware utilization issue.
In my understanding of @tmoreau89 's comment, which I would agree, setting a proper target device in vta_config gives the property of being "versatile" in VTA - the Versatile Tensor Accelerator. Specifically, we could take the advantage of the properties in vta_config to define an accelerator that could scale from minimal ones towards data center scale accelerators.
As a side note, the reason we are taking these efforts in building open source projects, in part, we are hoping someone in the community could reproduce what we have done, and could easily start to build something that is even better. With the target being defined too board, an potential grad student could fail to reproduce the result, since not all the student could easily purchase a board with Stratix 10, and low cost Cyclone V boards couldn't get this running. In addition, they're wasting large amount of valuable logic resources, even they could afford a board with Stratix 10. Therefore, we should specify a precise target device for the vta_config.

Thank you for your reply. However, could you explain more on the reason why the design will not work on Cyclone V FPGAs?
Precisely as you mentioned, the VTA design is versatile, the user could always change the settings (i.e. LOG_BLOCK and LOG_*_BUF_SIZE) to adjust the resource usage in order to fit their own FPGA boards. Surely a low cost Cyclone V device could not support 64x64 GEMV cores like large Stratix 10 FPGAs do. But the user could always try to use 16x16 or even 4x4 GEMV cores, by setting the LOG_BLOCK lower.
Considering that, we used a relatively small default setting for LOG_BLOCK (4) and Buffers(15, 15, 18, 17). Thus the design should be able to fit into FPGAs comparable to the original Zynq/Zedboard platforms.

Thanks for the changes. Please apply the 0.0.2 and rename the vta target to something more specific, e.g. "arria10". Also there are some CI errors related to linting that could be addressed. Thanks!

Thank you very much! Sure. We will apply the 0.0.2 and address the linting errors.
However. I believe "arria10" is too restrictive here. The code should work for all devices supported by Intel OpenCL for FPGA, namely Intel Arria 10, Stratix V/10 and Cyclone V/10. So far we have tested it on both Arria 10 and Stratix 10 boards, and it worked.

I agree with @remotego, arria10 seems too restrictive and would not do justice with what the code actually support, i.e. Intel OpenCL supported boards.
That said, if the VTA implicit rule to add new supported (and working) target devices is that of using "boards" by name, like "pynq", "de10nano", "ultra96", etc. then we should continue doing so.
But in this case I would suggest to add target entries for all devices that are known to work, that is arria10, stratix10, etc. and document the fact that these have the restriction to only work with OpenCL and not VHLS or Chisel like pynq and de10nano.
To avoid explosion, duplication of configurations, we should also probably be thinking of separating target parameters (target, hw_ver) in vta_config.json into a different file vta_target.json so that we can more flexibly specify different architecture configurations and target devices.

Hi @liangfu, have you been able to test on the de10nano?

thanks @remotego @liangfu @pasqoc for the insightful comments. I think that all opinions expressed are very valid!
So far our approach to naming VTA target has been to couple the VTA target with the FPGA board (e.g. pynq, ultra96, de10nano). These targets also contrast with functional simulation (sim), and cycle accurate sim (tsim).
We've been using the VTA target to guide the compilation process to the target device, given that some of the drivers had to be written in a board specific fashion. In the case of the Intel OpenCL FPGA support, I understand that this work captures a variety of hardware backends, including Arria 10, Stratix10 boards etc, and that the driver codebase would remain mostly identical between those boards (unlike Pynq, and Ultra96 that relied on very different ARM SoCs)
However to find a quick resolution to this discussion we can either choose

to use a specific board name (rather than FPGA family) to indicate that the OCL FPGA design has been tested on this device. This echo @liangfu's concern that we should have concrete targets for the community to reproduce work on.
keep the naming open as @remotego and @pasqoc are advocating, and classify this target as intelfocl_pcie to indicate that this applies only to PCIE-based OpenCL Intel FPGA devices.

@remotego let us know what you think

@pasqoc I do 100% agree with you about needing better documentation about what boards are supported, and how the designs get generated (HLS, Chisel, OpenCL etc.), and a white list of working designs. This opens a broader question of hardware CI testing, which would be hugely valuable to catch designs from breaking.

Hi @zhanghaohit , since https://github.com/apache/incubator-tvm/pull/6092 has been merged, kindly retrigger ci testing for this PR?

Hi @zhanghaohit , since apache/incubator-tvm#6092 has been merged, kindly retrigger ci testing for this PR?

Hi, we are making some changes now and will push the update today.

Hi @liangfu, have you been able to test on the de10nano (with chisel back-end not opencl ... :-))?

I was able to test with Chisel based implementation on de10nano. Did you have any problem? @pasqoc

thanks @remotego @liangfu @pasqoc for the insightful comments. I think that all opinions expressed are very valid!
So far our approach to naming VTA target has been to couple the VTA target with the FPGA board (e.g. pynq, ultra96, de10nano). These targets also contrast with functional simulation (sim), and cycle accurate sim (tsim).
We've been using the VTA target to guide the compilation process to the target device, given that some of the drivers had to be written in a board specific fashion. In the case of the Intel OpenCL FPGA support, I understand that this work captures a variety of hardware backends, including Arria 10, Stratix10 boards etc, and that the driver codebase would remain mostly identical between those boards (unlike Pynq, and Ultra96 that relied on very different ARM SoCs)
However to find a quick resolution to this discussion we can either choose

to use a specific board name (rather than FPGA family) to indicate that the OCL FPGA design has been tested on this device. This echo @liangfu's concern that we should have concrete targets for the community to reproduce work on.
keep the naming open as @remotego and @pasqoc are advocating, and classify this target as intelfocl_pcie to indicate that this applies only to PCIE-based OpenCL Intel FPGA devices.

@remotego let us know what you think

Thank you for your reply. I am okay with either approach but I would like to suggest the decoupling between target and back-end. As we have three different back-end right now, we will definitely run into the situation that one particular board will be supported by more than one backend. I don't think we need to choose a backend for the user and it will be great if the user is willing to explore and experience the pros/cons of each backend.
Agreed with you and @liangfu, I would like to keep the current target definition ("specific board") so that the user could have a concrete platform to test the design. However, using board name to imply backend is confusing as I see it. For example, as I mentioned before, the Intel OpenCL code is not restricted to PCIe based boards, it should support SoC based boards as well, which includes Altera DE10 boards. In addition, as Intel OpenCL platform supports software emulation and cycle-accurate simulation as well, it could also have targets of "fsim" and "tsim".
I propose we could place an additional backend option inside vta_config.json, so that user could explicitly spell out the choice of backend for VTA.

I've made other minor request, but overall the PR is shaping up well. We can stick to intelfocl as a target name. For documentation's stake, can you add a README file under hardware/intelfocl to mention what FPGA this has been tested on?

I've made other minor request, but overall the PR is shaping up well. We can stick to intelfocl as a target name. For documentation's stake, can you add a README file under hardware/intelfocl to mention what FPGA this has been tested on?

Thank you @tmoreau89! We will add an README listing all the boards we have tested so far.

Thanks again @remotego for addressing the comments. If we could address:
(1) Adding a README file (ideally with instructions on how to compile / run on the FPGA) before we migrate this to official TVM documentation.
(2) Using constants in the vta cost model
(3) Adding comments to MEM_ADDR_IDENTIFIER initialization
Then the PR is looking in good shape.

Hi @zhanghaohit thanks for the update, I agree with @tmoreau89 that this PR is in good shape, and I left a few comments on the codestyle / document part, otherwise this is good to go.

Hi @zhanghaohit, please let me know if you can address the following changes so we can get this PR merged!
(1) Adding a README file (ideally with instructions on how to compile / run on the FPGA) before we migrate this to official TVM documentation.
(2) Using constants in the vta cost model
(3) Adding comments to MEM_ADDR_IDENTIFIER initialization

Yes. Sorry for the delay. We are working on it and will update Monday or Tuesday.

Hi @tmoreau89,
We have completed the changes listed, and we have also included an README.rst file as a preliminary installation guide.
Please let us know if more changes are required.
Thank you very much!

ci tests failed on tsim seems to be unrelated,

ci tests failed on tsim seems to be unrelated, @zhanghaohit do you mind retrigger ci to see if it passes? (It was successful previously.)

@liangfu Thanks for the comments and sorry for my late reply. I tried to trigger the ci again, but it failed at the same place.
I tried to run python3 -m pytest -v ${TVM_PATH}/vta/tests/python/unittest locally. It passed. Any ideas?

@zhanghaohit sorry for the late reply. I think that the CI issue is due to the changes in the ISA; we are relying on essentially tests that assume the older ISA, therefore breaking unit tests here. The ISA rarely changes, so we didn't set up the tests to account for changes in ISA.

@zhanghaohit what I'd like to suggest is that we temporarily disable the unit tests that are failing and re-enable them once we've update TVM since there's a bit of a circular dependence to make the tests work
Please comment out the test in tests/scripts/docker_bash.sh here ./tests/scripts/task_python_vta_tsim.sh. I'll take care of enabling the TSIM test once we have that merged into TVM.

@zhanghaohit what I'd like to suggest is that we temporarily disable the unit tests that are failing and re-enable them once we've update TVM since there's a bit of a circular dependence to make the tests work
Please comment out the test in tests/scripts/docker_bash.sh here ./tests/scripts/task_python_vta_tsim.sh. I'll take care of enabling the TSIM test once we have that merged into TVM.

Thanks @tmoreau89 for the suggestion.
I cannot find the test ./tests/scripts/task_python_vta_tsim.sh in tests/scripts/docker_bash.sh. So I add a condition check to skip this test here:. I also tried to comment out the test in Jenkinsfile, but it seems not working.
Now the CI has passed. Could you help check? And thanks for the help to re-enable the tsim test after all are merged.

Thank you @zhanghaohit, @remotego, @liangfu , the PR is merged!


Two navbars inside root tabs if using modal

There is a problem with navbar wrapping in root tabs. For example:
<Router>
  <Modal key="modal">
    <Tabs key="root">
      <Scene key="tab_1" icon={...}>
        <Scene key="tab_1_scene1" component={...} initial />
        <Scene key="tab_1_scene2" component={...} />
      </Scene>
      <Scene key="tab_2" icon={...}>
        <Scene key="tab_2_scene1" component={...} initial />
        <Scene key="tab_2_scene2" component={...} />
      </Scene>
    </Tabs>
    <Scene key="someModal" component={...} />
  </Modal>
</Router>

So in this case there are two navbars on each tab scene.
it seems like this problem appears because Modal parent have his own navbar, but wrap={false} for Tabs doesn't do the trick. There is only one way for now - use hideNavBar on Modal scene and hideNavBar={false} on each Tabs initial child. But in this case there is also will be a problem if you will use nested tabs with custom tab bar because hideNavBar won't work on these scenes.
I will try to find the reason and create pull request, but for now may be someone have any suggestions on this problem?
UPD: Lol, just a moment ago I updated the package to the master version, added hideNavBar property to the root Tabs and it's did the trick, there is only one navbar now. Magic. Any way I will try to reproduce the problem but for now I am closing this issue.

Hello,
I had the same problem. How did you solve it?
When I request the modal page the navigation bar some :(

@pedrogyn Hey, could you give me a part of your code? Also you can look at my UPD section - there is a solution for my case (and may be for yours too)

Hello,
Can solve by doing the following:
<Router>
    <Modal>
        <Stack hideNavBar>
            <Scene>
            </Scene>
            <Scene>
            </Scene>
        </Stack>
        <Scene>
        </Scene>
    </Modal>
</Router>


'NoneType' object has no attribute 'delete_unused_nodes'

Hi,
While I'm able to convert more complex models, on a very simple model I get an error:
    onnx_model = keras2onnx.convert_keras(model, model.name, target_opset=7)
  File "/home/cbo/anaconda3/envs/keras-tf-py36/lib/python3.6/site-packages/keras2onnx/main.py", line 103, in convert_keras
    return convert_topology(topology, name, doc_string, target_opset, channel_first_inputs)
  File "/home/cbo/anaconda3/envs/keras-tf-py36/lib/python3.6/site-packages/keras2onnx/topology.py", line 225, in convert_topology
    get_converter(operator.type)(scope, operator, container)
  File "/home/cbo/anaconda3/envs/keras-tf-py36/lib/python3.6/site-packages/keras2onnx/wrapper.py", line 50, in tfnode_convert
    g.delete_unused_nodes(g.outputs)
AttributeError: 'NoneType' object has no attribute 'delete_unused_nodes'

Thank you for your help,

commenting K.set_learning_phase(0) in code solved the problem. strange

I re open the issue because commenting the line leads to an error under windows onnx runtime
[ONNXRuntimeError] : 1 : GENERAL ERROR : Load model from model.onnx failed:Node (Identity46) input arg (dropout_1/keras_learning_phase:0) does not have type information set by parent node.

Can you please share the model?

yes
      image_input = Input(shape=input_shape, name='image_input')

       model = Sequential() # 28, 28, 1
       model.add(Conv2D(32, kernel_size=(3, 3), activation='relu',
          input_shape=input_shape, padding='valid')) # 28, 28, 1
       model.add(Conv2D(64, (3, 3), activation='relu', padding='valid')) # 28, 28, 1
       model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2), padding="valid")) # 14, 14, 1
       model.add(Dropout(0.25))
       model.add(Conv2D(128, kernel_size=(12,12), strides=(self.stride_scale, self.stride_scale), padding="valid", activation='relu'))
       model.add(Dropout(0.5))

       features = model(image_input)

       outputs = []
       for _ in range( positioned_anchors[0].shape[2]):
           output1 = Dense(num_classes, activation = "softmax")(Dense(64, activation = "relu")(Dense(128, activation = "relu")(features)))
           output2 = Dense(1, activation = "sigmoid")(Dense(64, activation = "relu")(Dense(128, activation = "relu")(features)))
           output3 = Dense(2, activation = "tanh")(Dense(64, activation = "relu")(Dense(128, activation = "relu")(features)))
           output4 = Dense(2, activation = "tanh")(Dense(64, activation = "relu")(Dense(128, activation = "relu")(features)))
           outputs += [output1, output2, output3, output4]

       output = Concatenate(name="output")(outputs)
       output = BB(positioned_anchors[0], num_classes)(output)

where
class BB(Layer):

    def __init__(self, positioned_anchors, num_classes, **kwargs):
        g_y, g_x, a, _ = positioned_anchors.shape
        self.num_classes = num_classes
        self.nb_anchors = a
        self.positioned_anchors = positioned_anchors
        self.positioned_anchors_yx = positioned_anchors[...,0:2]
        self.positioned_anchors_hw = positioned_anchors[...,2:4]
        super(BB, self).__init__(**kwargs)

    def build(self, input_shape):
        super(BB, self).build(input_shape)

    def call(self, inputs):
        inputs_ = K.reshape( inputs , [-1] + list(self.positioned_anchors.shape[0:3]) + [self.num_classes + 5] )
        yx = inputs_[..., self.num_classes+1: self.num_classes+3 ]
        hw = inputs_[..., self.num_classes+3: self.num_classes+5 ]

        hw = K.exp(-hw * math.log(2)) * self.positioned_anchors_hw
        yx = - hw / 2 + self.positioned_anchors_yx + self.positioned_anchors_hw / 2 + yx * self.positioned_anchors_hw
        return K.concatenate([inputs_, yx, hw ], axis = 4)

    def compute_output_shape(self, input_shape):
        return (input_shape[0], input_shape[1], input_shape[2], self.nb_anchors, self.num_classes + 9)

Our priority is to have this one work.

It is surprising that k.set_learning_phase(0)  instruction breaks the ONNX save method...

If you replace the BB layer by any custom layer, the error occurs also. Even a void custom layer.

If I do not set the learning phase, I get an error on windows onnx runtime as I said above.

What is positioned_anchors and input_shape?

input shape  is [700, 420, 1] and positioned_anchors is not very important, because if I replace the BB layer by the following identity layer output = IdentityLayer()(output), I still have the error:
class IdentityLayer(Layer):

    def __init__(self, **kwargs):
        super(IdentityLayer, self).__init__(**kwargs)

    def build(self, input_shape):
        super(IdentityLayer, self).build(input_shape)

    def call(self, inputs, training=None):
        return inputs

    def compute_output_shape(self, input_shape):
        return input_shape

You need provide some code that we can run it directly. If this positioned_anchors is not important, then you can simplify your code. Otherwise we need figure out what each parameter mean, which is not efficient.

here is the code to reproduce the error:
def test_two():
    from keras import backend as K
    K.set_learning_phase(0)
    from keras.layers import Input, Dropout, Embedding, Layer, Conv2D, MaxPooling2D, Dense, Concatenate
    from keras.models import Model, Sequential

    class IdentityLayer(Layer):

        def __init__(self, **kwargs):
            super(IdentityLayer, self).__init__(**kwargs)

        def build(self, input_shape):
            super(IdentityLayer, self).build(input_shape)

        def call(self, inputs, training=None):
            return inputs

        def compute_output_shape(self, input_shape):
            return input_shape

    input_shape = [700, 420, 1]
    num_classes = 10

    image_input = Input(shape=input_shape, name='image_input')

    model = Sequential() # 28, 28, 1
    model.add(Conv2D(32, kernel_size=(3, 3), activation='relu',
       input_shape=input_shape, padding='valid')) # 28, 28, 1
    model.add(Conv2D(64, (3, 3), activation='relu', padding='valid')) # 28, 28, 1
    model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2), padding="valid")) # 14, 14, 1
    model.add(Dropout(0.25))
    model.add(Conv2D(128, kernel_size=(12,12), strides=(14, 14), padding="valid", activation='relu'))
    model.add(Dropout(0.5))

    features = model(image_input)

    outputs = []
    for _ in range(3):
        output1 = Dense(num_classes, activation = "softmax")(Dense(64, activation = "relu")(Dense(128, activation = "relu")(features)))
        output2 = Dense(1, activation = "sigmoid")(Dense(64, activation = "relu")(Dense(128, activation = "relu")(features)))
        output3 = Dense(2, activation = "tanh")(Dense(64, activation = "relu")(Dense(128, activation = "relu")(features)))
        output4 = Dense(2, activation = "tanh")(Dense(64, activation = "relu")(Dense(128, activation = "relu")(features)))
        outputs += [output1, output2, output3, output4]

    output = Concatenate(name="output")(outputs)
    output = IdentityLayer()(output)
    model = Model(image_input, output)
    save_onnx(model, "ok")

def save_onnx(model, name):
    import keras2onnx
    onnx_model = keras2onnx.convert_keras(model, model.name, target_opset=7)
    _model_name_onnx = name + ".onnx"
    with open(_model_name_onnx, "wb") as f:
        f.write(onnx_model.SerializeToString())
    print("Model saved to ONNX at", _model_name_onnx)

test_two()

Just checked in the fix, and it should work. Please pull keras-onnx master and try.

Works for me! Thanks a lot @jiafatom


fix accessibility bugs

Bug 30333407: [Programmatic Access - Azure SignalR - Home]: Heading structure is defined incorrectly for the page.
Bug 30333778: [Programmatic Access - Azure SignalR - Home]:There is no h1 heading is defined on page.
Bug 30344233: [Usable - Azure SignalR - Code Stream]: Only two side of focus indicator is visible on the 'Overview' tab.
Bug 30344433: [Screen Reader - Azure SignalR -Contact Us]:'Here' links are not descriptive under 'Contact Us' page.
Bug 30345963: [Visual requirement - Azure SignalR - Home]: Luminosity ratio of 'by reading the article' link with respective to its surrounding text is less than 3:1.
Bug 30359788: [Programmatic Access - Azure SignalR - Home]: 'Summary', 'Quick links', 'Full duplex' and 'To conclude' links are not defined in any landmarks.
Bug 30372446: [Visual requirement - Azure SignalR - Simple Chat App]: Focus indicator is not visible on 'Copy' button present under 'Run Locally' tab.
Bug 30372764: [Keyboard navigation - Azure SignalR - Blog]: Keyboard focus moves to the non-interactive control when navigating using the Tab key.
Bug 30376636: [Keyboard navigation - Azure SignalR - WebSocket]: Keyboard focus order is not logical while navigating using tab key.
Bug 30377302: [Usable- Azure SignalR - Home]:Keyboard Focus is not moving on previous control during backward navigation (Shift+ Tab).
Bug 30377555: [Supporting the Platform- Azure SignalR - Home]: In 320x256 viewport, Content is getting overlapped.
Bug 30377581: [Supporting the Platform- Azure SignalR - Home]: In 200% Zoom mode,Some of the text of the carousel gets overlapped by the next/previous buttons
Bug 30377999: [Visual Requirement- Azure SignalR - Home]: Luminosity ratio of focus indicator on "'Type your user name here'" Edit field is less than required 3:1
Bug 30378098: [Usable- Azure SignalR - Code Stream]: On applying Text spacing, the text is getting Truncated under code stream pane.
Bug 30386710: [Screen Reader - Azure SignalR -Simple Chat App]:'Copy' buttons are not descriptive under 'Run Locally' tab.
Bug 30386962: [Usable - Azure SignalR - Collaborative whiteboard]: Incorrect label is defined for the 'OK button' as 'OK bottom button' present under 'Collaborative whiteboard' tab.
Bug 30387051: [Screen Reader - Azure SignalR -Simple Chat App]: Screen Reader remains silent after activating send message button after filling the edit field.
Bug 30387416: [Usable- Azure SignalR -Simple Chat App]: The 'View source' control's text is not visible on hover present under 'Simple Chat App'.

fix some accessibility bugs


Change first day of week

Hi!
It's possible to change the first day of week? I'm from Spain and here we use Monday as first day.
Greetings and congrats for your library!

Hi @franrc,
Thank you for the question and the cheering message!
Currently we do not provide any way to change the first day of week, but it can be achieved by changing the line 55 in DayLayout.kt to something like this:
...
        // 左上セルの日付を計算
        cal.add(Calendar.DAY_OF_YEAR, -cal[Calendar.DAY_OF_WEEK] + 2)
        firstDate = cal.time
...

Still, this operation should be provided as a setting, so we will incorporate this request in the next enhancement release. We will work on this soon.
Thank you.

This feature is added in Release 1.0.1. Use the added attribute app:lcv_firstDayOfWeek in xml or set it programmatically.
Thanks!


Missing dependencey to fairscale for default end-user installation

Following instructions on : https://www.label-sleuth.org/docs/installation.html,
I got stuck by :
RuntimeError: Failed to import transformers.trainer because of the following error (look up to see its traceback):
The 'fairscale>0.3' distribution was not found and is required by this application.
So I just add pip install fairscale, launch label_sleuth again, and it works.

OS: Ubuntu 22.04
Web browser: NA
Python version: 3.8

My mistake : I was launching label-sleuth in the right conda env, but I had fairscale sources in a subdirectory, so importlib had found it.


feat(plugin-rss): RSS Plugin

Summary
WIP
closes: #828
Related Issue

Checklist

[ ] I have added changeset via pnpm run change.
[ ] I have updated the documentation.
[ ] I have added tests to cover my changes.

todos before ready:

documents

@sanyuan0704 @chenjiahan please help review

Thank for your awesome plugin and detailed documentation. ❤

has it been applied to your own website, including the HTML meta to make it discoverable?
Inoreader still can't find your feed

I will try to add the RSS plugin to https://rsbuild.dev/


Auto save DOES NOT work

When i type something new into a file, autosave-onchange does not save it automatically even though i have it installed correctly.

You need to initially save the file.
But it would be good to save the file to some temporary location with some temporary name if there was no initial save.


Add rye as a package manager.

Added rye config

Use the following commands to set up rye in your system.

Install rye in your machine: https://rye-up.com/guide/installation/
rye sync
rye add package
rye run pre-commit install
rye run dev

I see a lot of effort being put into this, greatly appreciate it.
I had not heard about rye before this, not much into python ecosystem, so a few questions -

How wide is the adoption of rye as a package manager?
skimming through the documentation, rye does appear to be better than pip, in par with modern package managers. But I believe it does not ship with python installation, so for a newbie like me, it would be one more thing to install and learn. For a project of this size would it add value to make this switch?

I see a lot of effort being put into this, greatly appreciate it. I had not heard about rye before this, not much into python ecosystem, so a few questions -

How wide is the adoption of rye as a package manager?
skimming through the documentation, rye does appear to be better than pip, in par with modern package managers. But I believe it does not ship with python installation, so for a newbie like me, it would be one more thing to install and learn. For a project of this size would it add value to make this switch?

Rye manages the package, including the virtual environments and Python one needs, so I think it would be much easier to use Rye as a one-stop solution, as one won't need to worry about Python's virtual environments madness.

For a project of this size would it add value to make this switch?
I agree that for the size of this project, it might be a bit cumbersome, but if we think from the dev's perspective, it might be better off with this one with the main rationale being separation and management of the packages, depending on the dev, test, and ... environment and managing the virtualenvs. After all, we should always opt for the betterment direction. Since we are already using the Streamlint app, I am sure there will be many more packages coming in the future. It's always good to have one less tech debt from the get-go.

@horrormyth my install dependencies check has been failing since I no longer have requirements.txt file, can you update this code coverage please?

@manisha841, if you could add me to your fork, I could then push changes in a separate branch on your fork or maybe to this branch.

@manisha841 CI should be fixed now; it seems that the coverage is under 80% feel free to make changes

@manisha841 CI should be fixed now; it seems that the coverage is under 80% feel free to make changes

Thank you, I will look into it further.


Running podman or docker fails

I've run into the following error twice now when following the directions for deploying to managed openshift under IBM Cloud.
I create the container per the directions, log into the container, it performs the complete VPC and ROKS creation with PortWorx and then ultimately fails with the following errors:
module.cpd[0].null_resource.download_cpd_cli: Creation complete after 4s [id=3696503445249558462]
module.cpd[0].null_resource.login_cluster: Creating...
module.cpd[0].null_resource.login_cluster: Provisioning with 'local-exec'...
module.cpd[0].null_resource.login_cluster (local-exec): Executing: ["/bin/sh" "-c" "\necho 'Remove any existing olm-utils-play container' \npodman rm --force olm-utils-play\n\necho 'Run login-to-ocp command'\n\n./cpd/cpd-cli manage login-to-ocp --server https://c115-e.us-south.containers.cloud.ibm.com:32506 -u 'admin' -p '' || ./cpd/cpd-cli manage login-to-ocp --server https://c115-e.us-south.containers.cloud.ibm.com:32506 --token='sha256~Sp5BnFAl5Zdcq7Qs55DdKKpOq_f9gb8GAoGIXNtWy9M'\n\nna || oc login https://c115-e.us-south.containers.cloud.ibm.com:32506 -u 'admin' -p '' --insecure-skip-tls-verify=true || oc login --server='https://c115-e.us-south.containers.cloud.ibm.com:32506' --token='sha256~Sp5BnFAl5Zdcq7Qs55DdKKpOq_f9gb8GAoGIXNtWy9M'\n \nsleep 60\n\n"]
module.cpd[0].null_resource.login_cluster (local-exec): Remove any existing olm-utils-play container
module.cpd[0].null_resource.login_cluster (local-exec): /bin/sh: 3: podman: not found
module.cpd[0].null_resource.login_cluster (local-exec): Run login-to-ocp command
module.cpd[0].null_resource.login_cluster (local-exec): [INFO] 2022-10-03T13:03:42.875378Z Checking architecture: amd64
module.cpd[0].null_resource.login_cluster (local-exec): [INFO] 2022-10-03T13:03:42.875397Z Checking podman or docker
module.cpd[0].null_resource.login_cluster (local-exec): [ERROR] 2022-10-03T13:03:42.875528Z Command exception: Neither podman nor docker is installed. Please install first.
module.cpd[0].null_resource.login_cluster (local-exec): [ERROR] 2022-10-03T13:03:42.876157Z RunPluginCommand:Execution error:  exit status 1
module.cpd[0].null_resource.login_cluster (local-exec): [INFO] 2022-10-03T13:03:42.951775Z Checking architecture: amd64
module.cpd[0].null_resource.login_cluster (local-exec): [INFO] 2022-10-03T13:03:42.951797Z Checking podman or docker
module.cpd[0].null_resource.login_cluster (local-exec): [ERROR] 2022-10-03T13:03:42.951856Z Command exception: Neither podman nor docker is installed. Please install first.
module.cpd[0].null_resource.login_cluster (local-exec): [ERROR] 2022-10-03T13:03:42.953170Z RunPluginCommand:Execution error:  exit status 1
module.cpd[0].null_resource.login_cluster (local-exec): /bin/sh: 9: na: not found
module.cpd[0].null_resource.login_cluster (local-exec): Authentication required for https://c115-e.us-south.containers.cloud.ibm.com:32506 (openshift)
module.cpd[0].null_resource.login_cluster (local-exec): Username: admin
module.cpd[0].null_resource.login_cluster (local-exec): Password:
module.cpd[0].null_resource.login_cluster (local-exec): Login failed (401 Unauthorized)
module.cpd[0].null_resource.login_cluster (local-exec): Verify you have provided correct credentials.
module.cpd[0].null_resource.login_cluster (local-exec): Logged into "https://c115-e.us-south.containers.cloud.ibm.com:32506" as<EMAIL_ADDRESS>using the token provided.

module.cpd[0].null_resource.login_cluster (local-exec): You have access to 63 projects, the list has been suppressed. You can list all projects with ' projects'

module.cpd[0].null_resource.login_cluster (local-exec): Using project "default".
module.cpd[0].null_resource.login_cluster: Still creating... [10s elapsed]
module.cpd[0].null_resource.login_cluster: Still creating... [20s elapsed]
module.cpd[0].null_resource.login_cluster: Still creating... [30s elapsed]
module.cpd[0].null_resource.login_cluster: Still creating... [40s elapsed]
module.cpd[0].null_resource.login_cluster: Still creating... [50s elapsed]
module.cpd[0].null_resource.login_cluster: Still creating... [1m0s elapsed]
module.cpd[0].null_resource.login_cluster: Creation complete after 1m2s [id=6444117423432478374]
module.cpd[0].null_resource.cpd_foundational_services: Creating...
module.cpd[0].null_resource.cpd_foundational_services: Provisioning with 'local-exec'...
module.cpd[0].null_resource.cpd_foundational_services (local-exec): Executing: ["/bin/sh" "-c" "echo \"Deploy all catalogsources and operator subscriptions for cpfs,cpd_platform\"  &&\nbash cpd/scripts/apply-olm.sh ./cpd 4.5.0 cpfs,cpd_platform  &&\necho \"Applying CR for cpfs,cpd_platform\" &&\nbash cpd/scripts/apply-cr.sh ./cpd 4.5.0 cpfs,cpd_platform zen portworx  portworx-shared-gp3 portworx-metastoredb-sc  &&\necho \"Enable CSV injector\" &&\noc patch namespacescope common-service --type='json' -p='[{\"op\":\"replace\", \"path\": \"/spec/csvInjector/enable\", \"value\":true}]' -n ibm-common-services\n"]
module.cpd[0].null_resource.cpd_foundational_services (local-exec): Deploy all catalogsources and operator subscriptions for cpfs,cpd_platform
module.cpd[0].null_resource.cpd_foundational_services (local-exec): [INFO] 2022-10-03T13:04:44.701432Z Checking architecture: amd64
module.cpd[0].null_resource.cpd_foundational_services (local-exec): [INFO] 2022-10-03T13:04:44.701447Z Checking podman or docker
module.cpd[0].null_resource.cpd_foundational_services (local-exec): [ERROR] 2022-10-03T13:04:44.701483Z Command exception: Neither podman nor docker is installed. Please install first.
module.cpd[0].null_resource.cpd_foundational_services (local-exec): [ERROR] 2022-10-03T13:04:44.702800Z RunPluginCommand:Execution error:  exit status 1
module.cpd[0].null_resource.cpd_foundational_services (local-exec): **********************************
module.cpd[0].null_resource.cpd_foundational_services (local-exec): Deploying catalog Sources & subscription failed for cpfs,cpd_platform
module.cpd[0].null_resource.cpd_foundational_services (local-exec): **********************************

Error: Error running command 'echo "Deploy all catalogsources and operator subscriptions for cpfs,cpd_platform"  &&
bash cpd/scripts/apply-olm.sh ./cpd 4.5.0 cpfs,cpd_platform  &&
echo "Applying CR for cpfs,cpd_platform" &&
bash cpd/scripts/apply-cr.sh ./cpd 4.5.0 cpfs,cpd_platform zen portworx  portworx-shared-gp3 portworx-metastoredb-sc  &&
echo "Enable CSV injector" &&
oc patch namespacescope common-service --type='json' -p='[{"op":"replace", "path": "/spec/csvInjector/enable", "value":true}]' -n ibm-common-services
': exit status 1. Output: Deploy all catalogsources and operator subscriptions for cpfs,cpd_platform
[INFO] 2022-10-03T13:04:44.701432Z Checking architecture: amd64
[INFO] 2022-10-03T13:04:44.701447Z Checking podman or docker
[ERROR] 2022-10-03T13:04:44.701483Z Command exception: Neither podman nor docker is installed. Please install first.
[ERROR] 2022-10-03T13:04:44.702800Z RunPluginCommand:Execution error:  exit status 1
**********************************
Deploying catalog Sources & subscription failed for cpfs,cpd_platform
**********************************

It can't find podman or docker inside the container. Even installing docker it fails because it obviously cannot spin up the container required for cpd-cli. How was this ever supposed to work?

Closing this issue as part of cleaning up old issues:
The latest release is 4.6.0 and the deployment is available marketplace
https://aws.amazon.com/marketplace/pp/prodview-xnyxvyyyjigue?sr=0-1&ref_=beagle&applicationId=AWSMPContessa
Please open an new issue , If issue is seen with Marketplace deployment.


fix: add boomer mode(standalone/master/worker)

增加boomer运行模式：

分布式/单机模式下指标聚合维度不同，便于prometheus进行指标聚合数据可视化

Codecov Report

Merging #1293 (91d511f) into master (29b1086) will decrease coverage by 10.77%.
The diff coverage is 3.70%.

@@             Coverage Diff             @@
##           master    #1293       +/-   ##
===========================================
- Coverage   60.86%   50.09%   -10.78%
===========================================
  Files          73       39       -34
  Lines        8866     5546     -3320
===========================================
- Hits         5396     2778     -2618
+ Misses       3249     2543      -706
- Partials      221      225        +4

Flag
Coverage Δ

unittests
50.09% <3.70%> (-10.78%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

hrp/cmd/boom.go
36.36% <0.00%> (ø)

hrp/internal/boomer/output.go
24.41% <0.00%> (-0.17%)
:arrow_down:

hrp/internal/boomer/boomer.go
34.48% <4.54%> (-7.01%)
:arrow_down:

hrp/boomer.go
68.65% <0.00%> (-14.93%)
:arrow_down:

hrp/step_request.go
47.82% <0.00%> (-0.77%)
:arrow_down:

httprunner/step_request.py

httprunner/make.py

httprunner/loader_test.py

hrp/internal/boomer/ulimit_windows.go

httprunner/config.py

... and 29 more

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 29b1086...91d511f. Read the comment docs.


Docker error caused by running nojava ipmi kvm!

INFO:root:anonymous wants to connect to host82 with res 1280x960
INFO:nojava_ipmi_kvm.kvm:Check if 'http://<IP_ADDRESS>/' is reachable...
DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): <IP_ADDRESS>:80
DEBUG:urllib3.connectionpool:http://<IP_ADDRESS>:80 "HEAD / HTTP/1.1" 200 0
INFO:nojava_ipmi_kvm.kvm:The url 'http://<IP_ADDRESS>/' is reachable.
INFO:nojava_ipmi_kvm.kvm:Starting the Docker container...
ERROR:root:Could not start KVM container
Traceback (most recent call last):
File "/code/main.py", line 136, in on_message
sess = self._current_session = await start_kvm_container(
File "/usr/local/lib/python3.9/site-packages/nojava_ipmi_kvm/kvm.py", line 337, in start_kvm_container
raise DockerTerminatedError("Docker terminated with return code {}.".format(docker_process.returncode))
nojava_ipmi_kvm.kvm.DockerTerminatedError: Docker terminated with return code 5.

This is probably an issue rather related to nojava-ipmi-kvm. Did you try to connect with nojava-ipmi-kvm directly (with --debug flag)?

[INFO] Starting the Docker container...
Error: No such container: nojava-ipmi-kvmrc-d66abe97-1c50-425d-b2d0-be0dad5e7f77
[INFO] Starting new HTTPS connection (1): <IP_ADDRESS>
[ERROR] [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)
[ERROR] Docker terminated with return code 5.

[root@ecs-3TS0I ~]# docker images
REPOSITORY               TAG                IMAGE ID       CREATED         SIZE
ipmi                     latest             72d46657dd20   35 hours ago    1.17GB
sonatype/nexus3          latest             589f7296a4a2   18 months ago   655MB
andyshinn/dnsmasq        latest             8d6d4d8e32d6   2 years ago     6.99MB
sciapp/nojava-ipmi-kvm   v0.9.0-openjdk-7   1257ca21b6d2   2 years ago     617MB


Dropping Thumbnails

Hello,
Apparently, Bootstrap 4 will drop the '.thumbnail' class which was used to create, well, thumbnails :)
I totally agree with moving everything into the Card component (which is a lot more compact), but what happens if we only want to use the thumbnail class on its own without all the extra cards markup?
In a "blog" example, when creating a blog page loop, a recent posts widget sidebar and a category widget, the 'thumbnail' class could be used to apply a default common markup to all of them. Is that class something we would have to create separately in this scenario? Wouldn't it be useful keeping it for that type of usage?
Please let me know if I am wrong or if there's a better approach towards it.

what happens if we only want to use the thumbnail class on its own without all the extra cards markup?

I wouldn't say there's a lot of extra markup. It's

Title

Some text

vs.

Title

Some text.

which is the same number of elements. There's 3 more classes (because we're avoiding element and child selectors like the plague in v4, to improve flexibility & extensibility), but that's not much of a burden IMHO.
Or perhaps you had a different case in mind?

In a "blog" example, when creating a blog page loop, a recent posts widget sidebar and a category widget, the 'thumbnail' class could be used to apply a default common markup to all of them.

I'm not seeing why you couldn't/wouldn't apply the Card widget to them instead. Perhaps if you made a concrete example? You don't seem to be referring to the official "Blog" example, which doesn't use thumbnails.

I'm sorry, perhaps the blog example is not the best :D.
Here's an example of how I use it with my custom Wordpress theme framework in an e-commerce environment:
These images are all using the ".thumbnail" class as clicking them opens a lightbox and it is a good indicator for that functionality.

And here is the code:

As you can see, the thumbnails do not need a caption or anything, only the ".thumbnail" class which is applied to those image links.

Ah, you mostly want .img-thumbnail then: http://v4-alpha.getbootstrap.com/content/images/#image-shapes.

Well, not really, because the "img-thumbnail" does not have a hover state and those image links should have one as they open lightbox items on click.

Also, even if the answer here really is "Use cards", we don't seem to have a Card example with just an image without any header/footer/caption currently.

In that scenario (which could be pretty common), it wouldn't make sense to have an extra wrapper around that item, would it :) ?

Hmm? There's no extra wrapper, unless I'm missing something.

versus

In both cases, there's an element wrapping the .

Oh, all right, I see. Thanks for the clarification.
Is "-top" still necessary if it's just an image card though?
Maybe "card-img" would be more straight forward or simply using the "card" class that applies default properties to the direct child image just like the ".thumbnail" class? Just popping in suggestions - please let me know if it's relevant or not.

Is "-top" still necessary if it's just an image card though?

Some class will likely be required, but it might be a different one (I agree -top seems weird here). As I mentioned earlier, we need to add a "image-only card" example to the docs, to clarify the exact markup that ought to be required.

simply using the "card" class that applies default properties to the direct child image

We're trying hard to avoid CSS child selectors and CSS tag selectors in v4, since they hurt flexibility and extensibility. We're pushing for explicit classes instead.

Awesome, thank you very much :)
I am so eager to work with Bootstrap 4 on my projects.
Cheers!

Making a note for myself to revisit this—sounds like we need some more examples of using cards to replace the old thumbnails.

Coming back to this once again, I'm punting on any changes here.

Using "card-img" without a wrapping card div seems to work.  Is there a reason this should be avoided?


[CHANGE ME] Re-generated Container to pick up changes in the API or client library generator.

This PR was generated using Autosynth. :rainbow:
Log from Synthtool
synthtool > Executing /tmpfs/src/git/autosynth/working_repo/Container/synth.py.
synthtool > Ensuring dependencies.
synthtool > Pulling artman image.
latest: Pulling from googleapis/artman
Digest: sha256:545c758c76c3f779037aa259023ec3d1ef2d57d2c8cd00a222cb187d63ceac5e
Status: Image is up to date for googleapis/artman:latest
synthtool > Cloning googleapis.
synthtool > Running generator for google/container/artman_container_v1.yaml.
synthtool > Generated code into /home/kbuilder/.cache/synthtool/googleapis/artman-genfiles/php/google-cloud-container-v1.
synthtool > Replaced "'serviceAddress' =>" in src/V1/Gapic/ClusterManagerGapicClient.php.
synthtool > Replaced '@type string \\$serviceAddress\\n\\s+\\*\\s+The address' in src/V1/Gapic/ClusterManagerGapicClient.php.
synthtool > Replaced '\\$transportConfig, and any \\$serviceAddress' in src/V1/Gapic/ClusterManagerGapicClient.php.
synthtool > Replaced 'final class' in src/V1/DeleteNodePoolRequest.php.
synthtool > Replaced 'final class' in src/V1/ListUsableSubnetworksRequest.php.
synthtool > Replaced 'final class' in src/V1/ListNodePoolsRequest.php.
synthtool > Replaced 'final class' in src/V1/DailyMaintenanceWindow.php.
synthtool > Replaced 'final class' in src/V1/UpdateMasterRequest.php.
synthtool > Replaced 'final class' in src/V1/IPAllocationPolicy.php.
synthtool > Replaced 'final class' in src/V1/RollbackNodePoolUpgradeRequest.php.
synthtool > Replaced 'final class' in src/V1/SetMasterAuthRequest.php.
synthtool > Replaced 'final class' in src/V1/AutoUpgradeOptions.php.
synthtool > Replaced 'final class' in src/V1/ResourceUsageExportConfig.php.
synthtool > Replaced 'final class' in src/V1/MaintenanceWindow.php.
synthtool > Replaced 'final class' in src/V1/ListOperationsRequest.php.
synthtool > Replaced 'final class' in src/V1/AcceleratorConfig.php.
synthtool > Replaced 'final class' in src/V1/DatabaseEncryption.php.
synthtool > Replaced 'final class' in src/V1/CompleteIPRotationRequest.php.
synthtool > Replaced 'final class' in src/V1/AuthenticatorGroupsConfig.php.
synthtool > Replaced 'final class' in src/V1/StartIPRotationRequest.php.
synthtool > Replaced 'final class' in src/V1/TimeWindow.php.
synthtool > Replaced 'final class' in src/V1/HorizontalPodAutoscaling.php.
synthtool > Replaced 'final class' in src/V1/AddonsConfig.php.
synthtool > Replaced 'final class' in src/V1/ClusterUpdate.php.
synthtool > Replaced 'final class' in src/V1/ListClustersRequest.php.
synthtool > Replaced 'final class' in src/V1/GetOperationRequest.php.
synthtool > Replaced 'final class' in src/V1/NodeTaint.php.
synthtool > Replaced 'final class' in src/V1/SetLoggingServiceRequest.php.
synthtool > Replaced 'final class' in src/V1/BinaryAuthorization.php.
synthtool > Replaced 'final class' in src/V1/MaxPodsConstraint.php.
synthtool > Replaced 'final class' in src/V1/CancelOperationRequest.php.
synthtool > Replaced 'final class' in src/V1/SetMonitoringServiceRequest.php.
synthtool > Replaced 'final class' in src/V1/ListOperationsResponse.php.
synthtool > Replaced 'final class' in src/V1/Operation.php.
synthtool > Replaced 'final class' in src/V1/ListClustersResponse.php.
synthtool > Replaced 'final class' in src/V1/ShieldedInstanceConfig.php.
synthtool > Replaced 'final class' in src/V1/NetworkPolicy.php.
synthtool > Replaced 'final class' in src/V1/KubernetesDashboard.php.
synthtool > Replaced 'final class' in src/V1/ClusterAutoscaling.php.
synthtool > Replaced 'final class' in src/V1/SetNodePoolManagementRequest.php.
synthtool > Replaced 'final class' in src/V1/StatusCondition.php.
synthtool > Replaced 'final class' in src/V1/RecurringTimeWindow.php.
synthtool > Replaced 'final class' in src/V1/SetNodePoolSizeRequest.php.
synthtool > Replaced 'final class' in src/V1/MaintenancePolicy.php.
synthtool > Replaced 'final class' in src/V1/HttpLoadBalancing.php.
synthtool > Replaced 'final class' in src/V1/CreateNodePoolRequest.php.
synthtool > Replaced 'final class' in src/V1/NodeConfig.php.
synthtool > Replaced 'final class' in src/V1/GetClusterRequest.php.
synthtool > Replaced 'final class' in src/V1/CreateClusterRequest.php.
synthtool > Replaced 'final class' in src/V1/NodeManagement.php.
synthtool > Replaced 'final class' in src/V1/NetworkPolicyConfig.php.
synthtool > Replaced 'final class' in src/V1/UpdateNodePoolRequest.php.
synthtool > Replaced 'final class' in src/V1/GetNodePoolRequest.php.
synthtool > Replaced 'final class' in src/V1/Cluster.php.
synthtool > Replaced 'final class' in src/V1/UpdateClusterRequest.php.
synthtool > Replaced 'final class' in src/V1/ListNodePoolsResponse.php.
synthtool > Replaced 'final class' in src/V1/SetAddonsConfigRequest.php.
synthtool > Replaced 'final class' in src/V1/IntraNodeVisibilityConfig.php.
synthtool > Replaced 'final class' in src/V1/NetworkConfig.php.
synthtool > Replaced 'final class' in src/V1/SetNetworkPolicyRequest.php.
synthtool > Replaced 'final class' in src/V1/SetLabelsRequest.php.
synthtool > Replaced 'final class' in src/V1/SetNodePoolAutoscalingRequest.php.
synthtool > Replaced 'final class' in src/V1/VerticalPodAutoscaling.php.
synthtool > Replaced 'final class' in src/V1/SetMaintenancePolicyRequest.php.
synthtool > Replaced 'final class' in src/V1/AutoprovisioningNodePoolDefaults.php.
synthtool > Replaced 'final class' in src/V1/CloudRunConfig.php.
synthtool > Replaced 'final class' in src/V1/SetLocationsRequest.php.
synthtool > Replaced 'final class' in src/V1/SetLegacyAbacRequest.php.
synthtool > Replaced 'final class' in src/V1/ResourceLimit.php.
synthtool > Replaced 'final class' in src/V1/UsableSubnetworkSecondaryRange.php.
synthtool > Replaced 'final class' in src/V1/DeleteClusterRequest.php.
synthtool > Replaced 'final class' in src/V1/NodePool.php.
synthtool > Replaced 'final class' in src/V1/ListUsableSubnetworksResponse.php.
synthtool > Replaced 'final class' in src/V1/MasterAuthorizedNetworksConfig.php.
synthtool > Replaced 'final class' in src/V1/ServerConfig.php.
synthtool > Replaced 'final class' in src/V1/LegacyAbac.php.
synthtool > Replaced 'final class' in src/V1/NodePoolAutoscaling.php.
synthtool > Replaced 'final class' in src/V1/GetServerConfigRequest.php.
synthtool > Replaced 'final class' in src/V1/PrivateClusterConfig.php.
synthtool > Replaced 'final class' in src/V1/UsableSubnetwork.php.
synthtool > Replaced 'final class' in src/V1/MasterAuth.php.
synthtool > Replaced 'final class' in src/V1/ClientCertificateConfig.php.
synthtool > Replaced 'final class' in src/V1/MasterAuthorizedNetworksConfig/CidrBlock.php.
synthtool > Replaced 'final class' in src/V1/ResourceUsageExportConfig/BigQueryDestination.php.
synthtool > Replaced 'final class' in src/V1/ResourceUsageExportConfig/ConsumptionMeteringConfig.php.
synthtool > No replacements made in src/V*/**/*.php for pattern public function ([s|g]\w{3,})Unwrapped, maybe replacement is not longer needed?
synthtool > Replaced 'Copyright \\d{4}' in src/V1/Gapic/ClusterManagerGapicClient.php.
synthtool > Replaced 'Copyright \\d{4}' in src/V1/ClusterManagerClient.php.
synthtool > Replaced 'Copyright \\d{4}' in tests/Unit/V1/ClusterManagerClientTest.php.
synthtool > Replaced 'Copyright \\d{4}' in tests/System/V1/ClusterManagerSmokeTest.php.
synthtool > Replaced 'new Cluster' in src/V1/Gapic/ClusterManagerGapicClient.php.
synthtool > Replaced 'new NodePoolAutoscaling' in src/V1/Gapic/ClusterManagerGapicClient.php.
synthtool > Replaced 'new AddonsConfig' in src/V1/Gapic/ClusterManagerGapicClient.php.
synthtool > Replaced '= Action::' in src/V1/Gapic/ClusterManagerGapicClient.php.
synthtool > Replaced 'new MasterAuth' in src/V1/Gapic/ClusterManagerGapicClient.php.
synthtool > Replaced 'new NodePool' in src/V1/Gapic/ClusterManagerGapicClient.php.
synthtool > Replaced 'new NodeManagement' in src/V1/Gapic/ClusterManagerGapicClient.php.
synthtool > Replaced 'new NetworkPolicy' in src/V1/Gapic/ClusterManagerGapicClient.php.
synthtool > Replaced 'new MaintenancePolicy' in src/V1/Gapic/ClusterManagerGapicClient.php.
synthtool > Cleaned up 1 temporary directories.
synthtool > Wrote metadata to synth.metadata.

Will regen after #2457 merged.


In long PR changed files I see a huge slowdown from removing intent-mouse class

  function focus_confirmation_buttons_init() {
    document.body.addEventListener("toggle", event => {
      const confirmButton = Object(select_dom["a"])('[open] details-dialog [type="submit"]', event.target);
      if (confirmButton) {
        setTimeout(() => {
          confirmButton.focus();
          document.body.classList.remove("intent-mouse");
        });
      }
    }, true);
  }
  features.add({
    id: "focus-confirmation-buttons",
    description: 'Always focuses confirm buttons in custom modal boxes, like "Mark all as read".',
    screenshot: "https://user-images.githubusercontent.com/1402241/31700158-1499bdd8-b38d-11e7-9aba-77a0a4b6bf3c.png"
  }, {
    load: features.onDocumentStart,
    init: focus_confirmation_buttons_init
  });

Workaround
Disable focus-confirmation-buttons in extension options.

Where does this happen? Do you have a link?

@fregante It was on a work PR. 74 files +1,380 −541 changes, and 25 commits.
I'll see if I can create a sample PR somewhere.


TransT tracker integration

Motivation and context

How has this been tested?

Checklist

[ ] I submit my changes into the develop branch
[ ] I have added a description of my changes into CHANGELOG file
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] I have linked related issues (read github docs)
[ ] I have increased versions of npm packages if it is necessary (cvat-canvas,
cvat-core, cvat-data and cvat-ui)

License

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

@azhavoro, Could you test this PR on GPU please?


Has Many Through Association via has_many: and belongs_to: on the join table

I'm reopening #530 (https://github.com/airblade/paper_trail/issues/530) as I'm facing the same issue and don't believe the reference https://github.com/airblade/paper_trail/issues/466) addresses it (Or if it does, I've completely failed to understand)
class Document < ActiveRecord::Base
has_many :sections
has_many :paragraphs, through: :sections
end
class Section < ActiveRecord::Base
belongs_to :document
has_many :paragraphs
end
class Paragraph < ActiveRecord::Base
belongs_to :section
end
Paper_Trail 4.0.0 Beta doesn't cater this situation. It looks for foreign key of association Paragraph i.e, section_id in the through model i.e, Section which will not be available in the above mentioned case.
https://github.com/airblade/paper_trail/issues/466 mentions adding an additional column to 'versions' table. However, the data is already there. With the existing code, a query on section can already return its paragraphs and revisions.
[If anything, may I suggest a note in the Readme that this case is not supported?]
Thanks
André

Paper_Trail 4.0.0 Beta doesn't cater this situation.

Currently, paper_trail 4.0.0 is the latest.  If you are still using the beta, please upgrade.

It looks for foreign key of association Paragraph i.e, section_id in the through model i.e, Section which will not be available in the above mentioned case.

What PaperTrail methods are you using?  reify?  You've given some ActiveRecord models, but I don't see anything from PaperTrail in your example.

Bad copy/paste, sorry. I'm using paper trail 4.0.0, although same result with using master from git.
document = FactoryGirl.create(:document_with_sections_and_paragraphs)
puts 'Updating some paragraph'
document.sections[0].paragraphs[0].update_attributes(title: 'New paragraph 1 title')
puts 'Updating a section name'
document.sections[0].update_attributes(title: 'My new Section')
puts 'Updating document itself'
document.update_attributes(title: 'New document Title')
document.sections[0].paragraphs[0].update_attributes(title: 'Very New paragraph 1 title')
puts 'Previous version of document'
pp document.versions.last.reify(:has_many => true)

This last line fails, in the rails console in development mode, with a
NoMethodError: undefined method `section_id' for #Section:0x00000006c6ad58
Note, if I stick that wrap that code in a test, it runs, however, the previous version of the document returns an empty list of sections.

I can't reproduce this issue.  Please review the test app I created (https://github.com/jaredbeck/pt_issue_590) and propose a change (via PR please) which will reproduce the issue.  Thanks.

For me, there are two distinct issues. In test mode, behaviour is different than from the console. In test, the old version no longer has the associations - test app shows this. But the crash, I only get in console. I don't know how to reproduce in test mode (I think it would crash there too, if the associations were not lost). Here is the code reproducing the issue in console:
From the console:
ActiveRecord::Migrator.migrate "db/migrate"
d = Document.create_sample_document
d_v2 = d.versions.last.reify(:has_many => true)

last line fails with the below. Happy to provide more info/test, let me know what is needed.
NoMethodError: undefined method section_id' for #<Section:0x00000001566318> 	from /home/andre/.rvm/gems/ruby-2.1.2/gems/activemodel-4.2.3/lib/active_model/attribute_methods.rb:433:in method_missing'
from /home/andre/.rvm/gems/ruby-2.1.2/gems/paper_trail-4.0.0/lib/paper_trail/version_concern.rb:394:in block (2 levels) in reify_has_many_through' 	from /home/andre/.rvm/gems/ruby-2.1.2/gems/activerecord-4.2.3/lib/active_record/relation/delegation.rb:46:in map'
from /home/andre/.rvm/gems/ruby-2.1.2/gems/activerecord-4.2.3/lib/active_record/relation/delegation.rb:46:in map' 	from /home/andre/.rvm/gems/ruby-2.1.2/gems/paper_trail-4.0.0/lib/paper_trail/version_concern.rb:394:in block in reify_has_many_through'
from /home/andre/.rvm/gems/ruby-2.1.2/gems/paper_trail-4.0.0/lib/paper_trail/version_concern.rb:391:in each' 	from /home/andre/.rvm/gems/ruby-2.1.2/gems/paper_trail-4.0.0/lib/paper_trail/version_concern.rb:391:in reify_has_many_through'
from /home/andre/.rvm/gems/ruby-2.1.2/gems/paper_trail-4.0.0/lib/paper_trail/version_concern.rb:347:in reify_has_manys' 	from /home/andre/.rvm/gems/ruby-2.1.2/gems/paper_trail-4.0.0/lib/paper_trail/version_concern.rb:232:in block in reify'
from /home/andre/.rvm/gems/ruby-2.1.2/gems/paper_trail-4.0.0/lib/paper_trail/version_concern.rb:303:in call' 	from /home/andre/.rvm/gems/ruby-2.1.2/gems/paper_trail-4.0.0/lib/paper_trail/version_concern.rb:303:in without_identity_map'
from /home/andre/.rvm/gems/ruby-2.1.2/gems/paper_trail-4.0.0/lib/paper_trail/version_concern.rb:168:in reify' 	from (irb):3 	from /home/andre/.rvm/gems/ruby-2.1.2/gems/railties-4.2.3/lib/rails/commands/console.rb:110:in start'
from /home/andre/.rvm/gems/ruby-2.1.2/gems/railties-4.2.3/lib/rails/commands/console.rb:9:in start' 	from /home/andre/.rvm/gems/ruby-2.1.2/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:68:in console'
from /home/andre/.rvm/gems/ruby-2.1.2/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:39:in run_command!' 	from /home/andre/.rvm/gems/ruby-2.1.2/gems/railties-4.2.3/lib/rails/commands.rb:17:in <top (required)>'

If I merely remove the has_many :paragraphs, through: :sections from document, then it no longer crashes in console - this is something I'm happy to leave for my app.
Difference between test and dev environment is still there. I've sent you another pull request for a simpler case (no paragraphs) which still shows the children missing on a previous version in test environment.

Difference between test and dev environment is still there.

Yes, it's not currently possible to test reification of associations when use_transactional_fixtures = true. This is a known issue: https://github.com/airblade/paper_trail/issues/542
Regarding the NoMethodError ..

NoMethodError: undefined method `section_id' for #Section:0x00000006c6ad58

By setting use_transactional_fixtures = false, I've reproduced this error in the test app we've been working on (https://github.com/jaredbeck/pt_issue_590) with a failing test.

If I merely remove the has_many :paragraphs, through: :sections from document, then it no longer crashes in console - this is something I'm happy to leave for my app.

I'm glad that workaround is OK for you, but I believe it is our goal to support has_many through, and you shouldn't have to do that.  I'll mark this as a confirmed bug. Thanks for reporting it!

I've added a warning to the readme: https://github.com/airblade/paper_trail/commit/ce37034b9218d950f20708faaa1014e4ab9b292f

The issue is at this line: https://github.com/airblade/paper_trail/blob/master/lib/paper_trail/version_concern.rb#L420
collection_keys should collect the list of all the records that are associated with has_many through relationship.
Fixed the issue in https://github.com/ngsaip7/paper_trail/tree/issue%23590
Will test it throughly and place a pull request

Fixed by https://github.com/airblade/paper_trail/pull/596, closing.

If it is really fixed maybe we can delete it from the known issues?
https://github.com/airblade/paper_trail/blob/4.0-stable/README.md#associations

Is it really fixed? I came across this. Maybe we can delete it from the known issue if it is?

Hi Benjamin. This issue (#590) was fixed by #596 and released in PT 4.1.0. You are looking at the docs for 4.0. The docs for 4.1 (https://github.com/airblade/paper_trail/blob/4.1-stable/README.md) do not mention #590.

Ah ok. Thank you! (I still have problems with associations. If I can pin the problem I will post an issue with its template).


update readme to reflect new repo location

Description
Followed the instructions in the README to use ajamaica/SolanaKT but my gradle wasn't picking it up. I just had to update it to use metaplex-foundation/SolanaKT to find the new location of the Github Package.
Work Completed
Updated the readme
API Changes
n/a
Testing
I ran it myself with the new instructions to depend on it correctly

Thanks a lot!