Adds support for ef_search query parameter in FAISS engine

Description
This introduces ef_search as a query parameter for search based on hnsw algorithm. This PR has changes for FAISS engine. Support for other engines will be added in consecutive PRs. Radial search support for FAISS will also be added in consecutive PRs. These changes are focused on k based queries.
Issues Resolved
https://github.com/opensearch-project/k-NN/issues/1537
Local testing
curl -XGET "http://localhost:9200/faiss-hnsw-index/_search" -H 'Content-Type: application/json' -d'
{
  "query": {
    "knn": {
      "faiss_vector": {
        "vector": [2, 3, 5],
        "k": 2,
        "method_parameters": {
           "ef_search" : 5

          }
        }
      }
    }
  }'

{
  "took": 69,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 2,
      "relation": "eq"
    },
    "max_score": 0.11918951,
    "hits": [
      {
        "_index": "faiss-hnsw-index",
        "_id": "3",
        "_score": 0.11918951,
        "_source": {
          "faiss_vector": [
            3.5,
            4.5,
            3.3
          ],
          "price": 12.9
        }
      },
      {
        "_index": "faiss-hnsw-index",
        "_id": "2",
        "_score": 0.10706638,
        "_source": {
          "faiss_vector": [
            2.5,
            3.5,
            2.2
          ],
          "price": 7.1
        }
      }
    ]
  }
}

Check List

[x] New functionality includes testing.

[x] All tests pass

[ ] New functionality has been documented. - pending documentation

[] New functionality has javadoc added - added wherever I felt required. open to feedback and I can add it

[x] Commits are signed as per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

{
  "query": {
    "knn": {
      "faiss_vector": {
        "vector": [2, 3, 5],
        "k": 2,
        "ef_search":5
      }
    }
  }
}

For interface, Im wondering if we should separate algo specific parameters into a nested parameters field. For instance, for faiss, we also will easily want to add parameters for nprobes to this. Additionally, as more algorithms are added, this main body will become cluttered.

For interface, Im wondering if we should separate algo specific parameters into a nested parameters field. For instance, for faiss, we also will easily want to add parameters for nprobes to this. Additionally, as more algorithms are added, this main body will become cluttered.

I am open to it. A few thoughts here

Client will need to have the knowledge of algorithm during query time. I don't have insights right now to say whether its good or bad.
Is there any impact on existing use cases, Will we have to deprecate any parameter?

One downside is it creates nesting of parameters depending on the approach, for instance
{
  "query": {
    "knn": {
      "faiss_vector": {
        "vector": [2, 3, 5],
        "hnsw": {
               k: 2,
               efSearch: 5
        }
      }
    }
  }
}

Another one is that we might not get away with cluttering completely for instance lets say we introduce algo name in the query, something like. This moves the cluttering to a different block altogether
{
  "query": {
    "knn": {
      "faiss_vector": {
        "vector": [2, 3, 5],
      }
     "hnsw": {
           k: 2 // Not that this can be maxDist or minScore  for radial search
          efSearch: 5
      }
    }
  }
}

Also we will have to add additional validations. The faiss_vector might not be indexed with hnsw algorithm and might be ivf
Let me know your thoughts on it and I am open to suggestions here.

I think we can always validate against the field mapping that is being searched. That being said, I like the following:
{
  "query": {
    "knn": {
      "faiss_vector": {
        "vector": [2, 3, 5],
        "k": 2, // Note that this can be maxDist or minScore  for radial search
        "method_parameters": {
// method specific parameters we can pack in here
               "ef_search": 5,
               // "nprobes": 72
        }
      }
    }
  }
}

With this, we can extend validate with the mapping being searched if the method parameter is valid. I really want to dynamically support nprobes because this is a value that needs to be tweaked during experimentation and to tweak it requires training a new model and rebuilding an index.

@shatejas Can we also add support for dynamic nprobes for IVF? This will make iterating/tuning with IVF a lot easier. We will need to read model definition from cluster state, but @ryanbogan should be able to help provide some insights on that.

@shatejas Can we also add support for dynamic nprobes for IVF? This will make iterating/tuning with IVF a lot easier. We will need to read model definition from cluster state, but @ryanbogan should be able to help provide some insights on that.

@jmazanec15 I would want to keep it separate - have a separate PR and preferably a separate issue so we do our due diligence. Lets keep this PR and feature branch concentrated on efSearch

@shatejas Can we also add support for dynamic nprobes for IVF? This will make iterating/tuning with IVF a lot easier. We will need to read model definition from cluster state, but @ryanbogan should be able to help provide some insights on that.

@jmazanec15 I would want to keep it separate - have a separate PR and preferably a separate issue so we do our due diligence. Lets keep this PR and feature branch concentrated on efSearch

We can have a separate PR but I would like to ensure that we release these dynamic parameters supports other algos too and not only just HNSW. From this PR stand point can we ensure that the interface is open enough that it can take other algorithm related parameters.

@shatejas Can we also add support for dynamic nprobes for IVF? This will make iterating/tuning with IVF a lot easier. We will need to read model definition from cluster state, but @ryanbogan should be able to help provide some insights on that.

@jmazanec15 I would want to keep it separate - have a separate PR and preferably a separate issue so we do our due diligence. Lets keep this PR and feature branch concentrated on efSearch

We can have a separate PR but I would like to ensure that we release these dynamic parameters supports other algos too and not only just HNSW. From this PR stand point can we ensure that the interface is open enough that it can take other algorithm related parameters.

I am currently trying to see how the structure of the code can be modified to fit this in a way that is open to extension. If I find a way that is simple enough you will see it in subsequent commits, if its a major refactor I will have a discussion

For separation of responsibilites, I meant delegate handling of parsing to the method in the engine. For instance, do something like Faiss.parseSearchParameters(KNNMethodContext, ThingToParse) -> return SearchParameters and pass it down the chain of abstractions.

I haven't read the whole conversation. But I kind of agree on this part only, its good that we are building an algorithm specific abstraction. But once we have that abstraction we can pass it through 1 more level of check from Engines to see if they don't support a specific parameters they can fail the search call.
Now, should we allow Engines to parse the parameters I would say no. We should give them a parsed object and let them validate it. This will ensure that k-NN plugin controls the interface and engines just do the validation, rather than just giving engines control to define the interface.

Completed my first pass on the src files. There are some good abstractions that have been added. I am seeing intensive use of streams and optionals. I personally feel we can avoid those things as search path of k-NN is very sensitive and these smaller abstractions of optional and stream adds latencies when called enough number of times doesn't matter from where they get called from.

streams I have tried to avoid might have missed it, will take another pass. Optionals are a surprise honestly as they are pretty light weight. I like them because they help avoid branching. Will remove them

How will we eventually define supported methods for each engine? Is the plan to move away from current mechanism to new paths.

The KNNengine enum which defines the instance is fine, The native library has deep hierarchies which can turn problematic but for now I wouldn't want to remove it. What I would like to see us move away from is giant static maps that are defined in each engine class. Those aren't maintainable and hard to follow. I am trying to structure it in a way that these are more manageable at the same time easy to use. I will give psuedocode for FAISS maybe on how the final structure would look like
class FAISS extends NativeLibrary {

     // singleton
     Map<String, EngineSpecificeMethodContext> methodContext = Map.of("hnsw", new FaissHnswContext(), "ivf", new FaissIVFContext());

//other engine specific stuff
}

FaissHnswContext.java

class FaissHnswContext implements EngineSpecificMethodContext {

      //singleton
      KNNMethod supportedMethodComponents();
      Map<String, Parameter> supportedMethodParameters();
      //anything that is unique to engine and method specific that comes around maybe supportedQuantization() ? I know its encapsulated in knnmethod but just to give you an idea

}

ofcourse for reusability we can have something like DefaultHNSWContext. Again this is not set in stone and have tried to structure with the limited context I have. I am open to suggestions here.

Will we be moving everything in index.util package to the new engine package?

The package structure isn't intuitive right now and sure if it makes more sense we can move it

What I would like to see us move away from is giant static maps that are defined in each engine class.

+1 want to remove this. I would like to move these to classes eventually.

The package structure isn't intuitive right now and sure if it makes more sense we can move it

Right, this is overdue for refactor.
I think the long term potential goal is to encapsulate this information in a strong interface so that backend method/implementation can be easily extended by a third-party.


Support retrieving and editing excludeFromIndexes (parity with other client libraries)

Is your feature request related to a problem? Please describe.
There is no way to get/set which fields of an entity are indexed after initial entity creation.
Use case:

Retrieve an entity
Add a new field to the entity
Exclude the new field from being indexed

Unlike the other client libraries, there is no way to achieve this with Node JS.
Describe the solution you'd like
Here's example code from the PHP Datastore library which easily enables this use case:
$ds = Datastore::get();
$entity = $ds->lookup($ds->key(...));
$entity["newField"] = 123;
$unindexedFields = $entity->excludedProperties(); // Get the unindexed fields.
$unindexedFields[] = "newField"; // Prevent the new field from being indexed.
$entity->setExcludeFromIndexes($unindexedFields);
$ds->update($entity);

Describe alternatives you've considered
Without this functionality, we cannot use Node JS or this library for our project.
Additional context
Related requests from other customers:
https://github.com/googleapis/nodejs-datastore/issues/914
https://github.com/googleapis/nodejs-datastore/issues/935

To support this feature we should write code to create and delete indexes. The following link shows this is not supported yet.
https://github.com/googleapis/nodejs-datastore/blob/cd59c718ebe6711603b08b3ba2677e5a984bc7e3/src/index-class.ts#L150-L151

I have encountered the same problem as described in the issue #914
I tried to use datastore.merge to add a single property to the entity, but because the excludeFromIndexes resets to all properties indexed and because i have a very large string (in java it was Text) stored, i get an error.
So what i have to do, is merge, but provide a full list of excludeFromIndexes so the merge works as expected.
Is there any timeline for this to get fixed?


Fix filename

Please, sign the CLA.

@pifon2a Thanks for the prompt review. I already signed it, but I forgot to leave a comment here.

@wally-the-cartographer merge

Merge requested by authorized user pifon2a. Merge queue now has a length of 1.

Refusing to merge, since the combined checks state is failure


Fix: mergeable PR

Use the same PR mergeable state check as on Atlantis

:tada: This PR is included in version 2.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


fix Travis setup

Please withdraw PR #10

problems with long build, see https://github.com/travis-ci/travis-ci/issues/6591

So, while I agree we need to have CI, I kinda propose to not block on having it for now, so can we revisit the #10 PR ?

Ok.
We need to keep this branch and maybe keep this PR as a reminder or something to avoid forgeting about it.

You can just put all the stuff in a comment, so we do not forget about it.

invalidated by #12


[python] Add flag to disable BLE for controller

Problem
Sometimes, we may run chip-device-ctrl on devices that does not support BLE, in this case, it will crash.
Change overview
Add a --no-ble flag so the user can choose not to bringup bluetooth.
Testing

Tested using Docker, which does not have bluez and bluetooth interface.

/rebase

/rebase


a4_depth_image_proc benchmark

This PR continues the work from #18 and continues on top of 6c4b60f
Tasks to be performed:

