Simplify BarPlot classes

As we have discussed in multiple places the Bars Element is quite annoying in its current form for a number of reasons:

The bokeh implementation is based on the charts API which will be deprecated in bokeh 0.12.6.
The matplotlib and bokeh implementations are currently inconsistent as bokeh supports grouping and stacking the bars at the same time while bokeh only allows for one at a time (after #1405 is merged fixing various bugs in the current bokeh implementation).

Other limitations:
* No support for log axes (#1233)
* Bars may not be negative in the bokeh backend (#862)
* invert_axes option not supported by either backend, making horizontal bars impossible
As we will have to replace the bokeh bar plot implementation soon anyway I'd suggest the following way forward:

Rewrite the bokeh and matplotlib implementations allowing for either stacking or grouping of bars but not both (this limits the complexity). Target this for 2.0 release.
Once we have worked out issues with nested coordinates and categorical axes, both stacking and grouping can be supported by overlaying multiple Bars. Target for 3.0?

Thanks!
What about log axes, @philippjfr ?

What about log axes, @philippjfr ?

The problem with log axes is that bars usually start at zero but it seems that bokeh blows up when you give it a range starting at zero. We could use a value very close to zero but unfortunately the bokeh log axis then adjusts down to the supplied order of magnitude. If you have a good suggestion on how to deal with this issue, I'd be happy to implement it, unfortunately I haven't found a good approach.

@philippjfr Have you asked one of the bokeh devs about this? Seems like an important limitation!

Looks like this was fixed recently https://github.com/bokeh/bokeh/pull/6122, could be that it just works in 0.12.6.

Managed to find a workaround https://github.com/ioam/holoviews/pull/1416 now also adds support for applying logy.

The bokeh BarPlot implementation has now addressed all the issues mentioned above. The matplotlib version still needs to be rewritten from scratch.


Ci

I basically copied everything from https://github.com/DerThorsten/jupyterlite_xeus_lua, changed the dockerfile and replaces all instances "lua" with "wren"

@jtpio tadaaa

Nice :tada:


Fix empty stack errors and improve error handling for operators

An operator at the end of a function parameter list (min(3/)) would throw an EmptyStackException
Made all correctness checking done in validate() rather than some being done in eval()
shuntingYard() now catches operators that don't have enough parameters at the end of function parameter lists that would otherwise provide a valid RPN (min(1,2,3/) would give the valid RPN ( 1 2 3 / min, but the expression syntax is actually invalid)
shuntingYard() now catches operators that don't have enough parameters in the middle of function parameter lists that would otherwise provide a valid RPN (min(1,2/,3) would give the valid RPN ( 1 2 / 3 min, but the expression syntax is actually invalid)
shuntingYard() now catches operators that don't have enough parameters in the middle of function parameter lists (with the operator directly following a comma/open paren) that would otherwise provide a valid RPN (min(1,2,/3) would give the valid RPN ( 1 2 / 3 min, but the expression syntax is actually invalid)

Thanks alot!


FileSystemDirectoryHandle is missing the methods to enumerate its content

In version 1.1.0, there is no values(), keys() or entries() defined in FileSystemDirectoryHandle.
I understand only standard API is emitted but in this case, in MDN, only Android Webview is not supported, which is exactly the same as removeEntry() which is emitted.
Did I miss something?

You're correct - they are missing and need to be added. I believe this is a duplicate of https://github.com/dart-lang/web/issues/21, except here it's async: https://github.com/w3c/webref/blob/23c3d948f58f16e420d388269d29312f04cc419f/ed/idl/fs.idl#L45.
The Web IDL definition is here: https://webidl.spec.whatwg.org/#idl-iterable. There's an async section after that as well: https://webidl.spec.whatwg.org/#idl-async-iterable. This would add entries, keys, values, and forEach (if not async).
I thought we somewhat handled this with handling getter/setter and adding a List wrapper type, but we did not.

For those wanting an implementation right now, here is some code that works (with no exception handling):
extension FileSystemDirectoryHandleEx on FileSystemDirectoryHandle {
  Stream<FileSystemHandle> values() {
    final iterator = callMethod<JSObject>('values'.toJS);

    return _asyncIterator<FileSystemHandle>(iterator);
  }
}

Stream<T> _asyncIterator<T extends JSObject>(JSObject iterator) async* {
  while (true) {
    final next = await iterator.callMethod<JSPromise<T>>('next'.toJS).toDart;

    if (next.getProperty<JSBoolean>('done'.toJS).toDart) {
      break;
    }

    yield next.getProperty<T>('value'.toJS);
  }
}

Use like this:
await for (FileSystemHandle handle in directoryHandle.values()) {
  ...
}


Feat/statistics

Added statistics for blocks including block count and block rewards
Added statistics for transactions including transaction count and fee

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 3 committers have signed the CLA.:white_check_mark: raghukapur9:x: ankit biswas:x: aashaykapoorankit biswas seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


fix: autodownload yarn from corepack, and set cache-folder, fixes #6332

The Issue

#6332

Yarn should not ask to download classic yarn with corepack enable.
How This PR Solves The Issue
There is one yarn command in the /start.sh script for the web server that can be used to download yarn if it is not already there.
In addition, I found that yarn set config cache-folder was never called because of an incorrect condition.
Manual Testing Instructions

docker run --rm -it -v ddev-global-cache:/mnt/ddev-global-cache busybox sh -c "rm -rf /mnt/ddev-global-cache/corepack" to remove cached yarn downloads
ddev config --corepack-enable && ddev start && ddev yarn -v should not ask for download
ddev yarn config get cache-folder should show /mnt/ddev-global-cache/yarn/classic (this command works only for yarn v1)

Automated Testing Overview

Release/Deployment Notes

You move FAST!

Thank you for the testing!

Note that when used with a real package.json that specifies the yarn version, the prompt still happens on first use

It's not intended behavior, I thought I also covered it with this PR.
I think adding && ( (yes | yarn -v) || true) won't hurt and will fix it.

Thank you, I just realized that the bash statement is wrong because it executes (cd ~) && ... and other instructions run in the default working dir. cd ~ is not even needed here.
It should really check the default working dir, and /var/www/html/web/core for Drupal.

Well, ddev yarn tries to use whatever the current relative directory is. So working_dir isn't going to be relevant to that.


[zh] Sync cpu-management-policies.md

Signed-off-by: Guangwen Feng<EMAIL_ADDRESS>Work for https://github.com/kubernetes/website/issues/33477 tasks-11
(The part-1 of tasks-11: content/en/docs/tasks/administer-cluster/cpu-management-policies.md)
/assign @tengqm
PTAL, thanks.

Updated as suggested and fixed all "pod" to "Pod" in Chinese context.

/approve

/assign

/lgtm


Add header to child's settings

Hello. It would be a great to have a header of child's settings and to have the settings placed after child's script block.
This is current behavior:

This suggestion is feasible, and will be included in the upcoming update plan.

The functionality support has been updated but not released in the current version. If needed, please retrieve it from the code repository.
e01804e2b053006a11d4a0898340e3ef5584c38b


watir-classic-4.2.0 conflicts with win32screenshot 2.1.0

Hi
watir-classic not working with latest win32screenshot.
ruby 2.2.4 (2015-12-16 patchlevel 230) [i386-mingw32]
C:/Ruby224/lib/ruby/2.2.0/rubygems/specification.rb:2112:in raise_if_conflicts': Unable to activate watir-classic-4.2.0, because win32screenshot-2.1.0 conflicts with win32screenshot (~> 2.0.0) (Gem::ConflictError) 	from C:/Ruby224/lib/ruby/2.2.0/rubygems/specification.rb:1280:in activate'
from C:/Ruby224/lib/ruby/2.2.0/rubygems/specification.rb:1314:in block in activate_dependencies' 	from C:/Ruby224/lib/ruby/2.2.0/rubygems/specification.rb:1300:in each'
from C:/Ruby224/lib/ruby/2.2.0/rubygems/specification.rb:1300:in activate_dependencies' 	from C:/Ruby224/lib/ruby/2.2.0/rubygems/specification.rb:1282:in activate'
from C:/Ruby224/lib/ruby/2.2.0/rubygems.rb:198:in rescue in try_activate' 	from C:/Ruby224/lib/ruby/2.2.0/rubygems.rb:195:in try_activate'
from C:/Ruby224/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:126:in rescue in require' 	from C:/Ruby224/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:39:in require'
from C:/Ruby224/lib/ruby/gems/2.2.0/gems/commonwatir-4.0.0/lib/watir.rb:1:in <top (required)>' 	from C:/Ruby224/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:128:in require'
from C:/Ruby224/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:128:in rescue in require' 	from C:/Ruby224/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:39:in require'
from C:/workspace_ruby_mars/MedinetWatirTests/lib/Medinet_defs_main.rb:115:in <top (required)>' 	from C:/Ruby224/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in require'
from C:/Ruby224/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in require' 	from C:/workspace_ruby_mars/MedinetWatirTests/testing_minitest_reports.rb:11:in '

Thanks. I will bump the version for win32screenshot when I publish the changes for working with later versions of Ruby (hopefully some time this week).

The win32screenshot version has been bumped in the latest release.


could not read Username for 'https://bitbucket.org': Device not configured

Question Checklist

[YES] Updated fastlane to the latest version
[YES] I read the Contribution Guidelines
[YES] I read docs.fastlane.tools
[YES] I searched for existing GitHub issues

Question Subject
could not read Username for 'https://bitbucket.org': Device not configured
[12:34:21]: Exit status of command 'git pull && git fetch --tags' was 1 instead of 0.
Question Description
+ bundle exec fastlane beta
+----------------------------+---------+------------------------------------+
|                               Used plugins                                |
+----------------------------+---------+------------------------------------+
| Plugin                     | Version | Action                             |
+----------------------------+---------+------------------------------------+
| fastlane-plugin-versioning | 0.3.4   | get_version_number_from_git_branch |
|                            |         | get_version_number_from_plist      |
|                            |         | get_build_number_from_plist        |
|                            |         | ci_build_number                    |
|                            |         | increment_version_number_in_plist  |
|                            |         | get_app_store_version_number       |
|                            |         | get_info_plist_path                |
|                            |         | increment_build_number_in_plist    |
+----------------------------+---------+------------------------------------+

[12:34:20]: ----------------------------------------
[12:34:20]: --- Step: Verifying fastlane version ---
[12:34:20]: ----------------------------------------
[12:34:20]: Your fastlane version 2.125.2 matches the minimum requirement of 2.28.8  ✅
[12:34:20]: ------------------------------
[12:34:20]: --- Step: default_platform ---
[12:34:20]: ------------------------------
[12:34:20]: Driving the lane 'ios beta' 🚀
[12:34:20]: -------------------------------
[12:34:20]: --- Step: ensure_git_branch ---
[12:34:20]: -------------------------------
[12:34:20]: Git branch matches `develop`, all good! 💪
[12:34:20]: ----------------------
[12:34:20]: --- Step: git_pull ---
[12:34:20]: ----------------------
[12:34:20]: $ git pull && git fetch --tags
[12:34:21]: ▸ fatal: could not read Username for 'https://bitbucket.org': Device not configured
+------------------+----------+
|        Lane Context         |
+------------------+----------+
| DEFAULT_PLATFORM | ios      |
| PLATFORM_NAME    | ios      |
| LANE_NAME        | ios beta |
+------------------+----------+
[12:34:21]: Exit status of command 'git pull && git fetch --tags' was 1 instead of 0.
fatal: could not read Username for 'https://bitbucket.org': Device not configured

+------+----------------------------+-------------+
|                fastlane summary                 |
+------+----------------------------+-------------+
| Step | Action                     | Time (in s) |
+------+----------------------------+-------------+
| 1    | Verifying fastlane version | 0           |
| 2    | default_platform           | 0           |
| 3    | ensure_git_branch          | 0           |
| 💥   | git_pull                   | 0           |
+------+----------------------------+-------------+

[12:34:21]: fastlane finished with errors
Looking for related GitHub issues on fastlane/fastlane...

➡  Improve Beta Setup
    https://github.com/fastlane/fastlane/pull/1 [closed] 1 💬
    04 Feb 2017

🔗  You can ⌘ + double-click on links to open them directly in your browser.
bundler: failed to load command: fastlane (/usr/local/bin/fastlane)
FastlaneCore::Interface::FastlaneShellError: [!] Exit status of command 'git pull && git fetch --tags' was 1 instead of 0.
fatal: could not read Username for 'https://bitbucket.org': Device not configured

  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane_core/lib/fastlane_core/ui/interface.rb:153:in `shell_error!'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane_core/lib/fastlane_core/ui/ui.rb:17:in `method_missing'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/helper/sh_helper.rb:80:in `sh_control_output'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/helper/sh_helper.rb:12:in `sh'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/actions/git_pull.rb:13:in `run'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/runner.rb:256:in `block (2 levels) in execute_action'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/actions/actions_helper.rb:50:in `execute_action'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/runner.rb:235:in `block in execute_action'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/runner.rb:227:in `chdir'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/runner.rb:227:in `execute_action'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/fast_file.rb:154:in `method_missing'
  Fastfile:64:in `block (2 levels) in parsing_binding'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/lane.rb:33:in `call'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/runner.rb:45:in `chdir'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/runner.rb:45:in `execute'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/lane_manager.rb:56:in `cruise_lane'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/commands_generator.rb:108:in `block (2 levels) in run'
  /Library/Ruby/Gems/2.3.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in `call'
  /Library/Ruby/Gems/2.3.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in `run'
  /Library/Ruby/Gems/2.3.0/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in `run_active_command'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:76:in `run!'
  /Library/Ruby/Gems/2.3.0/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in `run!'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/commands_generator.rb:333:in `run'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/commands_generator.rb:41:in `start'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/fastlane/lib/fastlane/cli_tools_distributor.rb:119:in `take_off'
  /Library/Ruby/Gems/2.3.0/gems/fastlane-2.125.2/bin/fastlane:23:in `<top (required)>'
  /usr/local/bin/fastlane:22:in `load'
  /usr/local/bin/fastlane:22:in `<top (required)>'

And what exactly is your question?

[12:34:20]: --- Step: git_pull ---
[12:34:20]: ----------------------
[12:34:20]: $ git pull && git fetch --tags
[12:34:21]: ▸ fatal: could not read Username for 'https://bitbucket.org': Device not configured

Seems like your machine is not configured to be able to pull from the repository you are using. You should be able to run the command manually on the command line.
As you didn't include your fastlane env output, I don't really know what you are trying to do though.


Feedback for ProjectMemberArray GetProjectMembers(Integer projectId)

I'm not an expert programmer in CRM Script, but as a C# programmer I don't understand why the doc says:
ProjectMemberArray res = agent.GetProjectMembers(projectId);
when the code that actually works in CRM Script is this:
NSProjectMember[] res = agent.GetProjectMembers(projectId);
These "mistakes" is occuring all over the CRM Sctipt docs and is creating unecessary frustrations - at least for me

Document Details
⚠ Do not edit this section. It is required for docs.superOffice.com ➟ Docs Team processing.

Content Source: crmscript_ref_NSProjectAgent_GetProjectMembers

This issue is the same, and being handled in issue #15


[SPARK-31475][SQL] Broadcast stage in AQE did not timeout

What changes were proposed in this pull request?

This PR adds a timeout for the Future of a BroadcastQueryStageExec to make sure it can have the same timeout behavior as a non-AQE broadcast exchange.
Why are the changes needed?

This is to make the broadcast timeout behavior in AQE consistent with that in non-AQE.
Does this PR introduce any user-facing change?

No.
How was this patch tested?

Added UT.

@cloud-fan @Ngone51 @JkSelf

Test build #121429 has started for PR 28250 at commit 8b4134a.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26113/
Test PASSed.

Test build #121429 has finished for PR 28250 at commit 8b4134a.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121429/
Test PASSed.

Test build #121534 has started for PR 28250 at commit 65ee658.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26217/
Test PASSed.

Test build #121534 has finished for PR 28250 at commit 65ee658.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121534/
Test PASSed.

Thanks! Merged to master/3.0


implement join component

Closed in https://github.com/schuldners-liste/app/commit/1fc370c75d05d9828b838ff17b3be740427b4768


What does the 'wandhG' mean ?

hi,
I want to use RPNPlus to detect the object?
and I want to use this model to extract the proposal area.
And I changed the Input Image size to (224 ,224 ,1). But I don't know how to change the 'wandhG'?
wandhG = [[100.0, 100.0], [300.0, 300.0], [500.0, 500.0],
          [200.0, 100.0], [370.0, 185.0], [440.0, 220.0],
          [100.0, 200.0], [185.0, 370.0], [220.0, 440.0]]

thx

If you change the input size, you should change the hidden layer's size.  As for the wandhG, you should can its size to any size  you want, as long as wandhG fits your ground truth well.


Basic logging for Classifier + TensorBoard support (contrib)

@jdunnmon check out the basic setup here?  Adding Tensorboard subclass in contrib now


Separate the results of the checkboxgroup manipulator with a zero.

Fixes #13

@gregoiresage Does this work for you?

I will try when I'll go back from holidays Saturday.
Thanks for the evolution!
Le 29 févr. 2016 3:16 AM, "keegan-lillo"<EMAIL_ADDRESS>a
écrit :

@gregoiresage https://github.com/gregoiresage Does this work for you?
—
Reply to this email directly or view it on GitHub
https://github.com/pebble/clay/pull/21#issuecomment-190000446.

Actually I wonder if maybe a \0 character might be a better separator. Colors are represented as numbers and black happens to be 0

@matthewtole what are your thoughts on the separator to use. I'd like to recycle this format for something like this: #4 in the future hence my concern over color values

I think that you're putting the solution to the problem in the wrong place. Instead of muddling up the results of the get() method, it would be better if the function that handles serialising the form to send to the watch handles this. That way it becomes a general solution that can be used by any component,

So in here https://github.com/pebble/clay/blob/master/src/scripts/lib/clay-config.js#L161 do something like
switch(typeof _settings[appKey]) {
  case 'array':
    _settings[appKey] = Utils.addSeparators(item.get(), 0);
    break;
  default:
    _settings[appKey] = item.get();
    break;
}

@matthewtole after discussing with @gregoiresage we have found that only string arrays needed to be split up with zeros. Number arrays will be sent as is. This will pave the way for future changes where we might want to send different types of arrays. Also arrays that have booleans in them will now be converted to ones and zeros.

Sounds good to me. :+1:


ACS5yrSubjectTables : Added map in geoId resolver to handle wrong geoIds

This PR adds map in geoId resolver script to replace wrong geoIds. Currently, it only handles geoId for Tucker city, Georgia.
Wrong geoId found for Tucker City, Georgia in 2016 data:

Actual geoId for Tucker city - geoId/1377652
GeoId corresponding to year 2016 : geoId/1377625 (Does not exist)

Thanks for the PR.
Should we extend _US_REPLACE_GEO_CODE_MAP to include other geos in
https://www.census.gov/programs-surveys/acs/technical-documentation/table-and-geography-changes/2017/geography-changes.html?


Docs reference "npmClient" in turbo.json, but the schema does not

What version of Turborepo are you using?
1.1.5
What package manager are you using / does the bug impact?
npm, pnpm, Yarn v1, Yarn v2/v3 (node_modules linker only)
What operating system are you using?
Linux
Describe the Bug
https://turborepo.org/schema.json does not have an npmClient option, but the docs reference it: https://turborepo.org/docs/reference/configuration#npmclient
Expected Behavior
Schema and docs should match.
To Reproduce
It seems like either the schema or the docs are outdated?

You can specify the npm client in the package.json > packageManager
// package.json
{
    "packageManager"<EMAIL_ADDRESS>}

@fz6m Hey, I know about that option.
This issue is about a mismatch between Turborepo's docs and the turbo.json schema.

This was legacy and never removed from v0.3 (pre-golang / pre-oss). We ought to remove

We ought to remove

Does that mean npm is (and will not be) not supported?


attempt at hid lamparray

Porting the Arduino library: https://github.com/microsoft/ArduinoHidForWindows to CircuitPython

right now testing with a metro rp2040 with the onboard neopixel. it shows up as an HID device but is not recognized by the dynamic lighting app like it does when running the lamparray example from the microsoft arduino library. i think something is not being initialized properly in boot.py or in the initialization of the driver.
(function names are not circuitpython-styled yet- was focusing on the code porting first)

hihi @dhalbert - in case this got lost on discord


[Feature][Improvement] possibility to filter by multiple tags and deselect a tag!

Describe the solution you'd like
I would like to filter by pressing in more than  one tag at a time, and deselect a tag that was previously selected

@clebsonf Autarquia, you agreed?

Yes, assign to us @clebsonf!


HTMP

HTML
User Story
AS a bootcamp student
I want the prework notes to be structured on a webpage
so that I can easily find and read information
Acceptance Criteria
GIVEN a Prework Study Guide website
WHEN I visit the website in my browser
THEN I see four boxes titles HTML, CSS, GIT and JavaScript with associated notes listed

CSS
As a boot camp student
I want the prework notes to be structured on a webpage
So that I can easily find and read the information
GIVEN a Prework Study Guide website
WHEN I view the study guide
THEN I see a dark blue header and footer, and four boxes with a shadow


[JVM] Add handling for generic argument types

For Java projects, some of the methods may require arguments with generic types. This PR proposes a fix to include generic type suggestions in the prompts to allow the LLM generate a better result related to methods with generic type arguments.

/gcbrun skip


Implement persistent findings storage - Part 4

To be merged after https://github.com/smithy-security/smithy/pull/494 and after publishing a new SDK version.

Plugging everything together using a persistent storage on top of psql in the existing gosec workflow:

updating to temporary version of SDK
sample docker-compose pipeline

How to test:

go inside new-components
run docker-compose up --build --force-recreate
check that everything builds fine
check the logs from the final json-logger to output one vuln
run docker-compose down --rmi all to shut everything down

Note for other testers:
I had to install Docker-compose because my docker wouldn't work with it out of the box.
I also had to add this to every component that uses a volume:
    user: "${UID}:${GID}"
    environment:
      - UID=${UID}
      - GID=${GID}


Add new Performance/BlockGivenWithExplicitBlock cop

This cop identifies unnecessary use of a block_given? where explicit check of block argument would suffice.
# bad
def method(&block)
  do_something if block_given?
end

# good
def method(&block)
  do_something if block
end

Benchmark
# frozen_string_literal: true

require 'bundler/inline'

gemfile(true) do
  gem 'benchmark-ips'
end

def if_block(&block)
  if block
  end
end

def if_block_given(&block)
  if block_given?
  end
end

Benchmark.ips do |x|
  x.report('if block')         { if_block }
  x.report('if block_given?')  { if_block_given }
  x.compare!
end

Results
Warming up --------------------------------------
            if block     1.039M i/100ms
     if block_given?   844.838k i/100ms
Calculating -------------------------------------
            if block     10.382M (± 1.1%) i/s -     51.960M in   5.005227s
     if block_given?      8.443M (± 1.1%) i/s -     42.242M in   5.003794s

Comparison:
            if block: 10382417.4 i/s
     if block_given?:  8443073.9 i/s - 1.23x  (± 0.00) slower

Oh, cool, I had to do just that for ostruct and was wondering if that would trigger block capturing or not (and be slower). Glad it doesn't.
I'd mark the autocorrection as unsafe, even it's quite unlikely to be:
def foo(&block)
  block ||= ->(x) { ...}
  warn "Using default ..." unless block_given?
  foo(&block)
end

Good point. Updated to not trigger an offense when the block arg is reassigned.

Sorry I forgot to check this. Don't hesitate to ping me after 2-3 days.

Updated.

Thanks!


decorator flag for editor support

Thanks - will merge this in!
I'm in the process of migrating to alpha 35 but hit some major road blocks. Probably going to wait for alpha 36 since they're going to make a few things easier (like http) with that release.


Just for fun: Minor speedup on CodeStream.

What was wrong?
Nothing really, I actually was curious what numba @jit would do in terms of VM speed on all the function of arithmetic.py - it had no effect. Then ended up finding this, and seems to be faster, Interested to find if this is just a margin of error (I gave it x3 runs each) ?
Before:
------------------------------------------------------------------------------------------------------------------------------------------------
|       Total       |    389.244     |     12504      |       -        |      9012      |         -          | 2,337,825,400  |       -        |
|        Avg        |     4.990      |      160       |     32.124     |      116       |       23.153       |   29,972,121   | 6,006,064.601  |
================================================================================================================================================

After:

------------------------------------------------------------------------------------------------------------------------------------------------
|       Total       |    366.143     |     12504      |       -        |      9012      |         -          | 2,337,825,400  |       -        |
|        Avg        |     4.694      |      160       |     34.151     |      116       |       24.613       |   29,972,121   | 6,385,013.504  |
================================================================================================================================================

How was it fixed?
Basically caching len & value[x] instead of getvalue[i].
Cute Animal Picture

That's actually quite a nice easy optimization and produced what appears to be a non-trivial VM speedup.  :+1:


fix view of a snapshot with an indirect object ID

Fix the view of a snapshot with an indirect object ID

LGTM


Gvrf controls sample

GVRf joystick controls sample created by Samsung SIDIA.
GearVRf-DCO-1.0-Signed-off-by: Ricardo Maginador
<EMAIL_ADDRESS>

Nice.  Here's a few things I noticed.  I haven't looked into the code to determine if any of these are intentional:

All the buttons on the controller light up when pressed except R1, Start, and Select.
The little character moves up/down/left/right with the DPad, but only moves up and left with the analog sticks.

Fixed the issues.

excellent.  one last question:  is the controller supposed to be behind the viewer when they start (meant as a surprise?) or is it meant to be in front?

That's the expected behavior. So the user will find new objects as he looks around.

ok, cool.  looked at the code.  it seems this commit also includes the keyboard sample.  was that intended??

No, both samples were in the same branch, Keyboard was sent accidentally with Control.

so, you're going to remove it, right?

Yes I'll remove it as soon as possible and give the feedback here.

Tried with controls sample without a controller, looks fine to me. And still waiting for you to remove the keyboard sample.
Thanks

Removed Keyboard commit from this branch, changed xml structure as asked, removed commented code and removed ChainElement.java, it is not used inside the project.


[Bug] Error creating controller. Please check Docker is running using docker ps.

Describe the bug

I don't fully understand the issue, but I think Docker isn't working. I've struggled to get it to work properly in previous attempts as well. It seems like there might be a problem on my end or my development environment isn't progressing correctly
Setup and configuration
Current version:

commit 033352e34093743aca5ff0647168940772957d69 (HEAD -> main, origin/main, origin/HEAD)
Author: மனோஜ்குமார் பழனிச்சாமி<EMAIL_ADDRESS>Date:   Sun Apr 14 19:02:36 2024 +0530

added to sudo group (#1091)

My config.toml and environment vars (be sure to redact API keys):
LLM_MODEL="gpt-3.5-turbo-1106"
LLM_API_KEY="sk-........."
WORKSPACE_DIR="./workspace"

My model and agent (you can see these settings in the UI):

Model: chat-gpt-3.5
Agent: CodeAct

Commands I ran to install and run OpenDevin:

Steps to Reproduce:

make build
make setup
make run

Logs, error messages, and screenshots:

Additional Context
Maybe my docker is not valid :(

This is solved here. Add a line SANDBOX_TYPE="exec"  in your config.toml.

Deduping this with all the similar issues. Should be permanently fixed once the DOOD PR is in

Thank you for response!


Stenography script

Describe the project you want to add with tech stack
Stenography script in python
Expected behavior
It will hide a secret message in an image

@MohitGupta121
Is this script already available?


send CC emails upon job launch

The CC emails are informative, but you only get them upon completion of a job. We should send them when a job launches too.

this is done and deployed.


A few code cleanups, exception and comparison fix

Merged, thanks for the effort :D

You're welcome.


Kafka sink connector not compatible with Java 17

When the REST API is called to create connector, there is an error that the matching JAR could not be found when its compiled with Java 17.
Solution is to build Kafka version with Java 11
and the lightweight version with Java 17.

The base docker image currently is debezium/connect-base:1.9.5.Final, the new version is https://github.com/debezium/container-images/tree/main/connect-base/2.6.

Updated base image to 2.6, but encountered class error
java.lang.NoClassDefFoundError: io/confluent/kafka/serializers/AbstractKafkaSchemaSerDeConfig.

java.lang.NoClassDefFoundError: com/google/common/base/Ticker

Caused by: java.lang.ClassNotFoundException: io.confluent.kafka.schemaregistry.rules.RuleAction


add ceil_mode for avg_pool and max_pool and fix pool edge case

did 2 things with 1 PR (prob shoulda splited it)

fixed failure test case from #7483 (did it by handling stride before dilation)
added ceil_mode to maxpool and avgpool (without touching _pool)

some concerns
for 1, the issue before was when o*s > i+d the shrink for strides doesn't work.
I used the same shrinks-shift -> reshape method like before except I anchored it with o instead of k. It was easier for me to reason about using o as anchor since each o layer maps to an "effective kernel" so we just have to shift until the input gets shaved down to the kernel. Only problem is the repeat if often much larger then if we used k.
for 2, _ceil_mode_padding2d is just unreadable... BUT I'm quite confident it's correct. I have tried instead of having _ceil_mode_padding2d we just load everything into _pool and ceil_div if ceil_mode else floor but that ended up so much worse. This is probably the most condensed way to add it. (since ceil_mode has very limited scope, this might be ok?)

yea probably better to split bugfix and new feature, like the bug fix is desired even if the solution is not perfect.


When using an async resolver which uses the fetch method to access an external endpoint the running flow is immediately interrupted

When using an async resolver which uses the fetch method to access an external endpoint the running flow is immediately interrupted and returns the control to the caller function without completing the tasks.
export function query_similar(query: string, filters: string) {
    return new Promise(async (resolve, reject) => {
        try {
            /* Call Clean API on the Front End API to reload the definition */
            const similar = "https://query-data.azurewebsites.net/api/similar?" + new URLSearchParams(
            {
                'op': "query",
                'query': query,
                "max_results": "10"
            });

           let response = await fetch(similar, {
                method: "GET",
                headers: {
                    "Content-Type": "application/json",
                }
            });

           const body = await response.json();

            if (body === undefined) {
                throw new Error(`Failed to call function: ${response.statusText}`);
            }
            resolve(body);
        } catch (error) {
            reject(error); // Reject the promise if an error occurs
        }
    });
}

async nlp_rank(item_id_field: string, records: any[], user_message:string) {
    if (isNotNull(records) && records.length > 0 && isNotNull(user_message)) {
      try {
        let id_list:string = records.map(record => record[item_id_field]).join(",");
        // call api to retrieve similarity ranking
        const ranked_records = await query_similar(user_message, id_list);
        // merge arrays by document id
        let out_records = records.map((record, i) => Object.assign({}, record, ranked_records));
        return out_records;
      } catch (error) {
        return;
      }
    }
  }

// This is the resolver class
export class ContentRank {
  async exec(params: ValueMap, context:ValueMap) {
    // simplified code

    records = await nlp_rank(item_id_field, input_records.records, userProfile.message);
    return { results: { records: records } };
  }
}

let results = await FlowManager.run(
        // The flow spec
        ret.strategy,
        // The parameters
        ret.params,
        // The expected results
        [ out ],
        // The resolvers mapping
        {
          load: Load as unknown as TaskResolverExecutor,
          filter: Filter as unknown as TaskResolverExecutor,
          contentrank: ContentRank as unknown as TaskResolverExecutor,
          similarrank: SimilarRank as unknown as TaskResolverExecutor,
          top: Top as unknown as TaskResolverExecutor,
          sort: Sort as unknown as TaskResolverExecutor,
          merge: Merge as unknown as TaskResolverExecutor
        },
        { webAPI: this.context, registry: this.registry, userManager},
      );

Without the async resolver the workflow completes correctly, I suspect I'm doing some mistake with await async into the chain of function calls but really struggling to find where it could be.

Hi @andreadipalma, and thanks for reporting.
The first "weird" thing that I've noticed in your code is that the resolver ContentRank is returning an object with the key results, which means you have one return named "results" that you need to be returned or provided to another task.
May be you mean to return just { records: records } (and not { results: { records: records } }). If you are requiring the value "results" in another task (or as an expected flow result value), that's fine. But if your result meant to be named "records", that could be the mistake. I cannot confirm since I don't have your flow spec.
Also, it is a great idea for debugging to run the flow with the environment variable DEBUG=flowed:*, which will give you detailed step by step debugging information in the standard output.
If it doesn't compromise your project's privacy, you can share your flow spec and debugging information (obtained with the DEBUG env var) and I'll be able to help in more detail.
Also, I leave you a couple general things to double check when the flow runs without executing one or more tasks:

Check that the required values (requires clause) of your task are either returned by other task or passed as param from the outside when running the flow.
Check if the flow finished without error (in case of error, the flow could abort the execution of pending tasks).
Check if your creating a promise and not returning it (or awaiting for it) in your resolver, which would consider the task finished even when the promise is not settled yet.

Hi @danielduarte thank you for your great suggestions. I'm going through them and posting later the info.
Thanks

@danielduarte  the following is the flow descriptor. I see a potential flaw with the return "results", I remember it was done to return multiple variables in one single json. On the other side, I have some doubt on how to set the environment with process.env since the code runs on the browser and I can't use the types/node library. Can I set the debug through a parameter when running the flowmanager instead?
{
    "tasks": {
        "Load Suggestions": {
            "requires": [
                "node[af636e50-5d2d-4692-9a26-e6c3f2887cc1]_data_provider",
                "node[af636e50-5d2d-4692-9a26-e6c3f2887cc1]_filter_criteria"
            ],
            "provides": [
                "var_node[af636e50-5d2d-4692-9a26-e6c3f2887cc1]out_0"
            ],
            "resolver": {
                "name": "load",
                "params": {
                    "node[af636e50-5d2d-4692-9a26-e6c3f2887cc1]_data_provider": "node[af636e50-5d2d-4692-9a26-e6c3f2887cc1]_data_provider",
                    "node[af636e50-5d2d-4692-9a26-e6c3f2887cc1]_filter_criteria": "node[af636e50-5d2d-4692-9a26-e6c3f2887cc1]_filter_criteria"
                },
                "results": {
                    "results": "var_node[af636e50-5d2d-4692-9a26-e6c3f2887cc1]out_0"
                }
            }
        },
        "TagRank": {
            "requires": [
                "var_node[af636e50-5d2d-4692-9a26-e6c3f2887cc1]out_0",
                "node[81339727-0140-49f8-a2b8-7be2f611245c]_data_provider",
                "node[81339727-0140-49f8-a2b8-7be2f611245c]_rank_strategy",
                "node[81339727-0140-49f8-a2b8-7be2f611245c]_user_data_provider",
                "node[81339727-0140-49f8-a2b8-7be2f611245c]_rank_field",
                "node[81339727-0140-49f8-a2b8-7be2f611245c]_user_rank_field"
            ],
            "provides": [
                "var_node[81339727-0140-49f8-a2b8-7be2f611245c]out_0"
            ],
            "resolver": {
                "name": "contentrank",
                "params": {
                    "var_node[af636e50-5d2d-4692-9a26-e6c3f2887cc1]out_0": "var_node[af636e50-5d2d-4692-9a26-e6c3f2887cc1]out_0",
                    "node[81339727-0140-49f8-a2b8-7be2f611245c]_data_provider": "node[81339727-0140-49f8-a2b8-7be2f611245c]_data_provider",
                    "node[81339727-0140-49f8-a2b8-7be2f611245c]_rank_strategy": "node[81339727-0140-49f8-a2b8-7be2f611245c]_rank_strategy",
                    "node[81339727-0140-49f8-a2b8-7be2f611245c]_user_data_provider": "node[81339727-0140-49f8-a2b8-7be2f611245c]_user_data_provider",
                    "node[81339727-0140-49f8-a2b8-7be2f611245c]_rank_field": "node[81339727-0140-49f8-a2b8-7be2f611245c]_rank_field",
                    "node[81339727-0140-49f8-a2b8-7be2f611245c]_user_rank_field": "node[81339727-0140-49f8-a2b8-7be2f611245c]_user_rank_field"
                },
                "results": {
                    "results": "var_node[81339727-0140-49f8-a2b8-7be2f611245c]out_0"
                }
            }
        },
        "Top3": {
            "requires": [
                "var_node[81339727-0140-49f8-a2b8-7be2f611245c]out_0",
                "node[02487f60-a52a-4931-bd21-9124b895a2bc]_data_provider",
                "node[02487f60-a52a-4931-bd21-9124b895a2bc]_top_records"
            ],
            "provides": [
                "var_node[02487f60-a52a-4931-bd21-9124b895a2bc]out_0"
            ],
            "resolver": {
                "name": "top",
                "params": {
                    "var_node[81339727-0140-49f8-a2b8-7be2f611245c]out_0": "var_node[81339727-0140-49f8-a2b8-7be2f611245c]out_0",
                    "node[02487f60-a52a-4931-bd21-9124b895a2bc]_data_provider": "node[02487f60-a52a-4931-bd21-9124b895a2bc]_data_provider",
                    "node[02487f60-a52a-4931-bd21-9124b895a2bc]_top_records": "node[02487f60-a52a-4931-bd21-9124b895a2bc]_top_records"
                },
                "results": {
                    "results": "var_node[02487f60-a52a-4931-bd21-9124b895a2bc]out_0"
                }
            }
        }
    }
}

Hi @andreadipalma, you can debug and see how the flow runs in the browser by doing this:

Enable the debug function running localStorage.debug = 'flowed:*' in your browser console (being in the site you're developing). That would tell the debugger to print Flowed messages.
If you use Chrome (or other Chromium-based browser such as Brave, Edge, etc.), please enable the Verbose level in the developer tools:

Once that is done, run your flows and you should see something like this:

There you have the details about every executed task with its parameters and results.

For the example in my previous comment, I've written this little piece of code where I tried to reproduce your issue, but I wasn't able to do so. I've created a simple resolver with async/await including a timer that resolves the promise after a couple seconds, and I had no issues.
Maybe you could try this example to check if it is an issue with the browser version, Flowed package version (which I'd recommend to use the latest), your bundler or any other component.
Please let me know if you were able to see the debugging logs, and what you found. I'll be glad to help.
<html>
<head>
  <script<EMAIL_ADDRESS>charset="utf-8"></script>
</head>
<body>
  <script>
    // First of all:
    // In order to see debug logs, open the browser developer console and run
    //    localStorage.debug = 'flowed:*'
    // Also, if you use Chrome (or other Chromium-based browser such as Brave, Edge, etc.),
    // please enable the Verbose level in the developer tools.

    // The flow specification
    const flow = {
      tasks: {
        T1: {
          provides: ['a'],
          resolver: {
            name: 'r1',
            results: {
              a: 'a'
            }
          }
        }
      }
    };
    const params = {};
    const expectedResults = ['a'];

    class R1 {
      async exec() {
        const timerPromise = new Promise((resolve, reject) => {
          // Wait for 2 secs and resolve the promise
          setTimeout(() => {
            resolve({ a: '123456' })
          }, 2000);
        });
        const results = await timerPromise;
        return results;
      }
    }

    const resolvers = {
      r1: R1,
    };

    // Run the flow and log results
    Flowed.FlowManager.run(flow, params, expectedResults, resolvers)
      .then(results => console.log('results', results));

  </script>
</body>
</html>

Hi @danielduarte ,
following your instructions I did the test in the html page and worked (anyway I had no doubt it works!).
Running the test with the debug information this is what I get. The first log is from the case "without the async resolver". So it completes regularly.
flowed:flow [1] ▶ Flow started with params: Array(1)0: {adpnode[af636e50-5d2d-4692-9a26-e6c3f2887cc1]_data_provider: 'PromotionTable', adpnode[af636e50-5d2d-4692-9a26-e6c3f2887cc1]_filter_criteria: {…}, adpnode[81339727-0140-49f8-a2b8-7be2f611245c]_data_provider: 'PromotionTable', adpnode[81339727-0140-49f8-a2b8-7be2f611245c]_rank_strategy: 1, adpnode[81339727-0140-49f8-a2b8-7be2f611245c]_user_data_provider: 'UnknownUserProfile', …}length: 1[[Prototype]]: Array(0) +0ms
flowed.js:1277 flowed:flow [1]   ⓘ Changed flow state from 'Ready' to 'Running' +1ms [undefined]0: undefinedlength: 1[[Prototype]]: Array(0)
flowed.js:1277 flowed:flow [1]   ‣ Task 'Load Suggestions(load)' started, params: Array(1)0: adpnode[af636e50-5d2d-4692-9a26-e6c3f2887cc1]_data_provider: "PromotionTable"adpnode[af636e50-5d2d-4692-9a26-e6c3f2887cc1]_filter_criteria: {odata: "?$select=cr57f_adpcardofferingid,cr57f_name,cra2c_…url&$filter=((contains(cr57f_name, 'Sicurezza')))", jsonlogic: {…}}[[Prototype]]: Objectlength: 1[[Prototype]]: Array(0) +2s
flowed.js:1277 flowed:flow [1]   ✓ Finished task 'Load Suggestions', results: Array(1)0: var_adpnode[af636e50-5d2d-4692-9a26-e6c3f2887cc1]out_0: [][[Prototype]]: Objectlength: 1[[Prototype]]: Array(0) +1ms
flowed.js:1277 flowed:flow [1]   ‣ Task 'TagRank(contentrank)' started, params: Array(1)0: adpnode[81339727-0140-49f8-a2b8-7be2f611245c]_data_provider: "PromotionTable"adpnode[81339727-0140-49f8-a2b8-7be2f611245c]_rank_field: "cra2c_tags"adpnode[81339727-0140-49f8-a2b8-7be2f611245c]_rank_strategy: 1adpnode[81339727-0140-49f8-a2b8-7be2f611245c]_user_data_provider: "UnknownUserProfile"adpnode[81339727-0140-49f8-a2b8-7be2f611245c]_user_rank_field: "cra2c_topics"var_adpnode[af636e50-5d2d-4692-9a26-e6c3f2887cc1]out_0: [][[Prototype]]: Objectlength: 1[[Prototype]]: Array(0) +1s
flowed.js:1277 flowed:flow [1]   ✓ Finished task 'TagRank', results: Array(1)0: var_adpnode[81339727-0140-49f8-a2b8-7be2f611245c]out_0: [][[Prototype]]: Objectlength: 1[[Prototype]]: Array(0) +1ms
flowed.js:1277 flowed:flow [1]   ‣ Task 'Top3(top)' started, params: Array(1)0: adpnode[02487f60-a52a-4931-bd21-9124b895a2bc]_data_provider: "PromotionTable"adpnode[02487f60-a52a-4931-bd21-9124b895a2bc]_top_records: "3"var_adpnode[81339727-0140-49f8-a2b8-7be2f611245c]out_0: [][[Prototype]]: Objectlength: 1[[Prototype]]: Array(0) +1s
flowed.js:1277 flowed:flow [1]   ✓ Finished task 'Top3', results: Array(1)0: var_adpnode[02487f60-a52a-4931-bd21-9124b895a2bc]out_0: [{…}][[Prototype]]: Objectlength: 1[[Prototype]]: Array(0) +1ms
flowed.js:1277 flowed:flow [1]   ⓘ Changed flow state from 'Running' to 'Finished' +1ms [undefined]
flowed.js:1277 flowed:flow [1] ✔ Flow finished with results: Array(1)0: var_adpnode[02487f60-a52a-4931-bd21-9124b895a2bc]out_0: Array(1)0: {cr57f_adpcardofferingid: 'eef1ecf5-11ed-ed11-8849-002248999338', cr57f_discountlevel: '12', cr57f_name: 'XXXXXXXXXX', cr57f_priority: '2', cr57f_promotionenddate: '11/1/2022', …}length: 1[[Prototype]]: Array(0)[[Prototype]]: Objectlength: 1[[Prototype]]: Array(0) +0ms

The second test is from the case "with the async resolver". So it interrupts the execution and not arrives to the third component (Top). I see a warning message from the second component (the async component) that doesn't produce the expected output. Debugging it I see it produces the output but at that point the flow of execution is lost somewhere. I've also made the modification/simplifications to the output value in the resolver as suggested.
flowed:flow [3] ▶ Flow started with params: Array(1)0: {adpnode[af636e50-5d2d-4692-9a26-e6c3f2887cc1]_data_provider: 'PromotionTable', adpnode[af636e50-5d2d-4692-9a26-e6c3f2887cc1]_filter_criteria: {…}, adpnode[02487f60-a52a-4931-bd21-9124b895a2bc]_data_provider: 'PromotionTable', adpnode[02487f60-a52a-4931-bd21-9124b895a2bc]_top_records: '3', adpnode[ce09efe9-89ec-4d89-a9ee-eb70c38c08ba]_data_provider: 'PromotionTable', …}length: 1[[Prototype]]: Array(0) +18s

flowed.js:1277 flowed:flow [3]   ⓘ Changed flow state from 'Ready' to 'Running' +0ms [undefined]0: undefinedlength: 1[[Prototype]]: Array(0)

flowed.js:1277 flowed:flow [3]   ‣ Task 'Load Suggestions(load)' started, params: Array(1)0: adpnode[af636e50-5d2d-4692-9a26-e6c3f2887cc1]_data_provider: "PromotionTable"adpnode[af636e50-5d2d-4692-9a26-e6c3f2887cc1]_filter_criteria: {odata: "?$select=cr57f_adpcardofferingid,cr57f_name,cra2c_…url&$filter=((contains(cr57f_name, 'XXXXXX')))", jsonlogic: {…}}[[Prototype]]: Objectlength: 1[[Prototype]]: Array(0) +2s

flowed.js:1277 flowed:flow [3]   ✓ Finished task 'Load Suggestions', results: Array(1)0: var_adpnode[af636e50-5d2d-4692-9a26-e6c3f2887cc1]out_0: [{…}][[Prototype]]:
Objectlength: 1[[Prototype]]: Array(0) +1ms

flowed.js:1277 flowed:flow [3]   ‣ Task 'ContentRank(contentrank)' started, params: Array(1)0: adpnode[ce09efe9-89ec-4d89-a9ee-eb70c38c08ba]_data_provider: "PromotionTable"adpnode[ce09efe9-89ec-4d89-a9ee-eb70c38c08ba]_rank_field: "cra2c_document"adpnode[ce09efe9-89ec-4d89-a9ee-eb70c38c08ba]_rank_strategy: 2adpnode[ce09efe9-89ec-4d89-a9ee-eb70c38c08ba]_user_data_provider: "UnknownUserProfile"adpnode[ce09efe9-89ec-4d89-a9ee-eb70c38c08ba]_user_rank_field: "cra2c_message"var_adpnode[af636e50-5d2d-4692-9a26-e6c3f2887cc1]out_0: [{…}][[Prototype]]: Objectlength: 1[[Prototype]]: Array(0) +3s

flowed.js:1277 flowed:flow [3]   ✓ Finished task 'ContentRank', results: Array(1)0: {}[[Prototype]]: Objectlength: 1[[Prototype]]: Array(0) +32s

flowed.js:1277 flowed:flow [3] ⚠ Expected value 'var_adpnode[ce09efe9-89ec-4d89-a9ee-eb70c38c08ba]out_0' was not provided by task 'ContentRank' with resolver 'contentrank'. Consider using the task field 'defaultResult' to provide values by default. +0ms [undefined]0: undefinedlength: 1[[Prototype]]: Array(0)

flowed.js:1277 flowed:flow [3]   ⓘ Changed flow state from 'Running' to 'Finished' +0ms [undefined]0: undefinedlength: 1[[Prototype]]: Array(0)

flowed.js:1277 flowed:flow [3] ✔ Flow finished with results: Array(1)0: {}length: 1[[Prototype]]: Array(0) +1ms

Hi again @andreadipalma,
Glad to see that you could successfully setup the flow logs.
There I see a couple details to check:
First, it seems like the flow specs in these cases are different: in the first case the resolver contentrank is associated to a task called TagRank, and in the second one same resolver but the task is named ContentRank. That doesn't necessarily mean that the second flow spec is incorrect, but it may be a good idea to double check the differences to see if something is missing.
And second detail to check, in the second test the logs show that the resolver doesn't return any value, which is the reason why the next task in the flow (Top) is not executed.
From 1st case (one result returned, required by "Top" task):
flowed.js:1277 flowed:flow [1]   ✓ Finished task 'TagRank', results: Array(1)0: var_adpnode[81339727-0140-49f8-a2b8-7be2f611245c]out_0: [][[Prototype]]: Objectlength: 1[[Prototype]]: Array(0) +1ms

From 2nd case (no results returned, so no dependent task executed):
flowed.js:1277 flowed:flow [3]   ✓ Finished task 'ContentRank', results: Array(1)0: {}[[Prototype]]: Objectlength: 1[[Prototype]]: Array(0) +32s

So, you'd need to make sure the required value (or a promise that resolves to it) is returned.
Other than that, I suspect the builder/packer you could be using in your project is transpiling the async/await with some issues. Or that same thing could be happening in the builder/packer that I'm using with Flowed to make it available for the browser. Even if I have tests that checks async resolvers, I'll double check some more cases like this, specifically in the browser to see if I found any issue.
I hope my comment helps. And please let me know if I can help with further debugging.

@danielduarte thank you so much for your time and the helpful insights, really appreciated!
I've double checked the point 1 about the different names, and tested again with the same name ... apparently I just captured the flows after some modifications including the name of the task (don't ask me why :-)  but don't seem to sort any effect.
I'm starting to think that your point on the transpiler could be involved. The following are my configurations if you see something strange could help me. I'm doing also a further step to run the same logic on a node server based component (so no browser involved). Let you know.
Thank you
{
  "compilerOptions": {
    "jsx": "react",
    "target": "es5",
    "module": "commonjs",
    "lib": ["ES6", "DOM"],
    "strict": true,
    "strictPropertyInitialization": false
  },
  "exclude": [
    "./node_modules"
  ]
}

{
    "extends": "./node_modules/pcf-scripts/tsconfig_base.json",
    "compilerOptions": {
        "typeRoots": ["node_modules/@types"],
        "esModuleInterop": true,
        "target": "ES6",
        "downlevelIteration": true
    }
}

Hi @danielduarte
just tested it on a server side nodejs server in javascript. The same identical flow definition now uses the async call now works correctly and doesn't mess up the flow execution.
I think you where absolutely right in pointing to the typescript transpiling process to cause this symptom when running async calls in the flow.
Please let me know if I can do some more verifications on the typescript side (see info provided in my previous), but for the moment I can move on with this.
Thank you

Hi @andreadipalma,
Great that you could move on after these issues, and also to know that it is indeed a transpiling issues.
As soon as I have the time, I'll be reviewing in detail your last logs in the previous comments.
Thanks.


display archived metrics from pcp

pmwebd can probably enable this already: have vector make a graphite query of the form
 /graphite/render?target=METRICSPEC&format=json&from=TIME&until=TIME

where METRICSPEC is (for now) a bit clumsy (hostname.pcp.met.ric.INSTANCE).  You get back some fairly parsable JSON.  The pcp.met.ric would have to be one that's being collected to a pmwebd-accessible archive.  If vector uses any pcp metrics that are not logged by default, or perhaps not logged at high-enough rates, we could have a separate pmlogconf file to add that stuff.

Uhm, please don't use the graphite API hacks in Vector - if this functionality is needed beyond graphite, it should become a proper part of the PMAPI + PMWEBAPI, and exposed to all tools in a more considered way.  Thanks!

Implementing the above idea in Vector would in no way contradict a "more considered" solution in pcp core.  It would merely beat it by a year.

| [...] It would merely beat it by a year.
That depends entirely on the competence of the person doing the PCP work.
In a not-too-distant future PCP release, we will be making the graphite PMWEBAPI(3) extensions only runtime-optionally-available from pmwebd (i.e. only available if separate package installed) to allow for reduced pcp-webapi installation footprints for the vast majority of people not needing that (unfortunately Cairo brings in alot of X11) - including Vector - so it really is not going to be a good idea to rely on the graphite API hacks, unless you are actually graphite.
APIs are important, let's do them properly for all tools.  Just let me know what Vector needs @spiermar (if you could try out the graphite API and it seems appropriate, we can refactor and promote it to being a "proper" API).
And don't believe the FUD - one of the PCP developers can make it happen very quickly.

A careful reader will see I noted &format=json, which does not involve running Cairo code.  So even if someone bothered to gather compelling user survey/census data, and they were to complain about about pmwebd dependency footprint, and we couldn't find a non-Cairo renderer library, we still wouldn't have to move this particular bit of code.

| A careful reader will see I noted [...]
The careful reader would have raised their eyebrows at "/graphite/[...]" and realized this is clearly not a general purpose API that other webapps should be using.
| [...] we still wouldn't have to move this particular bit of code.
Yes, we do.  This kind of API needs to be (re)done properly and should be provided by libpcp for all tools to enjoy, there is nothing webapi-specific here (let alone graphite-specific).

this is clearly not a general purpose API that other webapps should be using

Says who?  There are numerous webapps that use that same API, far more than we bundle in webjs.

This kind of API needs to be (re)done properly and should be provided by libpcp for all tools to enjoy

When/if libpcp grows such an C level API, the graphite and non-graphite web APIs can be bound to it.  Software permits web APIs to be preserved even when underlying implementations are changed.


neba.io: Huge Activity Feed

The Activity Feed just got quite a bit larger (vertically), because of one huge "activity"-message. Now the slider-arrows are not where they should be. I think this should be fixed in some way.
A solution could be, to set a character limit and instead of the rest of the "activity"-message, add "..." to the end.
Or the arrows should be placed further up.
What happened:

The problematic message:

We've removed the activity feed from neba.io - this is thus no longer an issue,


MiniMagick::Error when cropping

Was following the getting starting article, and while uploading the book screenshots i uploaded an image and while trying to auto crop or manually crop i get internal server error

MiniMagick::Error (mogrify -resize 250*220x /tmp/mini_magick20170305-1195-saua1e.jpg failed with error:
mogrify.im6: invalid argument for option `250*220x': -resize @ error/mogrify.c/MogrifyImageCommand/5489.
):

Ok my bad it was a typo in the dimension field of the image it was 250*220 instead of 250x220


WIP: Migration updates for more wholistic functionality

Many of these changes are to help unify migrations across multiple namespaces for when modular code patterns are used.

[x] Creating migrations through the command line should always use UTC dates.
[x] Removing current concept. This can be handled better through version control branch management by the developer, and doesn't play well with multiple namespaces.
[x] Removing sequential migration files. This only adds complexity and the only problems it seemed to solve (ordering migrations across teams/developers/etc) can be handled with timestamp migrations as long as they are all in the same timezone (which is why its being moved to UTC across the board)
[x] Better tracking of migration batches so that we know exactly what was ran across all namespaces and can roll those back together.
[x] When running migrations across multiple namespaces, all migrations are combined into a single run and ran in order of timestamps to help projects with modular code/addons to run smoothly and better account for changes.
[x] Migrations names should allow either the current timestamp<PHONE_NUMBER>1221) or a more readable version (2018_01_15_011221)
[x] Migration class names are now Pascal case without the word "Migration". Since they are namespaced now there's no need to add "Migration" to avoid clashes. Brings it in line with class names use elsewhere in the framework.

Yay! This is looking great. Let me know if I can help with anything.

Awesome! Very excited to try this out. I’ll give it a run through this morning.

@lonnieezell I think there might be a problem. I'll go over it some more in case it is something I'm doing, but migrations aren't matching their versions. I think the issue is that array_merge() is renumbering index keys from findMigrations() so it fails to match a key at this line in checkMigrations():
if ((int)$targetVersion !== 0 && ! array_key_exists($targetVersion, $migrations))

Yes the issue is with numeric migration versions - array_merge() is renumbering them. Versions with dashes and underscores are merged as string keys, but anything that is an int (even a string int) gets renumbered.

Okay easy fix is union instead of merge; PR incoming.

I downloaded CI4 via composer (devstarter). But there's problem with migrate:create. For some reason in App\Config\Migration.php file there's no timestamp variable. This code below is missing
	/* 	|-------------------------------------------------------------------------- 	| Timestamp Format 	|-------------------------------------------------------------------------- 	| 	| This is the format that will be used when creating new migrations 	| using the cli command: 	|   > php spark migrate:create 	| 	| Typical formats: 	|   YmdHis_ 	|   Y-m-d-His_ 	|   Y_m_d_His_ 	| 	*/ 	public $timestampFormat = 'Y-m-d-His_';
And this is the error of command line
`
An uncaught Exception was encountered
Type:        ErrorException
Message:     Undefined property: Config\Migrations::$timestampFormat
Filename:    E:\OSPanel\domains\localhost\magazine\vendor\codeigniter4\codeigniter4\system\Commands\Database\CreateMigration.php
Line Number: 146
    Backtrace:
                                            -146 - E:\OSPanel\domains\localhost\magazine\vendor\codeigniter4\codeigniter4\system\Commands\Database\CreateMigration.php::errorHandler
                                                            -135 - E:\OSPanel\domains\localhost\magazine\vendor\codeigniter4\codeigniter4\system\CLI\CommandRunner.php::run
                                                            -108 - E:\OSPanel\domains\localhost\magazine\vendor\codeigniter4\codeigniter4\system\CLI\CommandRunner.php::runCommand
                                                            -84 - E:\OSPanel\domains\localhost\magazine\vendor\codeigniter4\codeigniter4\system\CLI\CommandRunner.php::index
                                                            -834 - E:\OSPanel\domains\localhost\magazine\vendor\codeigniter4\codeigniter4\system\CodeIgniter.php::_remap
                                                            -335 - E:\OSPanel\domains\localhost\magazine\vendor\codeigniter4\codeigniter4\system\CodeIgniter.php::runController
                                                            -245 - E:\OSPanel\domains\localhost\magazine\vendor\codeigniter4\codeigniter4\system\CodeIgniter.php::handleRequest
                                                            -85 - E:\OSPanel\domains\localhost\magazine\vendor\codeigniter4\codeigniter4\system\CLI\Console.php::run
                                                            -56 - E:\OSPanel\domains\localhost\magazine\spark::run

`
But after adding missing code it works greate.
Thank you for your attention

I downloaded CI4 via composer (devstarter). But there's problem with migrate:create. For some reason in App\Config\Migration.php file there's no timestamp variable. This code below is missing
/*
|--------------------------------------------------------------------------
| Timestamp Format
|--------------------------------------------------------------------------
|
| This is the format that will be used when creating new migrations
| using the cli command:
|   > php spark migrate:create
|
| Typical formats:
|   YmdHis_
|   Y-m-d-His_
|   Y_m_d_His_
|
*/
    public $timestampFormat = 'Y-m-d-His_';
And this is the error of command line
`
An uncaught Exception was encountered
Type:        ErrorException
Message:     Undefined property: Config\Migrations::$timestampFormat
Filename:    E:\OSPanel\domains\localhost\magazine\vendor\codeigniter4\codeigniter4\system\Commands\Database\CreateMigration.php
Line Number: 146
    Backtrace:
                                            -146 - E:\OSPanel\domains\localhost\magazine\vendor\codeigniter4\codeigniter4\system\Commands\Database\CreateMigration.php::errorHandler
                                                            -135 - E:\OSPanel\domains\localhost\magazine\vendor\codeigniter4\codeigniter4\system\CLI\CommandRunner.php::run
                                                            -108 - E:\OSPanel\domains\localhost\magazine\vendor\codeigniter4\codeigniter4\system\CLI\CommandRunner.php::runCommand
                                                            -84 - E:\OSPanel\domains\localhost\magazine\vendor\codeigniter4\codeigniter4\system\CLI\CommandRunner.php::index
                                                            -834 - E:\OSPanel\domains\localhost\magazine\vendor\codeigniter4\codeigniter4\system\CodeIgniter.php::_remap
                                                            -335 - E:\OSPanel\domains\localhost\magazine\vendor\codeigniter4\codeigniter4\system\CodeIgniter.php::runController
                                                            -245 - E:\OSPanel\domains\localhost\magazine\vendor\codeigniter4\codeigniter4\system\CodeIgniter.php::handleRequest
                                                            -85 - E:\OSPanel\domains\localhost\magazine\vendor\codeigniter4\codeigniter4\system\CLI\Console.php::run
                                                            -56 - E:\OSPanel\domains\localhost\magazine\spark::run

`
But after adding missing code it works greate.
Thank you for your attention

That’s odd, it’s definitely there:
https://github.com/codeigniter4/CodeIgniter4/blob/6f156c57f150d0aea842f9165ce2590b3ec7c4f1/app/Config/Migrations.php#L48
After installing did you run composer update? Sounds like possibly app has different publish rules for the devstarter repo.

I've tried composer update but no changes. Should insert manually that missing code

That’s because I’m a dummy - that will only update Config in vendor/codeigniter4/codeigniter4/app. Could you check that the correct version is there? And @jim-perry might need to update the deployment process to seed the new version.

With the devstarter, composer update only updates the dependencies, i.e. vendor/codeigniter4/codeigniter4. Any changes to app, public, tests & writable will be inside vendor/codeigniter4/... and will need to be copied to the project's app, public, etc.
Such changes should be mentioned in the changelog, if it has been updated. IIRC, it is the beta.4 changelog, and does not address what has been merged since, i.e. app/Config/Migration and app/Controllers/BaseController.
I don't usually update the changelog in the repo until closer to the next release.


(Dropbox) Working package with update script

Can you see what's up with the dropboxo branch? cc: @majkinetor
And, can you update the package to 23.4.18?

The "dropboxo" branch is not mine, I don't  know what is up with it.
I can update this to 23,4,16, but isn't that the point of the automatic updater?

I've made the requested changes, please review.

@The-Running-Dev have you opened a PR to @ferventcoder's repo removing this package?
when you have and it have been merged, please post a message when it has here.

Done. I'm waiting on him to merge it. https://github.com/ferventcoder/chocolatey-packages/pull/243

@The-Running-Dev 👍
btw, could you rebase this PR to the latest version of the master branch?
I would like to have the appveyor build run available for this PR.
(git rebase, not git merge)

I don't usually rebase, I tried, not sure if I did it right.

@The-Running-Dev unfortunately the rebasing you did wasn't correct.
you first need to update your local master branch with the changes from this repo.
then switch over to the feat-Dropbox branch and run git rebase master

however I can do the rebasing if you want to, or are unable to get it work correctly.

How about now? I really need more practice with rebasing, I'll work on that.

@The-Running-Dev if you look at the commit history for this PR you'll notice something have gone wrong.
My guess is that your local master branch differs from the original master branch here in the repo.
Try resetting your local branch to the original master banch, and try rebasing it again (you'll definitely get merge conflicts when trying to rebase this PR).

@The-Running-Dev I rebased your PR now, also added a new commit

Thanks for that. I'm sorry for the delay, I did mix it up somehow but haven't had time to work on any Chocolatey stuff in the last few days. Is this all set to merge now?


Enforce import from __all__ (at least locally)

I understand that ruff can't check imports are valid in a general way, but it would be great if ruff could check local (relative) imports only import things listed in __all__ where __all__ is defined.
Example of what I want
foo.py:
__all__ = ('public_thing',)

def public_thing():
    pass

def private_thing():
    pass

bar.py:
from .foo import public_thing # 👍

from .foo import private_thing # 👎 FXXX 'private_thing' not declared in __all__

This would only apply where __all__ is defined in the module scope obviously.
Any chance ruff could be extended to support this?
This get's fairly important in big packages. But I don't currently know of a tool which enforces __all__ and I'm resisting the the impulse to build one myself.

Do you know if Mypy enforces this?

Nope.
It does some checks, but not full support.
I'll try to check and report back here.

Only if convenient, not a big deal :) This would be great to support, though obviously requires some significant changes to the model (since we're no longer checking files in isolation), so won't happen immediately.

The problem is that according the the formal rules (and runtime behaviour), importing private_thing should be fine. All that __all__ actually does is mean that private_thing wouldn't be imported if I used from .foo import *.
What I'm really looking for is a way to enforce (ideally at runtime as well as in static analysis) the equivalent of export in TypeScript/JS - e.g. a way to white list which attributes of a module can be accessed, but sadly (and IMHO very strangely) it seems to be impossible.

Ugh, yeah, I’d love to have something like ESM or module visibility modifiers in Python.

Mypy does have a “no implicit re-export” setting which helps a bit with the all thing, IIRC.

Agreed, problem is, even with that, if you put code in a private module, then re-export it through a public one, even with _all__ set, pycharm tries to import from the private module.
In short, enforcing a public API/private logic divide is virtually impossible with python.

This is really similar (identical?) to #1107. I think this import / export enforcement is something I want to do soon (maybe after I improve config resolution).

pyright enforces something similar but with some tweaks-- I believe if ruff implements this it should follow pyright's publicity rules, which are also in a document in the python/typing repo (though not in a PEP to my knowledge):

If a py.typed module is present, a type checker will treat all modules within that package (i.e. all files that end in .py or .pyi) as importable unless the file name begins with an underscore. These modules comprise the supported interface for the library.
Each module exposes a set of symbols. Some of these symbols are considered "private” — implementation details that are not part of the library’s interface. Type checkers can use the following rules to determine which symbols are visible outside of the package.

Symbols whose names begin with an underscore (but are not dunder names) are considered private.
Imported symbols are considered private by default. If they use the import A as A (a redundant module alias), from X import A as A (a redundant symbol alias), or from . import A forms, symbol A is not private unless the name begins with an underscore. If a file init.py uses form from .A import X, symbol A is treated likewise. If a wildcard import (of the form from X import *) is used, all symbols referenced by the wildcard are not private.
A module can expose an all symbol at the module level that provides a list of names that are considered part of the interface. This overrides all other rules above, allowing imported symbols or symbols whose names begin with an underscore to be included in the interface.
Local variables within a function (including nested functions) are always considered private.

Basically a symbol is public if it:

is defined inside the module and doesn't have a leading _
is a redundantly aliased import
is listed in __all__

More generally, I'm curious whether ruff ever seeks to depend on a Python environment for import resolution info in the way a tool like pyright does?

Publicity rules are perhaps the work of a PR bureau, these things are often named visibility rules in this domain.

Publicity rules are perhaps the work of a PR bureau, these things are often named visibility rules in this domain.

Take it up with the maintainers of python/typing: https://github.com/python/typing/blob/master/docs/source/libraries.rst#library-interface-public-and-private-symbols

I was thinking of an additional feature of this rule where if a variable, type, function isn't referenced in the module and isn't in __all__ then it would also be considered unused – then ruff would be able to automatically mark and delete the code
Like you can mark all your stuff with _ but honestly not ideal, I think using __all__ as import / export visibility would be nice
# some_module.py
from dataclasses import dataclass

@dataclass
class Result:
     ok: bool
     result: str

Case in point - this broke torch and setuptools >=70.0.0 installations


Error Handling for SimpleUploadCommand

Describe the feature
If I am not missing something it's currently not possible to notice if the SimpleUploadCommand invoked via the TransferUtility, in case a MultipartUpload is not suitable, failed or not. The HttpStatus code of the internally used PutObjectResponse is not exposed nor is an exception thrown in case of a not success status code.
Use Case
Be able to check if the SimpleUploadCommand actually succeeded without having to make another S3 API call.
Proposed Solution
No response
Other Information
No response
Acknowledgements

[ ] I may be able to implement this feature request
[ ] This feature might incur a breaking change

AWS .NET SDK and/or Package version used
AWSSDK.S3 <IP_ADDRESS>
Targeted .NET Platform
.NET 7
Operating System and version
Ubuntu

@lklein53 Thanks for opening feature request. Looking at SimpleUploadCommand.ExecuteAsync(), you are correct that it doesn't expose underlying PutObjectResponse object. If you check PutObject API documentation, it returns bunch of headers along with HTTP status code. In case of error from the service, SDK in this scenario, uses S3ReponseUnmarshaller.UnmarshallException() and return it to the calling code as AmazonS3Exception exception object.
Are you not getting exception in case of error from service or some environmental exception conditions? Please confirm.
Thanks,
Ashish

thanks for the quick response. Sorry my mistake, should have looked more carefully. In my tests i just mocked away the PutObject method of the client which of course will not use the S3ReponseUnmarshaller.UnmarshallException()


ResultAsync.map and Result.asyncMap README link conflict

When you click the "ResultAsync.map (method)" link you go to the "Result.asyncMap (method)" header. This is because the url for the two headers in the ToC is the same. Not sure how to fix it.

Fixed here:
https://github.com/supermacro/neverthrow/commit/99d5111f950208dddff9e6f85182d2cfbae7828b
Thanks for pointing this out!
I'll be releasing this + #251 momentarily.


Is StreamingDataset compatible with Ray distributed training?

I saw the following comment in #332. Do you know if StreamingDataset is compatible with multi-node distributed training using Ray?

Hi @shivshandilya , Streaming dataset is not fully compatible with the PyTorch Lightening, there are some limitations on how PyTorch Lightening spins up the processes. For PyTorch Lightening (PTL) with DDP or other distributed strategy, when user run a script with python main.py --n_devices 8, the main process runs the main.py script and when you call trainer.fit(), PTL creates a N-1 (7 in this case) more processes (for a total of N, including the original main process). This means that the dataset created on the main process is constructed before any distributed environment variables are set, and before the other processes are even launched. Streaming dataset also relies on certain environment variables to get set before any process instantiate the StreamingDataset, otherwise it will use the default value for non-distributed use-case. Those variables are WORLD_SIZE, LOCAL_WORLD_SIZE, and RANK. Also, when using different strategy such as ddp_fork and ddp_spawn, PTL doesn't expose the environment variables (WORLD_SIZE, LOCAL_WORLD_SIZE, and RANK) which makes it impossible for Streaming to know how to split the dataset across ranks and how to communicate locally via multiprocessing shared memory.
I would recommend to either use torchrun or composer launcher or other launcher which spins up the process similar to torchrun/composer and sets the above environment variables.

Originally posted by @karan6181 in https://github.com/mosaicml/streaming/issues/332#issuecomment-1642311367

Closing out this issue as it has been inactive for a while.


validator with index 426155 fails on slot 7194279

When I try to to 426155 with Date range of 08/26/2023 -> 08/28/2023 I get
"Failed to get rewards - Request failed with status code 500 Execution layer rewards not available - missing data for proposer 426155, slot 7194279".
Other dates (01/01/2023 -> 08/26/2023 & 08/28/2023 -> 12/31/2023) there is no issue.
Seems to me you can use an "average" of earnings for that validator over a several day period on either side of missing data or just use "0". Of course it should be "reported" in some "logs" provided to the customer.

Also:
"Failed to get rewards - Request failed with status code 500 Execution layer rewards not available - missing data for proposer 895817, slot 8478553"
"Failed to get rewards - Request failed with status code 500 Execution layer rewards not available - missing data for proposer 917070, slot 8404441"

When I try to to 426155 with Date range of 08/26/2023 -> 08/28/2023 I get
"Failed to get rewards - Request failed with status code 500 Execution layer rewards not available - missing data for proposer 426155, slot 7194279".
Other dates (01/01/2023 -> 08/26/2023 & 08/28/2023 -> 12/31/2023) there is no issue.
Seems to me you can use an "average" of earnings for that validator over a several day period on either side of missing data or just use "0". Of course it should be "reported" in some "logs" provided to the customer.

The block in slot 7194279 contains a transaction from an MEV bot smart contract. On top of that, no MEV relay currently says it delivered the payload for that slot, resulting in ethstaker.tax being unable to index the rewards for that slot. This issue has been fixed, future blocks using the MEV bot smart contract will be indexed correctly. Here is the transaction in case you're interested:
https://etherscan.io/tx/0x3a2abb8256b3e3656f9330078504b5323e42e33ce4771d9f48c482cebd835b2d

Also:
"Failed to get rewards - Request failed with status code 500 Execution layer rewards not available - missing data for proposer 895817, slot 8478553"
"Failed to get rewards - Request failed with status code 500 Execution layer rewards not available - missing data for proposer 917070, slot 8404441"

Similar issue here with a different smart contract, transactions:
https://etherscan.io/tx/0x36b29cb709a7aa6cb02aa356babf83726dfda83c307c0a530a816833e8fa8074
https://etherscan.io/tx/0x37af6cea1598528e111ef50b164cec193032ba5fc29493168bd5e1ed2adc9a0f
The slots you reported have been reindexed and should not result in error messages anymore!
To give you an idea of how frequently issues like this occur, out of  the 3.8M post-Merge blocks, we currently have 2.7k block reward data indexing failures. We prefer to give an error message in rare cases like these instead of reporting incomplete or inaccurate data.
I'll close this issue but don't hesitate to reach out again if there's anything else!

When I try to to 426155 with Date range of 08/26/2023 -> 08/28/2023 I get
"Failed to get rewards - Request failed with status code 500 Execution layer rewards not available - missing data for proposer 426155, slot 7194279".
Other dates (01/01/2023 -> 08/26/2023 & 08/28/2023 -> 12/31/2023) there is no issue.
Seems to me you can use an "average" of earnings for that validator over a several day period on either side of missing data or just use "0". Of course it should be "reported" in some "logs" provided to the customer.

The block in slot 7194279 contains a transaction from an MEV bot smart contract. On top of that, no MEV relay currently says it delivered the payload for that slot, resulting in ethstaker.tax being unable to index the rewards for that slot. This issue has been fixed, future blocks using the MEV bot smart contract will be indexed correctly. Here is the transaction in case you're interested:
https://etherscan.io/tx/0x3a2abb8256b3e3656f9330078504b5323e42e33ce4771d9f48c482cebd835b2d

Also:
"Failed to get rewards - Request failed with status code 500 Execution layer rewards not available - missing data for proposer 895817, slot 8478553"
"Failed to get rewards - Request failed with status code 500 Execution layer rewards not available - missing data for proposer 917070, slot 8404441"

Similar issue here with a different smart contract, transactions:
https://etherscan.io/tx/0x36b29cb709a7aa6cb02aa356babf83726dfda83c307c0a530a816833e8fa8074 https://etherscan.io/tx/0x37af6cea1598528e111ef50b164cec193032ba5fc29493168bd5e1ed2adc9a0f
The slots you reported have been reindexed and should not result in error messages anymore!
To give you an idea of how frequently issues like this occur, out of the 3.8M post-Merge blocks, we currently have 2.7k block reward data indexing failures. We prefer to give an error message in rare cases like these instead of reporting incomplete or inaccurate data.
I'll close this issue but don't hesitate to reach out again if there's anything else!

TYVM, I've verified it is working for me!


Add changelog for 1.5.3 release

as title

@lafriks can you send this PR to release/v1.5 branch first?

Codecov Report

Merging #5227 into master will decrease coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #5227      +/-   ##
==========================================
- Coverage   37.48%   37.48%   -0.01%
==========================================
  Files         310      310
  Lines       45923    45923
==========================================
- Hits        17215    17213       -2
- Misses      26234    26236       +2
  Partials     2474     2474

Impacted Files
Coverage Δ

models/repo_list.go
63.29% <0%> (-1.27%)
:arrow_down:

Continue to review full report at Codecov.

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


Porting fix for bug 15070 (deployment data for dashboard)

This PR fixes #15070
Main PR merged #15073

Will merge once the build completes.

Pull Request Test Coverage Report for Build 734191551

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.005%) to 43.547%

Totals

Change from base Build 731298082:
0.005%

Covered Lines:
26135

Relevant Lines:
54862

💛  - Coveralls


Fix/azure functions performance issues

Change to durable function.
closes #112

I'm not sure about making some of the repository validator parts static, I can revert that bit

I'll write the documentation after this is accepted, there's no point changing the docs if this is rejected 😅

Hmm, that static here doesn't matter that much. It's true that couple of those methods don't need any instance variables and azure functions supports ILogger with that kind of injection. That itself (at least used to) work better than the constructor injection version (some minor difference if you run this from Azure Portal, no differences when checking from Application Insights).
Generally speaking I would avoid giving ILogger as a method parameter because I think the part which is calling this method shouldn't care how it's logged. But in this case the difference is mostly academic so I left it as-is.
I also decided to do the separation part in different issue.


[Q] Which version of cloudresourcemanager.googleapis.com to use? - v1beta1 usually works v3 fails…

I'm experimentally implementing a compute module—ostensibly for google-cloud-cpp—but have come across some weirdness, with GETting this endpoint:
https://cloudresourcemanager.googleapis.com/v1beta1/projects

It works fine (with just Content-type: application/json and "Authorization: Bearer <token>" headers).
However with this endpoint I always get 403, even the blue "Execute" button in the official website: https://cloud.google.com/resource-manager/reference/rest/v3/projects/list
https://cloudresourcemanager.googleapis.com/v3/projects

Is there some way for me to liase with the relevant team/engineer within Google? - I'd rather not depend on beta APIs (which are naturally subject to change)…
[or maybe here is the right place to ask?]

The v3 API requires a parent parameter in the folders/${folder-id} format, did you provide one?  I just did (through the UI) and it worked for me. There is also a v1 API that is not "beta".  I think in this case v1beta1 means "v1 + preview features that we may remove or change", but don't quote me on that.

Is there some way for me to liase with the relevant team/engineer within Google?

I know of a few, all of them somewhat indirect.  You can file bugs in the external issue tracker, I think the relevant component would be:
https://issuetracker.google.com/components/187210/manage
You can click on the "feedback" button for the documentation, I have been involved in several fixes initiated by such a feedback, so it is not a complete black hole.
Most teams monitor stack overflow for questions.
Many teams hang out in the Google Cloud Platform Community Slack: https://googlecloud-community.slack.com

[or maybe here is the right place to ask?]

You can always ask here.  We are not experts in every Cloud API, but we are more familiar with reading the documentation for quirks like a not very visible "Required." text for this parent parameter.

@SamuelMarks should we close this?

@coryan Well I opened an issue [187540809] on the issue tracker so I guess track it from there?
(upvote it you can)
Thanks


Add Examples - Test Latest CI Config

:tada: This PR is included in version 3.2.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[Suggestion] Interaction pattern

There could be a pattern that takes in two vectors and a mote: a position, a direction, and an item. Then it would right-click with that item with the position and direction as if a player had done it, similar to Create deployers. Potentially there could be a second pattern designed specifically for targeting entities. The cost of the pattern could be dependent on distance.
Some uses could be:

applying wax to copper with hexcasting
milking cows with hexcasting
starting fires with flint and steel or fire charges

As mentioned on Discord, I think it's important that this only allow right click interactions, or at least not allow dealing damage, so that it doesn't effectively become an instant damage spell

i plan on implementing this in hextweaks (but talia may beat me to it)
(Vec|Entity,Mote -> )

This was implemented by computerwhisperer for 0.2.16!