fiftyone briefcase project [BUG]

reproduce-fiftyone-briefcase-bug
System information

Windows 11 64x
Python 3.11.5
FiftyOne v0.22.2, Voxel51, Inc.
pip

Prerequisites

python environment with briefcase installed
 pip install briefcase

Commands to reproduce
git clone https://github.com/EytanDn/reproduce-fiftyone-briefcase-bug.git
cd reproduce-fiftyone-briefcase-bug/helloworld

verify it works in dev mode:
should work here
briefcase dev

reproduce from build:

run:

briefcase build
explorer build\helloworld\windows\app\src  # to open the folder in windows

double click the Hello World.exe

reproduce from package:

run:

briefcase package
explorer dist

double click the .msi installer and install
open the installed Hello World app

Describe the problem
When running the application using briefcase dev, everything operates as expected on Windows. However, after packaging the application with Briefcase, launching the Windows executable triggers a ServiceListenTimeout error. This error occurs specifically when FiftyOne attempts to initialize its MongoDB database service.
The issue seems confined to the packaged Windows application; everything works fine in the development environment and on a packaged Linux build.
Expected Behavior:
FiftyOne should be able to initialize its MongoDB service in the packaged Windows application without encountering a port binding error.
Actual Behavior:
Upon launching the packaged Windows application, it fails to start and throws a ServiceListenTimeout error, preventing FiftyOne's MongoDB service from initializing
Code to reproduce issue
notes above
Other info/logs
...
    import fiftyone.core.odm as foo
  File "\app_packages\fiftyone\__init__.py", line 25, in <module>
    from fiftyone.__public__ import *
  File "\app_packages\fiftyone\__public__.py", line 15, in <module>
    _foo.establish_db_conn(config)
  File "\app_packages\fiftyone\core\odm\database.py", line 200, in establish_db_conn
    port = _db_service.port
           ^^^^^^^^^^^^^^^^
  File "\app_packages\fiftyone\core\service.py", line 276, in port
    return self._wait_for_child_port()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "\app_packages\fiftyone\core\service.py", line 170, in _wait_for_child_port
    return find_port()
           ^^^^^^^^^^^
  File "\app_packages\retrying.py", line 56, in wrapped_f
    return Retrying(*dargs, **dkw).call(f, *args, **kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "\app_packages\retrying.py", line 266, in call
    raise attempt.get()
          ^^^^^^^^^^^^^
  File "\app_packages\retrying.py", line 301, in get
    six.reraise(self.value[0], self.value[1], self.value[2])
  File "\app_packages\six.py", line 719, in reraise
    raise value
  File "\app_packages\retrying.py", line 251, in call
    attempt = Attempt(fn(*args, **kwargs), attempt_number, False)
                      ^^^^^^^^^^^^^^^^^^^
  File "\app_packages\fiftyone\core\service.py", line 168, in find_port
    raise ServiceListenTimeout(etau.get_class_name(self), port)
fiftyone.core.service.ServiceListenTimeout: fiftyone.core.service.DatabaseService failed to bind to port

What areas of FiftyOne does this bug affect?

[ X ] App: FiftyOne application issue
[ ] Core: Core Python library issue
[ ] Server: FiftyOne server issue

Willingness to contribute

[ ] Yes. I can contribute a fix for this bug independently
[ X ] Yes. I would be willing to contribute a fix for this bug with guidance from the FiftyOne community
[ ] No. I cannot contribute a bug fix at this time

First time hearing about Briefcase, interesting. Did you know we have a desktop application natively supported by FiftyOne?

First time hearing about Briefcase, interesting. Did you know we have a desktop application natively supported by FiftyOne?

hi,
Thank you for replying in a swift manner.
did not know, but I don't think it'll be helpful in our case, we use the fiftyone module for a small but necessary part in our app for our data processing work flow

Ok so you're just using the SDK not the app?
If so, you should probably require a database connection be supplied to FiftyOne instead of having FO spin up the mongodb for you. We've encountered issues with child processes in Windows before.

you should probably require a database connection be supplied to FiftyOne

Hi, updating this worked in our case, Thank you


api: add tests that ensure types and reasons are registered correctly

We currently export constants for the universe of types and reasons that the operator controller uses to set conditions. And we append them to a list that is used in reconciler tests to ensure that Reconcile sets each condition type during any given call. See here.
However there's still a small gap. It's possible to add a new type/reason without appending it into the respective operatorutil list, which means the assumptions we make (i.e. that the operatorutil lists are exhaustive) are not enforced. And that means our invariant test for "all types must be set at the end of a reconcile call" might produce false negatives.
This PR closes that gap by adding a test that ensures that:

For every constant that begins with Type or Reason, its value exists in the respective operatorutil slice.
For every value in the operatorutil slices, there exists a respective Type or Reason prefixed constant.

@joelanford could you please rebase?

Done! Thanks for the review @perdasilva!


pluto.tv

This is my contribution to the community, I'm new to this so if something is wrong don't hesitate to tell me.

It seems a bit complicated for this PR to merge. Can you make another PR by creating a new branch on your repository and commit only changes related to pluto.tv?


[Design] Create a logo for challenge questions connector

Is your suggestion related to an experience ? Please describe.
From IS 7.0.0 challenge questions feature is removed from the default IS pack and hosting as a connector. We need an icon for the challenge questions connector to publish in the connector store
sample image:

Please add a suitable background color
Related issue: https://github.com/wso2/product-is/issues/18407

https://www.figma.com/file/9QxyluUvzXAMbTdixve9Dh/Assets?type=design&node-id=2259-17&mode=design&t=lpcz8c82v8lJLrQW-0

SVG

Logo:


Added a new MetadataUtils with an implementation of createKafkaMetadataIfMissing…

…that does not overwrite the cluster metadata. Modified several use cases to support the change.
Logic for the createKafkaMetadataIfMissing implementation is as follows:

If the tenant does not exist it will be created
If the tenant exists but the allowedClusters list does not include the cluster this method will add the cluster to the allowedClusters list
If the namespace does not exist it will be created
If the namespace exists but the replicationClusters list does not include the cluster this method will add the cluster to the replicationClusters list
If the offset topic does not exist it will be created
If the offset topic exists but some partitions are missing, the missing partitions will be created

node-rdkafka fails KafkaIntegrationTest on my machine with: java.lang.IllegalArgumentException: Invalid version for API key API_VERSIONS: 3
I suspect this is also where it is failing in github actions but not sure because I can't see the logs. Any help fixing this would be nice, I can't figure out how this change could have introduced this bug.......

@wmccarley from the log(https://github.com/streamnative/kop/pull/168/checks?check_run_id=942014543), it looks like a container issue, I will re-trigger it.
[ERROR] simpleProduceAndConsume(io.streamnative.pulsar.handlers.kop.KafkaIntegrationTest)  Time elapsed: 78.686 s  <<< FAILURE!
org.testcontainers.containers.ContainerLaunchException: Container startup failed
	at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:322)
	at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:302)
	at io.streamnative.pulsar.handlers.kop.KafkaIntegrationTest.simpleProduceAndConsume(KafkaIntegrationTest.java:192)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
	at org.testng.internal.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:54)
	at org.testng.internal.InvokeMethodRunnable.run(InvokeMethodRunnable.java:44)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: org.rnorth.ducttape.RetryCountExceededException: Retry limit hit with exception
	at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:88)
	at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:315)


Esc doesn't dismiss inline chat widget when there is a code block in the response

Select some code
Ask explain (not using inline chat)
Hopefully the response has a codeblock
:bug: focus the codeblock, then press esc, nothing happens

Keyboard shortcut troubleshooting:
2023-12-19 09:57:27.884 [info] [KeybindingService]: / Received  keydown event - modifiers: [], code: Escape, keyCode: 27, key: Escape
2023-12-19 09:57:27.885 [info] [KeybindingService]: | Converted keydown event - modifiers: [], code: Escape, keyCode: 9 ('Escape')
2023-12-19 09:57:27.885 [info] [KeybindingService]: | Resolving Escape
2023-12-19 09:57:27.886 [info] [KeybindingService]: \ From 67 keybinding entries, matched inlineChat.discard, when: inlineChatHasProvider && inlineChatVisible && !inlineChatUserDidEdit, source: built-in.
2023-12-19 09:57:27.887 [info] [KeybindingService]: + Invoking command inlineChat.discard.

Nice find

Wait, I have trouble understanding/reproducing this

Ask explain (not using inline chat) 3. Hopefully the response has a codeblock

So, you are getting the response in panel chat or inline chat?

Oops, sorry, I meant that the query should be 'explain' without the slash command, such that it's not referred
It looks like inlineChat.discard bails out without running the inline chat command here because the active editor is the code block https://github.com/microsoft/vscode/blob/01fc3110beb3f6be198f641b19e3c2e83125d2e3/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.ts#L113-L121

This is now fixed 👯


How to create a multi-module graph?

While the description shows nice multi-module graphs also showing the project's modules in my case I only get a parent box pointing to all external libraries. There are none of our own modules shown! They definitely are listed in the main pom under , though!
How do I trigger this plugin to recurse through all our modules and include these in the graph? I would have expected that this is the default for multi-module projects, since there is no recurse options (or similar) mentioned.
And how can I trigger that it includes/shows ONLY our own modules - since I am mainly interested in the module relations (and possible circular references) of our own modules?

After I defined an output directory I noticed that the plugin generates a graphic (in my case a .puml-file) in a subdirectory in each sub-module. So it apparently does recurse through all modules and generates "local" graphs. These graphs also show other modules (if referenced).
But these graphs recurse into all libraries and their dependencies, so they are MUCH too detailed.
How do I generate a joined graph (starting from the parent module) which includes all our modules only? I treid to specify an include but that didn't seem to work. At least not as expected...