[x] Merge changes from main
[ ] Use the refactor of BenchmarkAnalyzer in the analysis launch file
[x] Update a4 graph
[ ] Use custom tracepoint for PointCloud2 in /point_cloud_output_component node instead of  robotperf_image_output_cb_* as it is being used right now

Optional:

[ ] Add tracepoints in /benchmark/depth_image_proc_disparity_node. Use ros-acceleration/image_pipeline

I've been blocked quite some time here.
After merging changes from main, there's an error running ros2 launch a4_depth_image_proc trace_a4_depth_image_proc.launch.py. The script is able to load every node of the perception_container, but immediately after I run ros2 bag play depth_image1/ the launchfile crashes:
# Loads the rest of the nodes
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/point_cloud_output_component' in container '/perception_container'
[component_container-1] /opt/ros/humble/lib/rclcpp_components/component_container: symbol lookup error: /tmp/tracing_ws/install/lib/libdepth_image_proc.so: undefined symbol: _ZN16depth_image_proc12convertDepthIfEEvRKSt10shared_ptrIKN11sensor_msgs3msg6Image_ISaIvEEEERS1_INS3_12PointCloud2_IS5_EEERKN14image_geometry18PinholeCameraModelEd
[ERROR] [component_container-1]: process has died [pid 28774, exit code 127, cmd '/opt/ros/humble/lib/rclcpp_components/component_container --ros-args -r __node:=perception_container -r __ns:=/'].

I can't pinpoint where the issue comes from exactly.

Some details I've found when refactoring the analysis launch file for a4:

The PointCloud2 header traces had to be renamed in order to fit the timestamp_identifier criteria. We should probably make that more flexible in the future, but I think it's out of the scope of this PR: https://github.com/robotperf/benchmarks/pull/34/commits/70a0af2a1d5765313f83a93d3232ed1f68fad808
The last_target variable was specifically specified for the a4 benchmark. As the NOTE in the file says, we should find a way for the user to specify that -- perhaps in the class __init__. Also, I think out of this PR's scope: https://github.com/robotperf/benchmarks/pull/34/commits/a66d6f494e80a0813aa1b0271de60964a182e834
When I try to plot a4 with plot_latency_results method, I've got the following error. @vmayoral I think you've fixed this issue for a5, do you remember what was causing it? Could only find this related commit.

[ERROR] [launch]: Caught exception in launch (see debug for traceback): Caught exception when trying to load file of format [py]: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

The results coming from brute-force-based and message-id-based search of traces have already been compared. However, I'd like to reflect the differences for a4 as well. Thus, for the same dataset I have the following results (I had to make a small change from the original work of a4 to run the analysis. The fork is here). Again, the new algorithm reports higher times.

(brute force)

Benchmark Mean
Benchmark RMS
Benchmark Max
Benchmark Min
Mean
RMS
Max
Min

RobotPerf benchmark
45.72 ms
78.79 ms
674.05 ms
2.73 ms
45.73 ms
78.80 ms
674.05 ms
2.73 ms

(msg id)

Benchmark Mean
Benchmark RMS
Benchmark Max
Benchmark Min
Mean
RMS
Max
Min

RobotPerf benchmark
82.59 ms
257.38 ms
4714.29 ms
21.80 ms
82.59 ms
257.38 ms
4714.30 ms
21.80 ms

@vmayoral ready for a CI/CD test. Please note that you must use https://github.com/ros-acceleration/image_pipeline/pull/3.


edge case: duplicate ids for rankings should not be possible

False alarm: it isn't possible, you can pass in an id to RankingRepository.Store, but it won't actually use the id.


add meta programming for RecordingExtractor

Here's a way of doing metaprogramming that should take care of all of the recordingextractors

With this code we could use
IntanRecordingExtractorDataInterface = recording_extractor_class_to_data_interface_class(IntanRecordingExtractor)
then we wouldn't have to worry about declaring classes for each RecordingExtractor

This uses the type command in a lesser-known way to dynamically define a new class

This is a really interesting use of syntax; my question, now that stuff like that NeuroscopeRecordingExtractor will contain, importantly, its own internal functions for get_metadata() retrieval, how then would we append a function to a class made in this way? Would it be something like
`
def get_metadata()
metadata = ...  # something retrieving metadata in class specific way
return metadata
def recording_extractor_class_to_data_interface_class(RX, get_metadata):
return type(
RX.name + 'DataInterface',  # class name
(BaseRecordingExtractorInterface,),  # base classes
dict(RX=RX,
get_metadata=get_metadata)
)
`

