Add support for rpm packages

This is mostly copy paste job of debian packaging with minor changes for redhat systems. Most of the heavy lifting is being done by electron-installer-redhat.

Fixes issue #1424

Thanks! I'll have to install Fedora into a VM and do some testing of this :-)
@jviotti Once this has been tested and merged, we should also host the RPM packages on bintray.

Wow, this is awesome. Thanks a lot @Dark-Passenger! I'll be giving this a go soon (I have to get Fedora as well :P)

@lurch I think i have done the dependency patches correctly. So should be good.

According to https://github.com/unindented/electron-installer-redhat it depends on rpmbuiild. Could you add a dependency-check for that command to scripts/build/electron-installer-redhat-linux.sh and then add rpm to the list of packages installed by apt-get in the Dockerfiles?
If you don't mind, I won't merge this PR until after #1365 has been merged, as that'll ensure that the installer-creation also gets tested by the CI servers :-)

@jviotti What's going on with the CI tests here? Either we're missing a Travis branch build, or we shouldn't be expecting an Appveyor branch build, since the original branch is in @Dark-Passenger 's repo and not in this repo?
@hedss With all the recent work you've been doing with Github and status-checks, maybe you could give us a quick hint? :)

@lurch I think this may be down to the fact that the AppVeyor YAML config for etcher doesn't explicitly specify just Resin only branches. This may help: https://www.appveyor.com/docs/branches/

This may help: https://www.appveyor.com/docs/branches/

Thanks. Looks like that's just about filtering specific branch names though, not the repos which they come from. And we obviously have no idea in advance which branch-names will get used in PRs!
I'll wait to see if @jviotti has any ideas when he comes back online (since he has access to settings on this repo that I don't), and if not I'll try getting in touch with Appveyor support.

I've now built the x86_64 RPM package using this PR, and when I copy it to a 'fresh' Fedora25 VM (VM snapshots are really useful here!), the RPM installs okay (along with a huge list of dependencies) but etcher-electron still doesn't run, due to the missing screensaver library issue discussed in https://github.com/resin-io/etcher/issues/835
So I guess you need to add that to the RPM's dependency list? @Dark-Passenger

@lurch the dependency issue should be fixed now. though I am building now so lets see.

All still works for me... though I can uninstall the dependency to check... let me see if I can get my hands on a vm to try it out soon.

Tested on centos and package works here too so awesome. Still need to find a fresh install to test with.

@Dark-Passenger Thanks for your work on this, it seems to be working great now :-)
Could you also please make the following changes, as that'll ensure that the RPM installers also get built by the CI servers. Don't try creating bintray-redhat.sh yourself though, that's something @jviotti needs to do as he's the only one with access to the bintray tokens.
diff --git a/Makefile b/Makefile
index eeb2382..967496f 100644
--- a/Makefile
+++ b/Makefile
@@ -476,6 +476,8 @@ PUBLISH_AWS_S3 += \
        $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).tar.gz
 PUBLISH_BINTRAY_DEBIAN += \
        $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-electron_$(APPLICATION_VERSION_DEBIAN)_$(TARGET_ARCH_DEBIAN).deb
+PUBLISH_BINTRAY_REDHAT += \
+       $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-electron_$(APPLICATION_VERSION_REDHAT)_$(TARGET_ARCH_REDHAT).rpm
 endif

 ifeq ($(TARGET_PLATFORM),win32)
@@ -492,7 +494,7 @@ PUBLISH_AWS_S3 += \
        $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip
 endif

-installers-all: $(PUBLISH_AWS_S3) $(PUBLISH_BINTRAY_DEBIAN)
+installers-all: $(PUBLISH_AWS_S3) $(PUBLISH_BINTRAY_DEBIAN) $(PUBLISH_BINTRAY_REDHAT)

 ifdef PUBLISH_AWS_S3
 publish-aws-s3: $(PUBLISH_AWS_S3)
@@ -527,6 +529,13 @@ publish-bintray-debian: $(PUBLISH_BINTRAY_DEBIAN)
 TARGETS += publish-bintray-debian
 endif

+ifdef PUBLISH_BINTRAY_REDHAT
+publish-bintray-redhat: $(PUBLISH_BINTRAY_REDHAT)
+# TODO: Update this after we've created ./scripts/publish/bintray-redhat.sh
+
+TARGETS += publish-bintray-redhat
+endif
+
 .PHONY: $(TARGETS)

 cli-develop:

Wow @Dark-Passenger, amazing job navigating our complex build system scripts 🥇 , and @lurch  amazing work reviewing and polishing this whole thing. Its the first time I check the PR code and its already incredibly good (I don't think I have any comments). I'll give it a go on my system.

@jviotti Did you read my comment about the 'missing' appveyor branch build?
This is what I see at the bottom of this PR:

@jviotti Hmmm, seems like Appveyor is going crazy??
It failed with:
./scripts/build/electron-create-resources-app.sh -s . -o release/electron-win32-1.0.0+0c55bee-x86-app \
		-v 1.0.0+0c55bee \
		-f "lib,assets"
cp -RLf release/electron-win32-x86-dependencies/* release/electron-win32-1.0.0+0c55bee-x86-app
cp: cannot copy cyclic symbolic link `release/electron-win32-x86-dependencies/node_modules/@types/lodash/toString'
make: *** [release/electron-win32-1.0.0+0c55bee-x86-app] Error 1
Command exited with code 1

so I restarted the build, and now it's failing with:
><EMAIL_ADDRESS>htmllint C:\projects\etcher
> node scripts/html-lint.js
Scanning...
2 errors at lib\gui\index.html
  [10:71] “--!>” found at end of comment (should just be “-->”).
  [11:69] “--!>” found at end of comment (should just be “-->”).
1 errors at lib\gui\pages\main\templates\main.tpl.html
  [66:93] “--!>” found at end of comment (should just be “-->”).
4 errors at lib\gui\pages\settings\templates\settings.tpl.html
  [20:67] “--!>” found at end of comment (should just be “-->”).
  [21:65] “--!>” found at end of comment (should just be “-->”).
  [22:66] “--!>” found at end of comment (should just be “-->”).
  [23:35] “--!>” found at end of comment (should just be “-->”).

but if I look at lines 10 and 11 of lib\gui\index.html they seem totally fine!?!
    <!-- Enable debug information from all modules that use `debug` -->
    <!-- See https://github.com/visionmedia/debug#browser-support -->

Gonna try another restart to see if the error changes yet again ;-)
BTW I also noticed this in the appveyor logs, which doesn't seem to be causing anything to fail:
./scripts/ci/ensure-staged-shrinkwrap.sh
node version: v6.10.3
npm version: 3.10.10
><EMAIL_ADDRESS>preshrinkwrap C:\projects\etcher
> node ./scripts/clean-shrinkwrap.js
Removing: macos-alias, fs-xattr, ds-store, appdmg
events.js:160
      throw er; // Unhandled 'error' event
      ^
Error: spawn npm ENOENT
    at exports._errnoException (util.js:1018:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
    at onErrorNT (internal/child_process.js:367:16)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)
    at Module.runMain (module.js:606:11)
    at run (bootstrap_node.js:390:7)
    at startup (bootstrap_node.js:150:9)
    at bootstrap_node.js:505:3
wrote npm-shrinkwrap.json

Is it an error that's safe to ignore, or should it be failing the build?

Ahhh, tracked this down to a bug in https://validator.w3.org (which is what html-angular-validate uses)
https://github.com/validator/validator/issues/515
:-/
Apologies for the noise @Dark-Passenger , please bear with us until we return to normal service ;)

Yaaay, https://github.com/validator/validator/issues/515 is now fixed, so I restarted the Appveyor build again, and now the pr-builds for Appveyor and Travis are both green :green_heart:
Still the weird
./scripts/ci/ensure-staged-shrinkwrap.sh
node version: v6.10.3
npm version: 3.10.10
><EMAIL_ADDRESS>preshrinkwrap C:\projects\etcher
> node ./scripts/clean-shrinkwrap.js
Removing: macos-alias, fs-xattr, ds-store, appdmg
events.js:160
      throw er; // Unhandled 'error' event
      ^
Error: spawn npm ENOENT
    at exports._errnoException (util.js:1018:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
    at onErrorNT (internal/child_process.js:367:16)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)
    at Module.runMain (module.js:606:11)
    at run (bootstrap_node.js:390:7)
    at startup (bootstrap_node.js:150:9)
    at bootstrap_node.js:505:3
wrote npm-shrinkwrap.json

'error' on Appveyor though, and we still need to tell Appveyor not to branch-build this PR @jviotti

@lurch I had indeed missed the Appveyor pending build thing. I'll revise the configuration. Regarding the ENOENT bug, I'm not sure what causes it, but it all seems to work fine anyway :S

All green now! We were mandating Appveyor branch builds to succeed before merging, however in the case of PRs coming from forks, branch builds are not executed (Travis CI seems to handle this out of the box already)

Fantastic. I'll do some quick checks on Fedora x86 and Fedora x64 on Monday morning, and then merge this :-D

@lurch @jviotti whats the status of this ? I was really hoping I could start using rpms soon for etcher :)

@Dark-Passenger I'll merge as soon as @lurch gives the final approval

Sorry, I've just been incredibly busy with non-Etcher stuff recently. I'll try to get this merged in the next day or two, but if you could resolve the merge-conflicts @Dark-Passenger that would be helpful :-)

@lurch anything left for this to be merged ?

Apologies again for the delay @Dark-Passenger , but @jviotti is now changing the way the Etcher build and packaging system works (with the aim of simplifying it and aligning it with other Electron tooling), so it's probably best if you hold off on this for a while, and we'll ping you again when the new system is all up and working.

I don't have my PR ready yet, so I think we can merge this one, and I'll base my rpm work larlegy on what @Dark-Passenger did.

Okay, I'll do some tests in the next day or two and merge this as-is then :-)

In #1501 @jviotti says he's going to be changing the build system and re-testing everything anyway, so I'll merge this so that @jviotti can rebase his other PRs.
Thanks again @Dark-Passenger :+1:


Attendance CP

How is attendance CP going to be calculated/awarded? Is the intention to have it in "Awarded CP" for now?

Currently there is no tracking, you just put all your non-level CP in as Awarded.
Once the Campaigns and Events system is implemented, characters attached to a campaign will have CP calculated based on event attendance, campaign floor, and whatever bonuses plot chooses to grant (such as backstory or go fund me rewards).


add support for the kv processor

I was on the fence with KVProcessor since that would also mean having a KV() on ProcessorsDescriptor which looks a bit iffy :)
lmk if you object we can rename post merge.

ported to master

I was on the fence with KVProcessor since that would also mean having a KV() on ProcessorsDescriptor which looks a bit iffy :)

yeah, .KV() is a bit funky. I don't have strong opinions about it to be honest 😄 @gmarz ?

I'm good with KeyValue 👍


Getting error using bottom-up features method

while using "python script/make_bu_data.py --output_dir data/cocobu" first i face the error :
Reading trainval/karpathy_test_resnet101_faster_rcnn_genome.tsv
Traceback (most recent call last):
File "scripts/make_bu_data.py", line 40, in
for item in reader:
File "/home/faaiz/anaconda3/lib/python3.7/csv.py", line 112, in next
row = next(self.reader)
_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)
then i changed the line
reader = csv.DictReader(tsv_in_file, delimiter='\t', fieldnames = FIELDNAMES)
To
reader = csv.DictReader(tsv_in_file.read().decode('utf-8'), delimiter='\t', fieldnames = FIELDNAMES)
this resolve the error but then i get this error
Reading trainval/karpathy_test_resnet101_faster_rcnn_genome.tsv
Traceback (most recent call last):
File "scripts/make_bu_data.py", line 42, in
item['num_boxes'] = int(item['num_boxes'])
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
any suggestions on resolving this error. please help.

I am also having the same issue:
_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)
Because this csv file is not a binary file,just a text file,
then i change the line 40:
with open(os.path.join(args.downloaded_feats, infile), "r+b") as tsv_in_file:
to:
with open(os.path.join(args.downloaded_feats, infile), "rt") as tsv_in_file:
It can resolve this error.
( By the way,if you encounter this error later:
Traceback (most recent call last):
File "scripts/make_bu_data.py", line 46, in
item[field] = np.frombuffer(base64.decodestring(item[field]),
File "/home/t630/anaconda3/envs/pytorch1.0/lib/python3.6/base64.py", line 561, in decodestring
return decodebytes(s)
File "/home/t630/anaconda3/envs/pytorch1.0/lib/python3.6/base64.py", line 552, in decodebytes
_input_type_check(s)
File "/home/t630/anaconda3/envs/pytorch1.0/lib/python3.6/base64.py", line 520, in _input_type_check
raise TypeError(msg) from err
TypeError: expected bytes-like object, not str
you can change the line 44:
item[field] = np.frombuffer(base64.decodestring(item[field]),
to
item[field] = np.frombuffer(base64.decodestring(bytes(item[field],'utf-8')),
it can resolve the error)
Good luck~


Numbers in numbered list off in IE 11

Noticed this in the usability testing videos done at UC. I think this is IE 11 but it might be 10.

@patrickarlt I've looked at this, and have no idea how this is being caused. Will try to fix, but might be backburner.

fixed in pr


appMenu._label.setText is not a function

gnome-session[1829]: (gnome-shell:7240): Gjs-WARNING **: JS ERROR: TypeError: appMenu._label.setText is not a function
gnome-session[1829]: updateAppMenu@/home/andrew/.local/share/gnome-shell/extensions/pixel-saver@deadalnix.me/app_menu.js:40
This breaks window titles
Wrapping it in a try/catch to silence the error and fixes titles, don't know enough about gnome-shell to debug myself

If yous tarted by telling what version of gnome and pixel saver you use, that would help.

Gnome 3.16.2, Fedora 22
pixel-saver version 7
Problematic line is unchanged in current git

OK. The good news is that 3.16 has appeared in the experimental debian repo, so I'll be able to look into this. There is probably something that changed into the shell code, hard to say. The wonder of javascript.

Any news on this? I'm running shell version 3.16.3 with the pixel-saver version 7.0, on Debian Sid

This is fixed in the current master, the pull request #29 fix it in the commit https://github.com/deadalnix/pixel-saver/commit/d430657ec4a06b5ec6fda682cabb67646f0a0963

This ticket can be closed?

Let's close it.


Text Extractor の出力結果について

Description of the new feature / enhancement
Text Extractor にて取得できた文字列を、通知で知らせてほしい。
Scenario when this would be used?
現状読み取り結果はペーストしないと確認できないため。
Supporting information
No response

Possible route via #25197 is a popup context menu that has both "Copy as Text" vs "Copy as Plain Text" in a Text Extractor that has a popup menu (for things like Translate, etc).

/dup #20305


[Ready for payment][$250] No response when clicking back button and link on not found page

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

Version Number: 9.0.30-15
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @dukenv0307
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1725706526160129
Action Performed:

Create a new workspace
Navigate to Workspace Settings > More Features > Enable Report Field.
In Report Field, add a field, name it, choose a type, and save.
Go to Workspace Chat > Click the plus sign > Submit Expense > Add amount, merchant, and submit.
In Expense report, click on the custom report fields
Edit field id on router and press enter
Notice that page not found is displayed
Try to click back button and link on this page

Expected Result:
Can click the back button and link to go back.
Actual Result:
Can't click the back button and link to go back.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/7df94954-4c6f-4e80-8333-a18c023baab5
https://github.com/user-attachments/assets/a6c99ba3-db1c-4854-b7f5-40d3842e9ec0
Add any screenshot/video evidence

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~021832973509277607149
Upwork Job ID:<PHONE_NUMBER>277607149
Last Price Increase: 2024-09-09
Automatic offers:

DylanDylann | Reviewer | 103901827
nkdengineer | Contributor | 103901829

Issue OwnerCurrent Issue Owner: @kadiealexander

Proposal
Please re-state the problem that we are trying to solve in this issue.
No response when clicking back button and link on not found page
What is the root cause of that problem?
Currently, we are setting 2 functions onBackButtonPress and onLinkPress which are empty here
https://github.com/Expensify/App/blob/4af620b439636f714ff72a26320ed57f9d2faac3/src/pages/EditReportFieldPage.tsx#L70-L71
What changes do you think we should make in order to solve the problem?

We just need to remove the 2 props onBackButtonPress and onLinkPress because we already have the default values here
https://github.com/Expensify/App/blob/4af620b439636f714ff72a26320ed57f9d2faac3/src/components/BlockingViews/FullPageNotFoundView.tsx#L52-L55
What alternative solutions did you explore? (Optional)

Report field config was added in #wave-control, moving this to that project.

@cretadn22 Your improvement looks good. But I think the main fix already be mentioned in @nkdengineer's proposal
Let's go with @nkdengineer's proposal because they go first
🎀 👀 🎀 C+ reviewed

@kadiealexander This issue is ready for payment

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[ ] [@DylanDylann] The PR that introduced the bug has been identified. Link to the PR:
[ ] [@DylanDylann] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[ ] [@DylanDylann] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[ ] [@DylanDylann] Determine if we should create a regression test for this bug.
[ ] [@DylanDylann] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.
[ ] [@kadiealexander] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

Payouts due:

[ ] Contributor: $250 @nkdengineer
[ ] Contributor+: $250 @DylanDylann

Upwork job is here.

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
[@DylanDylann] The PR that introduced the bug has been identified. Link to the PR: NA
[@DylanDylann] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: NA
[@DylanDylann] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: NA
[@DylanDylann] Determine if we should create a regression test for this bug. Yes
[@DylanDylann] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.
Regression Test Proposal

Create a new workspace
Navigate to Workspace Settings > More Features > Enable Report Field.
In Report Field, add a field, name it, choose a type, and save.
Go to Workspace Chat > Click the plus sign > Submit Expense > Add amount, merchant, and submit.
In the Expense report, click on the custom report fields
Edit field ID on router and press enter
Notice that page not found is displayed
Try to click the back button and link on this page
Verify that we can click the back button and link to go back.

Do we agree 👍 or 👎

https://github.com/Expensify/Expensify/issues/432947


Provide Gitter chat room for discussion

I like clean nature of this project. It has a clear README, a website with and even clearer message, and a comprehensive Wiki.
Yet still I'm missing a place where I can ask a quick question without disturbing too much -- given the fact that there are well 100 issues already open.
Would it be possible to create a chat room on Gitter and add a badge to it on top of the README?

Done. Thanks for your suggestion.


packageJson is never undefined

The line checks for packageJson being falsy:
https://github.com/netlify/netlify-plugin-nextjs/blob/2849dc5f7c57e9fd827a939e067a871e4cb487b1/index.js#L21
However, when a site has no package.json, packageJson is an empty object. Therefore, Object.keys(packageJson).length === 0 should be used instead.

Fixed by #29.


get back to main to get the right idle_worker

The idle_worker was wrong because of the change of order of the lines  by accident.  get back to the right order
Description

Related Issue

Motivation and Context

How Has This Been Tested?

Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] Trivial change (affects only documentation or cleanup)

Checklist:

[ ] I have tested this change with a run of GEOSgcm (if non-trivial)
[x] I have added one of the required labels (0 diff, 0 diff trivial, 0 diff structural, non 0-diff)
[x] I have updated the CHANGELOG.md accordingly following the style of Keep a Changelog

Awww nuts. I just merged this and I didn't see it was a hotfix. Well, maybe this will prompt us to make a release of MAPL from develop. cc @tclune


Don't drilldown on click filter

If there is a click filter in a graphic widget avoid drill down action

done in 3.1.43


console.log still present

Hi !
you've got a console.log present in xeditable.js file.
Not on Master but in 0.10.1 release.

Thanks !

Yeah, this looks like it should be fixed in 0.10.2

[bug] Comment out console.log

yep indeed but version 0.10.2 not available on Bower :/

@eugef can you make version 0.10.2 available on Bower?

I've created 0.10.2 tag in Github, hope Bower will pick it up soon

It's all-ready  Done! Thanks you for the quick fix !
Have a good one :)


RunCommands 2018-06-01

For Azure Profile to work properly, we need either:

Each Swagger files to own his operation group
If plug into another operation group from another file, to be consistent with that file.

However, "runCommands" plugs into the operation group VirtualMachines the operation RunCommand. Being that latest VirtualMachines is 2018-06-01 and latest runCommands is 2018-04-01, this breaks the contract and creates Readme that cannot be used for Azure Profile.
Discussed with @hyonholee the first time this occured that in theory when a new Compute is out, RunCommands is out at the same time and this just requires copying the file.
Note that the examples were copied without the Swagger, with the wrong api-version content.

Automation for azure-sdk-for-python

Automation for azure-sdk-for-ruby

Automation for azure-sdk-for-node

Automation for azure-sdk-for-go

Automation for azure-sdk-for-java

@huangpf for review

@lmazuel once this gets erged, please release python sdk of azure-mgmt-compute including everything


feat(protocol): Batch auction impl.

So this is the implementation of the Auction mechanism. Not tested and by any means it is ready !
I'd like to first challenge the design by you, then create tests when we think it is good to go.
You can see interfaces introduced in TaikoL1.sol, but some desc.:

bidForBatch() : Bids for a batch with the following struct:

    struct Bid {
        uint256 batchId;
        address prover;
        uint64 deposit;
        uint64 feePerGas;
    }

batchId can be determined for a block by calling: blockIdToBatchId(uint256 blockId)

Batches currently a range of 100 and this: id(0): 1..100, id(1): 101..200, etc.

isBlockProvableBy(uint256 blockId, address prover) : It return if a block is proveable by that specified address. It can return true in 2 cases :
1: address owns the winning bid (auction bid window elapsed, but proofTime window not yet),
2: an address tho does not own the winning bid, but the proof window (currently set to 2 horus) elapsed

isBidAcceptable(TaikoData.Bid calldata bid) : A helper for the clients, to know if their wannabe bids can be accepted based on the criteria (either bc there is not yet a bid, or 90% better then the current winning bid)
- isBatchAuctionable(uint256 batchId): Again a helper, to see if auction is ongoing (either bc. there is no bid, or there is at least one bid but the time for auction window not yet elapsed)

Open questions:

Reward distribution mechanism is:  (see _markBlockVerified())

If the winning bidder submits a proof per given block, it gets back his deposit / block + the reward.
If 'anoyne' submitted a block (so outside of proof window), it gets the reward + the half of the deposit/ block.
Is it OK ? Shall i modify something ?

Currently the proposer fee is tied to averageRewardPerBlock() (because i cannot tie it to average fee per gas, because at proposal only the gasLimit is available).

Is it OK ? If so, what should happen when there is no data available for the average ?
If not ok, what would be the preferred way ?

@adaki2004 Do you think we can get this done by the end of this week?

@adaki2004 Do you think we can get this done by the end of this week?

I'm almost sure with testing + simulation it is a no. Excluding test + simulaiton, yes.

Lets get to core impl done, and worry about testing later

If 'anoyne' submitted a block (so outside of proof window), it gets the reward + the half of the deposit/ block.
Is it OK ? Shall i modify something ?

The other half gets burnt

Currently the proposer fee is tied to averageRewardPerBlock() (because i cannot tie it to average fee per gas, because at proposal only the gasLimit is available).

Is it a good idea to charge avgFeePerGas * gasLimit then refund avgFeePerGas * (gasLimit - gasUsed) when the block is verified?

Would another public helper, to extend isBidBetter, be helpful, like minimumNextBidForBatch?


[BUG] Footer Overflow on HomePage

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
##Issue
Currently the footer is badly messed up and is not resposive. Check https://hertzbeat.com/

Expected Behavior
##Suggested Changes / Mockups
The footer to be made responsive and overflow should be prevented, with some color changes to distinguish it from the rest of the body.
-Mockup
Screencast from 20-05-23 05:58:46 PM IST.webm
Steps To Reproduce
inspect the navbar for respnsiveness and go below 900px
Environment
HertzBeat version(s):

Debug logs
No response
Anything else?
No response

@tomsun28 please confirm whether I can start working on this, more than pleased to do so.

Check Pull #973

Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑🤝🧑👫🧑🏿🤝🧑🏻👩🏾🤝👨🏿👬🏿

Check Pull #973

@tomsun28 please confirm whether I can start working on this, more than pleased to do so.

ok 👍👍


C++14 only?

Does this only support compilers which support c++14?

It should only require C++11. Are you getting an error? What compiler and compiler version?

I saw 50f92fe528e77da82197fd947d1cf9b0a82a0c7d made the requirements to C++14, but the current codebase does not use any C++14 feature I think.  Is there a future plan to, say, use remove_reference_t and enable_if_t`` instead of the aliases in alure2-aliases.h`?

I more did that just so I (and any future contributor) knows C++14 is fine now. Not sure when I'll get around to doing anything with it, but it's okay to use.


Compile the project once

Compiling on ARM takes a lot of time, especially PCL! What is the best way to compile PCL once for all and save its binaries and libraries so I can simply transfer to another ARM machine? I tried to simply make the PCL independently and then install its binaries to some folder and use that but getting an error at:
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
CMake Error at /opt/ros/melodic/share/dynamic_reconfigure/cmake/dynamic_reconfigure-macros.cmake:80 (add_custom_target):
  add_custom_target cannot create target "pcl_ros_gencfg" because another
  target with the same name already exists.  The existing target is a custom
  target created in source directory "/home/abyl/right-wheel/src/laser_icp".
  See documentation for policy CMP0002 for more details.
Call Stack (most recent call first):
  perception_pcl/pcl_ros/CMakeLists.txt:70 (generate_dynamic_reconfigure_options)

Good morning :)
You can use catkin to create an "installable" version of the packages.
For enabling it in a catkin_tools workspace:
catkin config --install
For disabling it:
catkin config --no-install
More info:
https://catkin-tools.readthedocs.io/en/latest/verbs/catkin_config.html#installing-packages
The older catkin_make can also generate the install space:
http://wiki.ros.org/catkin/Tutorials/using_a_workspace#Installing_Packages
You can also generate a deb package from the install space for making it easier to install.
There are several ways to achieve this:

bloom

https://answers.ros.org/question/173804/generate-deb-from-ros-package/?answer=173845#post-id-173845

CheckInstall
dpkg-buildpackage
CPack

Thanks :)  But the error I am getting, do you have an answer for that? Because even if I create a .deb package of your version PCL I might still get that issue

You seem to have in /home/abyl/right-wheel/src/laser_icp a target conflicting with pcl_ros
Both seem to be generating pcl_ros_gencfg.
Check the CMakeLists.txt of laser_icp

Yes but I do not see any conflicts in my CMakeLists, may be you can spot something irregular?
cmake_minimum_required(VERSION 2.8.3)
project(laser_icp)

add_compile_options(-std=c++17)

find_package(catkin REQUIRED COMPONENTS
  roscpp
  nodelet
  sensor_msgs
  tf2
  tf2_ros
  pcl_ros
  pcl_conversions
  geometry_msgs
  nav_msgs
)

find_package(catkin REQUIRED)
find_package(PCL REQUIRED)
find_package(PkgConfig)

include_directories(include ${catkin_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS})

catkin_package(
  INCLUDE_DIRS include
  LIBRARIES laser_icp
  CATKIN_DEPENDS roscpp
)

The error is pointing at conflicts with dynamic_reconfigure here:
https://github.com/ros-perception/perception_pcl/blob/melodic-devel/pcl_ros/CMakeLists.txt#L70
Unless you remove parts of the cmakelists above, I do not see conflicts.
I normally use a cmake variable for dealing with package dependencies (that should be included in find_package and catkin_depends).
Look here for an example:
https://github.com/carlosmccosta/dynamic_robot_localization/blob/kinetic-devel/CMakeLists.txt#L10
You also have a repeared find_package of catkin and in catkin_package are declaring a library that was not created with add_library (laser_icp).

What parts of the Cmakelists should be removed?

Sorry, I meant that it looks like you did not posted the full contents of the cmakelists file.
For example, you declared a library in catkin_package but it was not created with add_library.

Oh okay, but I do not think it causes any errors, here is the rest:
add_library(laser_icp src/laser_icp.cpp)

# We don't link against pcl because we are using header only parts
target_link_libraries(laser_icp ${catkin_LIBRARIES})
add_dependencies(laser_icp ${catkin_EXPORTED_TARGETS})

# Nodelet
add_library(laser_icp_nodelet src/laser_icp_nodelet.cpp)
target_link_libraries(laser_icp_nodelet laser_icp)

# Node
add_executable(laser_icp_node src/laser_icp_node.cpp)
target_link_libraries(laser_icp_node laser_icp)

So I actually used the Cmake variable to set the ROS packages and used find catkin, like in your example and it worked.. Interesting, does it mean I was declaring them twice which caused the error? I am reading about cmake once more... Never encountered such problem before.

If you deviate from the normal usage of cmakelists.txt and package.xml (such as finding catkin twice, not exporting deps, ...) you may encounter strange errors such as the one you mentioned.
For making you life as pain free as possible, I suggest you follow the advice given in these docs:

http://wiki.ros.org/catkin/CMakeLists.txt
http://wiki.ros.org/catkin/package.xml

@abylikhsanov what was the solution? I get this when compiling two projects that both use pcl. If my ROS_WS only contains one project with PCL I do not get this same issue as you.

Hello,
I suggest you create a variable for the package dependencies and use it in find_package and catkin_depends:
Variable:
https://github.com/carlosmccosta/dynamic_robot_localization/blob/noetic-devel/CMakeLists.txt#L10
Places where to use it:
https://github.com/carlosmccosta/dynamic_robot_localization/blob/noetic-devel/CMakeLists.txt#L39
https://github.com/carlosmccosta/dynamic_robot_localization/blob/noetic-devel/CMakeLists.txt#L86
Have a nice day,


Update filepaths to use

Update paths to use os.path.join() for better readability

@microsoft-github-policy-service agree

IMHO this doesn't really help readability and if that's the aim it would be better to use Pathlib

I'll take a look at Pathlib and use that rather than os.path.join()

Great work! Simplifies things particularly where you reuse a base path as was possible in a few of the later files


Create GitHub Action to bookdown::render_book() to keep up with any changes in other repos

Not sure about frequency, but this will avoid having to remember to re-render the book every time one of the md files we read into it is updated in its original repo. Suggest once a day, unless there's a clever way of watching all the connected repos - that might be over-engineering it?

Closing as duplicate (see #18)


Correct way to provide Azure storage resource ID to access multiple storage accounts

Our use case:
We have multiple storage accounts in use per environment. When requesting oauth token, is it possible to provide a resource ID that can access multiple storage accounts within a single environment?
For instance:
One of our environment(env1) has following storage accounts:

https://env1-a.blob.core.windows.net
https://env1-b.blob.core.windows.net

Another of our environment(env2) has following storage accounts:

https://env2-a.blob.core.windows.net
https://env2-b.blob.core.windows.net

Would it be possible to provide resource ID that can access all of storage accounts in env1?
Using https://storage.azure.com/.default will essentially make the token access to all storage accounts in azure so it won't work.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: d02de0bf-09d7-a7fc-1b4a-213426e96b2d
Version Independent ID: 36f6c8fe-6bc1-6643-4b66-2c38bcd2e5f0
Content: Acquire a token from Azure AD for authorizing requests from a client application - Azure Storage
Content Source: articles/storage/common/storage-auth-aad-app.md
Service: storage
Sub-service: common
GitHub Login: @tamram
Microsoft Alias: tamram

@li-leyang Thanks for the question! We are investigating and will update you shortly.

Thanks @SubhashVasarapu-MSFT Let me know if there is any update on this.

Hello, is there any update on this?

@li-leyang Firstly apologies for delay in responding here!  I'd recommend posting your question in https://azure.microsoft.com/en-us/support/community/ since it's not directly related to the documentation. We'll follow up there. We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Proposal: how we could describe an individual test case

This PR explores how we could describe an individual test case. The idea would be to then aggregate multiple such tests to assess a function / package and build human-readable documentation.
Besides test cases, we could also define formats for sharing bugs or discrepancies from other implementaitons -> different topic though.
Would be cool to see whether we can run these atomic test cases in GH actions.

In General, we should consider to standardize to the CSA guidance. Maybe the structure for "Assurance Activity
Scripted Testing: Robust" would maybe fit what we intend to so here?


add type face and fix styled attribute titles

new function added : update icon with resource id
new function added : update type face of text
add type face to styled attributes for using in xml
changed styled attribute names to prevent conflicts with other libraries

this is awesome work you have did..much appreciated.

thanks a lot dear @webianks . Don't forget to update the Readme too. I forgot 😄

yes I will update


Update Link to You Don't Know JS Book

The link to the book was the same link as the Scope in JavaScript - HTTP 203 video because they were both named [scope]

Thanks @IrisvanOllefen  🎉


How nested functions are used in Python

Topic Suggestion
How nested functions are used in Python?
Proposed article introduction
In this article we will look at examples of the benefits of nested Python functions and how to use them to encapsulate code, closures, and decorators.
Nested (or inner, nested) functions are functions that we define inside other functions to directly access the variables and names defined in the enclosing function. Nested functions have many uses, primarily for creating closures and decorators.
In this article, we will

learn how to provide encapsulation and hide functions from external access

write helper functions to make code easier to reuse

implement closures to persist state between calls

Article quality
In this article will be different from the ones available in the internet since it includes some steps which are not included in those articles. We will also create decorators to add behaviour to existing functions.

Good afternoon and thank you for submitting your topic suggestion.
Your topic form has been entered into our queue and should be reviewed (for approval) as soon as a content moderator is finished reviewing the ones in the queue before it. 🚀

Thank you for submitting your topic. @Ghassany
After some careful consideration, it struck us that this topic may be a bit over-saturated throughout other blog sites and official documentation.
We believe this is the best way for students to build a great portfolio (for potential employers) is by building what does not exist and what can provide the most value.
Please feel free to suggest an alternate topic to explore. 🚀


New release?

Hi Seth,
do you have any plans to release the changes/fixes of the recent months? Is there something we can help with?
Best regards,
Jochen

Hi @geewiz
I do not have a release planned at this time.
Best,
Seth

Hi @sethvargo, sorry to bother you again!
Some more background to my question: We're trying to import hundreds of data bag items from our Chef server and the import failed somewhere in between with a 401 error. This looked like issue #39.
Today, I managed to verify my assumption by cutting my own gem version from master. The import finished successfully.
Now I'm unsure how to get a current gem into our production application on Heroku. What would you recommend?
Best regards,
Jochen


Flashing instructions for RPI4

Hi,
I am trying to find instructions required for flashing RPI4. However, looks like I am constantly getting bad flashing on my SDcard and unable to move forward. Looking for some support if possible.
I cloned glodroid code and built it successfully.
I ran both:

m -j16 systemimage vendorimage ramdisk
make images

I thought I will flash all the partitions using dd command and get it done.
However, after flashing, the device is not booting at all. All I see is a blank screen.
Next, I tried flashing images from images.tar.gz. When I untar the files, I first flashed deploy-sd.img through rpi-imager tool. But tht produced bad GPT partition. I figured this out when I run gparted program in Ubuntu machine. It showed that the partition is corrupted. RPI4 too did not recognize the recovery partitions and failed to boot successfully.
Any help will be greatly appreciated.

Hi @amsurana ,
Our manifest repo is more appropriate place for such kind of issues.

RPI4 too did not recognize the recovery partitions and failed to boot successfully.

It should enter fastboot mode and further flashing should be done via fastboot, by running flash-sd.sh script. Please follow manual from manifest repo: https://github.com/GloDroid/glodroid_manifest#step-3


[Solution Included]pywren-config default is not properly setuped: making NoSuchBucket error.

Environ

OS X 10.12.6 ( Sierra )
Python3 (aws-cli installed/setuped)

Situation
When I followed getting started, I setup aws correctly however it doesn't work, providing "NoSuchBucket" Error.
Error Trace log
$ pywren-setup
This is the PyWren interactive setup script
Your AWS configuration appears to be set up, and your account ID is xxxxxxxxxxxx
This interactive script will set up your initial PyWren configuration.
If this is the first time you are using PyWren then accepting the defaults should be fine.
What is your default aws region? [us-west-2]: ap-northeast-2
Location for config file:  [/Users/beomi/.pywren_config]:
PyWren requires an s3 bucket to store intermediate data. What s3 bucket would you like to use? [beomi-pywren-xxx]:
Bucket does not currently exist, would you like to create it? [Y/n]: y
PyWren prefixes every object it puts in S3 with a particular prefix.
PyWren s3 prefix:  [pywren.jobs]: lamlam
Would you like to configure advanced PyWren properties? [y/N]: n
PyWren standalone mode uses dedicated AWS instances to run PyWren tasks. This is more flexible, but more expensive with fewer simultaneous workers.
Would you like to enable PyWren standalone mode? [y/N]: n
Creating config /Users/beomi/.pywren_config
new default file created in /Users/beomi/.pywren_config
lambda role is pywren_exec_role_1
Creating bucket beomi-pywren-xxx.
Creating role.
Deploying lambda.
Pausing for 5 seconds for changes to propagate.
Pausing for 5 seconds for changes to propagate.
Pausing for 5 seconds for changes to propagate.
Successfully created function.
Pausing for 10 sec for changes to propagate.
Traceback (most recent call last):
  File "/Users/beomi/.virtualenvs/tmp/bin/pywren-setup", line 11, in <module>
    sys.exit(interactive_setup())
  File "/Users/beomi/.virtualenvs/tmp/lib/python3.5/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/Users/beomi/.virtualenvs/tmp/lib/python3.5/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/Users/beomi/.virtualenvs/tmp/lib/python3.5/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/beomi/.virtualenvs/tmp/lib/python3.5/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/Users/beomi/.virtualenvs/tmp/lib/python3.5/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/Users/beomi/.virtualenvs/tmp/lib/python3.5/site-packages/pywren/scripts/setupscript.py", line 208, in interactive_setup
    ctx.invoke(pywrencli.test_function)
  File "/Users/beomi/.virtualenvs/tmp/lib/python3.5/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/Users/beomi/.virtualenvs/tmp/lib/python3.5/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/Users/beomi/.virtualenvs/tmp/lib/python3.5/site-packages/pywren/scripts/pywrencli.py", line 374, in test_function
    wrenexec = pywren.default_executor(config=config)
  File "/Users/beomi/.virtualenvs/tmp/lib/python3.5/site-packages/pywren/wren.py", line 21, in default_executor
    return lambda_executor(**kwargs)
  File "/Users/beomi/.virtualenvs/tmp/lib/python3.5/site-packages/pywren/wren.py", line 37, in lambda_executor
    return Executor(invoker, config, job_max_runtime)
  File "/Users/beomi/.virtualenvs/tmp/lib/python3.5/site-packages/pywren/executor.py", line 40, in __init__
    self.runtime_meta_info = runtime.get_runtime_info(config['runtime'])
  File "/Users/beomi/.virtualenvs/tmp/lib/python3.5/site-packages/pywren/runtime.py", line 10, in get_runtime_info
    runtime_meta = storage.get_runtime_info(runtime_config)
  File "/Users/beomi/.virtualenvs/tmp/lib/python3.5/site-packages/pywren/storage/storage.py", line 112, in get_runtime_info
    json_str = handler.get_object(key)
  File "/Users/beomi/.virtualenvs/tmp/lib/python3.5/site-packages/pywren/storage/s3_backend.py", line 42, in get_object
    raise e
  File "/Users/beomi/.virtualenvs/tmp/lib/python3.5/site-packages/pywren/storage/s3_backend.py", line 35, in get_object
    r = self.s3client.get_object(Bucket=self.s3_bucket, Key=key)
  File "/Users/beomi/.virtualenvs/tmp/lib/python3.5/site-packages/botocore/client.py", line 312, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/Users/beomi/.virtualenvs/tmp/lib/python3.5/site-packages/botocore/client.py", line 605, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.errorfactory.NoSuchBucket: An error occurred (NoSuchBucket) when calling the GetObject operation: The specified bucket does not exist

Solution
As Trace log says "NoSuchBucket", So I changed my .pywren_config file's settings.

Note: xxxxx masking for security.

Before
account:
    aws_account_id: xxxxxxxxxx
    aws_lambda_role: pywren_exec_role_1
    aws_region: ap-northeast-2

lambda:
    memory : 1536
    timeout : 300
    function_name : pywren_1

s3:
    bucket: beomi-pywren-xxx
    pywren_prefix: lamlam

runtime:
    s3_bucket: pywren-public-ap-northeast-2
    s3_key: pywren.runtimes/default_3.5.meta.json

scheduler:
    map_item_limit: 10000

standalone:
    ec2_instance_type: m4.4xlarge
    sqs_queue_name: pywren-jobs-1
    visibility: 10
    ec2_ssh_key : xxxxxxxxx
    target_ami : ami-xxxxxxxxx
    instance_name: pywren-standalone
    instance_profile_name: pywren-standalone
    max_idle_time: 60
    idle_terminate_granularity: 3600

After
account:
    aws_account_id: xxxxxxxxxx
    aws_lambda_role: pywren_exec_role_1
    aws_region: ap-northeast-2

lambda:
    memory : 1536
    timeout : 300
    function_name : pywren_1

s3:
    bucket: beomi-pywren-xxx
    pywren_prefix: lamlam

runtime:
    s3_bucket: pywren-public-us-west-2
    s3_key: pywren.runtimes/default_3.5.meta.json

scheduler:
    map_item_limit: 10000

standalone:
    ec2_instance_type: m4.4xlarge
    sqs_queue_name: pywren-jobs-1
    visibility: 10
    ec2_ssh_key : xxxxxxxxx
    target_ami : ami-xxxxxxxxx
    instance_name: pywren-standalone
    instance_profile_name: pywren-standalone
    max_idle_time: 60
    idle_terminate_granularity: 3600

As you see, I've changed runtime settings from runtime: s3_bucket: pywren-public-ap-northeast-2 to runtime: s3_bucket: pywren-public-us-west-2, then It worked properly.

Hi @Beomi ! This is actually because we never deployed our runtimes to the region ap-northeast-2. Would you like us to? We also should throw up an error if someone tries to do an install in a currently-unsupported region. Thank you so much for the incredibly clear bug !

Hello @ericmjonas  :D
I've just successfully deployed your example code: flops_benchmark.py
And Surely I've deployed with ap-northeast-2 region.
However, there was another problem with example code: flops_benchmark.py.
It was made for python2, but I use python3 now. So I made it works in python3, and updated code for latest version(0.3.0) of pywren.
And the result, now working well!

Please close this issue when you look and accept #221 :smile:

Ok based on your config you appear to be running pywren.runtimes/default_3.5.meta.json. Can you try using the bucket pywren-public-ap-northeast-2 ?

Result
Nope. not working when I changed runtime.
from:
runtime:
    s3_bucket: pywren-public-us-west-2
    s3_key: pywren.runtimes/default_3.6.meta.json

to:
runtime:
    s3_bucket: pywren-public-ap-northeast-2
    s3_key: pywren.runtimes/default_3.6.meta.json

Error Trace log
(pywren)  ~/coding/pywren_org/examples/benchmark_flops   master  python flops_benchmark.py
Traceback (most recent call last):
  File "flops_benchmark.py", line 106, in <module>
    run_benchmark()
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "flops_benchmark.py", line 97, in run_benchmark
    res = benchmark(loopcount, workers, matn)
  File "flops_benchmark.py", line 20, in benchmark
    pwex = pywren.lambda_executor()
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/pywren/wren.py", line 37, in lambda_executor
    return Executor(invoker, config, job_max_runtime)
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/pywren/executor.py", line 40, in __init__
    self.runtime_meta_info = runtime.get_runtime_info(config['runtime'])
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/pywren/runtime.py", line 10, in get_runtime_info
    runtime_meta = storage.get_runtime_info(runtime_config)
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/pywren/storage/storage.py", line 112, in get_runtime_info
    json_str = handler.get_object(key)
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/pywren/storage/s3_backend.py", line 42, in get_object
    raise e
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/pywren/storage/s3_backend.py", line 35, in get_object
    r = self.s3client.get_object(Bucket=self.s3_bucket, Key=key)
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/botocore/client.py", line 312, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/botocore/client.py", line 605, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the GetObject operation: Access Denied

It seems that pywren-public-ap-northeast-2 is not opened to public. isn't it?

I'm running py3.6 on laptop and 3.5 on iMac :)
Don't suprised when python version is changed 😄

Ha oh no, i forgot to make the bucket public. I think I just fixed it, try
one more time? Thanks to @vaishaal for helping with acls
On Sun, Oct 29, 2017 at 5:16 PM, Beomi<EMAIL_ADDRESS>wrote:

I'm running py3.6 on laptop and 3.5 on iMac :)
Don't suprised when python version is changed 😄
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pywren/pywren/issues/220#issuecomment-340315119, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AACPEtWALpQEPYVPS70_lz2hbOHctIhaks5sxRV2gaJpZM4QJ01o
.

Still Error occurs. but different problem!
Trace log
$ python bench.py
Traceback (most recent call last):
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/pywren/storage/s3_backend.py", line 35, in get_object
    r = self.s3client.get_object(Bucket=self.s3_bucket, Key=key)
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/botocore/client.py", line 312, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/botocore/client.py", line 605, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.errorfactory.NoSuchKey: An error occurred (NoSuchKey) when calling the GetObject operation: The specified key does not exist.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "bench.py", line 106, in <module>
    run_benchmark()
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "bench.py", line 97, in run_benchmark
    res = benchmark(loopcount, workers, matn)
  File "bench.py", line 20, in benchmark
    pwex = pywren.lambda_executor()
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/pywren/wren.py", line 37, in lambda_executor
    return Executor(invoker, config, job_max_runtime)
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/pywren/executor.py", line 40, in __init__
    self.runtime_meta_info = runtime.get_runtime_info(config['runtime'])
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/pywren/runtime.py", line 10, in get_runtime_info
    runtime_meta = storage.get_runtime_info(runtime_config)
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/pywren/storage/storage.py", line 112, in get_runtime_info
    json_str = handler.get_object(key)
  File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/pywren/storage/s3_backend.py", line 40, in get_object
    raise StorageNoSuchKeyError(key)
pywren.storage.exceptions.StorageNoSuchKeyError: No such key pywren.runtimes/default_3.6.meta.json found in storage.

It seems that pywren.runtimes/default_3.6.meta.json does not exist in pywren-public-ap-northeast-2S3 Bucket!

Ha, great, so I had only deployed the 3.5 runtime; let me do the others !
On Mon, Oct 30, 2017 at 1:06 AM, Beomi<EMAIL_ADDRESS>wrote:

Still Error occurs. but different problem!
Trace log
$ python bench.py
Traceback (most recent call last):
File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/pywren/storage/s3_backend.py", line 35, in get_object
r = self.s3client.get_object(Bucket=self.s3_bucket, Key=key)
File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/botocore/client.py", line 312, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/botocore/client.py", line 605, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.errorfactory.NoSuchKey: An error occurred (NoSuchKey) when calling the GetObject operation: The specified key does not exist.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "bench.py", line 106, in
run_benchmark()
File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/click/core.py", line 722, in call
return self.main(*args, **kwargs)
File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "bench.py", line 97, in run_benchmark
res = benchmark(loopcount, workers, matn)
File "bench.py", line 20, in benchmark
pwex = pywren.lambda_executor()
File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/pywren/wren.py", line 37, in lambda_executor
return Executor(invoker, config, job_max_runtime)
File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/pywren/executor.py", line 40, in init
self.runtime_meta_info = runtime.get_runtime_info(config['runtime'])
File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/pywren/runtime.py", line 10, in get_runtime_info
runtime_meta = storage.get_runtime_info(runtime_config)
File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/pywren/storage/storage.py", line 112, in get_runtime_info
json_str = handler.get_object(key)
File "/Users/beomi/.virtualenvs/pywren/lib/python3.6/site-packages/pywren/storage/s3_backend.py", line 40, in get_object
raise StorageNoSuchKeyError(key)
pywren.storage.exceptions.StorageNoSuchKeyError: No such key pywren.runtimes/default_3.6.meta.json found in storage.
It seems that pywren.runtimes/default_3.6.meta.json does not exist in
pywren-public-ap-northeast-2S3 Bucket!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pywren/pywren/issues/220#issuecomment-340370232, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AACPEi88AHIhhDwCxKfMkh4VUr-hDcBEks5sxYNtgaJpZM4QJ01o
.

Ok try one more time?

Works fine!

@ericmjonas And one more, would you check PR Add Support for python3 / Remove unused options #8 on example repo plz? :)

Is eu-west-1 supported? getting the same error.

Same issue with eu-west-1. Any plans to copy public runtime bucket there?

So, the point is we have to change .pywren option by self, and it would be good if there is guide for setup new bucket and ami for another region by any user itself.
Any ideas?

Same issue with eu-west-1. Any plans to copy public runtime bucket there?

Had this same problem, and this comment helped me to get around it. https://github.com/pywren/pywren/issues/252


Expected response code 250 but got code "552"

Q
A

Bug report?
yes/no

Feature request?
yes/no

RFC?
yes/no

How used?
Standalone/Symfony/3party

Swiftmailer version
5.4.8

PHP version
5.6.25

Observed behaviour
I am using Expected response code 250 but got code "552", with message "552 message line is too long "
Question
I was just wondering where this error comes from. Is it straight from the mail server? Or is this a SwiftMailer error? Also, is this related to a body parameter that's too big?

It comes from the mail server. So yes your mail is too big. Did you attached a lot?

I face similer issue when attached file size of Bigger then the limit like
->attach(\Swift_Attachment::fromPath($this->get('kernel')->getRootDir(). "/../web/".'invoice.pdf'))

got code "552", with message "552-5.2.3 Your message exceeded Google's message size limits. Please visit 552-5.2.3  https://support.google.com/mail/?p=MaxSizeError to view our size 552 5.2.3 guidelines.

Closing, as there is no bug in Swiftmailer.


Doctrine mapping with PHP Attributes

I'm currently updating my shop to use PHP attributes for the doctrine mapping and this plugin doesn't seem to support them yet.
Any plans in supporting doctrine mapping via PHP attributes (instead of annotations)?
Thanks!

@dsbe-ak thanks for reporting this issue.
You can now upgrade to package version v1.4.1 and also use PHP attributes for doctrine mappings with this plugin.

Thank you very much!


[simulation] use fixed radio frame transmission delay

Required by https://github.com/openthread/openthread/pull/6476

Codecov Report

Merging #117 (d73c82c) into master (5d4f76d) will decrease coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #117      +/-   ##
==========================================
- Coverage   49.95%   49.94%   -0.02%
==========================================
  Files          38       38
  Lines        4604     4603       -1
==========================================
- Hits         2300     2299       -1
  Misses       2122     2122
  Partials      182      182

Impacted Files
Coverage Δ

dispatcher/dispatcher.go
57.18% <100.00%> (-0.07%)
:arrow_down:


PopoverService: New design

Description
Fixes https://github.com/MudBlazor/MudBlazor/issues/6498
Now long read:

I have refactored the current MudPopoverService implementation and its related components, moving them to the "Service" folder. Additionally, I have split the classes into separate files. This separation allows us to maintain a cleaner codebase by avoiding the mixing of services and components, as they belong to different folders. Despite these changes, the namespace remains unchanged to ensure compatibility.
By splitting the classes into separate files, we also gain the advantage of faster code navigation. It is generally recommended to split classes into separate files, except in cases where classes, interfaces, enums, etc., are nested within another class. This approach enhances code organization and makes it easier to locate and work with specific components.
I have introduced the ObserverManager as a replacement for the C# event mechanism. This new class will play a significant role in v7, as I plan to leverage it extensively to handle events in an observer manner. This approach will allow us to eliminate the usage of async void in many areas.
The ObserverManager provides a flexible and easily extensible solution. For instance, if we want to incorporate a timer that automatically unsubscribes inactive subscriptions, it can be implemented with just a few lines of code. While I haven't implemented this feature in the current codebase to avoid unnecessary complexity, it highlights the immense potential of the ObserverManager class.
It should be used only internally.
I have implemented a new feature called BatchPeriodicQueue which serves an important purpose in the new PopoverService implementation. This queue allows us to add items to the queue and then receive periodic notifications at a specified time interval, containing all the items that were queued.
While I'm not certain if this specific functionality will be applicable in other parts of the codebase, it plays a crucial role within the context of the PopoverService. By utilizing the BatchPeriodicQueue, we can efficiently manage and process queued items in batches, improving performance.
It should be used only internally.
The current design of the MudPopoverService presents several challenges that can be deceptive at first glance. While the initial registration of a RenderFragment may seem simple, it quickly becomes complex due to the subsequent handling of the MudPopoverHandler, including the need to store it in the Popover component. Knowing when and where to call methods such as Initialize, SetComponentBaseParameters, and UpdateFragment adds further confusion. Additionally, both the Popover component and the MudPopoverService utilize the MudPopoverHandler, making it unclear who bears which responsibilities. It is also crucial not to overlook the usage of InitializeIfNeeded on the MudPopoverService, adding another layer of complexity. The dependency on MudComponentBase for SetComponentBaseParameters further complicates matters.
However, with the introduction of the new PopoverService, all these problems are eliminated. This revamped service automatically determines when initialization is required and assumes all necessary responsibilities. It offers three main methods: CreatePopoverAsync, UpdatePopoverAsync, and DestroyPopoverAsync, which provide a straightforward approach to managing popovers. The improved API naming also contributes to better clarity, as the old naming conventions proved confusing.
Furthermore, the PopoverService incorporates an interface called IPopover and a base class called PopoverBase to facilitate easy implementation of custom Popover components. This approach opens up possibilities for extending the interface and base class to incorporate new features, such as the proposed rendering queue mentioned in the discussion linked here: GitHub Issue #6498. In contrast, the previous approach would likely have required an API-breaking change.
Overall, the new PopoverService provides a significantly improved alternative to the previous implementation. By leveraging interfaces and base classes, developers can create their own Popover components and seamlessly integrate them with the PopoverService. This updated design not only resolves existing issues but also allows for easy future enhancements without compromising compatibility.

IPopoverService API
/// <summary>
/// Represents a service for managing popovers.
/// </summary>
public interface IPopoverService : IAsyncDisposable
{
  /// <summary>
  /// Gets the current popover options.
  /// </summary>
  PopoverOptions PopoverOptions { get; }

  /// <summary>
  /// Gets the collection of active popovers that were created via <see cref="CreatePopoverAsync"/>. Disappears from collection after calling <see cref="DestroyPopoverAsync"/>.
  /// </summary>
  IEnumerable<IMudPopoverState> ActivePopovers { get; }

  /// <summary>
  /// Gets a value indicating whether the <see cref="IPopoverService"/> is initialized.
  /// </summary>
  /// <value>
  /// <c>true</c> if the <see cref="IPopoverService"/> is initialized; otherwise, <c>false</c>.
  /// </value>
  bool IsInitialized { get; }

  /// <summary>
  /// Subscribes an observer to receive popover update notifications.
  /// </summary>
  /// <param name="observer">The observer to subscribe.</param>
  void SubscribeOnPopoverUpdate(IPopoverObserver observer);

  /// <summary>
  /// Unsubscribes an observer from receiving popover update notifications.
  /// </summary>
  /// <param name="observer">The observer to unsubscribe.</param>
  void UnsubscribeOnSubscribeOnPopoverUpdate(IPopoverObserver observer);

  /// <summary>
  /// Creates a popover.
  /// </summary>
  /// <param name="mudPopover">The popover to create.</param>
  Task CreatePopoverAsync(IPopover mudPopover);

  /// <summary>
  /// Updates an existing popover.
  /// </summary>
  /// <param name="mudPopover">The popover to update.</param>
  /// <returns><c>true</c> if the update was successful; otherwise, <c>false</c>.</returns>
  Task<bool> UpdatePopoverAsync(IPopover mudPopover);

  /// <summary>
  /// Destroys a popover.
  /// </summary>
  /// <param name="mudPopover">The popover to destroy.</param>
  /// <returns>The task result indicates whether the popover was successfully destroyed.</returns>
  Task<bool> DestroyPopoverAsync(IPopover mudPopover);

  /// <summary>
  /// Counts the number of popover providers.
  /// </summary>
  /// <returns>The task result contains the count of popover providers.</returns>
  ValueTask<int> CountProvidersAsync();
}

IPopoverObserver API
/// <summary>
/// Represents an observer for popover updates.
/// </summary>
public interface IPopoverObserver
{
    /// <summary>
    /// Gets the unique identifier of the observer.
    /// </summary>
    public Guid Id { get; }

    /// <summary>
    /// Notifies the observer of a popover collection update in <see cref="IPopoverService.ActivePopovers"/>.
    /// This notification is triggered only when <see cref="IPopoverService.CreatePopoverAsync"/> or <see cref="IPopoverService.DestroyPopover"/> is called.
    /// </summary>
    /// <param name="state">The updated state of the popover.</param>
    /// <remarks>
    /// Please note that this notification will not be triggered when <see cref="IPopoverService.UpdatePopover"/> is called.
    /// </remarks>
    public Task PopoverCollectionUpdatedNotification(IMudPopoverState state);
}

IPopover API
/// <summary>
/// Represents a popover component.
/// </summary>
public interface IPopover
{
    /// <summary>
    /// Gets the unique identifier of the popover.
    /// </summary>
    Guid Id { get; }

    /// <summary>
    /// Gets the CSS class of the popover.
    /// </summary>
    public string PopoverClass { get; }

    /// <summary>
    /// Gets the inline styles of the popover.
    /// </summary>
    public string PopoverStyles { get; }

    /// <summary>
    /// If true, the popover is visible.
    /// </summary>
    bool Open { get; set; }

    /// <summary>
    /// Use Tag to attach any user data object to the component for your convenience.
    /// </summary>
    object? Tag { get; set; }

    /// <summary>
    /// UserAttributes carries all attributes you add to the component that don't match any of its parameters.
    /// They will be splatted onto the underlying HTML tag.
    /// </summary>
    Dictionary<string, object> UserAttributes { get; set; }

    /// <summary>
    /// Child content of the component.
    /// </summary>
    RenderFragment? ChildContent { get; set; }
}

BatchPeriodicQueue API
/// <summary>
/// Represents a batch periodic queue for managing items of type <typeparamref name="T"/>.
/// </summary>
/// <typeparam name="T">The type of items in the queue.</typeparam>
internal class BatchPeriodicQueue<T> : IAsyncDisposable
{
    /// <summary>
    /// Initializes a new instance of the <see cref="BatchPeriodicQueue{T}"/> class with the specified batch timer handler and period.
    /// </summary>
    /// <param name="handler">The batch timer handler.</param>
    /// <param name="period">The time period for triggering batch execution.</param>
    /// <param name="tickOnDispose">Specifies whether to trigger a guaranteed <see cref="IBatchTimerHandler{T}.OnBatchTimerElapsedAsync"/> when calling <see cref="DisposeAsync"/>.</param>
    public BatchPeriodicQueue(IBatchTimerHandler<T> handler, TimeSpan period, bool tickOnDispose = true);

    /// <summary>
    /// Enqueues an item to the batch queue.
    /// </summary>
    /// <param name="item">The item to enqueue.</param>
    public void QueueItem(T item);

    /// <summary>
    /// Gets the count of items in the batch queue.
    /// </summary>
    public int Count { get; }

    /// <summary>
    /// Starts the batch processing asynchronously.
    /// </summary>
    /// <param name="cancellationToken">Indicates that the start process has been aborted.</param>
    /// <returns>A <see cref="Task"/> that represents the asynchronous Start operation.</returns>
    public Task StartBatchAsync(CancellationToken cancellationToken = default);

    /// <summary>
    /// Stops the batch processing asynchronously.
    /// </summary>
    /// <param name="cancellationToken">Indicates that the shutdown process should no longer be graceful.</param>
    /// <returns>A <see cref="Task"/> that represents the asynchronous Stop operation.</returns>
    public Task StopBatchAsync(CancellationToken cancellationToken);

    /// <inheritdoc/>
    public ValueTask DisposeAsync();
}

IBatchTimerHandler API
/// <summary>
/// Represents a handler for batch timer events in conjunction with <see cref="BatchPeriodicQueue{T}"/>.
/// </summary>
/// <typeparam name="TItems">The type of items handled by the batch timer.</typeparam>
internal interface IBatchTimerHandler<in TItems>
{
    /// <summary>
    /// Handles the batch timer elapsed event asynchronously.
    /// </summary>
    /// <param name="items">The collection of items to handle.</param>
    /// <param name="cancellationToken">The cancellation token to cancel the operation.</param>
    /// <returns>A task representing the asynchronous operation.</returns>
    Task OnBatchTimerElapsedAsync(IReadOnlyCollection<TItems> items, CancellationToken cancellationToken = default);
}

ObserverManager API
/// <summary>
/// Maintains a collection of observers.
/// </summary>
/// <typeparam name="TIdentity">The address type, used to identify observers.</typeparam>
/// <typeparam name="TObserver">The observer type.</typeparam>
internal class ObserverManager<TIdentity, TObserver> : IEnumerable<TObserver> where TIdentity : notnull
{
    /// <summary>
    /// Initializes a new instance of the <see cref="ObserverManager{TIdentity,TObserver}"/> class.
    /// </summary>
    /// <param name="log">The log.</param>
    public ObserverManager(ILogger log);

    /// <summary>
    /// Gets the number of observers.
    /// </summary>
    public int Count { get; }

    /// <summary>
    /// Gets a copy of the observers.
    /// </summary>
    public IDictionary<TIdentity, TObserver> Observers { get; }

    /// <summary>
    /// Removes all observers.
    /// </summary>
    public void Clear();

    /// <summary>
    /// Ensures that the provided <paramref name="observer"/> is subscribed, renewing its subscription.
    /// </summary>
    /// <param name="id">The observer's identity.</param>
    /// <param name="observer">The observer.</param>
    public void Subscribe(TIdentity id, TObserver observer);

    /// <summary>
    /// Ensures that the provided <paramref name="id"/> is unsubscribed.
    /// </summary>
    /// <param name="id">The observer.</param>
    public void Unsubscribe(TIdentity id);

    /// <summary>
    /// Notifies all observers.
    /// </summary>
    /// <param name="notification">The notification delegate to call on each observer.</param>
    /// <param name="predicate">The predicate used to select observers to notify.</param>
    /// <returns>A <see cref="Task"/> representing the work performed.</returns>
    public Task NotifyAsync(Func<TObserver, Task> notification, Func<TObserver, bool>? predicate = null);

    /// <summary>
    /// Notifies all observers which match the provided <paramref name="predicate"/>.
    /// </summary>
    /// <param name="notification">The notification delegate to call on each observer.</param>
    /// <param name="predicate">The predicate used to select observers to notify.</param>
    public void Notify(Action<TObserver> notification, Func<TObserver, bool>? predicate = null);

    /// <summary>
    /// Returns an enumerator that iterates through the collection.
    /// </summary>
    /// <returns>A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.</returns>
    public IEnumerator<TObserver> GetEnumerator();

    /// <summary>
    /// Returns an enumerator that iterates through a collection.
    /// </summary>
    /// <returns>An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.</returns>
    IEnumerator IEnumerable.GetEnumerator();

    /// <summary>
    /// An observer entry.
    /// </summary>
    private class ObserverEntry
    {
        /// <summary>
        /// Gets or sets the observer.
        /// </summary>
        public TObserver Observer { get; set; }

        public ObserverEntry(TObserver observer);
    }
}

How Has This Been Tested?
Unit test, new unit tests, visual testing
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[x] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.
[x] I've added relevant tests.

I have refactored the code by splitting the BatchPeriodicQueue into two separate classes: BackgroundTaskBase and BatchPeriodicQueue. The reason behind this separation is that the BatchPeriodicQueue class serves a specific purpose and may not be applicable or useful throughout the entire codebase. On the other hand, BackgroundTaskBase shares similarities with the BackgroundService in ASP.NET Core but is decoupled from the IHostedService lifecycle. This separation allows for potential future usage of BackgroundTaskBase to handle various background jobs independently.

I don't know why codecov taking ages to upload results, but it should be 91.00% head, +0.09% and ~95% path coverage.
I also tested CodeBeam.MudBlazor.Extensions against the new changes.  I don't know if the author has maintained the test infrastructure up to date, but the existing tests have passed successfully. It appears that many of these tests rely on the functionality provided by MudPopoverProvider. These positive test results indicate that, at least for now, the changes have not introduced any regressions or issues

I haven't yet had time to look over everything. Just one not about the BatchPeriodicQueue. It looks to me like a highly specialized queue which I am not sure will ever be needed anywhere else again. It is a little bit like if I need to hammer in some nails and I also need to drive some screws at the same time then I first make a specialized screwdriver-hammer and use that instead of just using a screwdriver and a hammer to do the job. Just my 2 cents, it is not a change request, just a comment about the design choice ;)

  /// <summary>
  /// Subscribes an observer to receive popover update notifications.
  /// </summary>
  /// <param name="observer">The observer to subscribe.</param>
  void SubscribeOnPopoverUpdate(IPopoverObserver observer);

  /// <summary>
  /// Unsubscribes an observer from receiving popover update notifications.
  /// </summary>
  /// <param name="observer">The observer to unsubscribe.</param>
  void UnsubscribeOnSubscribeOnPopoverUpdate(IPopoverObserver observer);

These two I suggest to simply name Subscribe and Unsubscribe. The additional information that the longer names try to convey are best described in the doc string IMO

I haven't yet had time to look over everything. Just one note about the BatchPeriodicQueue. It looks to me like a highly specialized queue which I am not sure will ever be needed anywhere else again. It is a little bit like if I need to hammer in some nails and I also need to drive some screws at the same time then I first make a specialized screwdriver-hammer and use that instead of just using a screwdriver and a hammer to do the job. Just my 2 cents, it is not a change request, just a comment about the design choice ;)

Have you read this comment? This is why I split it into two implementations https://github.com/MudBlazor/MudBlazor/pull/6953#issuecomment-1572925971
Now BatchPeriodicQueue implements only few lines basically implementing: this
Or do you have other suggestions? I wouldn't really want to move the code to PopoverService as it will be hardred to test.

  /// <summary>
  /// Subscribes an observer to receive popover update notifications.
  /// </summary>
  /// <param name="observer">The observer to subscribe.</param>
  void SubscribeOnPopoverUpdate(IPopoverObserver observer);

  /// <summary>
  /// Unsubscribes an observer from receiving popover update notifications.
  /// </summary>
  /// <param name="observer">The observer to unsubscribe.</param>
  void UnsubscribeOnSubscribeOnPopoverUpdate(IPopoverObserver observer);

These two I suggest to simply name Subscribe and Unsubscribe. The additional information that the longer names try to convey are best described in the doc string IMO

Sure.

I haven't yet had time to look over everything. Just one note about the BatchPeriodicQueue. It looks to me like a highly specialized queue which I am not sure will ever be needed anywhere else again. It is a little bit like if I need to hammer in some nails and I also need to drive some screws at the same time then I first make a specialized screwdriver-hammer and use that instead of just using a screwdriver and a hammer to do the job. Just my 2 cents, it is not a change request, just a comment about the design choice ;)

Have you read this comment? This is why I split it into two implementations #6953 (comment) Now BatchPeriodicQueue implements only few lines basically implementing: this Or do you have other suggestions? I wouldn't really want to move the code to PopoverService as it will be hardred to test.

Yeah, better testability is of course a good justification.

I think I have addressed all suggestions, please check.

Oh forgot to Obsolete old service / classes, will do later.

Done.

Many thanks @ScarletKuro, it is plain that this PR took quite a lot of effort!


Cleanup vendor API

There are a couple of methods and attributes in the different vendors that are not needed in practice. The new API should look like this:
Methods:

train
test
train_intent
test_intent

Attributes

name -> class name hinting to vendor
alias -> string a user can set to describe a certain instance of the vendor (e.g. hinting to configuration). Defaults to self.name.

Implemented in commit 075cdff604cdd3d34035f0f


Email sharing please

Describe the solution you'd like
Would like to be able to share via email with the subject line auto-populated with link to page and message auto-populated with selected text.

This can already be done using the method appendCustomShareButtons
Here's an example using a random icon, and a link that creates an email with a placeholder email address, a subject (in this case, the page title, window.document.title) and the body text containing the selected text and link.
Sharect.appendCustomShareButtons([{
  icon: '<?xml version="1.0" encoding="iso-8859-1"?><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24" height="24" viewBox="0 0 489.776 489.776" style="enable-background:new 0 0 489.776 489.776;" xml:space="preserve"><g><path d="M469.075,64.488h-448.2c-10.3,0-18.8,7.5-20.5,17.3c-0.6,2.4-0.3,322.7-0.3,322.7c0,11.4,9.4,20.8,20.8,20.8h447.1 c11.4,0,20.8-8.3,21.8-19.8v-320.2C489.875,73.788,480.475,64.488,469.075,64.488z M404.275,106.088l-159.8,114.4l-159.8-114.4 H404.275z M40.675,384.788v-259.9l192.4,137.2c7.8,6.3,17.2,4.4,22.9,0l192.4-137.8v260.5L40.675,384.788L40.675,384.788z"/></g></svg>',
  url: `mailto:email?subject=${window.document.title}&body=TEXT_SELECTION%20PAGE_URL`
}]).init()

Let me know if it solves your problem.


Remove Extension:StringFunctionsEscaped because it's unmaintained

Extension:StringFunctionsEscaped is unmaintained. Although it may still work, any bug reports or feature requests will more than likely be ignored.
This is being installed here: https://github.com/nasa/meza/blob/main/config/MezaCoreExtensions.yml#L284

this has been removed in the 39.x branch. not sure when, but it's no longer used.


This page is missing the details about the macros that are available

Which is necessary here as its no longer visible in the program.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 64e9cb58-9d4b-7b53-40c0-3c9c232a27bd
Version Independent ID: 92405b1b-7ec7-51d2-ddd2-c2fd47d167b0
Content: How to: Specify build events (C#) - Visual Studio (Windows)
Content Source: docs/ide/how-to-specify-build-events-csharp.md
Product: visual-studio-windows
Technology: vs-ide-compile
GitHub Login: @ghogen
Microsoft Alias: ghogen

@StingyJack
Thanks for bringing this to our attention. Yes, there should be some reference linked here to the available macros. It looks like the prebuild and postbuild events create entries in the project file like this:
  <Target Name="PreBuild" BeforeTargets="PreBuildEvent">
    <Exec Command="echo Configuration: $(Configuration)
echo DevEnvDir: $(DevEnvDir)
echo OutDir: $(OutDir)
echo ProjectDir: $(ProjectDir)
echo VisualStudioVersion: $(VisualStudioVersion)
echo ALToolsPath: $(ALToolsPath)
echo AssemblySearchPaths: $(AssemblySearchPaths)
echo AssemblyName: $(AssemblyName)
echo BaseIntermediateOutputPath: $(BaseIntermediateOutputPath)
echo CscToolsPath: $(CscToolsPath)
" />
  </Target>

And so in that context, any defined property at this point in the project file is a valid macro you can use.
The article https://docs.microsoft.com/en-us/visualstudio/msbuild/common-msbuild-project-properties?view=vs-2022 lists properties that are commonly used, but some of them are not given values, so they'll result in an empty string. The properties also depend on what's defined in the imports and implicit imports in an SDK-style project, as well as what's defined or redefined in the user's project file.
Some explanation of this is needed, and either a table of properties that are always available or most likely to be defined, and/or links to other lists of properties.

@v-shils - why did you close this?

Hi @StingyJack,
This change was pulled into the private repo by the repo owner. Once the change was reviewed & merged, this public repo PR was automatically closed.

@v-shils - What change? I mean I see the document has changed, but there isnt any PR or changes linked here.


Update asnzs_1170_0_2002.py

Lookup function added to find load factors for load combinations given in Section 4.

Reviewed and Approved.


About training ARTrack_seq

Hi, thanks for a great work!
I was wondering how much GPU memory (in GBs) would it cost to train ARTrack_seq model by using batch size of "1".

it may be the same as batch_size=8 or more because the computer graph is based on the search frames in video clips.
How many frames determines how much GPU memory you use, so you can employ a lower search number to decrease that.


Bridge Self-Replies When the Original Post Is Not Bridged

When the original post is not bridged, its replies are also not bridged.
I prefer threading my posts in reply trees, which is how I currently organize them, and since there are already many posts connected to the original reply target, I’d like to avoid creating a new reply target. Would it be possible to bridge new self-replies even if the original post is not bridged?
Bluesky official client page via Bridgy Fed: https://bsky.app/profile/esperecyan.misskey.io.ap.brid.gy
Example of the post I want to bridge: https://misskey.io/notes/a1lzs76sf10u0eco

Interesting use case! And not one I'm very familiar with. I'm still reluctant to bridge replies to original posts that weren't bridged, even self-replies, but I'm happy to leave this open to track.


Inconsistent contract bytecode when using same fuels-rs version

Observed : contracts not always compiling to the same bytecode, even when using the same version of fuels-rs.
The resulting contract IDs are therefore different. As an aside, they are also different to the ID obtained when running forc deploy (bug reported by @nfurfaro ) , so I assume the bytecode is again different there.
The bug does not always occur - only on certain contracts. In this case, it seems to depend on the use of the assert function from the std-lib.
Steps to reproduce:
git clone git@github.com:simonr0204/contract_id_test.git && cd contract_id_test
forc test
The test will recompile the same bytecode several times, until the resulting bytecode is inconsistent with the first compilation. Sometimes this happens immediately, sometimes it happens on the the 4th-5th compile.
In this case, the bytecode ends up being one of two values. In larger contracts, many more bytecode variations are possible.

What version of forc and fuels-rs are you using?

0.4 for both

Do you mind quickly testing this with forc v0.5.0?
Using forc deploy, I keep getting the exact same bytecode/ID for the simple contract you mentioned.

Just tried with 0.5.0. Same result. Note that I always get the same contract ID when using forc deploy. It's when I compile using the SDK :
 let compiled = Contract::compile_sway_contract("./", salt).unwrap();
that the ID is inconsistent. i.e. different from forc deploy, and different when compiling multiple times.

Thanks Simon. I am still unable to reproduce the issue unfortunately. forc test goes on forever and doesn't panic. I'm using the following dependencies:
[dependencies]
fuel-gql-client = { version = "0.2", default-features = false }
fuel-tx = "0.3"
fuels-abigen-macro = "0.3"
fuels-contract = "0.3"
fuels-core = "0.3"
rand = "0.8"
tokio = { version = "1.12", features = ["rt", "macros"] }

and with both forc 0.4 and forc 0.5. I also tried on Mac and Ubuntu.
With older versions of fuels-*, I kept running into the missing field author`` issue.

This appears resolved when upgrading to fuels-* = "0.5"


Automatically show the bottom bar after delay when the scroll stops

After some tests, I observe that for non advanced users, it is not obvious to scroll down to make the bottom bar reappear.
It could be great to make the bottom bar reappear after some delay :)

By the way, it could facilitate the "scroll to top" action :
"Tapping on the active action in the bottom navigation bar will navigate the user to the top of the view."

"Tapping on the active action in the bottom navigation bar will navigate the user to the top of the view."

You can always implement scrollToTop in onTabReSelected. I don't think BottomBar should be concerned about the scroll states.

That's what I do but when you are at the bottom of the list, user have to scroll up to make the bottom bar reappear to click on the tab and make the call to onTabReSelected. Make the bottom bar reappear on scroll top could remove the unnecessary scroll up gesture.
I don't think hiding permanently the navigation is a good practice.

Well as per the docs,

The bottom navigation bar can appear and disappear dynamically upon scrolling:

Scrolling downward hides the bottom navigation bar
Scrolling upward reveals it

So I guess there's nothing we can do about it if this library strictly follows the guidelines.
As for a solution, you can attach a scroll listener to the scrolling view and manipulate the BottomBar using show()/hide().

Thanks for your answers and work, I will do that.
Hiding the navigation on neutral state is not a good behavior...
Hope they will update the guidelines in the future.


Background color of private list-items updated

This PR is for a very minor color update on the dashboard.  Previously, the list-item background color for private repositories had been assigned a hardcoded light yellow.  This seemed to be out of place against the other blues on the dash.  This update simply changes the background to the lightest primary color (var) which is used in the contribution histogram to better match the rest of the page.

Before:

After:

Can you add screenshot before&after?

Can you add screenshot before&after?

Updated

@silverwind I looked at this before the PR.  Aesthetically, I think the arc-green theme needs the existing .feeds .list ul li.private override style because --color-primary-light-7 is very dark and seemingly out of place in context to its color scheme.  I think the color is already compensated for here, but let me know otherwise.  Maybe my eyes aren't the best judge.

I think we should probably get rid of the background altogether and just color the icon only in --color-gold, which works on both themes, e.g. add text gold classes to the private icons:
{{svg "octicon-icon" 16 "text gold"}}

Thought, coloring all repos icons throughout the UI is probably a lot of work. Let me check what's the issue on arc-green.

I think we need a new color, try this:

diff --git a/web_src/less/_base.less b/web_src/less/_base.less
index 0bf46497e..de4dddbb2 100644
--- a/web_src/less/_base.less
+++ b/web_src/less/_base.less
@@ -122,8 +122,9 @@
   --color-text-light-2: #808080;
   --color-text-light-3: #a0a0a0;
   --color-box-header: #f7f7f7;
   --color-box-body: #ffffff;
+  --color-box-body-highlight: #f6f6f6;
   --color-footer: #ffffff;
   --color-timeline: #ececec;
   --color-input-text: #212121;
   --color-input-background: #ffffff;
diff --git a/web_src/less/_dashboard.less b/web_src/less/_dashboard.less
index c56d2f500..570d77272 100644
--- a/web_src/less/_dashboard.less
+++ b/web_src/less/_dashboard.less
@@ -164,9 +164,9 @@
           border-bottom: 1px solid var(--color-secondary);
         }

         &.private {
-          background-color: var(--color-primary-light-7);
+          background-color: var(--color-box-body-highlight);
         }

         .repo-list-link {
           padding: 6px 1em;
diff --git a/web_src/less/themes/theme-arc-green.less b/web_src/less/themes/theme-arc-green.less
index cf6358091..4d21a5ac4 100644
--- a/web_src/less/themes/theme-arc-green.less
+++ b/web_src/less/themes/theme-arc-green.less
@@ -94,8 +94,9 @@
   /* target-based colors */
   --color-body: #383c4a;
   --color-box-header: #404652;
   --color-box-body: #303440;
+  --color-box-body-highlight: #353945;
   --color-text-dark: #dbe0ea;
   --color-text: #bbc0ca;
   --color-text-light: #a6aab5;
   --color-text-light-1: #979ba6;
@@ -149,12 +150,8 @@
 .following.bar .top.menu a.item:hover {
   color: #fff;
 }

-.feeds .list ul li.private {
-  background: #353945;
-}
-
 .ui.red.label,
 .ui.red.labels .label {
   background-color: #7d3434 !important;
   border-color: #8a2121 !important;

@silverwind this is more subtle, looks good to me.

@silverwind, I pushed the updates

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@2778990). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main   #20630   +/-   ##
=======================================
  Coverage        ?   46.80%
=======================================
  Files           ?      979
  Lines           ?   135960
  Branches        ?        0
=======================================
  Hits            ?    63634
  Misses          ?    64496
  Partials        ?     7830

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


updated pre-reqs

added subnet delegation information

@loundy : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@loundy : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@loundy, thank you for making this edit!
#sign-off


Can use for WebRTC Videocall

Hi,
Can I integrate this with WebRTC Video Call?
Something like this?

Cheers!

As I search over stackoverflow, process is once the call is accepted redirect to the page where you handle the Video Call. My question now is instead of <AppName> Audio.. how can i change the text to something above? <AppName> Video..?

@joshuaalpuerto did you figure this?

Anyone looking for a solution to this, the 4th argument in displayIncomingCall is hasVideo:boolean.
// Display incoming video call
RNCallKit.displayIncomingCall(uuid.v4<EMAIL_ADDRESS>'email', true)


Fixed #24129 -- Added indicator that migrations are rendering the initial state

https://code.djangoproject.com/ticket/24129
The first commit is part of #3890

Merged in eeb88123e725946802732162a22e5ad856e0c50c.


Trouble calling service with button

Hi. This is not really a bug, but I'm trying to use a button to toggle a fan device, and keep failing. Maybe you could point me to what I'm doing wrong? When I try to use the power button, I get
WARNING (MainThread) [homeassistant.helpers.service] Unable to find referenced entities fan.xiaomi_air_purifier_pro

Calling fan.toggle on fan.xiaomi_air_purifier_pro with the entity_id in the debug console works perfectly
- entity: fan.xiaomi_air_purifier_pro
    name: Living Room Purifier
    type: 'custom:mini-climate'
    icon: 'mdi:air-purifier'
    hvac_mode:
      hide: true
    buttons:
      power:
        icon: 'mdi:power'
        location: main
        state:
          entity: fan.xiaomi_air_purifier_pro
        toggle_action: >
        (entity) => this.call_service('fan', 'toggle', { entity_id: entity.entity_id })
    temperature:
      unit: AQI
    target_temperature:
      source:
        entity: fan.xiaomi_air_purifier_pro
        attribute: aqi
      icons:
        up: null
        down: null
    secondary_info:
      type: fan-mode-dropdown
    toggle:
      hide: true
    indicators:
      aqi:
        icon: 'mdi:air-filter'
        source:
          entity: fan.xiaomi_air_purifier_pro
          attribute: average_aqi
      humidity:
        icon: 'mdi:water'
        unit: '%'
        source:
          entity: fan.xiaomi_air_purifier_pro
          attribute: humidity
    group: true

toggle_action arguments: state, entity, climate_entity, hvac_mode see readme
Fixed your configuration:
- entity: fan.xiaomi_air_purifier_pro
  type: 'custom:mini-climate'
  name: Living Room Purifier
  icon: 'mdi:air-purifier'
  secondary_info: fan-mode-dropdown
  group: true
  hvac_mode:
    hide: true
  buttons:
    power:
      icon: 'mdi:power'
      location: main
      # If the same as the main entity can be omitted
#      state:
#        entity: fan.xiaomi_air_purifier_pro
      # i fixed it
      toggle_action: >
        (state, entity) => this.call_service('fan', 'toggle', { entity_id: entity.entity_id })
  temperature:
    unit: AQI
  target_temperature:
    source:
        # entity: fan.xiaomi_air_purifier_pro
      attribute: aqi
    icons:
      up: null
      down: null
  toggle:
    hide: true
  indicators:
    aqi:
      icon: 'mdi:air-filter'
      source:
#        entity: fan.xiaomi_air_purifier_pro
        attribute: average_aqi
    humidity:
      icon: 'mdi:water'
      unit: '%'
      source:
        # entity: fan.xiaomi_air_purifier_pro
        attribute: humidity

In the future I plan to make a separate plugin for purifier.

@artem-sedykh  Thanks, that works perfectly! Just a question, why does the action need state in addition to the entity var?
I'm quite looking forward to the purifier frontend plugin from you :)

For example, to control the power of the air conditioner if it is connected through a smart outlet.


Doesn't trigger insults when wrong command is issued with " | grep <....>"

Because the grep command reads the insulter's output (I don't know why)


[SYSTEMML-540] [MINOR] Added additional performance counters for native invocation and improved SGDNesterov

Refer to this link for build results (access rights to CI server needed):
https://sparktc.ibmcloud.com/jenkins/job/SystemML-PullRequestBuilder/1448/

Refer to this link for build results (access rights to CI server needed):
https://sparktc.ibmcloud.com/jenkins/job/SystemML-PullRequestBuilder/1451/