Hi @mmoser18
Based on your description of your problem, it seems that you are using the depgraph:graph goal of the plugin. When run on a multi-module project it will create a graph for each module in the module's target directory. If you configure another directory using the outputDirectory option you will have the situation that the files are overwritten and the last one will remain in the folder. You can solve this by setting useArtifactIdInFileName to true.
If you want to create a single graph for a multi-module project you should use the [aggregate](depgraph:aggregate)[depgraph:aggregate](https://ferstl.github.io/depgraph-maven-plugin/aggregate-mojo.html) goal.
I hope that helps.
Cheers,
Stefan


Allow mocks to be set in config object

First try at #325 .
I am sure this is not the best way to write the test, though.
Initially I was using $store instead of $t, which caused a test related to installing vuex on createLocalVue to fail. I wonder why?

I added methods as well. I initially thought we should allow for all options, but some don't really make that much sense (maybe)?
The ones I can think of use cases for:

[x] methods
[x] mocks
[x] stubs

May or may not make sense:

[] data
[] propsData
[] computed
[] slots
[] localVue

What does everyone think? I'm pretty happy wit the current state, it seems there was a shared interest for mocks mainly, but I'm sure other people have different use cases that might call for the others (not sure what, though).

I think methods, mocks, and stubs is good for now 👍

Sure.

[x] mocks https://github.com/vuejs/vue-test-utils/pull/531/commits/7cd229ce0bdbd97956d1e9f088578d4806286b74
[] methods


Correction for raw affiliation CR2P-MNHN, CNRS, UPMC-Paris

Correction needed for raw affiliation CR2P-MNHN, CNRS, UPMC-Paris
raw_affiliation_name: CR2P-MNHN, CNRS, UPMC-Paris
new_rors: 02en5vm52;02feahw73;05pchb838;05ax2x637
previous_rors: 02en5vm52;02feahw73;05pchb838
works_examples: W4362699234
contact: 2064aa0c2270cd83ab216ffce238fdbb:837e0fec627de69ea61660fbe5 @ sorbonne-universite.fr

This issue was accepted and ingested by the OpenAlex team on 2024-11-01. The new affiliations should be visible within the next 7 days.


get_datasets() function not reading dataframes

I think there is an issue in the get_dataset() function before running the zeroshot model. I have been trying to debug for a couple weeks.
I have a dataset with different "unit_numbers" that I would like to forecast independently. I am looping through the full dataset and subsetting by the unit number. However, after the first unit number is forecasted, subsequent unit number datasets are not being read into the get_datasets() function. I keep getting ValueError: Input dataset must not be null or zero length
before running get_dataset(), I am running the following checks which pass on every loop iteration:
    # Run data checks for debug
    print(split_config)
    print(len(df_subset))
    if df_subset is None or len(df_subset) == 0:
        print(f"No data available for unit {unit}")
    else:
        print(f"Dataset for unit {unit} is ready")

I then reset my tsp (TimeSeriesPreprocessor) and run the following line creating the error:
train_dataset, valid_dataset, test_dataset = get_datasets(tsp, dataset=df_subset, split_config=split_config)
I have validated that split_confg is correct, the dataset exists / is re-indexed, and that the tsp resets.
I have also tried:

using id_numbers in zs_forecast_pipeline instead of looping (this doesn't correctly window my unit numbers)
commenting out the error check in the time_series_preprocessing.py file (this doesn't do anything)

Interestingly, the first unit number is forecasted well, it's just the subsequent unit numbers.

I have noticed that when do not subtract context_length from eval_start_index and test_start_index when generating my split_configs dict (shown below), then the get_datasets() function works across subsetted data but TTM does not produce any forecasts
# Generate train/validation/test split configurations for each unit number in the dataset.
def generate_split_configs(input_df, context_length, unit_numbers=None):

    # If no unit numbers provided, get all unique unit numbers from the data
    if unit_numbers is None:
        unit_numbers = train_df['unit_number'].unique()

    split_configs = {}

    for unit in unit_numbers:
        # Filter data for current unit
        unit_data = input_df[input_df['unit_number'] == unit]
        #unit_data = unit_data.reset_index(drop=True)
        data_length = len(unit_data)

        # Calculate indices for train split (0 to 80%)
        train_start_index = 0
        train_end_index = round(data_length * 0.8)

        # Calculate indices for validation split (80% to 90%)
        # Shift back by context length to ensure first evaluation timestamp follows training data
        eval_start_index = round(data_length * 0.8) - context_length
        eval_end_index = round(data_length * 0.9)

        # Calculate indices for test split (90% to end)
        test_start_index = round(data_length * 0.9) - context_length
        test_end_index = data_length - 1

        # Create split configuration for current unit
        split_configs[unit] = {
            "train": [train_start_index, train_end_index],
            "valid": [eval_start_index, eval_end_index],
            "test": [test_start_index, test_end_index]
        }

    return list(split_configs.values())

Figured it out. There wasn't enough data. Only a few hundred rows. I can't find online the minimum required for a context length of 512, however, I was able to resolve this by boosting my dataset granularity 50x


Update DeepFreeze

Update DeepFreeze dependency and recommendations for upcoming new version.

Passes local and Jenkins. Merging with my thanks.


AGFEO Dashboard 2.0.12 #168347

Checklist for Pull Requests

[x] Have you signed the Contributor License Agreement?
[x] Is there a linked Issue?

Manifests

[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.6 schema?

Note: <path> is the directory's name containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Sorry, my system is set to German language. The output message of widget validate says, that the check ended successfully:
PS Z:\Development\work\winget-pkgs\manifests\a\AGFEO\AGFEODashboard\2.0.12> winget validate --manifest .
Die Manifestüberprüfung war erfolgreich.
PS Z:\Development\work\winget-pkgs\manifests\a\AGFEO\AGFEODashboard\2.0.12>

Automatic Validation ended with:

Installation failed with exit code -1978334957
2024-08-20 09:17:27.861 [CLI ] ShellExecute installer failed: 1633
MSI (s) (50:48) [09:17:27:624]: Product: AGFEO Dashboard -- Installation failed.
This installation package is not supported by this processor type. Contact your product vendor.

Automated error analysis suggests -1978334957 may mean Package not supported by the system.
Automated error analysis suggests 1633 may mean ERROR_INSTALL_PLATFORM_UNSUPPORTED - This installation package is not supported by this processor type. Does this manifest have Architecture: x86? It might need to be x64.
(Automated response - build 887.)


Issue_Template added

I have added the Issue Template, Please add them.
This PR will close #14

Nice work @abh139

I have added the Issue Template, Please add them. This PR will close #14

I think this PR will close #6 and not #14

I have added the Issue Template, Please add them. This PR will close #14

I think this PR will close #6 and not #14

Yes Edited.

@AvineshTripathi have a look now, Is there any further changes required.

LGTM!!
thank you for the contribution
__
  Summary: :ok_hand: This code looks good

cc @anubha-v-ardhan @verma-kunal

We'll also need a template for Notes, as they'll be part of the website as well but I think we'll add it in future when notes part starts taking shape.


Overwrite LibC symbols with LD_PRELOAD

We may want to extend the c/lib.c to override some of the most commonly used LibC operations, that StringZilla may be better equipped to handle. This includes:

memmem and memchr - definitely
memcpy, memmove, memset - possibly
memrchr - GNU extension for reverse-order memchr
memfrob - GNU extension with the sz_generate random generator

If we can afford a strlen call before the operation, several other APIs and GNU extensions can be replaced.

:tada: This issue has been resolved in version 3.6.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


ReplaceOne() method not working properly on .Net Core 3.0

Hi,
I'm building an api and realized that the ReplaceOne() method you used in the CRUD operations sections is not working as it's supposed to in .Net Core 3.0.
When you call this method as below
_books.ReplaceOne(book => book.Id == id, bookIn);
the lambda expression is not picking up the attributes of the entity (such as the "Id" in this case).
I needed to downgrade to 2.2 in order for make it work correctly. Could you please check this issue?

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

ID: 5240866d-d0a1-f0dd-7b2c-203e1d69bc4b
Version Independent ID: 83a5cb3b-23bc-4f0c-cd1c-1d1ffeb1131a
Content: Create a web API with ASP.NET Core and MongoDB
Content Source: aspnetcore/tutorials/first-mongo-app.md
Product: aspnet-core
Technology: aspnetcore-tutorials
GitHub Login: @prkhandelwal
Microsoft Alias: scaddie

hi, i have the same issue and i used the .NET CORE 2.2

Moved to #16196

Fixed in #24126.


Zipping framework from macos_framework script breaks framework tests.

https://github.com/flutter/engine/pull/35623 was reverted because made some tests complain about the zip expected structure.
https://ci.chromium.org/ui/p/flutter/builders/try/Mac framework_tests_misc/25936/overview
02:00 +18 -1: test/codesign_integration_test.dart: validate the expected binaries from the conductor codesign command are present in the cache [E]
  Found unexpected binary in cache: /opt/s/w/ir/x/t/flutter_conductor_integration_test.5zyvJH/flutter_conductor_checkouts/framework/bin/cache/artifacts/engine/darwin-x64-profile/FlutterMacOS.framework/FlutterMacOS.framework/Versions/A/FlutterMacOS
  package:test_api                          fail
  test/codesign_integration_test.dart 71:7  main.<fn>

\cc @jmagman @zanderso

The structure got somehow duplicated:

This is what happened. sky/tools/create_macos_framework.py created a zip file inside the output folder used later by recipes to archive the artifact ending up with the expected structure plus an additional FlutterMacOS.framework directory coming from the inner zip file.
I'll send a PR protecting the creation of the zip file with a flag that will be used only on the recipes v2 builds.

This change has been relanded.


Updated so that it avoids gravel and bedrock

I thought the bot would avoid bedrock blocks as it's already in the blocksCantBreak set, but I doesn't seem like that. I thought it's better to avoid bedrock because it's unbreakable, so there's no point in pathfinding through it. Also the bot sometimes dies in falling gravel, so I think it's better to avoid gravel, but I'm not sure, some people may want to pathfind to gravel blocks, so I'm not sure about this PR. There is no need to merge it if you don't want.

Thanks for this.
I think you meant to add those blocks to blocksCantBreak array? because blocksToAvoid is the set of blocks the bot cant walk into (but as bedrock and gravel are both physical blocks, it can walk into them anyway.
For bedrock, it's already not considered for breaking in survival because the breaktime is near infinity https://github.com/PrismarineJS/mineflayer-pathfinder/blob/master/lib/movements.js#L120
For gravel, I think it should be better to process it like the flowing water: https://github.com/PrismarineJS/mineflayer-pathfinder/blob/master/lib/movements.js#L99
You can add a condition to check if the block above the block you want to break is gravel or sand (and make it configurable in the movement generator:
if (this.dontMineUnderFallingBlock) {
      // false if next to liquid
      if (this.getBlock(block.position, 0, 1, 0).canFall) return false
}

You can add the canFall property to the block like its done for the liquids: https://github.com/PrismarineJS/mineflayer-pathfinder/blob/master/lib/movements.js#L86 (only adding gravel and sand for now)

I'm sorry I'm don't have enough knowledge in this to do what you have asked for. Could you do it?

Take it as a learning opportunity :)
Study a bit the code for the liquid:
https://github.com/PrismarineJS/mineflayer-pathfinder/blob/master/lib/movements.js#L40
https://github.com/PrismarineJS/mineflayer-pathfinder/blob/master/lib/movements.js#L86
https://github.com/PrismarineJS/mineflayer-pathfinder/blob/master/lib/movements.js#L99
And don't worry, the code will be reviewed ;)

Thx


Added support for Caseta Scenes (virtualbuttons)

I'm sure you're already aware, but this library is in use in Home Assistant. I've been wanting scene support in HA for quite a while, so I decided to add it into your library. I've also updated the code needed on the HA side, but we need to update this branch so the dependencies get pulled in correctly. Let me know if you have any comments about my code.
Thanks!

Sorry about all the commits...the Travis checks are tough!

I will review this and if all looks well I will merge it this evening.  My quick look on my mobile looks good so I don't expect any issue.  Thanks for the PR!  Sorry for the delay I have been on travel.

Awesome. Thanks!!

I Will have a new pypi package soon

Perfect. Let me know what the new version number is and I'll update the HA files and submit my scene support branch.

pylutron_caseta-0.2.7 is live in pypi


Invert check for for-in and handle generic constraints

Potential alternative to #49193 that makes the check for primitives apply better to generics. A good follow-up to this would be adjusting the error message to better reflect the check. (Something like Expression has type 'A' which is possibly 'string'?).

@typescript-bot pack this
@typescript-bot user test this inline
@typescript-bot test this
@typescript-bot run dt
@typescript-bot perf test this

Extended test suites all seem good 💖


Android App: Test app in low and no network conditions

@phet-steele - The latest android beta version on the Play Store has fixes for exceptions raised during updates in poor network conditions.  Could you please schedule a test to verify that the app works in low and no connectivity situations?

Current beta is working well in these conditions. Will check the soon to be new beta, too, then close.

Beta 17 (I think?) is working great!


Library for installing pip dependencies in a Node.js project

CA has a postinstall script that installs several Python dependencies using pip in an automatically created venv:
https://github.com/tweaselORG/cyanoacrylate/blob/886282d5550512f8a0a6c2529fcc9610642c5845/scripts/common/setup.js
This works well but we don't only need this in CA. In CA, we currently also install Frida and objection but we actually need those in appstraction.
As such, we should make a library out of this postinstall script. This can probably also be useful to others.

The part for downloading Python is pretty much done in #2 (though only tested on Linux so far).

The next part, managing the venv, is pretty easy. We just need to create it if it doesn't exist yet and then pip install the packages.
The only challenging part is figuring out whether the correct packages are already installed. Running pip install takes quite a while, even if all packages are already installed and we obviously want to avoid that.
pip list --local --format json gives you a handy JSON of the installed packages and versions like this and is fast:
[{"name": "asgiref", "version": "3.5.2"}, {"name": "Brotli", "version": "1.0.9"}, {"name": "certifi", "version": "2022.12.7"}, {"name": "cffi", "version": "1.15.1"}, {"name": "charset-normalizer", "version": "3.1.0"}, {"name": "cli-helpers", "version": "2.3.0"}, {"name": "click", "version": "8.1.3"}, {"name": "colorama", "version": "0.4.6"}, {"name": "configobj", "version": "5.0.8"}, {"name": "cryptography", "version": "38.0.4"}, {"name": "delegator.py", "version": "0.1.1"}, {"name": "Flask", "version": "2.2.3"}, {"name": "frida", "version": "16.0.11"}, {"name": "frida-tools", "version": "12.1.1"}, {"name": "h11", "version": "0.14.0"}, {"name": "h2", "version": "4.1.0"}, {"name": "hpack", "version": "4.0.0"}, {"name": "hyperframe", "version": "6.0.1"}, {"name": "idna", "version": "3.4"}, {"name": "itsdangerous", "version": "2.1.2"}, {"name": "Jinja2", "version": "3.1.2"}, {"name": "kaitaistruct", "version": "0.10"}, {"name": "ldap3", "version": "2.9.1"}, {"name": "litecli", "version": "1.9.0"}, {"name": "MarkupSafe", "version": "2.1.2"}, {"name": "mitmproxy", "version": "9.0.1"}, {"name": "mitmproxy_wireguard", "version": "0.1.23"}, {"name": "msgpack", "version": "1.0.5"}, {"name": "objection", "version": "1.11.0"}, {"name": "passlib", "version": "1.7.4"}, {"name": "pexpect", "version": "4.8.0"}, {"name": "pip", "version": "22.2"}, {"name": "prompt-toolkit", "version": "3.0.38"}, {"name": "protobuf", "version": "4.22.3"}, {"name": "ptyprocess", "version": "0.7.0"}, {"name": "publicsuffix2", "version": "2.20191221"}, {"name": "pyasn1", "version": "0.4.8"}, {"name": "pycparser", "version": "2.21"}, {"name": "Pygments", "version": "2.15.0"}, {"name": "pyOpenSSL", "version": "22.1.0"}, {"name": "pyparsing", "version": "3.0.9"}, {"name": "pyperclip", "version": "1.8.2"}, {"name": "requests", "version": "2.28.2"}, {"name": "ruamel.yaml", "version": "0.17.21"}, {"name": "ruamel.yaml.clib", "version": "0.2.7"}, {"name": "semver", "version": "2.13.0"}, {"name": "setuptools", "version": "59.6.0"}, {"name": "six", "version": "1.16.0"}, {"name": "sortedcontainers", "version": "2.4.0"}, {"name": "sqlparse", "version": "0.4.3"}, {"name": "tabulate", "version": "0.9.0"}, {"name": "tornado", "version": "6.2"}, {"name": "typing_extensions", "version": "4.5.0"}, {"name": "urllib3", "version": "1.26.15"}, {"name": "urwid", "version": "2.1.2"}, {"name": "wcwidth", "version": "0.2.6"}, {"name": "Werkzeug", "version": "2.2.3"}, {"name": "wsproto", "version": "1.2.0"}, {"name": "zstandard", "version": "0.19.0"}]

There is also pip inspect which has a lot more metadata but we don't need that.

I thought we'd have to skip checking the version constraint and only check the name but maybe we're lucky. I found that there is actually an NPM package for PEP440!
And that does have a satisfies() function, which should be exactly what we're looking for.

okay, #2 is pretty much done for Linux. Now, I need to test on Windows and macOS.

From https://parceljs.org/features/targets/#library-targets:

main and module are compiled for a Node environment by default if there is also a browser target available, or if engines.node is specified and no browser targets are specified. Otherwise, they are compiled for a browser environment by default. This can be overridden using the context option in the target config (see below).

I'm starting to get pretty annoyed by all this magic tbh. Might be time to look into a different bundling solution (though I reaaaally don't want to :/).
I also have no idea why this doesn't happen in CA…

Might be time to look into a different bundling solution

Though, I guess most of the problems we've had stem from the context incorrectly being inferred as browser. Maybe switching to an explicit targets declaration is enough.

Just for the record: In this case, I solved the problem by declaring engines.node, since switching to targets is quite annoying.

With the latest changes: Confirmed working on Windows 10 21H2 and Windows 11 22H2.


doc/network/bridge: clarify options for using LXD with Docker

Make it clearer that there are three different alternatives for how to prevent issues with LXD and Docker.
(It looks like a lot of changes, but it's really just adding indentation and moving one note around, plus some language nitpicking ;) )

Documentation preview available at: https://linuxcontainers.org/lxd/docs/pr.11722/


chore: daemon service switch to proto3 and added RESTful client (part 1)

Switch to proto3 for daemon services.
Introduced RESTful client for daemon service (unfinished), it will be done in the follow up part 2.

Follow up PR will make it optional to use RESTful client for the UX server.

Codecov Report
Attention: Patch coverage is 17.48634% with 151 lines in your changes missing coverage. Please review.

Project coverage is 51.84%. Comparing base (ca75ec2) to head (1c48eda).

Files	Patch %	Lines
pkg/daemon/client/restful_daemon_client.go	0.00%	81 Missing ⚠
pkg/daemon/client/grpc_daemon_client.go	0.00%	18 Missing ⚠
.../daemon/server/service/pipeline_watermark_query.go	0.00%	15 Missing ⚠
pkg/reconciler/vertex/scaling/scaling.go	0.00%	11 Missing and 1 partial ⚠
server/apis/v1/handler.go	0.00%	9 Missing ⚠
...kg/daemon/server/service/pipeline_metrics_query.go	80.55%	6 Missing and 1 partial ⚠
server/apis/v1/response.go	0.00%	6 Missing ⚠
pkg/reconciler/pipeline/controller.go	0.00%	2 Missing ⚠
pkg/daemon/server/service/health_status.go	0.00%	1 Missing ⚠
Additional details and impacted files
☔ View full report in Codecov by Sentry. 📢 Have feedback on the report? Share it here.

Will address in the follow up PRs.


Whole list rerenders when new data is inserted at the start

Current behavior
All items of the FlashList will get rendered if new data is inserted at the start,
but if new data is inserted at the end of the array only the new item will get rerendered.
https://user-images.githubusercontent.com/34555296/219814435-f4430304-69f4-41bd-9456-868d04b16b25.mov
Expected behavior
It should only rerender the newly added item regardless of insert position.
To Reproduce
import React from "react";
import { View, Text, Button, SafeAreaView } from "react-native";
import { FlashList } from "@shopify/flash-list";

export default function Test(props: any) {
	const [data, setData] = React.useState([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);

	return (
		<SafeAreaView style={{ flex: 1 }}>
			<FlashList data={data} renderItem={renderItem} />

			<Button title="Add start" onPress={() => setData([data.length, ...data])} />
			<Button title="Add end" onPress={() => setData([...data, data.length])} />
		</SafeAreaView>
	);
}

const renderItem = (props: any) => {
	console.log("render", props.index);

	return <Text>{props.item}</Text>;
};

Platform:

[x] iOS
[ ] Android (did not test)

Environment

@shopify/flash-list version 1.4.1
react-native 0.71.0
iOS 16.3.1

It seems like this might be caused by the underlying recyclerlistview package which rerenders all items in the list, because the data of the recycler list item changes:
e.g. list state at the start:
index 0 -> 0
index 1 -> 1
index 2 -> 2

list state after insertion:
index 0 -> 3
index 1 -> 0
index 2 -> 1
index 3 -> 2

The recycler list view package has some props, which could be used to detect this kind of state change and prevent the list from rerendering all items:

dataHasChanged
syncAndGetKey

Alternatives I've tried was to assign the new element a negative index (-1, -2, ...), but they don't render at all.

Ok it seems like using react.memo solves this issue.
Sadly the renderItem function can't be wrapped directly and a helper render function needs to be created.
Updated code:
import React from 'react';
import { View, Text, Button, SafeAreaView } from 'react-native';
import { FlashList } from '@shopify/flash-list';

export default function Test(props: any) {
  const [data, setData] = React.useState([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);

  return (
    <SafeAreaView style={{ flex: 1 }}>
      <FlashList
        keyExtractor={(x) => x.toString()}
        data={data}
        renderItem={renderItem}
      />
      <Button
        title="Add start"
        onPress={() => setData([data.length, ...data])}
      />
      <Button title="Add end" onPress={() => setData([...data, data.length])} />
    </SafeAreaView>
  );
}

const TestItem = React.memo(function TestItem(props) {
  console.log('render', props.index);
  return <Text>{props.item}</Text>
}, (p, n) => p.item === n.item)

const renderItem = (props: any) => {
  return <TestItem {...props} />;
};

Ok it seems like using react.memo solves this issue.
Sadly the renderItem function can't be wrapped directly and a helper render function needs to be created.
Updated code:
import React from 'react';
import { View, Text, Button, SafeAreaView } from 'react-native';
import { FlashList } from '@shopify/flash-list';

export default function Test(props: any) {
  const [data, setData] = React.useState([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);

  return (
    <SafeAreaView style={{ flex: 1 }}>
      <FlashList
        keyExtractor={(x) => x.toString()}
        data={data}
        renderItem={renderItem}
      />
      <Button
        title="Add start"
        onPress={() => setData([data.length, ...data])}
      />
      <Button title="Add end" onPress={() => setData([...data, data.length])} />
    </SafeAreaView>
  );
}

const TestItem = React.memo(function TestItem(props) {
  console.log('render', props.index);
  return <Text>{props.item}</Text>
}, (p, n) => p.item === n.item)

const renderItem = (props: any) => {
  return <TestItem {...props} />;
};

I'm having the same issue. @SamuelScheit your solution didn’t work for me . did you find any other solution ?

@ramssutharr it only partially rerenders, flash-list actually calls the renderItem function, but because the component is wrapped in React.memo it skips it, because the props didn't change.
you can pass a function to React.memo that compares the old and new props and returns a boolean to indicate whether or not they changed.
example taken from the react docs:
const Chart = memo(function Chart({ dataPoints }) {
  // only rerenders, when props changed
}, arePropsEqual);

function arePropsEqual(oldProps, newProps) {
  return (
    oldProps.dataPoints.length === newProps.dataPoints.length
  );
}


feat:  grepable output

Introduced grepable formatting and added a Format struct to the Report for better organization and extensibility. Simplified the main function by decluttering unnecessary variables and centralizing output handling.
Fixes #57

I resolved all the comments u gave me this now should be fine to merge


handle #teardown being called multiple times

Per https://github.com/elastic/logstash/blob/v1.5.2/lib/logstash/pipeline.rb#L190:L192.
Not sure if this covers the intent of the FIXME note.

@stuart-warren this is nice! Trying out a setup with logstash and this plugin in Docker now.
Will add my voice to https://github.com/elastic/logstash/issues/1729, see if we can get this as an official plugin maybe.

Coolio


Adding first version of AgentEval --  a framework for assessing task utility for LLM-powered applications

We introduce AgentEval — the first version of the framework to automatically assess task utility for an arbitrary application. It suggests criteria to explain task utility and then quantifies these criteria for logs of your system. AgentEval consists of two key components:

CriticAgent: This is an LLM-based agent that generates criteria to evaluate a given task.
QuantifierAgent: This agent quantifies the performance of any sample task based on the criteria designed by the CriticAgent.

We demonstrate the usage of our framework with the Math Problems dataset in notebook that allows for running on single logs as well as plotting the quantified estimated performance for a set of problems.

The model logs you can find them in agenteval branch

This PR has added:

notebook/agenteval_cq_math.ipynb to demonstrate AgentEval using the math problems
sample files that required to demonstrate the work of notebook in test/test_files/agenteval-in-out
website/blog/2012-11-11-AgentEval -- the blog post to explain the AgentEval

Related issue number

Checks

[X] I've included any doc changes needed for https://microsoft.github.io/autogen/. See https://microsoft.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (d542340) 28.70% compared to head (16f8ae2) 27.69%.
Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #681      +/-   ##
==========================================
- Coverage   28.70%   27.69%   -1.01%
==========================================
  Files          27       27
  Lines        3383     3383
  Branches      760      760
==========================================
- Hits          971      937      -34
- Misses       2341     2375      +34
  Partials       71       71

Flag
Coverage Δ

unittests
27.66% <ø> (-0.98%)
:arrow_down:

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

@sonichi @ahmed-awadallah can you please review the PR?

@sonichi @ahmed-awadallah can you please review the PR?

Please note that the white spacing issue is related to the Autogen logs output examples.

Small detail, easy to fix: the PR fails the pre-commit checks. See: https://microsoft.github.io/autogen/docs/Contribute#pre-commit
Let me know if you need help addressing that, and I can jump in (but I'm not sure I'll be able to update the fork directly)

[Edit]: I was able to fix this on my end. Be sure to update your local repo, and install the pre-commit checks, but the PR now passes the formatting checks.
Small detail, easy to fix: the PR fails the pre-commit checks. See: https://microsoft.github.io/autogen/docs/Contribute#pre-commit

Thank you so much @afourney . We will do it for the future PRs.

No problem. It's such a minor issue.

Blog need to add authors to authors.yml otherwise it may not compile https://github.com/microsoft/autogen/blob/main/website/blog/authors.yml

@julianakiseleva, this is what I currently see when I compile the blog:

@.**, I did not get the connection beetwen the Side-by-Side
finding from the previous work and AgentEval from the text
On Wed, Nov 15, 2023 at 1:59 PM Julia Eclipse @.***>
wrote:

@.**** commented on this pull request.
In website/blog/2023-11-11-AgentEval/index.md
https://github.com/microsoft/autogen/pull/681#discussion_r1394872568:

@@ -0,0 +1,141 @@

+---
+title:  AgentEval: Assessing Task Utility for LLM-powered Applications
+authors: julianakiseleva, Narabzad
+tags: [LLM, GPT, evaluation, task utility]
+---
+
+
+
+TL;DR:
+* We introduce AgentEval — the first version of the framework to automatically assess task utility for an arbitrary application. It suggests criteria to explain task utility and then quantifies these criteria for logs of your system.
@gagb https://github.com/gagb can you please elaborate what sound too
complex?
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/autogen/pull/681#discussion_r1394872568,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKS2GRI3SNIAIN43G46LK2TYEU3KTAVCNFSM6AAAAAA7LZKN7KVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTOMZTGA3TQMZZGU
.
You are receiving this because you were mentioned.Message ID:
@.***>

@., I did not get the connection beetwen the Side-by-Side finding from the previous work and AgentEval from the text
…
On Wed, Nov 15, 2023 at 1:59 PM Julia Eclipse @.> wrote: @.*** commented on this pull request. ------------------------------ In website/blog/2023-11-11-AgentEval/index.md <#681 (comment)>: > @@ -0,0 +1,141 @@ + +--- +title: AgentEval: Assessing Task Utility for LLM-powered Applications +authors: julianakiseleva, Narabzad +tags: [LLM, GPT, evaluation, task utility] +--- + + + +TL;DR: +* We introduce AgentEval — the first version of the framework to automatically assess task utility for an arbitrary application. It suggests criteria to explain task utility and then quantifies these criteria for logs of your system. @gagb https://github.com/gagb can you please elaborate what sound too complex? — Reply to this email directly, view it on GitHub <#681 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKS2GRI3SNIAIN43G46LK2TYEU3KTAVCNFSM6AAAAAA7LZKN7KVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTOMZTGA3TQMZZGU . You are receiving this because you were mentioned.Message ID: @.***>

@ahmed-awadallah Through the experiment with humans, where we show them side by side two agents to compare, they then come up with preferences. While explaining their preferences, humans come up with a list of criteria. So, the critic takes over this job by suggesting the criteria upfront. I will incorporate it into the post.

LGTM overall. Is it possible to put the files in the "agentchat_results" folder somewhere else?

LGTM overall. Is it possible to put the files in the "agentchat_results" folder somewhere else?

@qingyun-wu We asked @sonichi and he suggested that is a good place to keep. We mention all the logs in our fork and here we only keep few samples to run the code and have a samples of plots on them. What is your suggestion? Where should we keep it?

LGTM overall. Is it possible to put the files in the "agentchat_results" folder somewhere else?

@qingyun-wu We asked @sonichi and he suggested that is a good place to keep. We mention all the logs in our fork and here we only keep few samples to run the code and have a samples of plots on them. What is your suggestion? Where should we keep it?

If all the files are in the forked repo, maybe we don't need to store any files in this repo. Just download from the forked repo.

LGTM overall. Is it possible to put the files in the "agentchat_results" folder somewhere else?

qingyun

Should this image instead say "Assessed Task"?

The loop in this striking diagram grabs the reader's attention, but the text doesn't seem to say anything about updating or convergence. The limitations section recommends running CriticAgent multiple times. Is that referring to the loop shown here?

The loop in this striking diagram grabs the reader's attention, but the text doesn't seem to say anything about updating or convergence. The limitations section recommends running CriticAgent multiple times. Is that referring to the loop shown here?

Yes, in the version presented in this blog post, we suggest it run critic a number of times and manually update the list of criteria. In the upcoming new version -- we will introduce the loop. Here, in particular, we wanted to illustrate that the process of discovering criteria is not really static.

LGTM overall. Is it possible to put the files in the "agentchat_results" folder somewhere else?

@qingyun-wu We asked @sonichi and he suggested that is a good place to keep. We mention all the logs in our fork and here we only keep few samples to run the code and have a samples of plots on them. What is your suggestion? Where should we keep it?

If all the files are in the forked repo, maybe we don't need to store any files in this repo. Just download from the forked repo.

Yes, in the testbed, I include a helper script/stub to download other files (e.g., humaneval) from their respective repos. I think something like that could work here.

respective

I changed it accordingly so it download a zip from our fork and extract it under agenteval-in-out.

LGTM overall. Is it possible to put the files in the "agentchat_results" folder somewhere else?

@qingyun-wu We asked @sonichi and he suggested that is a good place to keep. We mention all the logs in our fork and here we only keep few samples to run the code and have a samples of plots on them. What is your suggestion? Where should we keep it?

If all the files are in the forked repo, maybe we don't need to store any files in this repo. Just download from the forked repo.

Yes, in the testbed, I include a helper script/stub to download other files (e.g., humaneval) from their respective repos. I think something like that could work here.

respective
I changed it accordingly so it download a zip from our fork and extract it under agenteval-in-out.

@afourney @sonichi
we ran the pre-commit, and it passed:
.../autogen-agenteval-fork/autogen# pre-commit run
check for added large files..........................(no files to check)Skipped
check python ast.....................................(no files to check)Skipped
check yaml...........................................(no files to check)Skipped
check toml...........................................(no files to check)Skipped
check json...........................................(no files to check)Skipped
check BOM - deprecated: use fix-byte-order-marker....(no files to check)Skipped
check for merge conflicts............................(no files to check)Skipped
detect private key...................................(no files to check)Skipped
trim trailing whitespace.............................(no files to check)Skipped
fix end of files.....................................(no files to check)Skipped
don't commit to branch...................................................Passed
black................................................(no files to check)Skipped
ruff.................................................(no files to check)Skipped

@julianakiseleva I fixed the formatting issue.
The steps I took:

Cloned your repo.
Created local branch: git branch fix_formatting; git checkout fix_formatting
Run: pre-commit run --all-files
Re-add all the modified files.
Commit
Switch back to main: git checkout main
Merge the format fixes: git merge fix_formatting
Push the changes to update the PR: git push origin main

This PR could be merged once the conversations are resolved.  @nushib 2 days ago
"It may be useful for the reader here to know whether the critic or the quantifier agent requires as an input the definition of the task itself or few shot examples from the dataset. Or whether it is useful at all to do so (even if not required)." Is this comment above addressed? @julianakiseleva @Narabzad @nushib  If so, please mark it resolved.

This PR could be merged once the conversations are resolved. @nushib 2 days ago "It may be useful for the reader here to know whether the critic or the quantifier agent requires as an input the definition of the task itself or few shot examples from the dataset. Or whether it is useful at all to do so (even if not required)." Is this comment above addressed? @julianakiseleva @Narabzad @nushib If so, please mark it resolved.

@qingyun-wu yes, all the comments are addressed in the last version of the blog post. Marked them as resolved.

@julianakiseleva need to use the correct date for the folder name current is 11/11

@gagb  Fixed.

@sonichi  we addressed all the comments and resolved the merge conflict.

e.g., Previous Work is capitalized by other section titles use lower cas

@gagb  done.


cmd/go: go install documentation is lacking; effect of $GOBIN underdocumented

It's been a while since I had to fiddle with my dev setup but I recently created a new separate go repo in my home directory and it took me a while to untangle where which binaries got installed. Specifically when it comes to uses of $GOBIN for which the documentation is a bit vague. It says that if $GOBIN is set, the go command installs all commands there. Well, that's not what I am observing.
I have no Go specific environment variables set but for GOPATH which is set to $HOME. So no GOBIN, or GOROOT per the usual recommendation.
In a brand-new local repo of the Go distribution, after running make.bash, the two tools go and gofmt are built and installed in $GOROOT/bin where $GOROOT is the repo directory (per documentation). It doesn't matter if $GOBIN is set or not.
go install of a new "command", that is a main package under $GOROOT/src/cmd, appears to be installed in $GOTOOLDIR no matter if $GOBIN is set or not. $GOTOOLDIR is $GOROOT/pkg/tool/GOOS_$GOARCH.
Only for binaries (main packages) outside $GOROOTsrc/cmd does $GOBIN apply: Those end up in $GOBIN if it set, or in GOROOT/bin if $GOBIN is not set.
(This is all based in empirical evidence, I haven't studied the code. Happy to be corrected if I got this wrong.)
The documentation should be more clear. Right now we have lists of environment variables and respective documentation which is referred to from various places but it's not consistent.
More generally, it would be useful to document the recommended basic dev setup for people who want to work on the std lib. Specifically, where what is installed. Note that go help install doesn't say anything about what "install" actually means or where things go. It refers to go help build and go help packages which only makes things complicated.
cc: @bcmills

Hmm is it possible to do it the other way around. So let's try to keep the consistency and do what the documentation suggest instead of modifying the doc. So $GOBIN is always king: go modules or go path or goroot stuff doesn't matter, always put it in $GOBIN. I understand it will break a lot of things but nothing I think where make files and build scripts can adapt to by modifying $GOBIN on the fly?

@gertcuykens I doubt that we can change the existing behavior w/o breaking a large number of people's setups. Updating the documentation is probably the way to go. But leaving this to the people responsible for the current behavior.
cc: @rsc


Fire Emblem Radiant Dawn fixes

-Fixed the "Press +/START Button" on the title screen for all controller types, for all 5 PAL languages
-Fixed the Wiimote's 2 button incorrectly mapping
-Added the general button/icons textures for French and Italian
The resulting "Press +/START Button" prompts for the GameCube and Classic controllers now use their Wiimote counterparts (which only had the "+" icon without the "START" text) as the base textures

Looks really very good 👍


Document how to do "paging" in Realm

See #2247.

This may not be a good place for this comment, but I couldn't think if any better place.
Have you guys considered, writing a high-level Technology Overview of Realm?
Kind of like: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/Articles/cdTechnologyOverview.html
It could talk a little about memory mapping, and it's advantages in the context of Ream. It could highlight the fact that because it is memory mapped, the need for batching/faulting, caching, and paging is pretty much eliminated in Realm. It could also explain that lightweight object accessors are only created when accessed in arrays/results, and how properties are literally read from a memory mapped file (as per my understanding) when they are accessed instead of being copied into memory.
I think this might reduce the number of issues that get opened (on a fairly regular basis) about issues batching/faulting/caching/paging.
Hopefully, this comment is at least a little helpful. :)

Hopefully, this comment is at least a little helpful. :)

Definitely! This is something we'd love to do, and it's only a matter of taking the time. There are many docs issues that we need to tackle first though...

@TimOliver you assigned yourself to this a while back. Are you still working on it? If so, what's blocking you? If not, please unassign yourself.

Sorry JP! I was aiming to do this one this week (Which was why I hadn't removed myself).
I've filed a PR for adding this to the docs now.

Done: https://realm.io/docs/objc/latest/#limiting-results


Consider Upgrading to Farseer 3.5

Right now, Duality uses Farseer 3.3. Upgrading to Farseer Physics 3.5 might yield performance, memory usage and physics behavior improvements. However, there are certain unresolved issues in Farseer 3.5 that require further investigation.

Still no feedback from the Farseer owner and the project appears to be abandoned. Don't upgrade under these circumstances. It's too risky for too little gain.


Remove added mistake by vim?

Type of change

Documentation update

Description
typo in text removed

Thanks @Smuu !
Please resubmit the PR against main branch. We do all new PRs against the main branch and then optionally cherry pick them to release branches like release-2.2.
Also, you will need to sign the commit to get DCO check to pass, see instructions at https://github.com/hyperledger/fabric/pull/3302/checks?check_run_id=5709285462.

See #3304 for the new PR against main.


Execution failed for task ':processResources'.

Execution failed for task ':processResources'.

Entry plugin.yml is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.0/dsl/org.gradle.api.file.CopySpec.html#org.gradle.api.file.CopySpec:duplicatesStrategy for details.

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Can't build the pre-release because of this bug gonna fix this soon

It looks it is getting the error because of the setting of Minecraft Development plugin in IntelliJ.
It's setting use gradle5, but I use gradle7.
Gonna make the project by myself or etc.

maybe make the project with kotlin..?


Upload image routine broken ?

Can't upload images or files.
On Editor, trying to upload something it acepts the image or file, in case of image it appears during upload and returns success upload but only appears image name with broken image.
This simptom also occurs on profile image, where on the moment of validating the chosen image, it appears ok, but refreshing the page or acessing later, the image is gone

Its not a permission problem because i made a small script to upload files to uploads folder and it works ok.
Suspecting maybe a problem with subfolder instalation i made a clean install on last xampp version, but the problem is exactly the same.
Locking on logs, can't see nothing related neither errors on apache logs

Sorry... solved... some misconfiguration (install on subfolder). Latter i found that images are placed on public/uploads dir on BookStack folder. Symbolic link solved that.


Scroll position not restored on restoration visit (with ReactOnRails)

Hi guys,
i use the Turbolinks gem in combination with ReactOnRails. Everything works as expected but i have some troubles with restoring the scroll position when the user navigates back.
I already opened an issue on ReactOnRails, but we were not able to fix the problem. That's why i'm calling for your help ;)
A very short summary of what i know so far:
In a fresh rails installation (without ReactOnRails) restoring the scroll position works just fine. With ReactOnRails it does not.
But a simple workaround in turbolinks.js fixes the problem: Adding a setTimeout() to the scrollToPosition() function like so:
t.ScrollManager = function() {
    function t(t) {
        this.delegate = t, this.onScroll = e(this.onScroll, this)
    }
    return t.prototype.start = function() {
        return this.started ? void 0 : (addEventListener("scroll", this.onScroll, !1), this.onScroll(), this.started = !0)
    }, t.prototype.stop = function() {
        return this.started ? (removeEventListener("scroll", this.onScroll, !1), this.started = !1) : void 0
    }, t.prototype.scrollToElement = function(t) {
        return t.scrollIntoView()
    }, t.prototype.scrollToPosition = function(t) {
        var e, r;
        console.log(t)
        setTimeout(function(){
          return e = t.x, r = t.y, window.scrollTo(e, r)
        }, 1);
    }, t.prototype.onScroll = function(t) {
        return this.updatePosition({
            x: window.pageXOffset,
            y: window.pageYOffset
        })
    }, t.prototype.updatePosition = function(t) {
        var e;
        return this.position = t, null != (e = this.delegate) ? e.scrollPositionChanged(this.position) : void 0
    }, t
}()

You can find the issue i created for ReactOnRails here: https://github.com/shakacode/react_on_rails/issues/444
Any ideas how to fix that?
Thanks for your help!

Hi guys, just to let you know: The issue was a ReactOnRails problem (unmounting components too early - for more infos see the reference above).


AWS IAM Delete File issue Github APP

Describe the bug
Deleted an AWS IAM role
To Reproduce
Steps to reproduce the behavior:

import AWS IAM roles using iambic import
Create some new files, but also delete a file
create a Pull request in Github, then run iambic apply
then FAIL

Expected behavior
create other accounts, "un-manage" the old account.
 File "/app/iambic/core/models.py", line 553, in delete
   repo = Repo(self.file_path, search_parent_directories=True)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/usr/local/lib/python3.11/site-packages/git/repo/base.py", line 213, in __init__
   raise NoSuchPathError(epath)
git.exc.NoSuchPathError: /tmp/lambdaws6b38a5/.iambic/repos/resources/aws/iam/role/xxx-xxxx/assume-ecs-roles2.yaml

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
 File "/app/iambic/plugins/v0_1_0/github/github.py", line 370, in handle_iambic_git_apply
   template_changes = run_git_apply(
                      ^^^^^^^^^^^^^^
 File "/app/iambic/main.py", line 283, in run_git_apply
   template_changes = asyncio.run(
                      ^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/runners.py", line 190, in run
   return runner.run(main)
          ^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/runners.py", line 118, in run
   return self._loop.run_until_complete(task)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/base_events.py", line 653, in run_until_complete
   return future.result()
          ^^^^^^^^^^^^^^^
 File "/app/iambic/request_handler/git_apply.py", line 82, in apply_git_changes
   template_changes = await config.run_apply(
                      ^^^^^^^^^^^^^^^^^^^^^^^
 File "/app/iambic/config/dynamic_config.py", line 277, in run_apply
   template_changes = await asyncio.gather(*tasks)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/app/iambic/plugins/v0_1_0/aws/handlers.py", line 256, in apply
   template_changes = list(chain.from_iterable(await asyncio.gather(*tasks)))
                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/app/iambic/plugins/v0_1_0/aws/handlers.py", line 205, in apply_iam_templates
   await async_batch_processor(
 File "/app/iambic/core/utils.py", line 229, in async_batch_processor
   return await asyncio.gather(*tasks, return_exceptions=return_exceptions)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/app/iambic/plugins/v0_1_0/aws/models.py", line 809, in apply
   self.delete()
 File "/app/iambic/core/models.py", line 569, in delete
   os.remove(self.file_path)
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/lambdaws6b38a5/.iambic/repos/resources/aws/iam/role/xxx-xxxx/assume-ecs-roles2.yaml'

AWS Lambda function integrated with Github

Community Engagement
Your vote counts! Please support this bug report by adding a 👍 reaction to the original issue, which will aid the community and maintainers in addressing this problem.
Please refrain from adding "+1" or "me too" comments, as these create unnecessary noise for issue followers and do not help in prioritizing the issue. If you wish to contribute to solving this issue or have submitted a pull request, please leave a comment.

By default, IAMbic will capture the state of all IAM, but doesn't need to manage all of it. Based on our conversation, I think you'd like to instruct IAMbic to ignore certain resources. Would the solution specified in #421 work for your use case?
Based on our conversation, I also heard from you that when we see a PR with a removed file, we should take the opportunity to instruct users (via GH comment) about the proper way to either 1) Remove, or 2) Ignore different resources.

ok, I can confirm I replicate this with latest version.
https://github.com/noqdev/iambic-templates-itest/pull/299 (internal repo), so not publicly visible.
This is related to the git usage of iambic. When it retrieves list of changes, it see a modified file that is categorized as rename. (I copy template_1 as template_2, change the id inside template_2. proceed to do git rm template_1 , git add template_2. git commit considers it as a rename. (shrugs).
iambic has business logic to create an in-memory file for the deleted contents. it attempts to check over during apply and then proceed to delete it. That logic is ok for actual template physically on the filesystem but not one that it creates in-memory.


🌐 Update Portuguese translation for docs/pt/docs/tutorial/cookie-params.md

Thanks a lot for one more contribution! @ceb10n :smile:
And thanks for the help reviewing @nazarepiedady @cassiobotaro :rocket: :100:


Unknown partclone image version

Hi, sorry if I am asking noon questions but where do I run the command? In cmd? Or in the clonezilla-util?

Hi Yoyko,
Yes just open cmd first, then change into the appropriate folder eg. cd C:\Downloads\clonezilla-util then you can run commands.
Please let me know how you go :)
Cheers,
Fidel

Hi Yoyko,
Yes just open cmd first, then change into the appropriate folder eg. cd C:\Downloads\clonezilla-util then you can run commands.
Please let me know how you go :)
Cheers, Fidel

I manged to run the command but drive is not mounted:
C:\Users\Wiecz\Downloads\Nowy folder>clonezilla-util.exe mount --input D:\Backup\2022-11-05-16-imgwindows11 --mount L:\ [11:12:38 INF] clonezilla-util v2.0.1 [11:12:38 INF] [2022-11-05-16-imgwindows11] [nvme0n1p1] Finding optimal decompressor (seekable/sequential) [11:12:40 INF] [2022-11-05-16-imgwindows11] [nvme0n1p1] Loading partition information [11:12:40 INF] [2022-11-05-16-imgwindows11] [nvme0n1p2] Finding optimal decompressor (seekable/sequential) [11:12:40 INF] [2022-11-05-16-imgwindows11] [nvme0n1p2] Loading partition information [11:12:40 ERR] [2022-11-05-16-imgwindows11] [nvme0n1p2] Error while opening partition System.Exception: Unknown partclone image version:    at libPartclone.PartcloneImageInfo..ctor(String containerName, String partitionName, Stream readStream, IPartcloneCache cache)    at libPartclone.PartcloneStream..ctor(String containerName, String partitionName, Stream inputStream, IPartcloneCache cache)    at libClonezilla.Partitions.PartclonePartition..ctor(String originFilename, PartitionContainer container, String partitionName, Stream compressedPartcloneStream, Nullable1 uncompressedLength, Compression compressionInUse, IPartitionCache partitionCache, IPartcloneCache partcloneCache, Boolean willPerformRandomSeeking)
at libClonezilla.PartitionContainers.ClonezillaImage.<>c__DisplayClass3_0.<.ctor>b__1(String partitionName)
[11:12:40 INF] [2022-11-05-16-imgwindows11] [nvme0n1p3] Finding optimal decompressor (seekable/sequential)
[11:12:52 INF] [2022-11-05-16-imgwindows11] [nvme0n1p3] Loading partition information
[11:12:53 ERR] [2022-11-05-16-imgwindows11] [nvme0n1p3] Error while opening partition
System.Exception: Unknown partclone image version:
at libPartclone.PartcloneImageInfo..ctor(String containerName, String partitionName, Stream readStream, IPartcloneCache cache)
at libPartclone.PartcloneStream..ctor(String containerName, String partitionName, Stream inputStream, IPartcloneCache cache)
at libClonezilla.Partitions.PartclonePartition..ctor(String originFilename, PartitionContainer container, String partitionName, Stream compressedPartcloneStream, Nullable`1 uncompressedLength, Compression compressionInUse, IPartitionCache partitionCache, IPartcloneCache partcloneCache, Boolean willPerformRandomSeeking)
at libClonezilla.PartitionContainers.ClonezillaImage.<>c__DisplayClass3_0.<.ctor>b__1(String partitionName)
[11:12:53 INF] [2022-11-05-16-imgwindows11] [nvme0n1p4] Finding optimal decompressor (seekable/sequential)
[11:13:00 INF] [2022-11-05-16-imgwindows11] [nvme0n1p4] Loading partition information
[11:13:00 INF] [2022-11-05-16-imgwindows11] [nvme0n1p5] Finding optimal decompressor (seekable/sequential)
[11:13:10 INF] [2022-11-05-16-imgwindows11] [nvme0n1p5] Loading partition information
[11:13:10 INF] [2022-11-05-16-imgwindows11] [nvme0n1p6] Finding optimal decompressor (seekable/sequential)
[11:13:13 INF] [2022-11-05-16-imgwindows11] [nvme0n1p6] Loading partition information
[11:13:13 INF] Waiting for L:\ to be available.
[11:13:13 INF] [2022-11-05-16-imgwindows11] [nvme0n1p1] Retrieving a list of files.
Unhandled exception. System.Exception: C:\Users\Wiecz\Downloads\Nowy folder\ext\7-Zip\win-x64\7z.exe l "L:\5b17fe1d-de85-408a-9530-9348dbf664b5 - Temp\36f48156-26ae-4f1e-b249-7dcd9491d1f1\nvme0n1p1.img"
Process encountered errors:
ERROR: L:\5b17fe1d-de85-408a-9530-9348dbf664b5 - Temp\36f48156-26ae-4f1e-b249-7dcd9491d1f1\nvme0n1p1.img : Cannot open the file as archive
at libCommon.ProcessUtility.RunCommand(String cpath, String args, Boolean verbose, Boolean throwExceptionIfProcessHadErrors, Func2 shouldStop)+MoveNext()    at lib7Zip.SevenZipUtility.IsArchive(String filename)    at libClonezilla.Partitions.MountedPartitionImage.GetTree()    at libClonezilla.Partitions.MountedPartitionImage..ctor(Partition partition, Folder partitionFolder, IVFS vfs, DesiredContent desiredContent)    at libClonezilla.Partitions.MountedContainer.<>c__DisplayClass0_0.<.ctor>b__0(Partition partition)    at System.Linq.Enumerable.SelectListIterator2.ToList()
at System.Linq.Enumerable.ToListTSource
at libClonezilla.Partitions.MountedContainer..ctor(PartitionContainer container, Folder containerFolder, IVFS vfs, DesiredContent desiredContent)
at libClonezilla.Utility.<>c__DisplayClass1_0.b__1(PartitionContainer container)
at System.Linq.Enumerable.SelectListIterator2.ToList()    at System.Linq.Enumerable.ToList[TSource](IEnumerable1 )
at libClonezilla.Utility.PopulateVFS(IVFS vfs, Folder containersRoot, List1 containers, DesiredContent desiredContent)    at clonezilla_util.Program.MountAsFiles(MountAsFiles mountAsFilesOptions)    at clonezilla_util.Program.Run(Object obj)    at CommandLine.ParserResultExtensions.WithParsed[T](ParserResult1 result, Action1 action)    at clonezilla_util.Program.Main(String[] args)

mounting image got 3 partitions but for the main one i get
[11:12:40 INF] [2022-11-05-16-imgwindows11] [nvme0n1p3] Finding optimal decompressor (seekable/sequential) [11:12:52 INF] [2022-11-05-16-imgwindows11] [nvme0n1p3] Loading partition information [11:12:53 ERR] [2022-11-05-16-imgwindows11] [nvme0n1p3] Error while opening partition System.Exception: Unknown partclone image version:    at libPartclone.PartcloneImageInfo..ctor(String containerName, String partitionName, Stream readStream, IPartcloneCache cache)    at libPartclone.PartcloneStream..ctor(String containerName, String partitionName, Stream inputStream, IPartcloneCache cache)    at libClonezilla.Partitions.PartclonePartition..ctor(String originFilename, PartitionContainer container, String partitionName, Stream compressedPartcloneStream, Nullable1 uncompressedLength, Compression compressionInUse, IPartitionCache partitionCache, IPartcloneCache partcloneCache, Boolean willPerformRandomSeeking)
at libClonezilla.PartitionContainers.ClonezillaImage.<>c__DisplayClass3_0.<.ctor>b__1(String partitionName)`

Thanks Yoyko,
Could you please upload the clonezilla-img file?
Thanks!
Fidel

Actually, the latest version (2.0.3) should get past the problem you reported.

Hi, I think I get the same error with 2.0.3
After the disk was mounted I was able to access 2 out of 4 partitions avalilable on the disk;
clonezilla-util.exe mount --input G:\Backup\20221121\2022-11-21-18-img --mount L:\ [09:42:54 INF] clonezilla-util v2.0.3 [09:42:55 INF] [2022-11-21-18-img] [nvme0n1p1] Finding optimal decompressor (seekable/sequential) [09:42:55 INF] [2022-11-21-18-img] [nvme0n1p1] Loading partition information [09:42:55 INF] [2022-11-21-18-img] [nvme0n1p1] Reading partclone content map [09:42:56 INF] [2022-11-21-18-img] [nvme0n1p2] Finding optimal decompressor (seekable/sequential) [09:42:56 INF] [2022-11-21-18-img] [nvme0n1p2] Loading partition information [09:42:56 ERR] [2022-11-21-18-img] [nvme0n1p2] Error while opening partition System.Exception: Unknown partclone image version:    at libPartclone.PartcloneImageInfo..ctor(String containerName, String partitionName, Stream readStream, IPartcloneCache cache)    at libPartclone.PartcloneStream..ctor(String containerName, String partitionName, Stream inputStream, IPartcloneCache cache)    at libClonezilla.Partitions.PartclonePartition..ctor(String originFilename, PartitionContainer container, String partitionName, Stream compressedPartcloneStream, Nullable1 uncompressedLength, Compression compressionInUse, IPartitionCache partitionCache, IPartcloneCache partcloneCache, Boolean willPerformRandomSeeking)
at libClonezilla.PartitionContainers.ClonezillaImage.<>c__DisplayClass3_0.<.ctor>b__1(String partitionName)
[09:42:56 INF] [2022-11-21-18-img] [nvme0n1p3] Finding optimal decompressor (seekable/sequential)
[09:43:06 INF] Generating gzip index.
ACTION: Create index for a gzip file
Processing STDIN ...
Processing index to 'C:\Apps\clonezilla-util\cache\f8bdf4a4c079f47f\nvme0n1p3.gztool_index.gzi.wip'...
[09:43:07 INF] Indexed 50 MB / 85,29 GB (0%)`

Got the same error, also on 2.03 with an image from an opensuse system
I also tried a NTFS  image and it worked without a problem, so maybe it has to do with BTRFS?
Here is the clonezilla-img of the image that did not work:
This image was saved by Clonezilla at 2020-07-08 15:30:42 UTC.
Saved by clonezilla-live-2.6.7-28-amd64.
The log during saving:
----------------------------------------------------------
Starting /usr/sbin/ocs-sr at 2020-07-08 15:06:26 UTC...
*****************************************************.
Clonezilla image dir: /home/partimag
Shutting down the Logical Volume Manager
Finished Shutting down the Logical Volume Manager
The selected devices: sdb
*****************************************************.
The selected devices: sdb
Searching for data/swap/extended partition(s)...
The data partition to be saved: sdb1 sdb3 sdb4
The swap partition to be saved: sdb5
The selected devices: sdb1 sdb3 sdb4
*****************************************************.
Machine: Z97P-D3
sdb (250GB_Samsung_SSD_850__Samsung_SSD_850_EVO_250GB_S2MRNX0J205570B)
sdb1 (500M_vfat_NO_NAME(In_Samsung_SSD_850_)_Samsung_SSD_850_EVO_250GB_S2MRNX0J205570B)
sdb3 (8M_bios_grub(In_Samsung_SSD_850_)_Samsung_SSD_850_EVO_250GB_S2MRNX0J205570B)
sdb4 (145.5G_btrfs(In_Samsung_SSD_850_)_Samsung_SSD_850_EVO_250GB_S2MRNX0J205570B)
*****************************************************.
-> "/home/partimag/2020-07-08-15-img".
Shutting down the Logical Volume Manager
Finished Shutting down the Logical Volume Manager
Saving block devices info in /home/partimag/2020-07-08-15-img/blkdev.list...
Saving block devices attributes in /home/partimag/2020-07-08-15-img/blkid.list...
Checking the integrity of partition table in the disk /dev/sdb...
Reading the partition table for /dev/sdb...RETVAL=0
*****************************************************.
Saving the primary GPT of sdb as /home/partimag/2020-07-08-15-img/sdb-gpt-1st by dd...
34+0 records in
34+0 records out
17408 bytes (17 kB, 17 KiB) copied, 0.000482482 s, 36.1 MB/s
*****************************************************.
Saving the secondary GPT of sdb as /home/partimag/2020-07-08-15-img/sdb-gpt-2nd by dd...
32+0 records in
32+0 records out
16384 bytes (16 kB, 16 KiB) copied, 0.000506148 s, 32.4 MB/s
*****************************************************.
Saving the GPT of sdb as /home/partimag/2020-07-08-15-img/sdb-gpt.gdisk by gdisk...
The operation has completed successfully.
*****************************************************.
Saving the MBR data for sdb...
1+0 Datensätze ein
1+0 Datensätze aus
512 Bytes kopiert, 0,000250197 s, 2,0 MB/s
Starting saving /dev/sdb1 as /home/partimag/2020-07-08-15-img/sdb1.XXX...
/dev/sdb1 filesystem: vfat.
*****************************************************.
*****************************************************.
Use partclone with pigz to save the image.
Image file will be split with size limit 4096 MB.
*****************************************************.
If this action fails or hangs, check:
* Is the disk full ?
*****************************************************.
Run partclone: partclone.vfat -z 10485760 -N -L /var/log/partclone.log -c -s /dev/sdb1 --output - | pigz -c --fast -b 1024 --rsyncable | split -a 2 -b 4096MB - /home/partimag/2020-07-08-15-img/sdb1.vfat-ptcl-img.gz. 2> /tmp/split_error.G9Rbmh
Partclone v0.3.14 http://partclone.org
Starting to clone device (/dev/sdb1) to image (-)
Reading Super Block
memory needed: 21099524 bytes
bitmap 128000 bytes, blocks 2*10485760 bytes, checksum 4 bytes
Calculating bitmap... Please wait...
done!
File system:  FAT16
Device size:  524.3 MB = 1024000 Blocks
Space in use:   5.6 MB = 10912 Blocks
Free Space:   518.7 MB = 1013088 Blocks
Block size:   512 Byte
Total block 1024000
Syncing... OK!
Partclone successfully cloned the device (/dev/sdb1) to the image (-)
>>> Time elapsed: 7.22 secs (~ .120 mins)
*****************************************************.
Finished saving /dev/sdb1 as /home/partimag/2020-07-08-15-img/sdb1.vfat-ptcl-img.gz
*****************************************************.
Starting saving /dev/sdb3 as /home/partimag/2020-07-08-15-img/sdb3.XXX...
/dev/sdb3 filesystem: bios_grub.
*****************************************************.
*****************************************************.
Use partclone with pigz to save the image.
Image file will be split with size limit 4096 MB.
*****************************************************.
If this action fails or hangs, check:
* Is the disk full ?
*****************************************************.
Run partclone: partclone.dd -z 10485760 -N --buffer_size 16777216 -L /var/log/partclone.log -s /dev/sdb3 --output - | pigz -c --fast -b 1024 --rsyncable | split -a 2 -b 4096MB - /home/partimag/2020-07-08-15-img/sdb3.dd-ptcl-img.gz. 2> /tmp/split_error.S273ke
Partclone v0.3.14 http://partclone.org
Starting to clone/restore (/dev/sdb3) to (-) with dd mode
get device size 8388608 by ioctl BLKGETSIZE64,
memory needed: 33556480 bytes
bitmap 2048 bytes, blocks 2*16777216 bytes, checksum 0 bytes
Calculating bitmap... Please wait... done!
File system:  raw
Device size:    8.4 MB = 16384 Blocks
Space in use:   8.4 MB = 16384 Blocks
Free Space:     0 Byte = 0 Blocks
Block size:   512 Byte
Total block 16384
Syncing... OK!
>>> Time elapsed: 6.14 secs (~ .102 mins)
*****************************************************.
Finished saving /dev/sdb3 as /home/partimag/2020-07-08-15-img/sdb3.dd-ptcl-img.gz
*****************************************************.
Starting saving /dev/sdb4 as /home/partimag/2020-07-08-15-img/sdb4.XXX...
/dev/sdb4 filesystem: btrfs.
*****************************************************.
*****************************************************.
Use partclone with pigz to save the image.
Image file will be split with size limit 4096 MB.
*****************************************************.
If this action fails or hangs, check:
* Is the disk full ?
*****************************************************.
Run partclone: partclone.btrfs -z 10485760 -N -L /var/log/partclone.log -c -s /dev/sdb4 --output - | pigz -c --fast -b 1024 --rsyncable | split -a 2 -b 4096MB - /home/partimag/2020-07-08-15-img/sdb4.btrfs-ptcl-img.gz. 2> /tmp/split_error.3yZsnm
Partclone v0.3.14 http://partclone.org
Starting to clone device (/dev/sdb4) to image (-)
Reading Super Block

btrfsclone.c: btrfs library version = Btrfs v4.2.2
block_size = 16384
usedblock = 5075920
device_size =<PHONE_NUMBER>88
totalblock = 9533632
btrfsclone.c: fs_close
memory needed: 22163228 bytes
bitmap 1191704 bytes, blocks 2*10485760 bytes, checksum 4 bytes
Calculating bitmap... Please wait...

btrfsclone.c: btrfs library version = Btrfs v4.2.2
done!
File system:  BTRFS
Device size:  156.2 GB = 9533632 Blocks
Space in use:  83.2 GB = 5075920 Blocks
Free Space:    73.0 GB = 4457712 Blocks
Block size:   16384 Byte
Total block 9533632
Syncing... OK!
Partclone successfully cloned the device (/dev/sdb4) to the image (-)
>>> Time elapsed: 853.59 secs (~ 14.226 mins)
*****************************************************.
Finished saving /dev/sdb4 as /home/partimag/2020-07-08-15-img/sdb4.btrfs-ptcl-img.gz
*****************************************************.
End of saveparts job for image /home/partimag/2020-07-08-15-img.
*****************************************************.
Saving swap partition sdb5 info in /home/partimag/2020-07-08-15-img/swappt-sdb5.info if it exists...
*****************************************************.
End of savedisk job for image 2020-07-08-15-img.
GPT 1st partition table file found!
GPT 2nd partition table file found!
GPT partition table file for this disk saved by gdisk was found: sdb
MBR file for this disk was found: sdb
Checking if udevd rules have to be restored...
This program is not started by Clonezilla server, so skip notifying it the job is done.
Finished!
This program is not started by Clonezilla server, so skip notifying it the job is done.
Finished!
### End of log ###
### Image created time: 2020-0708-1530

Terminal output:
[10:12:47 INF] clonezilla-util v2.0.4
[10:12:47 INF] [] [sdb1] Finding optimal decompressor (seekable/sequential)
[10:12:47 INF] [] [sdb1] Loading partition information
[10:12:47 INF] [] [sdb1] Reading partclone content map
[10:12:47 INF] [] [sdb3] Finding optimal decompressor (seekable/sequential)
[10:12:47 INF] [] [sdb3] Loading partition information
[10:12:47 ERR] [] [sdb3] Error while opening partition
System.Exception: Unknown partclone image version: ?↔f?
   at libPartclone.PartcloneImageInfo..ctor(String containerName, String partitionName, Stream readStream, IPartcloneCache cache)
   at libPartclone.PartcloneStream..ctor(String containerName, String partitionName, Stream inputStream, IPartcloneCache cache)
   at libClonezilla.Partitions.PartclonePartition..ctor(String originFilename, PartitionContainer container, String partitionName, Stream compressedPartcloneStream, Nullable`1 uncompressedLength, Compression compressionInUse, IPartitionCache partitionCache, IPartcloneCache partcloneCache, Boolean willPerformRandomSeeking)
   at libClonezilla.PartitionContainers.ClonezillaImage.<>c__DisplayClass3_0.<.ctor>b__1(String partitionName)


@OnetoMany / @ManyToOne fields in an @Superclass annotated interface

Hey,
is it possible to use @OnetoMany / @ManyToOne fields in a @Superclass annotated interface?
Kotlin example:
@Entity
interface X {

    @get:Key
    @get:Generated
    var id: Int

    var name: String

    @get:ManyToOne
    var a: A
}

@Superclass
interface A {

    @get:OneToMany
    var xes: Set<X>
}

@Entity
interface B : A {
    @get:Key
    @get:Generated
    var id: Int
}

@Entity
interface C : A {
    @get:Key
    @get:Generated
    var id: Int
}

The expected schema:

No currently you can't have an relational mapping to a superclass type. However I think having a superclass type refer to other non superclass types should work fine. Currently you can solve this by moving the relational references out of the superclass types (e.g. define X_B and X_C). However something like this may be possible in a later version.

Should be resolved with the changes from #461, will be in the next update


is there any function in pytorch-directml to empty the vram,directml cost too much memory.

as the title

It actually just reserves the memory and tracks use internally (so the number is always wrong in GPU driver / device manager memory.   Process explorer from SysInternals can show you the actual GPU memory use, I'm guessing it hooks the DX12 DLLs for the process and gets the real values rather than relying on allocation.  The other software shows you something that would be more equivalent to the "commit" value for normal processes which is just the amount the program asked to use (in the case of directml, it's always the full amount.     I've found that it was less than I expected for SDXL given the model sizes but couldn't explain why OOMs were happening with certain hires workflows in comfy aside from possibly making full copies of latents and other data between different nodes rather than forwarding it.  When I used a single-sampler node designed for SDXL that did everything in one node with both models attached I never ran out of memory, but that workflow is limiting in terms of what can be done in-between.


Texture atlas fails to show new region on Android

Godot version:
v3.1.beta3.official
OS/device including version:
Android nexus tablet
Issue description:
I have a sprite with atlas texture, including several images in a single file.
Setting the atlas to show the first image (first region) works fine.
Later on when the game logic changes the region, to show another image the old one remains.
It works on PC but fails on my android device.
I used a workaround of hiding and showing the sprite.
Code example:
$Sprite.texture.region = Rect2((miType + iPowerUp) * BLOCK_WIDTH, 0, BLOCK_WIDTH, BLOCK_HEIGHT)
# Workaround
$Sprite.hide()
$Sprite.show()

Steps to reproduce:
Minimal reproduction project:

Did it fails with GLES2 on PC ?

It works on PC using both GLES2 and GLES3 (without the workaround)

By the way, the texture size is 2624 X 64 and each region is 64X64.

Try setting the texture to 2048 or 4096 width, GPU textures sometime need to be power of 2 on mobile devices.

Fixed by 74d0ed22.
I would recommend that you use textures which have dimensions as powers of 2 indeed, as mentioned by @MisterDave. But the above-mentioned commit should make your current setup work, even if less efficient.


Establishing EPANET reg testing benchmark on Linux 64 bit

CI is currently configured to build EPANET using gcc on Linux with failing reg tests. We have not done the work to establish a proper reg testing benchmark there.
Since the code is already building on Linux gcc this issue involves establishing a reg testing benchmark on Linux gcc 64 bit. Thoughts?

This makes no sense, to have separate benchmarks per-platform or per-compiler. What makes more sense to me is settling on a testing framework that does not depend on platform or compiler. Are the differences really that significant? do the tests report on those differences? What really is the motivation for having a platform-dependent numerically-frozen test?

I think that a suite of results would be helpful. We (on WNTR) have been doing regression testing against results of simulations from a specific windows build of EPANET (the most recent from the EPA website), with tolerances based on acceptable differences due to platform variance. If there were a suite of results, that might give us an ability to create a “mean/std dev” approach to regression testing to get a set of baseline results which can be used to demonstrate equivalent performance on different platforms. It would be good to make sure the water network models used for regression testing fully sample all the different valve types, etc.


Excludes GB and CA from optin form

What's this PR do?
Removes Great Britain and Canada (SORRY) mailchimp list ID from the 3rd party optin form and provides an array others can add country codes too (or remove).
How should this be manually tested?
Open http://dev.dosomething.org:8888/admin/config/dosomething/opt_in and check the form
What are the relevant tickets?
Fixes #5254

:+1:

:gb: :maple_leaf: :shipit:


Update docker-py to docker

The pip package docker-py has been renamed to docker
See this page for more info https://github.com/docker/docker-py/issues/1310
This will allow for using the docker_config_module.
https://docs.ansible.com/ansible/latest/modules/docker_config_module.html
Please note that it is not allowed to have both docker-py and docker installed at the same time.

Thanks @fmotrifork for the heads-up, I've not fixed this in https://github.com/atosatto/ansible-dockerswarm/pull/72.


New: ConfigurableTablePrinter

It turned out that I would like to see even more columns in the detailed solution.
However, I don't think all these new columns should be always printed, so I made the printer even more flexible.
Because this additional flexibility has some overhead, I decided to create a new implementation of DynamicTablePrinter, instead of  overwriting the old one. The DynamicTablePrinter is a better choice, when

you don't have a well defined context to work on (you collect the rows from several sources)
it is unprobably to extend the columns

In the SolutionPrinter, the problem and solution base data is an example for this.
When you would like to privide a set of columns for the users, and let them to choose from, the new, ConfugurableTablePrinter is better. Here you have to define a context (PrinterContext), define all the columns (inheriting from AbstractPrinterColumn). Then you can pick any of these columns in any order by the PrinterColumnList class.
I've implemented all old columns as AbstractPrinterColumn and added some more:

A human readable form of times (Check AbstractHumanReadableTimePrinterColumn and its subclasses)
Some activity level counterpart of the already existing aggregate ones: size (loadChange), cost

I'm planning to implement some more, too:

[ ] - timeWindows (both numeric and human readable) for activity
[x] - operationTime for activity
[x] - job type (class)
[x] - priority of a job

Do you have any other?
Other tasks to do:

[ ] - Allow the user to use this feature in SolutionPrinter (with a decent default, of couse)
[ ] - Extend the TablePrinter class(es?) to export the data into csv, too
[ ] - Document the classes, add tests

(To let you see how it works, I left in SolutionPrinter both the old and the new verbose printer.)

Oh, I have a question about the times shown in the solution.
Let's have a look:
+-------+----------+--------+---------+---------+
| route | activity | opTime | arrTime | endTime |
+-------+----------+--------+---------+---------+
| 1     | start    | 0      |       - |       0 |
| 1     | pickup   | 5      |       0 |       5 |
| 1     | exchange | 5      |      17 |    3005 |
| 1     | delivery | 5      |    3017 |    3022 |

Here the first pick is done at time 0 with a operationTime 5, so end is 5. It's ok.
Next there is an exchange with a time window at 3000. But it says it arrives at 17.
I know what it means (it has a travel time of 12 and waits for 2983), but this display is misleading.  The time between 5 and 2988 is idle time.
Also, we can't clearly see, exactly how much time this activity has taken (transport+operation).
Is ther any information on transport time available in solution?
I propose to some two new time columns:

travel (transport) time
complete activityTime (transport + operation)
idle time before (or may it be a new row?)
operation start (end - operationTime)

These all can be calculated if transport time is available.
Your opinion, @oblonski?

Thanks again for your effort :).
Transport times can be easily calculated/retrieved via the VehicleRoutingProblem, i.e.
problem.getTransportCosts().getTransportTime(...)
I aggree, we can add more information. I find waitingTimes (at activity), drivingTime (up to activity) and distance (up to activity) important as well.

Added some more columns.
I unified the human readable and the normal values. Now all Time, Duration and TimeWindow columns have asHumanReadable() method. Duration differs from Time only that it ignores the origin of the formatter, so it calculates from time 0.
Here are the columns:
    HumanReadableTimeFormatter dateFormatter = new HumanReadableTimeFormatter(LocalDateTime.now(), ChronoUnit.SECONDS);
    columns
    .addColumn(new RouteNumberPrinterColumn())  // Rou
    .addColumn(new VehicleNamePrinterColumn())
    .addColumn(new ActivityTypePrinterColumn())
    .addColumn(new JobNamePrinterColumn(b -> b.withMinWidth(10)))
    .addColumn(new JobTypePrinterColumn())
    .addColumn(new JobPriorityPrinterColumn())
    .addColumn(new ActivityLoadChangePrinterColumn())
    .addColumn(new RouteLoadPrinterColumn())
    .addColumn(new LoacationPrinterColumn())
    .addColumn(new OperationDurationPrinterColumn())
    .addColumn(new OperationDurationPrinterColumn().asHumanReadable())
    .addColumn(new TravelDurationPrinterColumn())
    .addColumn(new TravelDurationPrinterColumn().asHumanReadable())
    .addColumn(new ActivityDurationPrinterColumn())
    .addColumn(new ActivityDurationPrinterColumn().asHumanReadable())
    .addColumn(new WaitingDurationPrinterColumn())
    .addColumn(new WaitingDurationPrinterColumn().asHumanReadable())
    .addColumn(new ArrivalTimePrinterColumn())
    .addColumn(new ArrivalTimePrinterColumn().asHumanReadable().withFormatter(dateFormatter))
    .addColumn(new StartTimePrinterColumn())
    .addColumn(new StartTimePrinterColumn().asHumanReadable().withFormatter(dateFormatter))
    .addColumn(new EndTimePrinterColumn())
    .addColumn(new EndTimePrinterColumn().asHumanReadable().withFormatter(dateFormatter))
    .addColumn(new TransportCostPrinterColumn())
    .addColumn(new ActivityCostPrinterColumn())
    .addColumn(new RouteCostPrinterColumn())
    .addColumn(new SelectedTimeWindowPrinterColumn())
    .addColumn(new SelectedTimeWindowPrinterColumn().asHumanReadable().withFormatter(dateFormatter))
    .addColumn(new TimeWindowsPrinterColumn())
    .addColumn(new TimeWindowsPrinterColumn().asHumanReadable().withFormatter(dateFormatter))

About times and durations:
arrivalTime = when the wehicle arrives
startTime = when the activity is really started (end - operTime)
endTime = when the activity ended
operationDuration = operation service time (from activity)
travelDuration = travel time
waitingDuration = idle time before start (start - arrival)
activityDuration = effective time (operationDuration + travelDuration)
timeWindows = all time windows defined
selectedTimeWindow = the time window the operation is done in


Import pages from other low code apps

Import pages
Make it possible to import pages from other low code apps.

Feature is implemented in version <IP_ADDRESS> (install package 1.0.1-CU7).


Connect TopCompaniesTable to backend and implement logo fetching

Implements a responsive TopCompaniesTable component that displays a user's most frequently purchased-from companies along with their ESG scores and total spend. The table features company logos fetched dynamically from Clearbit's API with fallback logic that attempts multiple domain variations before defaulting to a placeholder image. During data loading, the component displays an animated skeleton loader for improved UX.

@benrockehenderson Hi Ben, I love this! Code looks pretty good. I'm going to merge the conflicts and merge.