This is a really interesting use of syntax; my question, now that stuff like that NeuroscopeRecordingExtractor will contain, importantly, its own internal functions for get_metadata() retrieval (from Issues #2 and #5 of nwb-conversion-template), how then would we append a function to a class made in this way? Would it be something like
def get_metadata()
    metadata = ...  # something retrieving metadata in class specific way
    return metadata

def recording_extractor_class_to_data_interface_class(RX, get_metadata):
    return type(
        RX.__name__ + 'DataInterface',  # class name
        (BaseRecordingExtractorInterface,),  # base classes
        dict(RX=RX, get_metadata=get_metadata)
    )

yup!


Update specs2-core, specs2-scalacheck to 4.12.11

Updates

org.specs2:specs2-core
org.specs2:specs2-scalacheck

from 3.+ to 4.12.11.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.specs2" } ]

labels: test-library-update

Superseded by #41.


Add example showing how to Draw and Modify geodesic circles

Perhaps are more useful demonstration of the differences between Circle geometry and circular polygon than #11951/#11926

Thanks, @mike-000


Sonarcloud follow up

Summary and Scope

Fixes a lingering bug detected in sonar cloud.

fixes several other Major code smells

[x] I have added new tests to cover the new code

[x] If adding a new file, I have updated pyinstaller.py

[x] I have added entries in CHANGELOG.md for the changes in this PR

Issues and Related PRs

Testing

You will have to ignore the code duplication here until the overall code de-dupe is complete


无法构建

 pip3.8 install -r requirements.txt
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting paddleocr>=<IP_ADDRESS> (from -r requirements.txt (line 1))
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/f2/55/0469ebca1d9c581a3fa740621afe96461a0ef450e489e10e278cc17a19ef/paddleocr-2.7.3-py3-none-any.whl (780 kB)
Collecting paddleclas>=2.4.3 (from -r requirements.txt (line 2))
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/f3/1c/d88a37cef839ceb63bfd3cf552a55212680e469a7797afc72f873547088b/paddleclas-2.5.2-py3-none-any.whl (356 kB)
Collecting pytest-runner (from -r requirements.txt (line 3))
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/23/2b/73982c02d28538b6a1182c0a2faf764ca6a76a6dbe89a69288184051a67b/pytest_runner-6.0.1-py3-none-any.whl (7.2 kB)
Collecting paddlespeech==1.2.0 (from -r requirements.txt (line 4))
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/64/cd/5a19f23a9be36cc8e3cf3c3791aeb23ae44452d141ec10419e355c319135/paddlespeech-1.2.0-py3-none-any.whl (1.4 MB)
Collecting paddlenlp<=2.0.5 (from -r requirements.txt (line 5))
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/62/10/ccc761d3e3a994703f31a4d0f93db0d13789d1c624a0cbbe9fe6439ed601/paddlenlp-2.0.5-py3-none-any.whl (435 kB)
Collecting torch>1.7.0 (from -r requirements.txt (line 6))
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/74/f2/13c8314603c268246fba877585d696460e876ce2fe7a2e05349fe4df5968/torch-2.3.1-cp38-cp38-win_amd64.whl (159.8 MB)
Collecting Pillow==9.5.0 (from -r requirements.txt (line 7))
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/c3/ba/c4c2a1411561cd9725979115e7450f1367b44997ae1ff29e5845bce92d52/Pillow-9.5.0-cp38-cp38-win_amd64.whl (2.5 MB)
Collecting nltk (from -r requirements.txt (line 8))
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/a6/0a/0d20d2c0f16be91b9fa32a77b76c60f9baf6eba419e5ef5deca17af9c582/nltk-3.8.1-py3-none-any.whl (1.5 MB)
Collecting pystray (from -r requirements.txt (line 9))
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/5c/64/927a4b9024196a4799eba0180e0ca31568426f258a4a5c90f87a97f51d28/pystray-0.19.5-py2.py3-none-any.whl (49 kB)
Collecting wave (from -r requirements.txt (line 10))
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/ef/34/bc43da20c1b9015a9500e4e016ad92b4187ee525e706d247e08e5e2af408/Wave-0.0.2.zip (38 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting pydub (from -r requirements.txt (line 11))
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/a6/53/d78dc063216e62fc55f6b2eebb447f6a4b0a59f55c8406376f76bf959b08/pydub-0.25.1-py2.py3-none-any.whl (32 kB)
Collecting pynput (from -r requirements.txt (line 12))
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/ef/1d/fdef3fdc9dc8dedc65898c8ad0e8922a914bb89c5308887e45f9aafaec36/pynput-1.7.7-py2.py3-none-any.whl (90 kB)
Collecting pyperclip (from -r requirements.txt (line 13))
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/30/23/2f0a3efc4d6a32f3b63cdff36cd398d9701d26cda58e3ab97ac79fb5e60d/pyperclip-1.9.0.tar.gz (20 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting ultralytics==8.0.120 (from -r requirements.txt (line 14))
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/e3/49/19e095dacfb33d734f49e7d17d25b52429f26273db3d65b43b5d52e0125f/ultralytics-8.0.120-py3-none-any.whl (611 kB)
Collecting pandas>=1.1.4 (from -r requirements.txt (line 15))
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/c3/6c/ea362eef61f05553aaf1a24b3e96b2d0603f5dc71a3bd35688a24ed88843/pandas-2.0.3-cp38-cp38-win_amd64.whl (10.8 MB)
Requirement already satisfied: tqdm>=4.64.0 in XXPATHXX\python38\lib\site-packages (from -r requirements.txt (line 16)) (4.66.4)
Collecting scipy>=1.4.1 (from -r requirements.txt (line 17))
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/32/8e/7f403535ddf826348c9b8417791e28712019962f7e90ff845896d6325d09/scipy-1.10.1-cp38-cp38-win_amd64.whl (42.2 MB)
Requirement already satisfied: requests>=2.23.0 in XXPATHXX\python38\lib\site-packages (from -r requirements.txt (line 18)) (2.32.3)
Requirement already satisfied: PyYAML>=5.3.1 in XXPATHXX\python38\lib\site-packages (from -r requirements.txt (line 19)) (6.0.1)
Collecting opencv-python>=4.6.0 (from -r requirements.txt (line 20))
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/ec/6c/fab8113424af5049f85717e8e527ca3773299a3c6b02506e66436e19874f/opencv_python-<IP_ADDRESS>-cp37-abi3-win_amd64.whl (38.8 MB)
Collecting ttkthemes (from -r requirements.txt (line 21))
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/fa/45/ab8ada55281af99a03bc0f8be53a502eb37ee34b94819a9ced89e8b0c12f/ttkthemes-3.2.2.tar.gz (891 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [17 lines of output]
      Traceback (most recent call last):
        File "XXPATHXX\python38\lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, in <module>
          main()
        File "XXPATHXX\python38\lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "XXPATHXX\python38\lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
        File "C:\Users\XXX\AppData\Local\Temp\pip-build-env-o7_irqpq\overlay\Lib\site-packages\setuptools\build_meta.py", line 327, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=[])
        File "C:\Users\XXX\AppData\Local\Temp\pip-build-env-o7_irqpq\overlay\Lib\site-packages\setuptools\build_meta.py", line 297, in _get_build_requires
          self.run_setup()
        File "C:\Users\XXX\AppData\Local\Temp\pip-build-env-o7_irqpq\overlay\Lib\site-packages\setuptools\build_meta.py", line 497, in run_setup
          super().run_setup(setup_script=setup_script)
        File "C:\Users\XXX\AppData\Local\Temp\pip-build-env-o7_irqpq\overlay\Lib\site-packages\setuptools\build_meta.py", line 313, in run_setup
          exec(code, locals())
        File "<string>", line 7, in <module>
      ModuleNotFoundError: No module named 'tkinter'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

应该时python的问题，因为我也无法使用这个模块


Update Composer dependencies (2020-09-27-00-05)

Visual regression test passed!
View the visual regression test report


fix Load backup meta and job info bytes from disk

the metaInfoBytes and jobInfoBytes do not persist and are not reloaded from disks during image loading and journal replaying. This PR fixes this issue by reading them from files.
In some scenes, the metaInfoBytes and jobInfoBytes are large and consume a lot of memory. Reading them from files on demand can reduce memory usage.

run buildall

run buildall


2.11.x fix problems with addition of elements and dropping

This branch fixes the current 67 test failures seen on the upstream branch point.
This includes issue #6.
I've left the work unmerged for now, as I'm sure there are opportunities to refactor these fixes into more elegant / performant code - but they do get the tests to pass. I've added an additional application and a worksheet that I used to reproduce and debug individual test failures, plus issues I saw originally when calling 'take' and 'drop' on mutable tree bags.
There are a couple of corrections for typos mixed in.

You should also squash all the changes that fixed something and use as commit message "Fix ..." and another single commit.

That is all.

The commits address several different bugs - the purpose of that work was simply to get the 67 tests failing upstream to pass, hence the use of several commits. Unfortunately I don't seem to be able to create issues on my fork, which is why I haven't used the 'fixes/closes' style comments (although that can be done for the existing issue #6). I suggest the best way to go is for you to take the branch and do whatever form of partial / squashed merge suits you, should you wish to proceed further with it.

Lets, leave it simple. Just remove the worksheet and i'll merge. The changes in the code LGTM.

Sounds good to me, thanks - I'll write a test to cover taking and dropping to replace the worksheet.

OK, I've pushed commits 6036257, cb7618c and c070540 (merge of the two previous commits).
There is a new test 'it should "split into parts which when recombined yield the original"' in 'nonEmptyBagBehaviour'.
Let me know if you need a new pull request raised.

No, I disagree with you.
But you have a point: it is correct to include the artifacts for plugins or nested SBT projects - so I've added in nested inclusion rules for Plastic SCM (which I use). That way I don't worry about the cruft in any of the potential projects, be they at any level of nesting.
It's not a showstopper for me if you want to delete this file when merging - the Git ignore file is unchanged on the branch in question, and I can tell Plastic SCM to use rules elsewhere to avoid polluting my pending changes view. Your call...

Changes to 'ignore.conf' with inclusion rules pushed out in 75247bd.

@sageserpent-open thanks for the fixes.

You're very welcome, Nicholas - I've been using TreeBag in one of my own private projects; wanted to give back as I'd known about the dropping issue for a while. Thanks for sorting out the pull request so promptly.

Appart from #6 is there another issue from the list that got solved with this PR?

No, the other fixes were all addressing test failures rather than existing issues.

Hi Nicolas - I was looking at another issue that was highlighted in PR #20 - when I updated my GitHub fork to pull your latest changes, I noticed that the commits  6036257, cb7618c and c070540 mentioned above never got merged - they addressed some of your review comments above in this PR - in particular, you wanted a more idiomatic ScalaTest test that isolated the problem addressed by  this PR.
Assuming that you want the additional commits, would you like to re-merge from this branch, or do you want me to cherry-pick those commits on to another pull-request branch?


Implement mounting user certificates and keys

This PR allows to define user-managed peer, client-server certificates.
It implements security specification:
spec:
...
  security:
    peer:
      ca:
        secretName: ca-secret-crname-crnamespace-peer
      cert:
        secretName: crname-crnamespace-peer-tls
    clientServer:
      ca:
        secretName: ca-secret-crname-crnamespace-server
      serverCert:
        secretName: crname-crnamespace-server-tls
...

Enabled RBAC and root certificate watching is not part of this PR.
If some other specification is agreed with maintainers, then I will change this PR.

This PR relates to https://github.com/aenix-io/etcd-operator/issues/76


ecdsa_secp256r1_sha384_test.json, ecdsa_secp256r1_sha512_test.json, and ecdsa_secp384r1_sha256_test.json are missing

These unusual combinations of P-256 + {SHA-384, SHA-512} and P-384 + SHA-256 are supported in some crypto libraries, for backward compatibility with some TLS implementations. However, there are no test vectors for these combinations. It would be great to include the test vectors for these in the open source release. (P-256 + SHA-512 is arguably even a useful combination since SHA-512 is faster than SHA-256 on many platforms, and probably stronger, even/especially when truncated in half.)

@bleichen

I'm adding more files for more curve/hash combination.
I'm however not sure about ecdsa_secp384r1_sha256.
This combination makes little sense since the security of the hash is
weaker than the curve. There are a few test vectors in ecdsa_test.json,
though these are marked as legacy cases. I.e. the result is "acceptable",
which means that I expect that some libraries reject such keys and signatures.

I'm however not sure about ecdsa_secp384r1_sha256.
This combination makes little sense since the security of the hash is
weaker than the curve.

I agree it doesn't make sense. Unfortunately, before TLS 1.3, TLS clients can advertise "ECDSA + SHA-384" and "ECDSA + SHA-256" but they can't advertise which curves they support for each digest algorithm, since the supported curves are negotiated in a separate parameter. (In TLS 1.3 there is a fixed mapping: SHA-256 with P-256, SHA-384 with P-384.) A web-compatible TLS implementation either has to decide to reject signatures for which it technically advertised support or support this weird combination. I believe many implementations have chosen to support this weird combination.

ecdsa_secp256r1_sha512_test.json was added.


Generate Assets for Build and Debug generates assets for wrong project

Environment data
dotnet --info output:
.NET Core SDK (reflecting any global.json):
Version:   2.1.500
Commit:    b68b931422
Runtime Environment:
OS Name:     Windows
OS Version:  10.0.17134
OS Platform: Windows
RID:         win10-x64
Base Path:   C:\Program Files\dotnet\sdk\2.1.500\
Host (useful for support):
Version: 2.1.6
Commit:  3f4f8eebd8
.NET Core SDKs installed:
2.1.103 [C:\Program Files\dotnet\sdk]
2.1.104 [C:\Program Files\dotnet\sdk]
2.1.200 [C:\Program Files\dotnet\sdk]
2.1.201 [C:\Program Files\dotnet\sdk]
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.300 [C:\Program Files\dotnet\sdk]
2.1.400 [C:\Program Files\dotnet\sdk]
2.1.401 [C:\Program Files\dotnet\sdk]
2.1.403 [C:\Program Files\dotnet\sdk]
2.1.500 [C:\Program Files\dotnet\sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.3-servicing-26724-03 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
VS Code version: 1.29.1
C# Extension version: 1.17.1
Steps to reproduce
Have a solution with an ASP.NET Core and a xUnit project in the following structure:
src\Web
test\UnitTest
Run the command Generate Assets for Build and Debug
Expected  behavior
The assets should be generated for the ASP.NET Core project (or both), not only for the xUnit project (not sure if having it for the xUnit project gives any real value, see open issue #1392)
Actual behavior
The assets is only generated for the xUnit project

@akshita31 I think you'll need to fix this in Omnisharp.

This bug will be significantly improved by PR https://github.com/OmniSharp/omnisharp-vscode/pull/2780 -- with that PR, there is now a chooser for selecting which project to be the startup project. Its not a perfect fix in that the unit test project will still be listed as a choice even though that makes no sense. But still a big improvement.
We actually already had a bug tracking the fact that unit tests are considered launchable by OmniSharp: https://github.com/OmniSharp/omnisharp-vscode/issues/1392. So I am going to resolve this as a dupe of that.
@akshita31 I see that this issue is currently assigned to you. If you have the cycles to fix OmniSharp to return info on if a project is a unit test project, please assign #1392 to yourself.


Simple error formatter

Provide a default, simple error formatter designed to provide sane values out of the box
resolves #10

Codecov Report

Merging #37 (9026044) into main (836b783) will increase coverage by 0.11%.
The diff coverage is 99.44%.

@@            Coverage Diff             @@
##             main      #37      +/-   ##
==========================================
+ Coverage   98.78%   98.90%   +0.11%
==========================================
  Files          29       34       +5
  Lines         824     1004     +180
==========================================
+ Hits          814      993     +179
- Misses         10       11       +1

Impacted Files
Coverage Δ

tests/test_error_formatters.py
99.21% <99.21%> (ø)

ariadne_django/formatters/errors/simple.py
100.00% <100.00%> (ø)

.../formatters/errors/utils/extract_original_error.py
100.00% <100.00%> (ø)

.../utils/get_full_django_validation_error_details.py
100.00% <100.00%> (ø)

...matters/errors/utils/get_postgres_error_details.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


for links it is not counting links like: test

Description
for links it is not counting links like: test
only links like test
It seems to bomb on the colon :
from Sandbox

SYSTEM INFO:
Obsidian version: v1.7.6
Installer version: v1.7.5
Operating system: Darwin Kernel Version 23.6.0: Mon Jul 29 21:13:00 PDT 2024; root:xnu-10063.141.2~1/RELEASE_X86_64 23.6.0

oops, wrong image. this shows it better.

This plugin uses Obsidian's metadata to count links. Obsidian only counts internal links (i.e. to other notes), not external website links. See https://github.com/isaaclyman/novel-word-count-obsidian/issues/50#issuecomment-1679860720.


Add cake-contrib user on NuGet.org

First of all, I wanted to thank you for adding to the Cake community by adding this addin.
I was just wondering if you had seen this blog post:
http://cakebuild.net/blog/2016/08/cake-contribution-organization
We are currently going through a process of increasing the visibility of addins, and also trying to ensure their long term maintainability.
To that end, we are asking addin creators to add the cake-contrib user on NuGet as a co-owner (this can be done through the NuGet website by clicking on Manage Owners on the package page).
Would you be interested in doing this for Cake.Path? If you have any questions about this, please let me know. There was some initial concern that the Cake Team were trying to "take over" packages, and that couldn't be further from the truth, and if you have this concern, or others, I would like to address them.
Thanks!

I've added cake-contrib as a package owner (pending approval).

That is great, thank you very much!  I have accepted the invite:


Implement WebRTC stream in Camera entity

Is your feature request related to a problem? Please describe.
Playback for Frigate camera entities is a choppy, and the recommendations I see are installing the Frigate Lovelace card, which allows streaming directly from go2rtc.
Describe the solution you'd like
HA Camera entities can provide this functionality, by implementing async_handle_web_rtc_offer. I propose implementing it, so that Frigate cameras can be streamed natively in HA, without having to rely on the Frigate Lovelace card.
Describe alternatives you've considered
The alternative is to not change anything, thus keeping the lovelace card practically mandatory.
Additional context

I'm more than happy to help build this. I have the knowledge on the HA side I maintain several HA integrations), but I don't know anything about WebRTC and what's required to handle a WebRTC offer.

Sounds great to me. Happy to review / support, if you're up for implementing. I assume it would be WebRTC via go2rtc in the Frigate container?

Yes, via go2rtc in the container.
As mentioned, I know nothing about handling the WebRTC offer. Do you happen to know where would be a good place to start? Do you know of any example?

I managed to forward the sdp offer to go2rtc, and receive what seems to be a proper response. However:

There is no video stream
The response doesn't seem to contain anything that the frontend can use as a uri
Not sure how to continue from here.

@AlexxIT any chance to get your help here?

You should do sync SDP exchange, like this page:
https://github.com/AlexxIT/go2rtc/blob/master/www/webrtc-sync.html

Thanks @AlexxIT. The way this works in HA is that the server side is expected to send the offer to the backend, and return the answer to the HA frontend, which starts from scratch. What I'm doing is something like:
session = cast(aiohttp.ClientSession, async_get_clientsession(self.hass))
async with session.ws_connect(self._stream_source) as ws:
    await ws.send_json({"type": "webrtc/offer", "value": offer_sdp})
    response = await ws.receive_json()
    if response["type"] == "webrtc/answer":
      return response["value"]

That's what HA seems to be expecting (and returning different format results in errors), but I can't see anything streaming.
Looking at the answer, I can't find anything that would point HA at the right host. I also tried collecting the candidates that are being returned from got2rtc, and adding them to the answer as a=candidate:... but it also didn't work.

BTW, this is how it's handled in the HA frontend. The returned value in webRtcAnswer.answer is the sdp answer from go2rtc.

I was able to make it work by:

Adding the candidates to the answer as a=candidate:... lines at the end. This is done in the integration.
Parsing those candidates on the frontend and calling addIceCandidate for each in the HA frontend (will require a PR there).
A couple of questions for @AlexxIT:
How do I know when to stop listening for candidates? Currently I hard coded 4 candidates which works for me, but I'm assuming each system will send a different number. The way this works in HA is I can only send a single answer - I don't have a way to send additional candidates afterwards.
Is there any adverse effect to adding those candidates to the answer?

are you running frigate and HA on different devices? I would expect that as long as the candidate for HA is added to the list in the go2rtc config it would work

Different devices. The candidates are configured correctly, but HA currently doesn't have a mechanism to get those from go2rtc and into the browser. The two steps I described above are a way to get those candidates into the frontend.

ah, I understand now

@OnFreund
You can use sync API: POST /api/webrtc?src=...
Current go2rtc doesn't send empty last candidate.

@NickM-27 can you help me figure out how to call that endpoint through the Frigate container. I tried:

/live/webrtc/api/webrtc
/api/go2rtc/webrtc

and several others, but I'm getting 404 on all of them.

Thanks @AlexxIT. It's working without having to change anything on the HA frontend now!

I know. Hass fronted hardcoded with sync candidates way. It's a bad way. In some environment it may take up to 10-30 seconds for start stream.

Maybe reordering the candidates in the sync response can help speed this up? From what I'm seeing I'm getting several candidates with docker IPs, then a=end-of-candidates, and only then the candidates that I put into the config.

No. Problem that you need to wait all STUN candidates before send SDP. Even in LAN. Because you don't know if you in LAN or not.

Implemented in #553


unrelated dependency changed in Cargo.lock when updating another dependency

Problem
This dependabot PR updates lz4, but Cargo.lock for (one of the) opendal is also updated. https://github.com/risingwavelabs/risingwave/pull/17207
From cargo tree -i lz4, they seem to be not related.
I thought it's dependabot's issue, but I can also reproduce this locally.
I also found that only modifying the Cargo.toml will trigger this change, but not cargo update -p lz4
Steps

git clone https://github.com/risingwavelabs/risingwave (HEAD as of the post is af8f9a5815388c6d3147bebda77a1830a05f8c7e)
modify src/storage/Cargo.toml lz4 1.24.0 -> 1.25.0

Possible Solution(s)
No response
Notes
No response
Version
❯ cargo version --verbose
cargo 1.78.0-nightly (a4c63fe53 2024-03-06)
release: 1.78.0-nightly
commit-hash: a4c63fe5388beaa09e5f91196c86addab0a03580
commit-date: 2024-03-06
host: aarch64-apple-darwin
libgit2: 1.7.2 (sys:0.18.2 vendored)
libcurl: 8.4.0 (sys:0.4.72+curl-8.6.0 system ssl:(SecureTransport) LibreSSL/3.3.6)
ssl: OpenSSL 1.1.1w  11 Sep 2023
os: Mac OS 14.4.1 [64-bit]

It happens again 🤔
https://github.com/risingwavelabs/risingwave/pull/17162

Could you provide the exact Git revision in Steps for completeness?

I suspect the problem happened like this:

icelake depends on opendal with the requirement >=0.40.0.
Cargo.toml was edited manually so the entire crates.io source is “unlocked”, to allow Cargo to pick a newer version of lz4 without being locked in Cargo.lock. See this comment, which is a heavy hammer that you can consider it is the culprit.
Cargo.lock in https://github.com/risingwavelabs/risingwave/commits/af8f9a5815388c6d3147bebda77a1830a05f8c7e contains two version of opendal — 0.45.1 and 0.47.0. When the crates.io source was locked, Cargo prefers MaximumVersionsFirst so picked 0.47.0.

I'll try building a minimal repro.

BTW, there is a manual way to prevent this from happening:

Run cargo update lz4 --precise 1.25.0 first.
Edit Cargo.toml to lz4 = "1.25.0" later.

I also wonder whether the unstable feature cargo update --breaking can handle this flawlessly.

This is a minimal repro. As you can see<EMAIL_ADDRESS>is missing in the late lockfile, due to an edit of lz4 in Cargo.toml.
#[cargo_test]
fn manually_edit_manifest() {
    Package::new("lz4", "0.1.0").publish();
    Package::new("lz4", "0.2.0").publish();
    Package::new("opendal", "0.45.1").publish();
    Package::new("icelake", "0.0.10")
        .dep("opendal", ">=0.40.0")
        .publish();
    Package::new("risingwave_object_store", "1.0.0")
        .dep("opendal", "0.45.1")
        .publish();
    let p = project()
        .file(
            "Cargo.toml",
            r#"
                [package]
                name = "foo"
                edition = "2015"

                [dependencies]
                lz4 = "0.1.0"
                icelake = "0.0.10"
                risingwave_object_store = "1.0.0"
            "#,
        )
        .file("src/lib.rs", "")
        .build();

    p.cargo("fetch").run();

    assert_e2e().eq(p.read_lockfile(), str![[r##"
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3

[[package]]
name = "foo"
version = "0.0.0"
dependencies = [
 "icelake",
 "lz4",
 "risingwave_object_store",
]

[[package]]
name = "icelake"
version = "0.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ced47b8e3f022dbdd8e45550820642f9bb85531b8c5ccd4f609fee3a1c51631"
dependencies = [
 "opendal",
]

[[package]]
name = "lz4"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "58d613dfd0b895188c526409f83e59a2e4e886fcdf1784e1ec26803c410081c0"

[[package]]
name = "opendal"
version = "0.45.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfeff569181f1f3614b3d297f6ddb9ff510d07128832af820e3fa01fe6d38d21"

[[package]]
name = "risingwave_object_store"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c33db1e82767ae8b74d1ddb9eefc2e1b65992bb0f7bcef8b3300a0a3ee768bd7"
dependencies = [
 "opendal",
]

"##]]);

    Package::new("opendal", "0.47.0").publish();
    Package::new("risingwave_object_store", "1.1.0")
        .dep("opendal", "0.47.0")
        .publish();

    // This is to simulate duplicate versions.
    p.cargo("update risingwave_object_store").run();

    // This is a slimmed-down version of the current state of lockfile in
    // https://github.com/risingwavelabs/risingwave/commits/af8f9a5815388c6d3147bebda77a1830a05f8c7e
    // * contain duplicate versions of opendal
    // *<EMAIL_ADDRESS>still depends on<EMAIL_ADDRESS>    assert_e2e().eq(p.read_lockfile(), str![[r##"
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3

[[package]]
name = "foo"
version = "0.0.0"
dependencies = [
 "icelake",
 "lz4",
 "risingwave_object_store",
]

[[package]]
name = "icelake"
version = "0.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ced47b8e3f022dbdd8e45550820642f9bb85531b8c5ccd4f609fee3a1c51631"
dependencies = [
 "opendal 0.45.1",
]

[[package]]
name = "lz4"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "58d613dfd0b895188c526409f83e59a2e4e886fcdf1784e1ec26803c410081c0"

[[package]]
name = "opendal"
version = "0.45.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfeff569181f1f3614b3d297f6ddb9ff510d07128832af820e3fa01fe6d38d21"

[[package]]
name = "opendal"
version = "0.47.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9bc28c53e2d46f9af0f2c43ce4f5df096521e80f63470e06ecf3c1947f0b3347"

[[package]]
name = "risingwave_object_store"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21b5ce67766299c7e9e7947d33e64fb7d55b7efe4d6920a5387a8eb3d1108b4f"
dependencies = [
 "opendal 0.47.0",
]

"##]]);

    // Update a completely unrelated package from the same source.
    p.change_file(
        "Cargo.toml",
        r#"
            [package]
            name = "foo"
            edition = "2015"

            [dependencies]
            lz4 = "0.2.0"
            icelake = "0.0.10"
            risingwave_object_store = "1.0.0"
        "#,
    );

    p.cargo("fetch").run();

    assert_e2e().eq(p.read_lockfile(), str![[r##"
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3

[[package]]
name = "foo"
version = "0.0.0"
dependencies = [
 "icelake",
 "lz4",
 "risingwave_object_store",
]

[[package]]
name = "icelake"
version = "0.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ced47b8e3f022dbdd8e45550820642f9bb85531b8c5ccd4f609fee3a1c51631"
dependencies = [
 "opendal",
]

[[package]]
name = "lz4"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "feccb9b0fa40e850b1e70920bdf6ba7e10017c2c240bda19f9619da336126f25"

[[package]]
name = "opendal"
version = "0.47.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9bc28c53e2d46f9af0f2c43ce4f5df096521e80f63470e06ecf3c1947f0b3347"

[[package]]
name = "risingwave_object_store"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21b5ce67766299c7e9e7947d33e64fb7d55b7efe4d6920a5387a8eb3d1108b4f"
dependencies = [
 "opendal",
]

"##]]);

}

So this happens only when some crate uses >= dependency versions, do I understand it correctly? (Perhaps also <=, as I sometimes also see unrelated dependencies got downgraded?)

I also wonder whether the unstable feature cargo update --breaking can handle this flawlessly.

It has the same problem. I just tried cargo +nightly -Zunstable-options update -p duration-str --breaking in the risingwave repo.

@weihanglo I was confused by this because of this comment:
https://github.com/rust-lang/cargo/blob/6e236509b2331eef64df844b7bbc8ed352294107/src/cargo/ops/resolve.rs#L568-L571
It seems like we should just keep to the same version.  However, I think I was overlooking how the resolver would just blindly see two compatible versions of the same package in the lockfile and pick one of the two.  Either I forgot or hadn't considered that ramification of wider version requirements.
@xxchan

So this happens only when some crate uses >= dependency versions, do I understand it correctly? (Perhaps also <=, as I sometimes also see unrelated dependencies got downgraded?)

From my very brief look at icelake, I feel like the version requirements it uses are dubious within the cargo ecosystem.  The ecosystem is built on maintaining semver guarantees but that package seems to be saying that it and its dependents don't care about semver.
btw we have guidelines on version requirements at:
https://doc.rust-lang.org/nightly/cargo/reference/specifying-dependencies.html#multiple-requirements

@epage If you change the last cargo fetch call to cargo fetch -Z minimal-versions in the minimal repro, then the lower version 0.45.1 would be picked. That's the third point.

From my very brief look at icelake, I feel like the version requirements it uses are dubious within the cargo ecosystem. The ecosystem is built on maintaining semver guarantees but that package seems to be saying that it and its dependents don't care about semver.

@epage I understand what you mean. However, I would say such usage is not that uncommon in the ecosystem.
e.g., prost-build uses itertools = { version = ">=0.10, <=0.12"} (itertools is indeed another dependency I observed got upgraded or downgraded randomly, same as the original issue).
https://github.com/tokio-rs/prost/blob/ba776540834b0cecbbaa6ca98bd79d9682cd7e92/prost-build/Cargo.toml#L20
Another one is arrow-rs. It does frequent major releases, and used in public APIs. And @Xuanwo proposed to use >= versions. You can see related discussions here: https://github.com/apache/arrow-rs/issues/5368#issuecomment-1931143230

itertools case is different that it has a semver upper bound. That is saying that it knows the breaking changes don't affect it. This case is even called out in the linked document, particularly for -sys crates.
Unbounded reqs are not common. I'm surprised these weren't banned with *.

Thanks for clarifying the differences. But that seems a little off topic, i.e., whenever we have a "quite relax version requirement" (whether it's >=10 or ">=0.10, <=0.12"), the issue can happen.

It seems cargo update can also trigger this.
> git rev-parse HEAD
c22c4265052c2a4f2876132a10a0b522ec7c03c9
> cargo update<EMAIL_ADDRESS>--precise 0.47.2
> git diff

diff --git a/Cargo.lock b/Cargo.lock
index 9197e73c27..2b6dbe90ae 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2101,7 +2101,7 @@ dependencies = [
  "bitflags 2.5.0",
  "cexpr",
  "clang-sys",
- "itertools 0.12.1",
+ "itertools 0.10.5",
  "lazy_static",
  "lazycell",
  "log",
@@ -8440,9 +8440,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"

 [[package]]
 name = "opendal"
-version = "0.47.0"
+version = "0.47.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c3ba698f2258bebdf7a3a38862bb6ef1f96d351627002686dacc228f805bdd6"
+checksum = "ff159a2da374ef2d64848a6547943cf1af7d2ceada5ae77be175e1389aa07ae3"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -9961,7 +9961,7 @@ dependencies = [
  "indoc",
  "libc",
  "memoffset",
- "parking_lot 0.12.1",
+ "parking_lot 0.11.2",
  "portable-atomic",
  "pyo3-build-config",
  "pyo3-ffi",


reduce flicker when components update

Signed-off-by: bryanl<EMAIL_ADDRESS>What this PR does / why we need it:
Which issue(s) this PR fixes

Fixes #

Special notes for your reviewer:
Release note:
release-note

This looks good to me - I don't see flicker and performance is pretty good.
Would be good to get more eyes on it.

This change is working well for me.


Serve crashes on ParseError

For most errors, Franklin will gracefully handle errors. For example, undefined variables are shown at the webpage. However, messing up the syntax, will crash the serve function completely.
An example of failing code is
```!
f(x) = x
f(2))
```

Base.Meta.ParseError("extra token \")\" after end of expression")
Stacktrace:
  ...

When in the middle of a webpage with some plots, this can be bothersome since restarting serve can take more than a minute. For me, this isn't the biggest priority. Still, it seemed a good idea to open an issue.
By the way,
```!
f(x) = x
f(2
```

fails gracefully and shows
syntax: incomplete: premature end of input

in the webpage.

When in the middle of a webpage with some plots, this can be bothersome since restarting serve can take more than a minute.

I don't disagree with the rest of what you're saying but you're probably not using the right workflow here. Just start the REPL and leave it running!!! it should only take 1 second to get serve() going after the initial one. I typically start and stop mine quite often.

Just start the REPL and leave it running!!!

I'm using something like julia -e 'using Pkg; ...' out of convenience and because I thought it didn't matter. Apparently it does. Thank you again :smile: 😅

lol, I'm impressed you stuck with it... that's really pretty slow if you only call that all the time 😱
I'm reopening the issue because I do think something better could be done, like a red message on the page saying that the code failed. The only problem is that if cells further below require the output of that cell then... we could get weird things going on where it uses the previous eval results of that cell... anyway I'll think about it.

lol, I'm impressed you stuck with it... that's really pretty slow if you only call that all the time :scream: (especially with plots, omg)

I have to admit that it did sometimes feel like a minefield where one typo would blow up the server. :laughing:
Sounds good :muscle:

xref https://github.com/tlienart/Franklin.jl/issues/405. I think it would be reasonable if Frankling just @warnd, and then retried again on next save. For me, I seem to always hit save after typing the initial part of a code-block
```julia

which crashes with a parser error too.

As another case, Franklin can completely crash on some LaTeX. By completely, I mean that the REPL shuts down too which makes Franklin feel brittle (or like a minefield as I said above). Anyway, to reproduce, type
$$
\begin{aligned}
  h_i &\sim \text{Normal}(\mu, \sigma) \\
\end{aligned}
$$

As another case, Franklin can completely crash on some LaTeX. By completely, I mean that the REPL shuts down too which makes Franklin feel brittle (or like a minefield as I said above). Anyway, to reproduce, type
$$
\begin{aligned}
  h_i &\sim \text{Normal}(\mu, \sigma) \\
\end{aligned}
$$

Yup thanks this is WIP, I'm doing a heavy refactoring of the parser which ultimately should help with

user extending the parser
system more tolerant to errors
a path to PDF generation

I'm hoping this will be in by the end of January :)

Yup thanks this is WIP, I'm doing a heavy refactoring of the parser which ultimately should help with

user extending the parser
system more tolerant to errors
a path to PDF generation

I'm hoping this will be in by the end of January :)

Thanks for the update :+1:

Thanks for the update :+1:


CFE: define 'dart.library.foo' environment variables automatically using the contents of platform dill file

For each public dart:foo library implementation defines dart.library.foo=true environment variable. In order to populate CompilerOptions.environmentDefines before CFE is invoked the list of libraries is hardcoded
https://github.com/dart-lang/sdk/blob/93d0e8279a4d898632ab0aee3f2489f0e8f3ed08/pkg/dev_compiler/lib/src/compiler/shared_command.dart#L25-L49
or derived from Target.extraRequiredLibraries (https://dart-review.googlesource.com/c/sdk/+/98435/1/pkg/vm/lib/kernel_front_end.dart), which is fragile.
It would be cleaner if CFE would define these environment variables automatically using the contents of platform dill file (after reading platform but before doing constant evaluation in the application code).
/cc @kmillikin @askeksa-google @johnniwinther

They should be defined automatically, but it should not be done blindly based on what's in the platform files. It should instead use the specification provided in libraries.json. That's because some targets allow importing libraries for backward compatibility, but still override the conditional imports to indicate that they are not supported.
See also https://github.com/dart-lang/sdk/blob/ddbeda075febd1d1af61f8da9a15dbdbd86de8a9/pkg/front_end/lib/src/api_unstable/dart2js.dart#L211

I'm not sure we're carrying libraries.json with us everywhere, so it might be unavailable when building applications. We're not setting CompilerOptions.librariesSpecificationUri in frontend server or gen_kernel.
We can pass the information about supported libraries from libraries.json through platform dill file. Library kernel nodes could be extended with isSupported flag which is set when building platform and tested to populate dart.library.* defines when building applications.

@alexmarkov Sounds like a good plan. I'll start working on it.


getDate with range datepicker

I want get the date of a datepicker using the getDate method. Although all is fine with a single datepicker, when i try the same with a range datepicker I can't get the date.
Here is the html:
`

to

`
Here is the js:
`$(document).ready(function(){
    $('#datepicker').datepicker({
        //..
    });
    $('#datepicker').datepicker()
    .on('changeDate', function() {
        var my_date=$('#datepicker').datepicker('getDate');
        alert(my_date);
    });
});`
Here the fiddle:
http://jsfiddle.net/vh1oknf7/140/
i use version 1.6.1.
 Any help? Thank you.

I solved the problem using the getDate method on each input of the range datepicker.

I solved the problem using the getDate method on each input of the range datepicker.

Thank you so much, I'd saved a lot of time !:)


Add a "favorite" check box to the cocktails for a user to save the cocktail/recipe to local storage

Maddie completed


[#89730316] Firefox can generate two scroll events when the scrollbar…

…s are moved. The only solution I am aware of is to throttle the speed that onscroll events are generated. I modified the assertions to allow [1,2] as the number of events generated.

Seems reasonable


support invoking as a cli

Is your feature request related to a problem? Please describe.
I am frustrated that my bpmn definitions need to live as junit resources. We are interested in building an independent sdlc for our bpmn deployments, but to reuse this testing framework we'd have to modify the junit tests as well.
Describe the solution you'd like
I'd like to have a separate CLI that took parameters for not only the bpmn resources but all the connectivity information as cli args so that I could execute as part of a pipeline like github actions or gitlab ci.
Describe alternatives you've considered
We've considered just housing all of our bpmn in a kotlin project and having our bpmn deployment look at a resources directory.
Additional context
N/A

@nhomble thank you for raising this up :+1:
Please elaborate more on the CLI that you have in mind.
Which arguments do you expect?
How should it be integrated? (e.g. Maven plugin, standalone app)

Please elaborate more on the CLI that you have in mind.

I'm hoping to integrate the cli in a gitlab runner for a bpmn/dmn pipeline into zeebe. zbctl makes it easy to do the deployment from a runner, but I'd like to assert some tests before a process modeler/author deploys the new code.

Which arguments do you expect?

I'd imagine something like
$ bpmn-spec --zeebe-host https://zeebe:8080 --zeeqs-host https://zeeqs:8080 --resources ./path/to/bpmns --specs ./path/to/yml/specs

(super rough idea). In the readme, when I see
        val testResult = specRunner.runSingleTestCase(resources = spec.resources, testcase = spec.testCase)

        Assertions.assertThat(testResult.success)
                .describedAs("%s%nDetails: %s", testResult.message, testResult.output)
                .isTrue()

I see the cli wrapping all this junit ceremony and just return a non-zero exit code when testResult is not success.

How should it be integrated? (e.g. Maven plugin, standalone app)

I'd prefer standalone, but curious about the benefits for a maven plugin. In other plugins, I've seen argument passing to maven plugins get pretty gnarly so maybe we don't wanna constrain ourselves there.

@nhomble thank you for providing the insides.
I'm curious. Why do you want to configure the Zeebe and ZeeQS endpoint?
In the regular setup, Zeebe and ZeeQS would be spawned by bpmn-spec itself.

I guess you could still support creating the supporting services via cli, but I can imagine other users being stuck with docker-in-docker restrictions. Might be good to allow pipeline developers to override as needed.


ERROR: Builder failed: ld: warning: object file (/Users/xxx/Desktop/xxx.app/.build/plugin.notifications.v2.firebase/FBLPromises.framework/FBLPromises(FBLPromises_vers.o)) was built for newer iOS version (9.0) than being linked (8.0)

Hello
I got an exception on 2023.3686 version when I wanted to build : ERROR: Builder failed: ld: warning: object file (/Users/xxx/Desktop/xxx.app/.build/plugin.notifications.v2.firebase/FBLPromises.framework/FBLPromises(FBLPromises_vers.o)) was built for newer iOS version (9.0) than being linked (8.0)
iOS sdk : 16.2 Metal
Mac mini M1
thank you

Is there any more to the output and can you list any plugin you are using?

Hi.
This is all plugins, but if I comment out the plugin.notifications.v2.firebase then I can build it :
`["plugin.androidPreview"] = {
publisherId = "tech.scotth",
marketplaceId = "ax5s9u"
},
["plugin.qrscanner"] = spiralcodestudio_plugin('qrscanner'),
["CoronaProvider.native.popup.quickLook"] =
{
publisherId = "com.coronalabs",
supportedPlatforms = { iphone=true }
},
["plugin.notifications.v2.firebase"] =
{
publisherId = "com.coronalabs"
},
["shared.google.play.services.gcm"] =
{
publisherId = "com.coronalabs",
supportedPlatforms = { android=true }
},
["plugin.zip"] =
{
publisherId = "com.coronalabs"
},
attached build info
solar2derror.txt

Seems like a bunch of undefined symbols
swift_Concurrency'â€¨Undefined symbols for architecture arm64:â€¨  "$s7ElementSTTl", referenced from:â€¨      l_got.$s7ElementSTTl in FirebaseCoreInternal(RingBuffer.o)â€¨  "$s8AllCasess12CaseIterablePTl", referenced from:â€¨      l_got.$s8AllCasess12CaseIterablePTl in FirebaseCoreInternal(Heartbeat.o)â€¨  "_$s8Dispatch0A13WorkItemFlagsVMa", referenced from:â€¨      _$s20FirebaseCoreInternal16HeartbeatStorageC17readAndWriteAsync5usingyAA16HeartbeatsBundleVSgAHc_tF in FirebaseCoreInternal(HeartbeatStorage.o)â€¨      _$s8Dispatch0A13WorkItemFlagsVACs10SetAlgebraAAWl in FirebaseCoreInternal(HeartbeatStorage.o)â€¨      _$sSay8Dispatch0A13WorkItemFlagsVGSayxGSTsWl in FirebaseCoreInternal(HeartbeatStorage.o)â€¨

My mistake I forgot to include swift libs with notification v2, this should be fixed with v16

Good job ! thanks it works


PowerShell requires a locale, please set the locale in containers with PowerShell

Here is an (edited) example of how to do this from the powershell repo https://github.com/PowerShell/PowerShell/blob/master/docker/release/ubuntu16.04/Dockerfile#L25
# Install dependencies and clean up
RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        locales\
    && rm -rf /var/lib/apt/lists/*

# Setup the locale
ENV LANG en_US.UTF-8
ENV LC_ALL $LANG
RUN locale-gen $LANG && update-locale

The images have been updated.


BadHttpRequestException: Invalid request target: '/?key=\xD6\xD0\xCE\xC4'

[09:10:02 INF] Connection id "0HLEAFUMLUVR5" bad request data: "Invalid request target: '/?key=\xD6\xD0\xCE\xC4'" Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException: Invalid request target: '/?key=\xD6\xD0\xCE\xC4'    at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Frame.ThrowRequestTargetRejected(Span1 target)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Frame.OnOriginFormTarget(HttpMethod method, HttpVersion version, Span1 target, Span1 path, Span1 query, Span1 customMethod, Boolean pathEncoded)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Frame.OnStartLine(HttpMethod method, HttpVersion version, Span1 target, Span1 path, Span1 query, Span1 customMethod, Boolean pathEncoded)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpParser1.ParseRequestLine(TRequestHandler handler, Byte* data, Int32 length)    at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpParser1.ParseRequestLine(TRequestHandler handler, ReadableBuffer buffer, ReadCursor& consumed, ReadCursor& examined)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Frame.TakeStartLine(ReadableBuffer buffer, ReadCursor& consumed, ReadCursor& examined)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Frame.ParseRequest(ReadableBuffer buffer, ReadCursor& consumed, ReadCursor& examined)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Frame1.<ProcessRequestsAsync>d__2.MoveNext()
An error occurred If the url contains Chinese in IE

That url is supposed to be % encoded. Kestrel doesn't support raw unicode.

No, see: https://github.com/aspnet/KestrelHttpServer/issues/1144

I can‘t guarantee that users will not enter Chinese directly on url

If via the a browser the browser would automatically url encode it?

Chrome, Firefox will be encoded, IE can not.

encountered same issue, my fix is to urlencode the url before sending the request


[Feature Request] Download from all followed members (Pixiv)

Prerequisites

[x] Did you read FAQ section?
[x] Did you test with the latest releases or commit ?

Description
Requesting feature to get the full list of user's followed members (Pixiv), store all the member_ids in a text file just like the list.txt, then download all images just like using the list.txt feature.
Expected behavior: Can get the full list of user's followed member_ids, and download all the images.

This is already implemented.
Use m. Export online user bookmark, give a filename then press Enter, then do not input any member ID, then press enter again. It will then export your entire list of followed artists (bookmarked artists) into that filename.
After it finishes, use i. Import list file, give the filename you used to export the list, then press Enter.
Once you do that, use 4. Download from list, and press Enter without inputting anything again.
It will now download your entire list.

You can also just download all of your bookmarked artists by using 5. Download from bookmarked artists (/bookmark.php?type=user) but that will not export a list.


[Utility] Support RESTful relay payloads

Objective
Support relays to RESTful services
Origin Document
#803
Goals

Relays to RESTful services are handled: RESTful method, path, contents, etc.

Deliverable

[ ] Updated utility module code
[ ] e2e test happy scenario: a relay with valid payload is sent to a RESTful service

Non-goals / Non-deliverables
General issue deliverables

[ ] Update any relevant local/global README(s)
[ ] Update relevant source code tree explanations
[ ] Add or update any relevant or supporting mermaid diagrams

Testing Methodology

[ ] Task specific tests or benchmarks: make ...
[ ] New tests or benchmarks: make ...
[ ] All tests: make test_all
[ ] LocalNet: verify a LocalNet is still functioning correctly by following the instructions at docs/development/README.md
[ ] k8s LocalNet: verify a k8s LocalNet is still functioning correctly by following the instructions here

Creator: [@adshmh ]
Co-Owners: [@Olshansk ]

/reviewpad summarize

@adshmh I moved this into M3 (since its a utility feature) with M4 being infrastructure related to DevNet


Run tests on Windows

✨ Feature Request

We provide iris 3 for Windows via conda-forge - see https://anaconda.org/conda-forge/iris. There are known users of iris on Windows. We should setup CI to run the test suite on Windows.

This could definitely be good thing, but the way people have talked before: it also sounds like a significant extra commitment. This is presumably a combination of extra potential problems arising at any given time due to a 'wider CI net', plus the extra expertise we may need to keep it working.

We can at least try to get the CI working, if it highlights many issues then it is more of a known issue as right now it is an unknown unknown.  Suggest any effort to this will managed and prioritised, unless we have help from contributors outside the Met Office.

I've started making changes to .cirrus.yml that run the tests against Windows to try this

A confluence page exists to document the progress that has been made on understanding this


functional tests: Fix ServiceFileTest

Missing --mds-register=false flag, not caught before, because this
test is not run on semaphore.

LGTM. Thanks!


solo.enterTextInWebElement cant send "" chars

From leonid.veremchuk on April 26, 2014 07:40:41
I use
solo.clickOnWebElement(id_elent);
solo.enterTextInWebElement(id_elent, """");
I need add only chars "" ( Not empty text). but solo sended empty string.
What wrong?
Original issue: http://code.google.com/p/robotium/issues/detail?id=599

From<EMAIL_ADDRESS>on May 06, 2014 01:19:46
What happens if you use solo.typeTextInWebElement?
Owner<EMAIL_ADDRESS>

From leonid.veremchuk on May 06, 2014 09:13:37
I try enter " character, but string in EditText is empty.

From<EMAIL_ADDRESS>on June 09, 2014 01:25:39
With enterText we set the web element field to the String entered. With typeText we type a string. Please use the rules for strings to be able to perform your action.
Status: Invalid


Fix run all cells with exception

For #4309
Make sure to cancel cell execution for other cells when running all of them and one of them throws an exception.

[x] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR).
[x] Title summarizes what is changing.
[x] Has a news entry file (remember to thank yourself!).
[x] Appropriate comments and documentation strings in the code.
[ ] Has sufficient logging.
[ ] Has telemetry for enhancements.
[x] Unit tests & system/integration tests are added/updated.
[ ] Test plan is updated as appropriate.
[ ] package-lock.json has been regenerated by running npm install (if dependencies have changed).

Codecov Report

Merging #4334 (e5dcd4e) into main (85b3bbd) will increase coverage by 4%.
The diff coverage is 100%.

@@           Coverage Diff           @@
##            main   #4334     +/-   ##
=======================================
+ Coverage     70%     75%     +4%
=======================================
  Files        389     389
  Lines      25477   25483      +6
  Branches    3645    3645
=======================================
+ Hits       18069   19211   +1142
+ Misses      6001    4778   -1223
- Partials    1407    1494     +87

Impacted Files
Coverage Δ

...ent/datascience/jupyter/kernels/kernelExecution.ts
81% <100%> (+71%)
:arrow_up:

src/client/datascience/jupyter/jupyterServer.ts
76% <0%> (-4%)
:arrow_down:

src/client/datascience/jupyter/jupyterSession.ts
82% <0%> (-3%)
:arrow_down:

src/client/common/cancellation.ts
79% <0%> (-3%)
:arrow_down:

src/client/common/process/pythonDaemonPool.ts
78% <0%> (-2%)
:arrow_down:

src/client/datascience/jupyter/jupyterExecution.ts
72% <0%> (-2%)
:arrow_down:

...rc/client/datascience/jupyter/debuggerVariables.ts
82% <0%> (-2%)
:arrow_down:

...lient/datascience/jupyter/jupyterSessionManager.ts
72% <0%> (-2%)
:arrow_down:

src/client/datascience/jupyter/kernelVariables.ts
73% <0%> (-1%)
:arrow_down:

src/client/datascience/baseJupyterSession.ts
74% <0%> (-1%)
:arrow_down:

... and 68 more

Codecov Report

Merging #4334 (e5dcd4e) into main (85b3bbd) will increase coverage by 4%.
The diff coverage is 100%.

@@           Coverage Diff           @@
##            main   #4334     +/-   ##
=======================================
+ Coverage     70%     75%     +4%
=======================================
  Files        389     389
  Lines      25477   25483      +6
  Branches    3645    3645
=======================================
+ Hits       18069   19211   +1142
+ Misses      6001    4778   -1223
- Partials    1407    1494     +87

Impacted Files
Coverage Δ

...ent/datascience/jupyter/kernels/kernelExecution.ts
81% <100%> (+71%)
:arrow_up:

src/client/datascience/jupyter/jupyterServer.ts
76% <0%> (-4%)
:arrow_down:

src/client/datascience/jupyter/jupyterSession.ts
82% <0%> (-3%)
:arrow_down:

src/client/common/cancellation.ts
79% <0%> (-3%)
:arrow_down:

src/client/common/process/pythonDaemonPool.ts
78% <0%> (-2%)
:arrow_down:

src/client/datascience/jupyter/jupyterExecution.ts
72% <0%> (-2%)
:arrow_down:

...rc/client/datascience/jupyter/debuggerVariables.ts
82% <0%> (-2%)
:arrow_down:

...lient/datascience/jupyter/jupyterSessionManager.ts
72% <0%> (-2%)
:arrow_down:

src/client/datascience/jupyter/kernelVariables.ts
73% <0%> (-1%)
:arrow_down:

src/client/datascience/baseJupyterSession.ts
74% <0%> (-1%)
:arrow_down:

... and 68 more


Internal Architecture

Hi all: Is this content still valid/not-outdated? https://www.sigops.org/s/conferences/sosp/2011/current/index.html This was a presentation by Brad Calder .
Thank you!

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

ID: 4a056685-6734-380e-562c-92e30b8976a3
Version Independent ID: 1d17cc5e-f2b1-5489-79fa-e8557fadc5b5
Content: Introduction to Blob storage - Object storage in Azure
Content Source: articles/storage/blobs/storage-blobs-introduction.md
Service: storage
GitHub Login: @tamram
Microsoft Alias: tamram

@AlejoSQL Thanks for your question. We are checking on this and will respond to you soon.

@AlejoSQL May I know what exactly are you trying to perform (Can you bit elaborate more on this query)?

Hi @SumanthMarigowda-MSFT :
We have had multiple clients really wanting to understand the inner workings of Azure storage. We have been able to explain this for multiple other components (Azure SQL DW Gen 2, Azure Managed Instance, Hyperscale) , but storage has been really difficult and a blocker to get past RFP stage... We always get scored low there.
Also, because it helps us better and more confidently sell this to technical audiences.

@AlejoSQL  I would recommend you to refer to the suggestion mentioned in this article: https://www.sigops.org/s/conferences/sosp/2011/current/2011-Cascais/printable/11-calder.pdf  This would be really helpful and valid informations has been provided.

Hi @SumanthMarigowda-MSFT : I am aware of that content. My question was specifically if that content was/is still valid, considering it is from quite a few years ago. It is really paramount to have a clear understanding of the current internals of storage.
Thank you!

@AlejoSQL For more clarification on this query let me assign this to the content to the author

@AlejoSQL - The white paper you reference above is still valid in terms of the underlying architecture of Azure Storage, even though it's eight years old. Any enhancements to the underlying architecture are covered in our documentation.

@AlejoSQL - if you have specific questions about storage architecture, feel free to open another issue to ask them.

@AlejoSQL Since we have not heard back from you we will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly reopen the issue and continue the discussion.


Add wghttp

I have implemented an http application in Rust that helps managing wireguard devices and peers on kernel level. I would be happy if it could be listed in awesome-wireguard repo :) Thanks

LGTM. 💙 Rust and kernel. Thank you.


Verify MEC16xx programming on revC

There were some spurious errors while verifying (not programming!) MEC16xx with revB, it's unclear if they were caused by FXMAs or something else.

Having done some groundwork on the ARC core in MEC16xx, I have concluded that this is more likely to be a silicon bug than an FXMA-related issue and updated the applet to indicate this conclusion in 506839f1e5186881ab9427e2d9b89e0e307b6c1b.


no tooltip/popover when using .hide/.show

Tooltips and Popovers aren't visible on items that are being dynamically shown/hidden when hovering over a surrounding item with .hide/.show on 'mouseover' and 'mouseout'.
jsfiddle example: http://jsfiddle.net/starfritz/Xhvuw/8/
The example shows the tooltip is visible but in the wrong position! I didn't see it because it's behind the navbar.
Same behaviour applies to popover.
2.0.1
jquery 1.7.1

your link 404s

jsfiddle newb
working link: http://jsfiddle.net/starfritz/Xhvuw/

You need to use mouseenter/mouseleave - http://jsfiddle.net/Xhvuw/16/
mouseout is fired when you hover over children - hiding the button and causing the positioning to fail.


Can´t close Bale Mission

When i have the "CollectingBalesFromMissions" of true, then i can close the mission. But when it false it can´t close the Mission. It is on hostet Multiplayer.
On Server can´t close the Mission regardless of whether with false or true.
2024-12-18 12:34 Error: Running LUA method 'update'.
C:/Users/andre/OneDrive/Dokumente/My Games/FarmingSimulator2025/mods/Multiplayer/FS25_ContractBoost/scripts/MissionTools.lua:156: attempt to call a table value
In Singleplayer i can´t say know.
Use version <IP_ADDRESS>
Log_Ballen pressen.txt

I'll confirm, and see what I can do to fix, thanks for reporting!

I also get the same error using <IP_ADDRESS> on dedicated server.  The same thing happens with bale wrapping missions.
Thanks for the mod and all your hard work <3

i’m actively working on a fix. i should have something released by
tomorrow.
On Thu, Dec 19, 2024 at 12:37 AM Ricky Gibson @.***>
wrote:

I also get the same error using <IP_ADDRESS> on dedicated server. The same
thing happens with bale wrapping missions.
Thanks for the mod and all your hard work <3
—
Reply to this email directly, view it on GitHub
https://github.com/GMNGjoy/FS25_ContractBoost/issues/31#issuecomment-2553080660,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZSFL3RMVPNCINA3H27MRML2GKAUTAVCNFSM6AAAAABT2RNVV2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNJTGA4DANRWGA
.
You are receiving this because you commented.Message ID:
@.***>

Potential fix released: [<IP_ADDRESS>](https://github.com/GMNGjoy/FS25_ContractBoost/releases/tag/<IP_ADDRESS>} please let me know if it fixs the problem for everyone who is affected!

your fix works can now pickup bales using auto loader thank you

Unsure what going on now the in game autoloader not allowing the bales picked up now before using the UAL (Universal Autoload ) but that also just stopped working.

Unsure what going on now the in game autoloader not allowing the bales picked up now before using the UAL (Universal Autoload ) but that also just stopped working.

Please open a separate issue - this issue is surrounding the use case when the enableCollectingBalesFromMissions flag is turned off, which would mean that the bales are not yours and you shouldn't be able to pick them up. Please include the version you are currently using, and a copy of your log file when reporting.

no problem

Danke fürs fixen das man die Missionen jetzt abschließen kann.

Außer wenn ich den Ballen in Objectlager tu bleibt er erhalten, aber verkaufen geht nicht da der Ballen keine farm ID hat.
Wäre es eine lösung bei CollectingBalesFromMissions "True", denn Ballen eine Farm ID zu geben?
I have new Lua call stack,, know.
2024-12-19 21:11 LUA call stack:
=dataS/scripts/misc/ItemSystem.lua:288 removeItem
=dataS/scripts/objects/Bale.lua:121 delete
=dataS/scripts/missions/field/BaleMission.lua:187 finishField
=C://gameservers//s1495141//ls2025//gameProfile/mods/FS25_ContractBoost/scripts/MissionTools.lua:156 finishBaleField
=dataS/scripts/utils/Utils.lua:601
=dataS/scripts/missions/field/AbstractFieldMission.lua:338 dismiss
=dataS/scripts/missions/MissionManager.lua:502 dismissMission
=dataS/scripts/missions/events/MissionDismissEvent.lua:74 run
=dataS/scripts/missions/events/MissionDismissEvent.lua:54 readStream
=dataS/scripts/network/Server.lua:538 packetReceived
=dataS/scripts/network/ConnectionManager.lua:27 packetReceived
2024-12-19 21:11
Script error in removeTrigger: Unknown entity id 651984 for 'triggerNodeId' in method 'removeTrigger'.
LUA call stack:
=[C]:-1 removeTrigger
=dataS/scripts/objects/MountableObject.lua:47 delete
=dataS/scripts/objects/Bale.lua:122 delete
=dataS/scripts/missions/field/BaleMission.lua:187 finishField
=C://gameservers//s1495141//ls2025//gameProfile/mods/FS25_ContractBoost/scripts/MissionTools.lua:156 finishBaleField
=dataS/scripts/utils/Utils.lua:601
=dataS/scripts/missions/field/AbstractFieldMission.lua:338 dismiss
=dataS/scripts/missions/MissionManager.lua:502 dismissMission
=dataS/scripts/missions/events/MissionDismissEvent.lua:74 run
=dataS/scripts/missions/events/MissionDismissEvent.lua:54 readStream
=dataS/scripts/network/Server.lua:538 packetReceived
=dataS/scripts/network/ConnectionManager.lua:27 packetReceived
Server Log attached
Server-Log 241219.txt

Fix works for me, thx.


Almost there...

I was able to set up the DB and install python requirements (although the latest Postgre 10, and python 3.7, with newer versions of requirements, sometimes), set up the config, and have created a bounding box in the DB, but when I run the "python airbnb.py -sb" option, while the script is running I get:
INFO    Rectangle calculated: [42.3232, -71.14235, 42.2946, -71.179]
INFO    Searching rectangle: zoom factor = 1, node = [[1, 1]]
ERROR   Operational error (connection closed): resuming
ERROR   Operational error (connection closed): resuming
ERROR   Operational error (connection closed): resuming
ERROR   Operational error (connection closed): resuming
ERROR   Operational error (connection closed): resuming
ERROR   Operational error (connection closed): resuming
ERROR   Operational error (connection closed): resuming
ERROR   Operational error (connection closed): resuming
ERROR   Operational error (connection closed): resuming
ERROR   Operational error (connection closed): resuming
ERROR   Operational error (connection closed): resuming
ERROR   Operational error (connection closed): resuming
ERROR   Operational error (connection closed): resuming
ERROR   Operational error (connection closed): resuming
ERROR   Operational error (connection closed): resuming
INFO    Page 01 returned 15 listings
INFO    Final page of listings for this search
INFO    Results: 1 pages, 0 new rooms
INFO    Finishing survey 1, for Brookline
In the end, nothing was written to "rooms" table.  Do you have any idea where I strayed off the path? I am a beginner with Postgre, but this kind of looks like a DB problem.  I am wondering if I need to uninstall python 37 and go with 34, and exact same versions of py requirements as in your requirements.txt file. Thanks for anyone's advice.

Hi @jedfehrenbach . I can't get to my code for a few hours, but it does look like a database connection error. One thing to do would be to run "python airbnb.py -dbp" which just tries a database connection and prints whether it succeeded: at least that should tell you if you have the database connection set up properly.

Hi Tom! Thank you for the response.
That command is okay. I get:
'Connection test succeeded: airbnb@localhost'
I was also able to edit the table and create the bounding box coordinates just fine.
But I have problems running all the actual searches, whether by zip code, box, or neighborhood.
In pgAdmin4, I have a server named 'OSGIS' (in addition to a server called 'PostgreSQL 10', which was automatically created during install) then 'airbnb' and 'postgres' as databases within each server. Although that isn't the machine name. The machine is named itdgisweb16 and it is Windows Server 2016 OS. So I'm wondering if I need 'OSGIS' somewhere in the config file (or itdgisweb16), so that results write to the 'rooms' table. Or, perhaps I should delete OSGIS and go with the default server.
Thanks...much appreciated.

Hi Tom,  just an update, everything is working fine. I think the issue ended up being either 1) something doesn't work with 64-bit of either Python 3.7 or Postgre/PostGIS, or 2) something doesn't work with the latest 10.x version of PostgreSQL. I ended up installing  32 bit of both Python 3.7 and PostgreSQL 9.5, and everything worked.  Thanks.

Thanks for updating this @jedfehrenbach and sorry I had not replied. Unfortunately I don't get much time to work on this right now.


video.oncanplay not firing?

Hey all,
I can't seem to get the canplay event to fire for my video element. I've read up and I understand that this an artificially emitted event, and that the video element must be attached to the DOM. My element is indeed attached to the DOM before I begin the WebRTC session. Everything works correctly, but the event never gets fired. I've tried listening for the event as follows (as per the docs):
videl.addEventListener('canplay', function () {     console.log('canplay - '+videl.videoWidth+'/'+videl.videoHeight); });
The event never gets fired. Are there any gotchas that I should check that would prevent this event from firing when all else is working correctly?
PS: I'm actually trying to determine when video has started playing (i.e. when the first frame is visible to the user). In a regular browser I would just use the 'play' event. Assuming I can get 'canplay' to work, will it suffice here, or does it get fired before the first frame displays?
Thanks much.

The event is fired when the renderer is connected: https://github.com/eface2face/cordova-plugin-iosrtc/blob/master/js/MediaStreamRenderer.js#L98
Are you running the latest version?  There was a corner case in which the connected event wouln't be fired: https://github.com/eface2face/cordova-plugin-iosrtc/commit/2657730cbe8cf718ea93564d887bc30c68ecaeef

I have described similar issue here https://groups.google.com/forum/#!topic/cordova-plugin-iosrtc/ If you need videoHeight then oncanplay probably is not the way to go.

@saghul Ahhh... I haven't yet verified (will do so as soon as I can), but since I am indeed using the promise of getUserMedia, it seems likely that this is the problem. Will try with the most recent code.
@ptixed Yea, I actually need to know when the first frame of video has been displayed, so I too am wondering if there's a way to do it without gussing with a timeout...


Redo onboarding

We need to redo onboarding of users
Currently new users receive all old changelogs after signing up. This is fine for now, due to a small amount of changelogs, but needs to change in the future
Options:

on /start, note that changelog sent is the curre tly newest changelog

Done


Add tuners

Main changes

SequentialTuner abstracted to general graph
PipelineTuner abstracted to general graph and renamed to SimultaniousTuner
SearchSpace abstracted to general graph
structure parameter added to Graph
parameters parameter added to LinkedGraphNode
ObjectiveEvaluate.eval_n_jobs made public to allow tuners to reset it

Codecov Report

Merging #21 (a61c56c) into main (f40fd08) will increase coverage by 1.02%.
The diff coverage is 94.14%.

@@            Coverage Diff             @@
##             main      #21      +/-   ##
==========================================
+ Coverage   74.17%   75.19%   +1.02%
==========================================
  Files          90       94       +4
  Lines        4817     5072     +255
==========================================
+ Hits         3573     3814     +241
- Misses       1244     1258      +14

Impacted Files
Coverage Δ

golem/core/dag/graph.py
75.00% <75.00%> (ø)

golem/core/tuning/tuner_interface.py
89.85% <89.85%> (ø)

golem/core/tuning/simultanious_tuning.py
93.93% <93.93%> (ø)

golem/core/tuning/sequential.py
95.52% <95.52%> (ø)

golem/core/dag/graph_delegate.py
96.29% <100.00%> (+0.21%)
:arrow_up:

golem/core/dag/linked_graph.py
100.00% <100.00%> (ø)

golem/core/dag/linked_graph_node.py
95.55% <100.00%> (+3.66%)
:arrow_up:

golem/core/optimisers/objective/objective_eval.py
94.11% <100.00%> (ø)

golem/core/tuning/search_space.py
100.00% <100.00%> (ø)

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

Еще перенесла изменения для тюнера из этого пр сюда


Generate flag values on startup.

Fixes #4
Depends on #19 (when merged, 4 of these commits should go away, if they don't, I'll rebase).
This PR reconfigures the flag package a bit to allow it to be integrated into the workflow. This means that flag values are generated on startup based on an input seed and the value of the Template key.
To do this, I needed to remove the value of the Flag that was hardcoded in flags.json.
We still don't have a way to accept a seed value, but that's not too far off. Same with adding the validation endpoint (see #3).
To avoid naming collisions I used the term "challenges" to represent the task that returns a flag to the user. Happy to change that, just couldn't figure out how to avoid a conflict with the flag package.

:wave: @komish thanks for helping here. I'll take a look at your changes.
I had some initial work on this, but I never committed :crying_cat_face:
I pushed it to the yctf/flags branch where I had to make some changes you mentioned regarding the hardcoded flags. I'm OK dropping my work, but maybe there's something that could be reused.

It sounds like you'll pull in the flags branch and then cherry pick whatever bits you need from here, so I'll assume this PR will close without merge.

Not sure yet; I may reuse this PR and bisect from mine and yours; I'll work on some of it this weekend. Thanks!


chore: update narwhal pointer

Notable changes:

Narwhal has been fully converted to use quic for p2p communication
primary-to-primary and worker-to-primary have been merged into a single primary-address
worker-to-worker and primary-to-worker have been merged into a single worker-address
narwhal uses a network key in addition to a consensus key for TLS between nodes

Labeling as breaking change for the need to re-genesis.

@arun-koshy I don't think/know if we need to change the keytool, but we can look into that in another PR


Package checker

results

See email Peter sent regarding logging for v0.7 -- commit now for review during meeting tomorrow.


default template fails to curl cookbook tar

I was trying to test cfncluster and was unable to start an sge master.  Upon looking at the logs i saw that curl was failing and outputting binary to the log file.
I changed
"curl -s -L -o /etc/chef/cfncluster-cookbook.tgz -v /etc/chef/cfncluster-cookbook.tgz $cookbook_url\n",
To
"curl -s -L -o /etc/chef/cfncluster-cookbook.tgz -v $cookbook_url\n",
in the two locations in the 1.3.1 json file. That seemed to resolve that issue.

Thanks for catching that. It should be "curl -s -L -o /etc/chef/cfncluster-cookbook.tgz -z /etc/chef/cfncluster-cookbook.tgz $cookbook_url\n",


Please add option for password in CLI

would it be possible to add -p flag to pass on password in command use? This would be 100 times more useful for anyone in web industry as we are used to WinSCP app which has plenty of not used stuff in there. Thanks

Hi @diow . I've added the --password option in release 1.4 now. Enjoy!

Ahh thanks that is lovely! We need this because using keepass we can pass password directly to the app so it allows instantaneous access to files without need to type login and password.

I'll check the 1.5 release and let you know if there are any problems! I have few people that will be pleased to use this on mac

Great! Hope they'll enjoy it!

From what I have heard back the only things that we have missing from this is multi selection of the files (to download / upload) and permission modification on the remote directory. Don't worry if you haven't got time for that but it would be fab if that would be in it. Other than that it is superb, works as needed.


Changes to remove warning from the undefined behaviour sanitizer

When running using the undefined behaviour sanitizer with clang we are getting warnings about calls via function pointers of different types.
These changes disable these warnings.
I believe the same undefined behaviour sanitizer is also available in gcc although I've not tested that. I've tested that the code compiles and runs under clang and gcc.
For documentation on the sanitizer see https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html

Thanks for this. It is a bit like putting a big sign on my code saying "this is a really unclean thing to do with pointers", but that is probably true. Needs a templated solution.


Fix ActiveState.chain maintenance and FFG rewards

Filled the missing active_state.chain maintenance during processing block
voter_indices = block_vote_cache[block_hash]['total_voter_deposits'] -> voter_indices = block_vote_cache[block_hash]['voter_indices']
Keep the balance nonnegative now until we have clear rule of forced exit.
Fix FFG reward slot iteration: range(last_state_recalc - config['cycle_length'], last_state_recalc) -> range(max(last_state_recalc - config['cycle_length'], 0), last_state_recalc)
Fix formula: quadratic_penalty_quotient = int(sqrt(config['sqrt_e_drop_time'] / config['slot_duration'])) -> quadratic_penalty_quotient = (config['sqrt_e_drop_time'] / config['slot_duration']) ** 2

The balance B is 3.2E+19, reward_quotient is 1146880.

When slot = config['cycle_length'] * 3, then time_since_finality <= 3 * config['cycle_length']:

Slot
rewards_and_penalties
cumulative rewards_and_penalties
B + cumulative   rewards_and_penalties

0
-2.7901785714E+13
-2.7901785714E+13
3.1999972098E+19

1
-5.5803571429E+13
-8.3705357143E+13
3.1999916295E+19

2
-8.3705357143E+13
-1.6741071429E+14
3.1999832589E+19

3
-1.1160714286E+14
-2.7901785714E+14
3.1999720982E+19

4
-1.3950892857E+14
-4.1852678571E+14
3.1999581473E+19

When slot = config['cycle_length'] * 4 then time_since_finality > 3 * config['cycle_length']:

time_since_finality: 256
quadratic_penalty_quotient:<PHONE_NUMBER>4
The difference validators[index].balance * time_since_finality // quadratic_penalty_quotient: 4.76837E+11

Slot
rewards_and_penalties
cumulative rewards_and_penalties
B + cumulative   rewards_and_penalties

0
-2.8378622872E+13
-2.8378622872E+13
3.1999971621E+19

1
-5.6757245745E+13
-8.5135868617E+13
3.1999914864E+19

2
-8.5135868617E+13
-1.7027173723E+14
3.1999829728E+19

3
-1.1351449149E+14
-2.8378622872E+14
3.1999716214E+19

4
-1.4189311436E+14
-4.2567934309E+14
3.1999574321E+19

@djrtwo this one is also ready to review! 🙂

lgtm