mocap_optitrack: 1.0.0-2 in 'iron/distribution.yaml' [bloom]

Increasing version of package(s) in repository mocap_optitrack to 1.0.0-2:

upstream repository: https://github.com/ros-drivers/mocap_optitrack.git
release repository: https://github.com/ros-drivers-gbp/mocap_optitrack-release.git
distro file: iron/distribution.yaml
bloom version: 0.11.2
previous version for package: null

mocap_optitrack
* Feat: implement ros1 features and fixes
* Removed wrong and undesired transformation
* Implemented optitrack timestamp
  The message timestamp will now be the time at which optitrack acquired the data instead of the time at which the ROS node received the data
* Fixed deprecated parameters
* Allowed undeclared parameters
* Port to ROS2
* Natnet and server version can now be set in config file
  Added a way to set both natnet and server version from yaml file, so you don't have to restart the broadcast each time you launch the mocap node. Add "version: [3,0,0,0]" in the optitrack_config-part of the config file
* Updates all source files with BSD license blurb.
  Also removes std_msgs has a build dependency as its not a dependency in
  the code anywhere. Cleans up package.xml to format 2, adds all authors, and
  corrects maintainer.
* Adds 2nd body to example config file
  Also removes use_new_coordinates from the example config file. This is now calculated internally from the server version.
* Removes console output from launch file
* Completes refactoring. Tested with NatNet version 3.
* Finishes a majority of the refactoring and verifies it works for NatNet version 3.0
* Heavily refactors code to improve compatibility with NatNet SDK and improve single responsibility.
* Debugging NatNet version 3.0..
* Added version checking to allow for support for changes related to
  certain NatNet versions.
* Added support for new (Motive 1.7+) and old coordinate system.
* updated for recent natnet protocol
* Removed un-needed code.
* Turned down verbosity for less spam when output=screen.
* mocap configuration file is an option to launch file.
* Optitrack multicast address is now a parameter in the config file.
* Fixed config parameter name in example configuration file.
  frame_id -> child_frame_id: The latter is used in mocap_config.cpp (CHILD_FRAME_ID_PARAM_NAME)
* Removed tabs from launch file.
* Switched to a pose stamped message.  Added parameters for parent and child frames.
* initial2
* initial
* Update socket.h
  fixed a typo
* Install the config directory as well, and add a roslaunch file check macro for the launch file to prevent a regression.
* Updated package.xml and cleaned up CMakeLists.txt
* Split off src portion of CMakeLists.
* Lowercase filenames for socket, remove separate exception header, move headers into package subdirectory.
* Tested with actual system and deleted unneeded old files.
* Tried to convert to catkin.
* Tried to convert to catkin.
* Updated copyright & authors in manifest.xml.
* Cleaned up sample configuration file.
* Updated supported NatNet protocol and description.
* Added missing stack dependencies.
* Converted to a unary stack.
  Added stack.xml to make this a unary stack. Also fixed missing include
  for ROS_DEBUG.
* Squashing for release
* Some commenting to yaml config file
* Fixed pose streaming for NaN values.
* Tweaking configs
  Committer: Ryan Gariepy<EMAIL_ADDRESS>  On branch hsi-upgrades
  Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
  modified:   mocap_optitrack/config/mocap.yaml
  modified:   mocap_optitrack/src/mocap_config.cpp
* Fixed inversion in published TF.
* Renamed parameters to reflect the fact that tf will always be published to the same topic.
* Fixed loop and termination code to handle SIGINT correctly.
* Added some headers & comments.
* Fix conversion from OptiTrack to ROS coordinate system.
* Check for all zeros in data. This occurs when the object is not
  being tracked by Optitrack. Zero data should not result in any
  pose/tf being published in ROS.
* Simplified conversion from Optitrack to Pose2D.
* Cleanup and fixed uninitialized variable problems. Node now works
  consistently, since variables are initialized as expected.
* Some cleanup and prepare for correct mocap->ROS data conversion.
* Implemented multi-object support. Each object may be exposed as a
  tf, Pose, or Pose2D with different topics configurable for each
  rigid body & datatype.
* Fixed deserialization of Pose values. Code was incorrectly trying
  to read position/orientation as float64 values instead of the actual
  float that's in the packet.
* Fixed remaining packet parsing bugs. Can now read multiple data sets from NatNet packets.
* Cleaned up parsing a bit, but getting some garbage in output.
* Fixed a bunch of stuff in OptiTrack packet parsing: crashes, memory leaks, some ugliness. Added Pose and Pose2D topics for using packages that may require these kinds of inputs. Added three parameters to enable/disable each of these topics: publish_transform, publish_pose, and publish_ground_pose.
* Fixed memory allocation and parsing.
* Don't launch the silly xterm.
* git-svn-id: http://ais-bonn-ros-pkg.googlecode.com/svn/trunk/stacks/ais_bonn_drivers@31 ee974301-c962-0d43-73a8-0c9e5eb6d2a8
* Contributors: 321thijs123, Administrator, Alex Bencz, Felix Duvallet, Hyon Lim, JD Yamokoski, Mike Purvis, Ryan Gariepy, Tony Baltovski, Tønnes Nygaard, Yannick de Hoop, Ziyang LI, codenotes<EMAIL_ADDRESS>user, vinnamkim

Holding to release all of these from the forthcoming ros2-gbp repository https://github.com/ros/rosdistro/pull/38818#discussion_r1376464543

I'm going to close this one until we get everything sorted out in #38818 .  At that point we'll likely need new PRs anyway.


Sync is broken on update event

When updating an object, sync no longer send PUT request to the API.

Fixed in release v1.1.0


make ib job support 'docker build --target'

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


Jump to Section Navigation upwards Issue

So the problem is, once you use the "jump to section" navigation for going upwards on the page, then it jumps to the section and immediately scroll up to the section above it.
I created a JSFiddle link with a working sample.
https://jsfiddle.net/z6g9q66L/

okay, i got the solution. using the data-panel in panelsnap.
Thank tho.
updated link: https://jsfiddle.net/z6g9q66L/4/


Log accessed resources with it's itsyou.online username

implementation can be found in oauth branch.
log example:
::1 [12/Jan/2017:09:52:50 +0700] "GET /data/a.txt HTTP/1.1" ibk

format was modified from caddy standard log format, with these changes:

remove last 2 fields : http status code and http response size
add IYO username as last field

implemented in #3.
Use fmt.Printf instead of log package because:

we only need to print to stdout
caddy might modify log package output device


Remove use of goog.array.contains

Use arr.indexOf(item) >= 0 instead of goog.array.contains(arr, item)

I would not mind introducing ol.array.contains as it makes the code more readable in my option. And it's easier to make a mistake when comparing the value returned by indexOf to zero.

+1 for ol.array.contains

Make sense

Should we call it ol.array.includes? See e.g.https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/includes
Chrome 47 has it already…

@marcjansen, sounds good.

Doesn't need to be here, but if we ever want consistency with Array.prototype.includes, we'll need to handle NaN correctly (indexOf doesn't).

To be clear, I don't think we need to handle NaN differently than indexOf does right now (since goog.array.contains uses indexOf as well).
I think this looks good to merge.


issue on installing webrtc

i get this error after building android
react-native run-android
 What went wrong:
A problem occurred configuring project ':WebRTCModule'.
> Failed to notify project evaluation listener.
   > com.android.build.gradle.tasks.factory.AndroidJavaCompile.setDependencyCacheDir(Ljava/io/File;)V

i used the android installation instruction .

Please see https://github.com/oney/react-native-webrtc/pull/508

@saghul
my issue with updating gradle build tools is i get 404 from jcenter, i changed repo url by changing jcenter() to google() but it is also 404
my dependencies ,
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
}
> Could not resolve all files for configuration ':classpath'.
   > Could not find com.android.tools.build:gradle:3.0.1.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.1/gradle-3.0.1.pom
         https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.1/gradle-3.0.1.jar
     Required by:
         project :

We just updated the instructions, please check and try again.

@saghul
well the ext option is wrong in docs , it should be like this
ext {
compileSdkVersion =  27
buildToolsVersion = '27.0.3'
}
and now i'm getting this error .
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.

Could not resolve all task dependencies for configuration ':app:debugCompileClasspath'.
Could not resolve project :WebRTCModule.
Required by:
project :app
Unable to find a matching configuration of project :WebRTCModule: None of the consumable configurations have attributes.

solved my issue simply by installing sdk platform 27 from sdk manager


TST: windows failures

======================================================================
FAIL: test_c_engine (pandas.io.tests.parser.test_unsupported.TestUnsupportedFeatures)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\conda\Documents\pandas3.5\pandas\io\tests\parser\test_unsupported.py", line 64, in test_c_engine
    read_table(StringIO(data), engine='c', sep='\xa7')
  File "C:\Users\conda\Documents\pandas3.5\pandas\util\testing.py", line 2437, in __exit__
    raise AssertionError("{0} not raised.".format(name))
AssertionError: ValueError not raised.

======================================================================
FAIL: test_append_zero (pandas.sparse.tests.test_list.TestSparseList)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\conda\Documents\pandas3.5\pandas\sparse\tests\test_list.py", line 64, in test_append_zero
    tm.assert_sp_array_equal(sparr, SparseArray(arr, fill_value=0))
  File "C:\Users\conda\Documents\pandas3.5\pandas\util\testing.py", line 1392, in assert_sp_array_equal
    assert_numpy_array_equal(left.sp_values, right.sp_values)
  File "C:\Users\conda\Documents\pandas3.5\pandas\util\testing.py", line 1083, in assert_numpy_array_equal
    assert_attr_equal('dtype', left, right, obj=obj)
  File "C:\Users\conda\Documents\pandas3.5\pandas\util\testing.py", line 878, in assert_attr_equal
    left_attr, right_attr)
  File "C:\Users\conda\Documents\pandas3.5\pandas\util\testing.py", line 1018, in raise_assert_detail
    raise AssertionError(msg)
AssertionError: numpy array are different

Attribute "dtype" are different
[left]:  int64
[right]: int32

======================================================================
FAIL: test_dataframe_dummies_prefix_str (pandas.tests.test_reshape.TestGetDummies)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\conda\Documents\pandas3.5\pandas\tests\test_reshape.py", line 327, in test_dataframe_dummies_prefix_str
    assert_frame_equal(result, expected)
  File "C:\Users\conda\Documents\pandas3.5\pandas\util\testing.py", line 1313, in assert_frame_equal
    obj='DataFrame.iloc[:, {0}]'.format(i))
  File "C:\Users\conda\Documents\pandas3.5\pandas\util\testing.py", line 1154, in assert_series_equal
    assert_attr_equal('dtype', left, right)
  File "C:\Users\conda\Documents\pandas3.5\pandas\util\testing.py", line 878, in assert_attr_equal
    left_attr, right_attr)
  File "C:\Users\conda\Documents\pandas3.5\pandas\util\testing.py", line 1018, in raise_assert_detail
    raise AssertionError(msg)
AssertionError: Attributes are different

Attribute "dtype" are different
[left]:  int64
[right]: int32

======================================================================
FAIL: test_dataframe_dummies_prefix_str (pandas.tests.test_reshape.TestGetDummiesSparse)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\conda\Documents\pandas3.5\pandas\tests\test_reshape.py", line 327, in test_dataframe_dummies_prefix_str
    assert_frame_equal(result, expected)
  File "C:\Users\conda\Documents\pandas3.5\pandas\util\testing.py", line 1313, in assert_frame_equal
    obj='DataFrame.iloc[:, {0}]'.format(i))
  File "C:\Users\conda\Documents\pandas3.5\pandas\util\testing.py", line 1154, in assert_series_equal
    assert_attr_equal('dtype', left, right)
  File "C:\Users\conda\Documents\pandas3.5\pandas\util\testing.py", line 878, in assert_attr_equal
    left_attr, right_attr)
  File "C:\Users\conda\Documents\pandas3.5\pandas\util\testing.py", line 1018, in raise_assert_detail
    raise AssertionError(msg)
AssertionError: Attributes are different

Attribute "dtype" are different
[left]:  int64
[right]: int32

----------------------------------------------------------------------
Ran 10873 tests in 654.398s

FAILED (SKIP=168, failures=4)

(pandas3.5) C:\Users\conda\Documents\pandas3.5>

cc @gfyoung if you can get the first one, I can get the rest

@jreback : Okay, that sounds good.

@sinhrks maybe also already did something for the sparse ones?
@jreback What is the status actually with appveyor? Because I run them on master and it catched the sparse errors (but only after I merged the PR ..). Is it because it fails too often without good reason it is not activated in PRs?

@jorisvandenbossche : Did it fail on the read_table test ?

Apparantly not: https://ci.appveyor.com/project/jreback/pandas-465/build/1.0.962/job/ktes6kx97y0607ew

Okay, then I'm a little suspicious about this failure for read_table that @jreback is showing.  Let me see what I get when I try to run locally.

I will fix the sparse ones. appveryor is very good at showing the errors. the parser error may not show on 2.7. appveyor will not run things after the first build (which is 2.7) fails. my output is from 3.5. (so could maybe only be there).

appveyor only runs on master (or you can setup it up yourself to run on your own PR's). but it won't run other's (I suppose we could change this, it is pretty fast now).

@jreback : If Appveyor is fast enough, I would vote for adding it to the PR checks.

@gfyoung yeah, if you can figure out the setting, lmk.

@jreback : What branches are you building currently?  I thought it should be possible by default?

I changed it to * on the config. So next PR give a check.

https://ci.appveyor.com/project/jreback/pandas-465/build/1.0.973
so passing on 2.7 / failing on 3.5 (for that single test).

@jreback : Doesn't seem like Appveyor is picking up #14147.

i don't think it works on PRs
you'll have to read the docs to enable
if u have an account then it should work

@jreback : Shouldn't have to.  numpy doesn't require developers to have an Appveyor account, which leads me to believe it is a configuration option.
cc @njsmith : I'm not sure who has control of the Appveyor account on the numpy, but do you think you could provide some insight / help into this?

I think you can only have projects under your own personal account on appveyor and not for a github org? In that case, we maybe better make a 'pandas' account for appveyor. I can set this up.

https://travis-ci.org/pydata/pandas/jobs/157552565
replaces this failure on Travis (this is a proposed PR that can set some locales)

Ah...it could be a locale issue then because encoding = sys.systemencoding or 'utf-8'.  The line of code in question is the following:
elif len(sep.encode(encoding)) > 1:

This check is specifically for the C engine, and I would like to provide a nice error / warning message should this check raise another Exception during the encodestep withengine=c'` that pre-empts the one I was going to use.
@jreback : What do you think is best?  The awkward part is that the conditional is caught in the middle of an elif.  I was thinking perhaps the following:
elif sep is not None:
   encodable = True
   try:
    if len(sep.encode(encoding)) > 1:
       encodable = False
  except UnicodeEncodeError:
     encodable = False
  if not encodable:
    ...

@jreback : My unsupported test is a flaky because of the locale dependency I realize (I can't replicate the error on Windows locally).  Perhaps I should just remove the test?

This replicates on 3.5 windows for me:
======================================================================
FAIL: test_c_engine (pandas.io.tests.parser.test_unsupported.TestUnsupportedFeatures)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\conda\Documents\pandas3.5\pandas\io\tests\parser\test_unsupported.py", line 64, in test_c_engine
    read_table(StringIO(data), engine='c', sep='\xa7')
  File "C:\Users\conda\Documents\pandas3.5\pandas\util\testing.py", line 2450, in __exit__
    raise AssertionError("{0} not raised.".format(name))
AssertionError: ValueError not raised.

----------------------------------------------------------------------
Ran 10873 tests in 433.840s

FAILED (SKIP=168, failures=1)

(pandas3.5) C:\Users\conda\Documents\pandas3.5>ipyton
'ipyton' is not recognized as an internal or external command,
operable program or batch file.

(pandas3.5) C:\Users\conda\Documents\pandas3.5>ipython
Python 3.5.1 |Continuum Analytics, Inc.| (default, Feb 16 2016, 09:49:46) [MSC v.1900 64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.

IPython 5.1.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: pd.show_versions()
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-1-eaa3460ab7ab> in <module>()
----> 1 pd.show_versions()

NameError: name 'pd' is not defined

In [2]: import pandas as pd

In [3]: pd.show_versions()

INSTALLED VERSIONS
------------------
commit: 59524af1e90d3dda2d885e711f7258704a020b6d
python: 3.5.1.final.0
python-bits: 64
OS: Windows
OS-release: 7
machine: AMD64
processor: Intel64 Family 6 Model 70 Stepping 1, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None

pandas: 0.18.1+427.g59524af

I think the encoding is getting set to windows default
In [5]: sys.getdefaultencoding()
Out[5]: 'utf-8'

which seems ok (I though ascii) would trigger it.
I'd kind of like to keep this tests now that it shows on Travis as well (you can rebase off that xref PR, which shows on Travis to test if that helps).

Fair enough, but I think we should make a comment about the flakiness.  What did you think about my try-except proposal above?

elif sep is not None:

   def do_on_encodable():
       ....

   try:
      if len(sep.encode(encoding)) > 1:
         do_on_encodable()
   except UnicodeEncodeError:
      do_on_encodable()

maybe a bit better

@jreback : idk if it's necessary to abstract away logic into a separate function, but I'll try putting up a PR with the change, and we can discuss there.

ok I think I enabled appveyor to work. It wasn't sending the pull-request webhook events, only a push. give it a try.


Add PodSpec example to use the existing k8s secret in Radius container resource

What content needs to be created or modified?

Add additional PodSpec Patch example to reference k8s secret in Radius container resource.
Describe the solution you'd like

As a Radius user, I can reference my existing kubernetes secret in Radius container resource using PodSpec Patch.
Where should the new material be placed?

This document should be placed in https://github.com/radius-project/docs/blob/v0.32/docs/content/guides/author-apps/kubernetes/how-to-patch-pod/index.md
The associated pull request from the Radius code repo, if applicable

N/A
Additional context

AB#11704

@jasonviviano @willtsai Nick wants to contribute to the documentation for the PodSpec example to use the existing k8s secret. Where is the best place to add this example?

@jasonviviano @willtsai Nick wants to contribute to the documentation for the PodSpec example to use the existing k8s secret. Where is the best place to add this example?

I'd wait for @willtsai ultimately on the answer here but a good place to start as a position would be Kubernetes section under authoring: https://docs.radapp.io/guides/author-apps/kubernetes/overview/

this was done

fixed by: https://github.com/radius-project/docs/pull/1100


Posix structs aren't exported

I had issues trying to create a aio.posix.darwin.msghdr, since the Zig standard library doesn't (currently) define a msghdr for macOS.
Perhaps this is worth doing for the moment:
diff --git a/src/aio.zig b/src/aio.zig
index 2ee2f31..c05c624 100644
--- a/src/aio.zig
+++ b/src/aio.zig
@@ -225,7 +225,7 @@ pub const NotifyEventSource = ops.NotifyEventSource;
 pub const WaitEventSource = ops.WaitEventSource;
 pub const CloseEventSource = ops.CloseEventSource;

+pub const posix = @import("aio/posix/posix.zig");

 test "shared outputs" {
     var tmp = std.testing.tmpDir(.{});

Thanks, https://github.com/Cloudef/zig-aio/commit/1a24522646aa5df2fbf07d8614f2b2cb066edde6


Re-check sign personal via EVM Ledger account

Describe the bug
Re-check sign personal request from dApp via EVM Ledger account
Actual: Some dApp signed failed (dotinsights, astar portal)

Notes: Sub-connect is successfully

Version test: https://file.cdmteck.com/s/4oimk9zDJ8R5Aai/download?path=%2F&files=./upgrade-ui-pr-1534-build-1.0.9-1-2023-06-13T10-56-33UTC.zip
Validation passed


Add output forget plugin

This is my forget plugin

Merged in b94d39b4e09e9c5bba22d08d118f915c0be26951
@ebadenes Sorry it took so long. Want to update the wiki?


Follwing getting started section with fresh project cause error.

I follow getting started section line by line, but after mounting identity theme, the following error occurred.
ERROR  Failed to compile with 1 errors                                                                                07:51:30

This dependency was not found:

* /blogs/theme-test/src/templates/post.js in ./.cache/sync-requires.js

To install it, you can run: npm install --save /blogs/theme-test/src/templates/post.js

I just fixed this issue while working with someone else. Can you start over and let me know if you still see this issue?

I should start from development branch or just issue yarn update?

Delete the current project. Start from the beginning of the guide.
This is will be easiest as It might take forever to debug from where you are now without my looking at your screen. Basically I had a template with the wrong name on the repo but you must've cloned it minutes before I fixed it. 😅

Thanks, I will test it.

Thanks @nodox, I tested it and issue resolved.


chore(otel-api): update api references for otel v1beta1 api

I would try to generate the json from yaml, to help with future updates (if that makes sense)

Would not put effort into that, probably we could find a better way to do these tests, serialisation is not a concern in any other case.


AuthItemSearch failing

Hi,
It appears there is some issue with all controllers that depend on AuthItemSearch for loading items. For instance after  $items = $authManager->getRoles();  in the case of RoleController, I can verify that $items contains valid roles from my configuration but ArrayDataProvider doesn't send anything to the controller so my Roles Index shows nothing.
What could be wrong?

Resolved, this was from an unrelated bug


[Bug]: In git connected app Unable to commit the changes in the branch

Is there an existing issue for this?

[X] I have searched the existing issues

Description
In git connected app Unable to commit the changes in the branch
https://www.loom.com/share/987d0df8af83422489f63aa4b3ee9508
Steps To Reproduce

In our regression app
checkout to any one branch
Add a new page
Click on commit icon
Now see now of page updated detailes are not displayed and also try to commit the change
The commit fails with the error

Public Sample App
https://release.app.appsmith.com/app/release-jan-23/page1-63ce4a8c8b95c22a79dae9b7/edit?branch=master
Issue video log
No response
Version
release

The reason we believe this happened is that when a git process was in progress Appsmith server restarted and hence the git process ended in the middle. Because of this index.lock file was left undeleted and when the server came up and we tried the git operations, we saw the file lock error.


chore(main): release 0.5.0

:robot: I have created a release beep boop
0.5.0 (2023-03-04)
Features

performance optimizations (#29) (8042d13)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/ZKLadder/tirl-validator/releases/tag/v0.5.0 :sunflower:


add python commandline args documentation

1. General Options
These options apply broadly to the entire pipeline, affecting overall behavior and settings.

Argument
Subcategory
Description
Default

-h, --help
Help
Show this help message and exit
N/A

--device DEVICE
Device Configuration
Overrides the device for all handlers
None

--mode MODE
Mode Selection
Mode to run the pipeline in: 'local' or 'socket'
socket

--log_level LOG_LEVEL
Logging
Logging level (e.g., debug, info, warning)
info

--language LANGUAGE
Language Settings
Conversation language (en, fr, es, zh, ko, ja, None, auto)
en

--user_role USER_ROLE
Chat Roles
Role assigned to the user in the chat context
user

--init_chat_role INIT_CHAT_ROLE
Chat Roles
Initial role for setting up the chat context
system

--init_chat_prompt INIT_CHAT_PROMPT
Chat Initialization
Initial chat prompt to establish context for the language model
"You are a helpful and friendly AI assistant. You are polite, respectful, and aim to provide concise responses of less than 20 words."

--chat_size CHAT_SIZE
Chat Settings
Number of assistant-user interactions to keep
2

--local_mac_optimal_settings [LOCAL_MAC_OPTIMAL_SETTINGS]
Platform Optimization
Sets optimal settings for Mac OS, enabling whisper-mlx, MLX LM, and MeloTTS
False

2. Socket Configuration
Settings related to socket connections for data transmission.

Argument
Subcategory
Description
Default

--recv_host RECV_HOST
Receiving
Host IP address for socket connection (binds to all if <IP_ADDRESS>)
localhost

--recv_port RECV_PORT
Receiving
Port number for the socket server
12345

--send_host SEND_HOST
Sending
Host IP address for sending socket connection
localhost

--send_port SEND_PORT
Sending
Port number for sending socket server
12346

--chunk_size CHUNK_SIZE
Data Transmission
Size of data chunks over the socket (bytes)
1024

3. Speech-to-Text (STT) Options
Configurations for the Speech-to-Text component.

Argument
Subcategory
Description
Default

--stt STT
Engine Selection
Speech-to-Text engine: 'whisper', 'whisper-mlx', or 'paraformer'
whisper

--stt_model_name STT_MODEL_NAME
Model Configuration
Pretrained Whisper model
distil-whisper/distil-large-v3

--stt_device STT_DEVICE
Device Configuration
Device for STT model (cuda, cpu, etc.)
cuda

--stt_torch_dtype STT_TORCH_DTYPE
Data Type
PyTorch data type for STT (float32, float16, bfloat16)
float16

--stt_compile_mode STT_COMPILE_MODE
Compilation
Torch compile mode: 'default', 'reduce-overhead', 'max-autotune'
None

--stt_gen_max_new_tokens STT_GEN_MAX_NEW_TOKENS
Generation Parameters
Max new tokens for STT generation
128

--stt_gen_num_beams STT_GEN_NUM_BEAMS
Generation Parameters
Number of beams for beam search in STT
1

--stt_gen_return_timestamps [STT_GEN_RETURN_TIMESTAMPS]
Output Configuration
Return timestamps with transcriptions
False

--stt_gen_task STT_GEN_TASK
Task Specification
Task for STT (e.g., 'transcribe')
transcribe

--paraformer_stt_model_name PARAFORMER_STT_MODEL_NAME
Engine Configuration
Pretrained Paraformer model
paraformer-zh

--paraformer_stt_device PARAFORMER_STT_DEVICE
Device Configuration
Device for Paraformer STT model
cuda

4. Language Model (LLM) Options
Settings pertaining to the Language Model component.

Argument
Subcategory
Description
Default

--llm LLM
Engine Selection
Language Model: 'transformers' or 'mlx-lm'
transformers

--lm_model_name LM_MODEL_NAME
Model Configuration
Pretrained Language Model
HuggingFaceTB/SmolLM-360M-Instruct

--lm_device LM_DEVICE
Device Configuration
Device for Language Model (cuda, cpu, etc.)
cuda

--lm_torch_dtype LM_TORCH_DTYPE
Data Type
PyTorch data type for LM (float32, float16, bfloat16)
float16

--lm_gen_max_new_tokens LM_GEN_MAX_NEW_TOKENS
Generation Parameters
Max new tokens for LM generation
128

--lm_gen_min_new_tokens LM_GEN_MIN_NEW_TOKENS
Generation Parameters
Min new tokens for LM generation
0

--lm_gen_temperature LM_GEN_TEMPERATURE
Generation Parameters
Randomness of LM output (0.0 for deterministic)
0.0

--lm_gen_do_sample [LM_GEN_DO_SAMPLE]
Generation Configuration
Use sampling in LM generation
False

5. Text-to-Speech (TTS) Options
Configurations for the Text-to-Speech component.

Argument
Subcategory
Description
Default

--tts TTS
Engine Selection
Text-to-Speech engine: 'parler', 'melo', or 'chatTTS'
parler

--tts_model_name TTS_MODEL_NAME
Model Configuration
Pretrained TTS model
ylacombe/parler-tts-mini-jenny-30H

--tts_device TTS_DEVICE
Device Configuration
Device for TTS model (cuda, cpu, etc.)
cuda

--tts_torch_dtype TTS_TORCH_DTYPE
Data Type
PyTorch data type for TTS (float32, float16, bfloat16)
float16

--tts_compile_mode TTS_COMPILE_MODE
Compilation
Torch compile mode for TTS: 'default', 'reduce-overhead', 'max-autotune'
None

--tts_gen_min_new_tokens TTS_GEN_MIN_NEW_TOKENS
Generation Parameters
Min new tokens for TTS generation (~0.1 secs)
64

--tts_gen_max_new_tokens TTS_GEN_MAX_NEW_TOKENS
Generation Parameters
Max new tokens for TTS generation (~6 secs)
512

--description DESCRIPTION
Voice Configuration
Description of speaker's voice and style for TTS
"A female speaker with a slightly low-pitched voice delivers her words quite expressively, in a very confined sounding environment with clear audio quality. She speaks very fast."

--play_steps_s PLAY_STEPS_S
Playback Settings
Time interval (seconds) for speech playback steps
1.0

--chat_tts_stream [CHAT_TTS_STREAM]
Streaming Configuration
Enable streaming mode for Chat TTS
True

--no_chat_tts_stream
Streaming Configuration
Disable streaming mode for Chat TTS
False

--chat_tts_device CHAT_TTS_DEVICE
Device Configuration
Device for Chat TTS speech synthesis
cuda

--chat_tts_chunk_size CHAT_TTS_CHUNK_SIZE
Data Transmission
Audio chunk size for Chat TTS processing (bytes)
512

6. OpenAPI Options
Settings related to integrating with OpenAPI for language models.

Argument
Subcategory
Description
Default

--open_api_model_name OPEN_API_MODEL_NAME
Model Configuration
Pretrained OpenAPI Language Model
deepseek-chat

--open_api_user_role OPEN_API_USER_ROLE
Chat Roles
User role in OpenAPI chat context
user

--open_api_init_chat_role OPEN_API_INIT_CHAT_ROLE
Chat Roles
Initial role for OpenAPI chat
system

--open_api_init_chat_prompt OPEN_API_INIT_CHAT_PROMPT
Chat Initialization
Initial chat prompt for OpenAPI LM
"You are a helpful and friendly AI assistant. You are polite, respectful, and aim to provide concise responses of less than 20 words."

--open_api_chat_size OPEN_API_CHAT_SIZE
Chat Settings
Number of OpenAPI chat interactions to keep
2

--open_api_api_key OPEN_API_API_KEY
Authentication
API key for OpenAPI authentication
None

--open_api_base_url OPEN_API_BASE_URL
Endpoint Configuration
Base URL for OpenAPI endpoints
None

--open_api_stream [OPEN_API_STREAM]
Streaming Configuration
Enable streaming for OpenAPI responses
False

7. MLX Language Model (MLX LM) Options
Configurations for the MLX Language Model component.

Argument
Subcategory
Description
Default

--mlx_lm_model_name MLX_LM_MODEL_NAME
Model Configuration
Pretrained MLX Language Model
mlx-community/SmolLM-360M-Instruct

--mlx_lm_device MLX_LM_DEVICE
Device Configuration
Device for MLX LM (cuda, mps, etc.)
mps

--mlx_lm_torch_dtype MLX_LM_TORCH_DTYPE
Data Type
PyTorch data type for MLX LM (float32, float16, bfloat16)
float16

--mlx_lm_user_role MLX_LM_USER_ROLE
Chat Roles
User role in MLX LM chat context
user

--mlx_lm_init_chat_role MLX_LM_INIT_CHAT_ROLE
Chat Roles
Initial role for MLX LM chat
system

--mlx_lm_init_chat_prompt MLX_LM_INIT_CHAT_PROMPT
Chat Initialization
Initial chat prompt for MLX LM
"You are a helpful and friendly AI assistant. You are polite, respectful, and aim to provide concise responses of less than 20 words."

--mlx_lm_gen_max_new_tokens MLX_LM_GEN_MAX_NEW_TOKENS
Generation Parameters
Max new tokens for MLX LM generation
128

--mlx_lm_gen_temperature MLX_LM_GEN_TEMPERATURE
Generation Parameters
Randomness of MLX LM output (0.0 for deterministic)
0.0

--mlx_lm_gen_do_sample [MLX_LM_GEN_DO_SAMPLE]
Generation Configuration
Use sampling in MLX LM generation
False

--mlx_lm_chat_size MLX_LM_CHAT_SIZE
Chat Settings
Number of MLX LM chat interactions to keep
2

8. MeloTTS Options
Settings specific to the MeloTTS component for text synthesis.

Argument
Subcategory
Description
Default

--melo_language MELO_LANGUAGE
Language Settings
Language for text synthesis (EN_NEWEST, etc.)
en

--melo_device MELO_DEVICE
Device Configuration
Device for MeloTTS speech synthesis (auto, etc.)
auto

--melo_speaker_to_id MELO_SPEAKER_TO_ID
Speaker Configuration
Speaker name to ID mapping
['EN-Newest']

9. Audio Settings
Configurations related to audio processing and handling.

Argument
Subcategory
Description
Default

--sample_rate SAMPLE_RATE
Audio Parameters
Audio sample rate in Hertz
16000

--min_silence_ms MIN_SILENCE_MS
Speech Segmentation
Minimum silence duration for segmenting speech (ms)
250

--min_speech_ms MIN_SPEECH_MS
Speech Segmentation
Minimum valid speech segment duration (ms)
500

--max_speech_ms MAX_SPEECH_MS
Speech Segmentation
Maximum continuous speech duration before split
inf

--speech_pad_ms SPEECH_PAD_MS
Speech Padding
Padding added to speech segments (ms)
500

--audio_enhancement [AUDIO_ENHANCEMENT]
Enhancement
Enables audio enhancement techniques (e.g., noise reduction, equalization, echo cancellation)
False

--max_prompt_pad_length MAX_PROMPT_PAD_LENGTH
Compilation Settings
Max power of 2 for prompt padding during compilation
8

10. Notes and Additional Details
Initial Chat Prompts
Several arguments share a common purpose: setting the initial chat prompt to establish the AI assistant's context. Here's a unified view:

Argument
Subcategory
Description
Default

--init_chat_prompt INIT_CHAT_PROMPT
Chat Initialization
Initial chat prompt for general LLM context
"You are a helpful and friendly AI assistant. You are polite, respectful, and aim to provide concise responses of less than 20 words."

--open_api_init_chat_prompt OPEN_API_INIT_CHAT_PROMPT
Chat Initialization
Initial chat prompt for OpenAPI LLM context
"You are a helpful and friendly AI assistant. You are polite, respectful, and aim to provide concise responses of less than 20 words."

--mlx_lm_init_chat_prompt MLX_LM_INIT_CHAT_PROMPT
Chat Initialization
Initial chat prompt for MLX LM context
"You are a helpful and friendly AI assistant. You are polite, respectful, and aim to provide concise responses of less than 20 words."

Description for Speaker's Voice

Argument
Subcategory
Description
Default

--description DESCRIPTION
Voice Configuration
Description of speaker's voice and style for TTS
"A female speaker with a slightly low-pitched voice delivers her words quite expressively, in a very confined sounding environment with clear audio quality. She speaks very fast."

Boolean Flags
Some arguments are optional boolean flags, indicated by square brackets. They can be enabled by including the flag or disabled by using a negation (if available).

Enabling a Flag: Use --argument to set to True.
Disabling a Flag: Use --no-argument to set to False (where applicable).

Examples:

Flag
Subcategory
Description

[LOCAL_MAC_OPTIMAL_SETTINGS]
Platform Optimization
Enable optimal settings for Mac OS

[AUDIO_ENHANCEMENT]
Enhancement
Enable audio enhancement techniques

[STT_GEN_RETURN_TIMESTAMPS]
Output Configuration
Return timestamps with transcriptions

[LM_GEN_DO_SAMPLE]
Generation Configuration
Use sampling in LM generation

[OPEN_API_STREAM]
Streaming Configuration
Enable streaming for OpenAPI responses

[CHAT_TTS_STREAM]
Streaming Configuration
Enable streaming mode for Chat TTS

[MLX_LM_GEN_DO_SAMPLE]
Generation Configuration
Use sampling in MLX LM generation

Note: Not all flags have a corresponding --no- option. For those that don't, the absence of the flag means the default value is used.

Hey @shubham-samant,
I fear that such an addition to the README would make it over-bloated. Likewise, adding it in a separate CLI.md file would require maintenance to ensure it's correctly updated. I feel like simply using python s2s_pipeline.py -h already serves this purpose. In my opinion, the only advantage of what you are proposing is improved visibility by splitting arguments into sections, yet I feel like this more general view of the pipeline is already offered by the README.
What do you think?

Sure @eustlb
For me this served the purpose of understanding what all i can customise quickly, without cloning and checking all the mixed commandline args, i am doing a project in speech-to-speech and ability for a quick glance at features, helps me take some quick decisions!
for maintaining the updated docs, a simple CI/CD pipeline of s2s_pipeline would always automatically create this doc based on latest updates,
It just helps in this small way, nothing more :-)


Code Needs refinement

So Basically this code structure is poorly written and hard to maintain.

Separate the PC and the mobile
Use JWT Token
Make hierarchical urls

Technically just this. It seems usable now, but some time in the future though...

Storage can stay the way it is. We don't use cookies and rely on local storage, that's fine.


Package is unnecessary when using Symfony 3.3+

Symfony 3.3 already supports reading JSON manifests when using the asset function (and keeps the manifest path in the bundle config rather than forcing to give it for each usage in the templates, which is nicer).
So I suggest recommending to use the Symfony built-in support rather than this bundle for Symfony 3.3+ (I have no idea what your Symfony supported versions are, as you don't have any composer rules about that, meaning that you could install it with any Symfony version)

Hi @stof I created the library because I could not find a way to work with multiple manifest files at the same time. I.e. when my application has a manifest I can configure using framework.assets.json_manifest_path, but when I install a bundle that has its own manifest I am not able to distinguish between the both. How would you handle such a case?
That is the only reason I created the library so if there is another way that is already supported I am happy to adapt :)

@endroid Symfony supports having multiple asset packages, with their own versionning each: http://symfony.com/doc/current/reference/configuration/framework.html#packages
And then, when using the asset() function, you can pass the package name as second argument when you want to use a different package than the default one.

@stof I did not know that was possible :) I now created a prepend method in my bundle that automatically adds the bundle to the packages upon installation and will now remove my Asset library and reference in recipes-contrib as I think it is no longer needed.


<plaintext>

<plaintext> tag is really naughty, as it is imposible to close it in any way using just HTML. Example at codepen.
Actually, in most cases even just <plaintext string in HTML context would be enough to break stuff.

Oh my... This could be catastrophic... I support this issue.

Added in #64


fix: removes error count form widget name component

Description
Removes the error count form the widget name
PR fixes following issue(s)
Fixes #22892

if no issue exists, please create an issue and ask the maintainers about this first

Media
before:

after:

Type of change

Bug fix (non-breaking change which fixes an issue)

Testing

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration.
Delete anything that is not relevant

[x] Manual
[ ] Jest
[ ] Cypress

Test Plan

Add Testsmith test cases links that relate to this PR

Issues raised during DP testing

Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR)

Checklist:
Dev activity

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] PR is being merged under a feature flag

QA activity:

[ ] Speedbreak features have been covered
[ ] Test plan covers all impacted features and areas of interest
[ ] Test plan has been peer reviewed by project stakeholders and other QA members
[ ] Manually tested functionality on DP
[ ] We had an implementation alignment call with stakeholders post QA Round 2
[ ] Cypress test cases have been added and approved by SDET/manual QA
[ ] Added Test Plan Approved label after Cypress tests were reviewed
[ ] Added Test Plan Approved label after JUnit tests were reviewed

/ok-to-test

/ok-to-test

/build-deploy-preview env=release

Can we merge latest release and also point to latest cloud service?

/build-deploy-preview env=release

LGTM ! We can merge

/ok-to-test


Rename Top to PartialSort, add OrderByDirection overloads

Rename Top/TopBy to PartialSort/PartialSortBy
Top somewhat implies expectations of sorting in descending order
(ie, the result would be the n largest elements).
PartialSort is a more neutral name, so use that.
Fixes: #187
PartialSort: Add overload taking an OrderByDirection parameter

I think you missed the rename of the actual iterator method.

README is missing the rename.

Good catch on the README. It is also missing in the nuspec file.
I have force pushed a new version with all your comments addressed.

It is also missing in the nuspec file.

I see you found a catch too. 😉 Good eagle eyes. 😄
Will review later and revert.


There is no way to constrain a parameter type to something that is spreadable. And union-of-objects is not spreadable.

Two related issues; there is no way to restrict T to something that is spreadable. Something like this:
model Something<T extends object> {
   ... T;
}

model ThisWorks is Something<{}>;

// model ThisWillBlowUpWithASquigglyInsideModelSomething is Something<{} | {}>;

passes the compiler until you try to pass in the union as a template parameter. The error will be on in an unfortunate location (at the point of spread) as opposed to the point of usage.
In an ideal world, spreading a union would somehow work (because it is challenging to write extensible libraries without disallowing union types). But at the very least, it would be good to have some way to say that a template argument has to be spreadable.

The error will be on in an unfortunate location (at the point of spread) as opposed to the point of usage.

#1321 would help to get good diagnostic experience for cases that aren't expressible as constraints. I suspect there will always be cases where constraints aren't up to the task even if we choose to make a spreadable constraint here.

In an ideal world, spreading a union would somehow work

Maybe this should be a distinct issue. It seems exceptionally hard to come up with a reasonable meaning for it, though.

pri: 2


refactor: split code for lake update and lake build

Fixes #119 and fixes #137.
The code for lake update and lake build is now completely disjoint.  lake build will never modify the manifest, and lake update always builds the manifest from scratch.  (Which replaces the rm lean_packages/manifest.json hack I've been putting into lean3port/mathlib3port.)
The resolution policy is changed to "first revision wins" (going from the root package to the leaves of the dependency tree).  If the root package specifies a dependency, then this dependency is always updated and overrides dependencies with the same name in dependent packages (e.g. std4 in mathlib4, which is imported both directly and transitively via aesop).
Local dependencies (.path) are now stored in the manifest as well.  The manifest thus always contains the full information about where all the dependencies come from.  When running lake build, dependencies are resolved by only looking at the manifest.
There is a bit of complication due to the -d flag.  Since we don't have IO.FS.chdir but want to store relative paths in the manifest.json file, we need to keep two books during lake update, one for the relative paths (relative to the root package) and one for the actual paths relative to the current directory (this is MaterializeResult.pkgDir vs. MaterializeResult.relPkgDir).

So the windows story is bad, but as far as I can tell there's no regression here.

Apparently you can't delete a git repo using IO.FS.removeDirAll.  Not sure why, but from what I can tell we didn't test this before.  (And we still don't because I've replaced the deletion by a warning on Windows now.)
Test 44 (lake --old) randomly fails on Windows.  It worked the second time. :shrug:

@gebner
Thanks! Now I don't have to fix this all myself! I am a little confused though as to why you are storing local paths in the manifest? Can you elaborate some one the your reasoning there?

Apparently you can't delete a git repo using IO.FS.removeDirAll.  Not sure why, but from what I can tell we didn't test this before.  (And we still don't because I've replaced the deletion by a warning on Windows now.)

Yeah this is a bug I have encountered before. I should probably have filed an issue about in on the Lean 4 repository, but  it honestly never occurred to me to do so.

Also, feel free to add yourself to the authors listing in the files you radically changed (e.g., Lake.Load.Main, Lake.Load.Manifest).

Friendly ping!
It's okay if you don't have time right now, just say so.  I can also do the release myself.

@gebner

Friendly ping!

Sorry about missing this. I didn't check GitHub yesterday. 😞

This whole PR is super urgent BTW. The mathport CI has been broken for two days now. We need to get 4.1.0 out today.

Ah, that's bad. But #137 should not be fatal. You should be able to pin the relevant version of transitive dependencies in the top-level lakefile to workaround this. Right?
I do not think 4.1.0 is ready for a formal release. However, if no workaround is possible, updating lean4 to the prerelease is fine.

@gebner
As to the design decision:

The idea is to record the whole output of the dependency resolution step in the manifest,
[...]
There are still some decisions done during lake build, most significantly the options are computed at that point.
[...]
I am happy to remove the PackageEntry.local case and rely on the dependency resolution at lake build time to figure out what the local paths should be. Then we could get rid of all the relative path bookkeeping.

This gives me some mixed feelings. You make a strong case for storing a static reproducible configuration in the lockfile. However, the fact that some decisions are still made at build time renders the current solution a bit of a mix (which I imagine is unlike Nix). My feeling is that we should either lean into the reproducibly completely or avoid it for now. In the former case, we could store the options in the manifest and even compile dependency lakefiles into oleans. This way multiple calls to lake build are guaranteed to use the same dependency configuration.

As an aside, you may also want to update the author information for Lake.Load.Materialize.

You should be able to pin the relevant version of transitive dependencies in the top-level lakefile to workaround this. Right?

I just checked and that's possible, but it's super inconvenient as you need to manually keep it in sync.

I do not think 4.1.0 is ready for a formal release.

What do you think is missing? The branch has been idling for months, and there's a couple of breaking changes in there that we should deploy rather soon than later (like the manifest location change).

However, the fact that some decisions are still made at build time renders the current solution a bit of a mix (which I imagine is unlike Nix).  My feeling is that we should either lean into the reproducibly completely or avoid it for now.

Yeah, no.  In Nix you can still pass options to the locked dependency ("flake input").  The current solution in this PR is fully reproducible though.

Yeah, no. In Nix you can still pass options to the locked dependency ("flake input").

Oh, okay. In that case, I am fine with the PR's current approach.

@gebner

I just checked and that's possible, but it's super inconvenient as you need to manually keep it in sync.

I agree. I suggested it simply as a stop gap measure to reduce the urgency of the a Lake update.

I do not think 4.1.0 is ready for a formal release.

What do you think is missing? The branch has been idling for months, and there's a couple of breaking changes in there that we should deploy rather sooner than later (like the manifest location change).

I agree. The three major topics I still wanted to address before releasing 4.1.0 were: (1) issues with dependency resolution (i.e., this), (2) issues with dynlib builds (including #132), and (3) some problems with the custom target API (partially including #114). I actually have coded a fix for (2) that I just need to debug and have planned what to do for (3). I have just been busy.
Here is my proposal: I will work to get my changes pushed by this weekend and then whatever is done will be released beginning of next week with a hard cut off on the end of the month (i.e., next Wednesday). That gives me a week to get everything ship shape.

Would you prefer doing two releases (4.1.0 and say 4.2.0) in short order, or updating Lean 4 to a Lake prerelease?  We need to get this out asap.

@gebner

We need to get this out asap.

Really? Even a week is too much? Even by this weekend? This issue has been here for quite a while and was only recently discovered, what is the urgency? The mathport build can be fixed by pinning the version as you confirmed worked above (and looking at the commit history of mathport it does not update often enough for that to be too much of a pain that it cannot wait a week).
On the PR front, I am fine merging it as soon as its done. Is it done?

Would you prefer doing two releases (4.1.0 and say 4.2.0) in short order, or updating Lean 4 to a Lake prerelease?

If the situation is desperate, updating to a prerelease is fine.

Really? Even a week is too much? Even by this weekend?

I mean yeah, why wait?  There is a fix available after all.

This issue has been here for quite a while and was only recently discovered, what is the urgency?

We've only added aesop as a dependency last week, and this immediately triggered #137.  We didn't hit the issue before because we didn't have many dependencies.
Now Scott wants to get started with category theory using aesop, and I'm not keen out keeping dependency revisions in sync manually.
There will be lots of other issues like this during the mathlib port, where we run into bugs simply by scaling up.  The solution clearly cannot be to stay small because that used to work.  We need to grow, and we're under time pressure.

looking at the commit history of mathport it does not update often enough

Every other day is still enough.

On the PR front, I am fine merging it as soon as its done. Is it done?

As far as I'm concerned, yes.

If the situation is desperate, updating to a prerelease is fine.

I don't really mind either way, I'll just update the Lake submodule to the latest v4.x.x revision then.

Merged.

Really? Even a week is too much? Even by this weekend?

I mean yeah, why wait? There is a fix available after all.

I think it would be nice to wait until there can be proper release notes with migration information including the breaking change here and others like the breaking change of the manifest location, but that is up to you.

@gebner Also, do ping me if you update Lean 4 to the last v4.x.x. That way I know to merge it into master (to keep that branch containing the proper history of commits on Lean 4 master).

Sorry for the rush btw.  The Lean 4 PR is on the queue https://github.com/leanprover/lean4/pull/1879 and should merge itself in an hour or so.


Find an optimal server for persistence.

we agreed to use postgres server after looking into several options and informing ourselves


Update user guide

Codecov Report

Merging #124 (1e0162d) into master (1aa77b3) will decrease coverage by 0.22%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #124      +/-   ##
============================================
- Coverage     34.29%   34.07%   -0.23%
  Complexity      543      543
============================================
  Files           160      160
  Lines          3671     3695      +24
  Branches        452      452
============================================
  Hits           1259     1259
- Misses         2303     2327      +24
  Partials        109      109

Impacted Files
Coverage Δ

...seedu/address/commons/core/HelpWindowMessages.java
0.00% <0.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 1aa77b3...1e0162d. Read the comment docs.


Go back to using upstream kubernetes_metadata plugin

The kubernetes_metadata plugin has merged our PR: https://github.com/fabric8io/fluent-plugin-kubernetes_metadata_filter/commit/d5fe9b770974492871bde4b902c541ae5210712c, which means we should be able to go back to using upstream version of the plugin.

Due to the changes introduced in #111 and #117 to make connections to API server persistent, we cannot go back to upstream plugin without loosing the connection persistence until Kubeclient releases version 5 and this plugin switches to persistent connections (or makes it possible via configuration).


Adding link to see user repositories for a given language

Adding the possibility to see users's repos for a given language.
I took the liberty to do this as it was an open issue for quite some time now.
#68

Thanks !


EDU-678 Add search to storage location view

Closes https://educandu.atlassian.net/browse/EDU-678

One more case that I stumbled upon:

when you search and then delete one of the files that were found, the results list does not get updated

One more case that I stumbled upon:

when you search and then delete one of the files that were found, the results list does not get updated

Good catch, fixed, thanks!

Using now this features makes me realize how good it is to have it, the resources get alot more accessible now!
Found a couple of glitches:

uploading to private storage is disabled for me for most rooms (pre-existing or newly created, public or private alike) and it seems the CDN folder fails to create even; so it might be an already existing issue but you might know better at this point

when you clear the typed in search text without applying it, the hint on the bottom is updated; we should probably keep the the last applied search text in the state to display it there, for consistency with the result the user is seeing

maybe we could make the "Zurück zur Verzeichnisansicht" link styled the same as the "<< Zurück" link on the preview and upload (which is link styled, while this is button styled). or on top we could reuse your new text for the other too as well, would be better I think.

I took care of the second and third point

Using now this features makes me realize how good it is to have it, the resources get alot more accessible now!
Found a couple of glitches:

uploading to private storage is disabled for me for most rooms (pre-existing or newly created, public or private alike) and it seems the CDN folder fails to create even; so it might be an already existing issue but you might know better at this point

when you clear the typed in search text without applying it, the hint on the bottom is updated; we should probably keep the the last applied search text in the state to display it there, for consistency with the result the user is seeing

maybe we could make the "Zurück zur Verzeichnisansicht" link styled the same as the "<< Zurück" link on the preview and upload (which is link styled, while this is button styled). or on top we could reuse your new text for the other too as well, would be better I think.

I took care of point 2 and 3 (we cannot use my "Zurück zur Verzeichnisansicht" gereically though, because from the preview screen you could go back to either directory view or search view, so I left the original text for the header links).
Point 1 I could not reproduce. Upload into private storage works for me for existing rooms as well as for newly created rooms. We have to investigate deeper here :thinking:

Using now this features makes me realize how good it is to have it, the resources get alot more accessible now!
Found a couple of glitches:

uploading to private storage is disabled for me for most rooms (pre-existing or newly created, public or private alike) and it seems the CDN folder fails to create even; so it might be an already existing issue but you might know better at this point

when you clear the typed in search text without applying it, the hint on the bottom is updated; we should probably keep the the last applied search text in the state to display it there, for consistency with the result the user is seeing

maybe we could make the "Zurück zur Verzeichnisansicht" link styled the same as the "<< Zurück" link on the preview and upload (which is link styled, while this is button styled). or on top we could reuse your new text for the other too as well, would be better I think.

I took care of point 2 and 3 (we cannot use my "Zurück zur Verzeichnisansicht" generically though, because from the preview screen you could go back to either directory view or search view, so I left the original text for the header links).
Point 1 I could not reproduce. Upload into private storage works for me for existing rooms as well as for newly created rooms. We have to investigate deeper here thinking


Added possibility to compare eq and ne between users, using the unique ids.

The code is copied from Status, with only the type changed in instanceof from Status to User.

This is a good idea. As written, the NotImplemented will be returned whenever the other is a different type of object. Shouldn't there be a check that other == self, to allow for the possibility that the other object has an __eq__ method that understands Status objects?

I am not sure if I understand you correctly @fitnr -- are you thinking about the situation:
other == self  # true, but isinstance(other, User)  # false  ?
I am not sure such a situation could occur within the User.__eq__ scope.
Then again, I may have misunderstood your comment or just not be that good of a Python programmer.
Please ellaborate or provide code if so.

Nevermind, I didn't know a detail about how __eq__ works: if NotImplemented is returned, Python automatically checks for other.__eq__.
This looks great, my only suggestion would be to add comparable functions on the Status object.

Is this new commit (2f8766162563415cf3f6bf6b398050c176768b02) the comparable functions you wanted on the Status object? Or are there some comparability between User and Status object I am not aware of you are refering too?

No, I was talking about Status-to-Status functions. 👍

I don't think comparison operations between Status objects are necessary or make much sense, so I've gone ahead and reverted that commit.


Please check CHEBI:7518, cis-trans nepetalactone

Hi Adnan,
Please check this compound (and maybe also CHEBI:7519). I need the compound for reactions based on pmid:30531909 and pmid:30664302
Cheers,
Kristian

Both entries have been checked.


Exception handling non-CVE vulnerability containing version range

Make a packages.config file containing this text:
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="bootstrap" version="2.0.0" targetFramework="net45" />
</packages>

Run win-audit against the package.config file and the following exception occurs
Unhandled Exception: System.ArgumentException: Could not parse comparing semantic version: <2.1.0.
   at WinAudit.AuditLibrary.NuGetPackageSource.<>c.<.ctor>b__14_1(String range, String compare_to_range) in D:\git.vor\winaudit\WinAudit.AuditLibrary\PackageSource\NuGetPackageSource.cs:line 77
   at WinAudit.CommandLine.Program.<>c__DisplayClass6_1.<Main>b__10(String v) in D:\git.vor\winaudit\WinAudit.CommandLine\Program.cs:line 226
   at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
   at WinAudit.CommandLine.Program.Main(String[] args) in D:\git.vor\winaudit\WinAudit.CommandLine\Program.cs:line 226

The issue is that in some situations instead of a specific version, the "versions" list may contain a range instead.
[
  {
    "uri": "https://github.com/twbs/bootstrap/pull/3421",
    "id":<PHONE_NUMBER>,
    "title": "Default tooltip option allows users to have XSS vulnerability in some situations",
    "summary": "There is an html option for popover/tooltip again. The option is defaulted to true.

Having this option allows us to force the popover to use the .text() method to set the title and content of the popover no matter if bootstrap thinks it detects html or not. The problem is that jQuery seems to unescape values grabbed with the .attr() method, so even if you escape <script>alert('data');</script> to &lt;script&gt;alert(&quot;data&quot;)&lt;/script&gt; and set it as your data-content, bootstrap will get the unescaped value from .attr(), detect that this is html and use the .html() method to set the content of the popover causing an XSS issue. Forcing the use of the .text() method by setting the html option to false lets us make sure that doesn't happen.
",
    "details": "http://localhost:8080/v1.1/vulnerability/8397095682",
    "versions": [
      "<2.1.0"
    ]
  }
]

In this case you have a version comparison opposite to what the code is checking for. The user is requesting a specific version, while the vulnerability has a range. This can be solved by flipping the range comparison over. It will have to be done for each *PackageSource file. Note that the vulnerability will only use very simple ranges for now (<#, <=#, >#, >=#).
A more complicated case is when the user requests a range for their package, and the vulnerability is a range as well. Essentially you want to determine if the ranges overlap.

This has been resolved.


Add Practice Exercise: grep

Problem specification:
https://github.com/exercism/problem-specifications/tree/main/exercises/grep
TODO:

generate the exercise with ./bin/fetch-configlet && ./bin/configlet create --practice-exercise grep
check if any of the existing tracks (examples below) implement the exercise and you can reuse the implementation:

Go: https://github.com/exercism/go/tree/main/exercises/practice
Rust: https://github.com/exercism/rust/tree/main/exercises/practice
Python: https://github.com/exercism/python/tree/main/exercises/practice

use exercise's canonical-data.json to see which test cases to implement:
https://github.com/exercism/problem-specifications/blob/main/exercises/grep/canonical-data.json

Can I have this?

@Falilah go for it!
And thank you for your numerous contributions, you're truly awesome :heart_on_fire:

oooh, I was going to challenge myself on how cairo works with files 😀.
I will go for another one.
it's a pleasure.
thank you for the opportunity 😇


Added the tag for the new Workflow component

:+1:

ping @weaverryan :)

ping @weaverryan could you merge this one please? :)

Sorry for the delay guys!


windows is not supported?

When i use command:
conda env create -f pytorch18.yml
i get this:
Collecting package metadata (repodata.json): done
Solving environment: failed

ResolvePackageNotFound:
  - ca-certificates==2022.2.1=h06a4308_0
  - brotli==1.0.9=he6710b0_2
  - ...

I went to the conda site and looked for the first package "_openmp_mutex"  https://anaconda.org/search?q=_openmp_mutex
and... this package does not exist for win64.
I understand correctly that at the moment installing and running DIS on windows is not possible?
Maybe somehow you can manually make it work without conda, but using venv?
How critical is "_openmp_mutex" for DIS to work?

Correct. It runs only on wsl because of some linux only dependencies. As you probably know wsl2.0 has a gpu passthrough.

When i use command: conda env create -f pytorch18.yml i get this:
Collecting package metadata (repodata.json): done
Solving environment: failed

ResolvePackageNotFound:
  - ca-certificates==2022.2.1=h06a4308_0
  - brotli==1.0.9=he6710b0_2
  - ...

I went to the conda site and looked for the first package "_openmp_mutex" https://anaconda.org/search?q=_openmp_mutex and... this package does not exist for win64. I understand correctly that at the moment installing and running DIS on windows is not possible? Maybe somehow you can manually make it work without conda, but using venv? How critical is "_openmp_mutex" for DIS to work?

@swframe
Yes, I had the same problem with my macbook pro 2018.
Intel Core i7, Radeon Pro 560X 4 GB, Intel UHD Graphics 630 1536 MB

我在 Windows 11 上运行 DIS 推理和训练，不使用 conda 或 wsl，没有问题

May I ask how to install the Windows environment


Connection closed error

##[debug]System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
##[debug]   at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult)
##[debug]   at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
##[debug]   --- End of inner exception stack trace ---
##[debug]   at System.Net.TlsStream.EndWrite(IAsyncResult asyncResult)
##[debug]   at System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar)
##[debug]   --- End of inner exception stack trace ---
##[debug]   at Microsoft.PowerShell.Commands.WebRequestPSCmdlet.GetResponse(WebRequest request)
##[debug]   at Microsoft.PowerShell.Commands.WebRequestPSCmdlet.ProcessRecord()
##[error]The underlying connection was closed: An unexpected error occurred on a send.

Same thing happening in my pipelines. At first my token got expired, I renewed it and then this error started occurring.

Seems that new connection creation resolves the issue. At least for me it worked.


Feature - Responsive Update Password page

Responsive Update Password
When the UX/UI team will send us the responsive page, we will add it here.

Design


React Capstone complete Project - CountryMetrics webapp

Learning Objective

Use React documentation.
Use React components.
Use React props.
Use React Router.
Connect React and Redux.
Handle events in a React app.
Write integration tests with a React testing library.
Use styles in a React app.
Use React life cycle methods.
Apply React best practices and language style guides in code.
Use store, actions and reducers in React.

@elisha2kyakpo1
Thanks for the feedback.


Missing file from github

Hello sir, I was trying to install koel in my local computer and I found that there are few files are missing from github itself. Can you send the working koel file to my mail so I can study it. My email id is<EMAIL_ADDRESS>

Please read the documentation.


Code coverage Cobertura reporter loses method's names

🐞 Bug report
Command (mark with an x)

- [ ] new
- [ ] build
- [ ] serve
- [x ] test
- [ ] e2e
- [ ] generate
- [ ] add
- [ ] update
- [ ] lint
- [ ] xi18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

Description
Cobertura reporter misses methohd's names in the code coverage report. Method's names are replaced by strings like this (anonymous_0)
🔬 Minimal Reproduction
Create new app

ng new cobertura-test
cd cobertura-test

Add Cobertura reporter in karma.conf.js

...
reports: ['html', 'lcovonly', 'text-summary', 'cobertura'],
...

Run tests

ng test --code-coverage`

Then in /coverage/cobertura-test/cobertura-coverage.xml report file we can see that method's names looks like that:
<method name="(anonymous_0)" hits="3" signature="()V">
All method's names are replaced by anonymous_<some number>.
  Is there any solution?.

Any progress on this issue or roadmap when a fix is planned?

From what I can see this is an upstream issue in https://github.com/istanbuljs/istanbuljs


gorm-example-postgres

Hello @goxiaoy
I'm seeking your advice.
I have followed your example and come up with example/gorm for Postgres.
Please try it out by:

git clone https://github.com/rohaizanr/saas.git

cd saas; git checkout postgres-example

cd examples/gorm/; docker-compose up -d

go run github.com/go-saas/saas/examples/gorm --driver pgx

Host side ( use shared database):
Open http://localhost:8090/posts (Success)
Multi-tenancy ( use shared database):
Open http://localhost:8090/posts?__tenant=1 (FAILED)
Open http://localhost:8090/posts?__tenant=2 (FAILED)
Single-tenancy ( use separate database):
Open http://localhost:8090/posts?__tenant=3 (FAILED)
Issues

Not able to get tenant 1,2,3 data
Unexpected "%!(EXTRA string=3)" in seed.go:line 33 to 40, I need to manually remove it.

Please help to point out my mistakes, I'm planning to use this in my https://github.com/Dev4w4n/e-masjid.my
Thanks!

Not able to get tenant 1,2,3 data

according to https://www.postgresql.org/docs/current/datatype-character.html#DATATYPE-CHARACTER
the previous model Tenant will have a blank-padded ID field
type Tenant struct {
	ID string `gorm:"type:char(36)" json:"id"`

So the tenant id queried back will be 1                                    not 1, which causes the automatic filter failed in the query of Post

Unexpected "%!(EXTRA string=3)" in seed.go:line 33 to 40, I need to manually remove it.

Not sure about why, probably because of the old data during development. May fix it by using FullSaveAssociations mode

You may need to drop local tables first to apple new db schema

thanks @goxiaoy


[Question]: using NetworkObserver

I've recently transition from swift 2.3 & Operations, to swift 3.0 & ProdcedureKit RC 7.
I must fundamentally misunderstand the new NetworkObserver. How is intended to be used? I've tried the following on my operations and see no indicator:
let indicator  = NetworkActivityIndicator.shared
let controller = NetworkActivityController(indicator: indicator)
let networkStatusObserver = NetworkObserver(controller: controller)
procedure.add(observer: networkStatusObserver)

Hi @briancordanyoung - well, you don't need to do all of that. On iOS, should just be able to do...
import ProcedureKit
import ProcedureKitMobile // if not using CocoaPods

procedure.add(observer: NetworkObserver())

If that is not working - will need to investigate a bit more - unit testing around here is a bit tricky due to the use of UIApplication.shared so there may be a bug 🤔

hmmmm.  I get a compilation error Missing argument for parameter "controller" in call when trying to use a NetworkObserver().  Which is why I ended up with the 4 lines of code above. Right now get this error while it is in an extension.
extension Procedure
{
    internal func addNeworkObserver() {
        self.add(observer: NetworkObserver())
    }
}

Hmm, will investigate. It should be using these init methods, in this extension for iOS, NetworkObserver+Mobile.swift.

FYI.  I  am using CocoaPods and my only import line is:
import ProcedureKit

I have used this approach
myDownloadProcedure.add(observer: NetworkObserver(controller: NetworkActivityController.shared))
It does the job very nicely.  I hope this is helpful.

As noted by @danthorpe, as long as all the ProcedureKitMobile files are being included by CocoaPods (specifically: NetworkObserver+Mobile.swift), then you should be able to avoid having to type:
NetworkObserver(controller: NetworkActivityController.shared)

and should instead be able to type:
NetworkObserver()

on iOS.

Yeah - will investigate. Might be an error in the CocoaPod spec. Thanks for clarifying @swiftlyfalling 👍

Embarrassing.  I understand now.
The reason I was having trouble was that I did not include ProcedureKit/Mobile as a  CocoaPods dependency. (My confusion was related to my pod spec for the development cocoa pod my code is in)
Once ProcedureKit Mobile is properly included (either through the cocoa pods or import statements) then the network observer works as expected.


Share link is broken in preview mode

This is happening because preview mode is handled by a different controller than edit mode. The module include LeftAndMain_ViewModeSelector.ss is included by both CMSMain_EditForm.ss and LeftAndMain_SilverStripeNavigator.ss templates, so is actually in the page twice.

Fixed with https://github.com/silverstripe-labs/silverstripe-sharedraftcontent/commit/5e46241adacaae0192de598777bd2f6a038f76b9


How do you deal with the operator execution?

I notice that you have two runtime code. One is ios_runtime.cu and another is trt_runtime.cc. So do you use cudnn to execute the ops or you convert the ios graph to tensorRT graph and let tensorRT to execute your graph?

IOS directly uses cuDNN library in IOS runtime (ios_runtime.cu). TensorRT runtime is used for comparison with IOS.

ok，thank you


Use RuntimeDirectory directive to create /var/run/redis

Redis-server is not able to start under systemd with default redis.conf, due to absence of /var/run/redis
When RuntimeDirectory is specified in *.service file, systemd creates the directory in /var/run and sets correct permissions.
For reference: http://man7.org/linux/man-pages/man5/systemd.exec.5.html

Thanks!


[Performance] Can't animate larger amounts of children in Trail animation

I found out I can't animate more than a certain amount of items using Trail before my browser just straight up freezes. I think the limit is around 15, but it might also have to do with the type of transition. The target in my use case is quite high, around 25.
This can be reproduced using your codepen sandbox by adding more items to the state:
https://codesandbox.io/embed/vvmv6x01l5
note: I used native rendering, but could reproduce with and without native rendering.

I noticed the same, hadn’t looked into it yet, thought possibly I was doing something wrong. Can you provide any recommendations on the preferred way to handle, or comfortable max?

Also noticed, and thought it was my fault!

Strange, there seems to be something that's blocking it, then after a while it starts animating.

It's something in animated, the flush function is called thousands of times. It should only be called once. Something's clearing the cached animation-tree while it's animating.

Should be fixed. Then again, physics-based trails in general seem to be super expensive, i had no idea. To make a duration based trail would be simple, if you still face issues i'd suggest doing something like this:
class DurationTrail extends Component {
  render() {
    const { children, delay, keys, ...props } = this.props
    return children.map((child, i) => {
      const firstDelay = i === 0 && delay
      return (
        <Spring
          key={keys[i]}
          {...props}
          delay={firstDelay + (i * 50)}
        />
      )
    })
  }


Publish Application Package - Every release

Is your feature request related to a problem? Please describe.
There is currently no application package published with each new release. As a result users have to make/build a zarf package in order to test a deployment into the cluster. This means to get to our desired basic success state for the Zarf user persona (Package Deployer) must also know how to create and build zarf packages, a skill set for the package creator persona.
Describe the solution you'd like
I would like Zarf to publish at least one application package with every release - for all supported architectures. To enable users to quickly deploy and use tool in production without learning to make/create.
Proposed Applications for Zarf Packages

Dos Games
Kiwix

Additional context
I propose that the team decide on which applications we will support for each release and commit to ensuring those are published so that users can download all the files they need from a single source (github repo) to successfully deploy a package without having to learn how to create a package.
Other things to consider:

[ ] Disable/deprecate sget:// once this occurs and publish this(ese) packages via OCI.
[ ] There will need to be updates to docs, tutorials and website to support this.
[x] We also need to determine where this will go (maybe defenseunicorns/zarf maybe defenseunicorns/packages

@JasonvanBrackel Any thoughts on a way to organize these packages?
@YrrepNoj Is there a way to automate their generation for each release?

This feature would help with usability testing as well. It would allow me to have users to download all packages needed from the github page without me asking a dev to create one.

This is not correct, we always build init packages on every release and https://zarf.dev/install has you install an already-built package.  Am I missing something?

We were considering the user flow. If you publish a package they have to download it manually or include a long sha hash to verify it.  The way we do the dos games right now leverages cosign instead so it's still signed but without all the long typing or manual download. I do see value in publishing more packages that way though.

@jeff-mccoy Yes the init package is already published each release and there is a way using the install to pull the already built package using brew, however, this would allow us to usability test the airgap scenario where we send a user binary + Init + application package to deploy (without someone having to make that package each time) When I asked @YrrepNoj if application packages (ex. dos games) were already published each release he said that they used to be but are not anymore.

@jeff-mccoy This is a different flow from the connected quick install zarf.dev/install - where we would want to user to download the package.
We still have the quick install though.

Okay so they aren't download the files per-se, we are giving them 3 files instead to try "in the airgap"?

@jeff-mccoy Yes. How those files are accessed, published or organized is up to the team.

Just documenting a conversation between
@Madeline-UX, @YrrepNoj, and @Noxsios.  We've decided to build the Dos Games and Kiwix packages, and have them in a location accessible to the Zarf Docs and Website like an S3 bucket.  I'll let the implementation detail be figured out when it's implementation time.

This could be something we look to handle with https://www.chainguard.dev/chainguard-enforce

@Racer159 the idea was so we can have a page on the website for try in air gap that is just two or three files they can grap > transport > and use in airgap

Moving this back as it is mostly complete just waiting on https://github.com/defenseunicorns/zarf-website/pull/206

This has been completed


Set identifying info for check container

This addresses:
https://github.com/concourse/concourse/issues/258
Hoping that passing external URL around like this is ok. Additionally, tried to pick criteria that would identify a check container - it may be wrong.
Where should the documentation for this feature go?
Signed-off-by: Utako Ueda<EMAIL_ADDRESS>

@vito @xoebus any thoughts on this PR? What about the question @zachgersh asked - where should documentation for this PR go?

@vito - any other changes needed here?

No, looks great. Thanks!

Looking at this again, it's inconsistent with the metadata provided to /in and /out:

BUILD_PIPELINE_NAME vs. PIPELINE_NAME: perhaps it should be RESOURCE_PIPELINE_NAME?
EXTERNAL_URL vs. ATC_EXTERNAL_URL: this should be ATC_EXTERNAL_URL.

Gonna leave this undocumented for now til that's fixed. /cc @robdimsdale

@zachgersh if/when you update these environment variables here, can you also update the check user-agent in the pivnet-resource to respect these changes?

@robdimsdale will do :dancers:


PSAvoidAssignmentToAutomaticVariable finds auto variable in RHS when assigning to a static property

Steps to reproduce
Invoke-ScriptAnalyzer -ScriptDefinition '[System.Console]::CursorVisible = $true'

Expected behavior
The rule is not triggered

Actual behavior
RuleName                            Severity     ScriptName Line  Message
--------                            --------     ---------- ----  -------
PSAvoidAssignmentToAutomaticVariable Error                  1     The Variable 'true' cannot be assigned since it is a
                                                                  readonly automatic variable that is built into
                                                                  PowerShell, please use a different name.

Environment data

> $PSVersionTable
Name                           Value
----                           -----
PSVersion                      5.1.16299.251
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.16299.251
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

> (Get-Module -ListAvailable PSScriptAnalyzer).Version | ForEach-Object { $_.ToString() }
1.17.0
1.13.0

@SeeminglyScience Both your reported issue have been fixed as part of the new 1.17.1 release


PFOCR for prioritization / clustering

We've discussed various ideas for using PFOCR to do prioritization and/or clustering of trapi results. Based on our 9am meeting today, we decided to create a new issue for this and to use the following strategy:

initially explore the idea using Jupyter notebooks to post-process trapi results for sample queries
if the results from 1. are good, move the processing from the Jupyter notebooks into the JS code (probably in query_graph_handler). This code could run in conjunction with the actual calling of the APIs to get records, and potentially also in part afterwards to supplement the trapi results
if the results from 2. are good, we can explore how to extend the ideas to the UI

This issue replaces old issue biothings/biothings_explorer #151. It is related to but does not replace these other two issues: wikipathways/pathway-figure-ocr #24 and biothings/BioThings_Explorer_TRAPI #420.

Here's a simple co-occurrence analysis in a notebook:
https://github.com/wikipathways/pathway-figure-ocr/blob/master/notebooks/bte_with_pfocr_cooccurrence.ipynb
I've got another analysis going for using clustering, but it's not ready to publish yet. I'm trying locality-sensitive hashing (like minhash or simhash) as well as an all-pair-binary algorithm.
Another avenue of exploration: using PFOCR as a toggle for the user to specify whether they want to see known findings in the field vs novel connections. When the user wants known findings, we would prioritize results where the gene sets are found in multiple figures, especially when those gene sets are core to multiple figures. For novel connections, perhaps the user could specify which edge(s) should be novel. Then we could prioritize results where the two genes on that edge are rarely or never found in other figures.

Updated notebooks (still rough draft / exploratory):
Show how BTE + PFOCR can serve as a Visual Explainer by showing how one disease, gene or small molecule is related to another in context of PFOCR figures.
https://github.com/wikipathways/pathway-figure-ocr/blob/master/notebooks/bte_visual_explainer.ipynb
Dampen combinatorial explosion:
https://github.com/wikipathways/pathway-figure-ocr/blob/master/notebooks/bte_sleeve.ipynb

At the end of the same notebook, I also listed two questions, which I'm copying over here for convenience.
QUESTIONS:

What should we do in cases of ties for p-values for identifying cluster figures? We could treat them like one large figure and display them all.
Should we do anything special for cluster figures and TRAPI results that have any of the ids the user specified?

To expand on question 1, we could get multiple PFOCR figures that get identical p-values for the fisher's exact test against all unique CURIEs in all TRAPI results. In that case, we could merge the figures into one large "meta figure" if they meet some threshold for CURIE overlap. But if the overlap threshold is not met, then we could choose one figure randomly and leave the other figures to be potentially selected in future rounds, after excluding the CURIEs in the selected figure.
To expand on question 2, a user-specified id in a TRAPI query is probably more important than other ids for returning relevant results to the user. If we had the following simplified scenario:

TRAPI results CURIEs {"NCBIGene:1234", "NCBIGene:1235", "NCBIGene:1236"} (with user specified id of "NCBIGene:1234")
PFOCR figure1 CURIEs {"NCBIGene:1234", "NCBIGene:0000"}
PFOCR figure2 CURIEs {"NCBIGene:1236", "NCBIGene:0000"}

If we just run the fisher’s exact test, we’d actually get a tied p-value for figure1 and figure2. But in this case, it would make sense to choose figure1 before figure2 as a cluster figure.
What about a more ambiguous case, such as when the user-specified id is in a PFOCR figure but the p-value is worse than for a different figure that doesn't have the user-specified id, e.g., a figure3 with {"NCBIGene:1235", "NCBIGene:1236"}?

That TODO NEXT list sounds pretty great.  I don't think you need to iterate until you've excluded all of the TRAPI result CURIEs (in your step 1) -- maybe iterate until 50% of CURIEs are excluded with a maximum of 10 iterations?  (or something like that?)
Q1: you're asking if two figures have the exact same p-value but a different set of overlapping entities?  That should be pretty rare I think, right?  Even if the overlap between the TRAPI list and a figure is the same size, it's unlikely that the figure has the exact same number of entities in it?  Regardless, in that scenario, I'd be fine randomly choosing one of them.  (If it's the same set of overlapping entities, then would be great if both figures could be associated with that cluster.)
Q2: For now, I think you can treat the user-specified IDs the same as the BTE-retrieved IDs -- no special weighting or consideration.  (But on each iteration when you remove a set of TRAPI results, the user-specified CURIEs will still be present in the next round because you'll have them in all the other results.  So basically, those IDs will be incorporated in every iteration.)

Q1: you're asking if two figures have the exact same p-value but a different set of overlapping entities? That should be pretty rare I think, right? Even if the overlap between the TRAPI list and a figure is the same size, it's unlikely that the figure has the exact same number of entities in it?

I thought this would be rare too, but in my test query, multiple ties showed up. I don't have anything rigorous and quantitative to indicate how common ties will be, but I didn't expect to have multiple exact ties in my first query.

I have a work-in-progress version I pushed today. We'll need to double check the specifics of how to the clustering is being done, but this is the first version where you can see some clustering. To see it right away, scroll down to the "View TRAPI Results Clustered by PFOCR Figure" section.
https://github.com/wikipathways/pathway-figure-ocr/blob/master/notebooks/bte_clustering.ipynb
There is definitely some clustering happening:

The TRAPI results clustered with the first figure ("Targeting the Transforming Growth FactorB Signaling Pathway in Human Cancer") do seem to be potentially related to cancer.
For the second figure ("Regulation of autophagy by mTOR-dependent and -independent pathways"), we get a cluster of INS and calcium channel blockers, but that's partially just because the figure included a list of calcium channel blockers. I'm not familiar enough with the details of the biology to say whether the other items like Resveratrol and Valproic acid make sense as part of this cluster.
For "Diagram of genes in the PI3K/AKT signaling pathway", we just have a cluster that includes INS.
For "Tryptophan metabolic pathways", we have a cluster where the third query nodes are Melatonin, Tryptamine, Serotonin, Tryptophan, Nadide, Acetic acid and Kynurenic acid. This seems like a plausible cluster, but again, I'd need someone with more familiarity with the details of the biology to weigh in.

In this iteration, I didn't do anything for handling tied p-values. If 3 figures tied for the best p-value when choosing the cluster figures, I just included all three and moved on to find the next cluster figures.

A few thoughts on potential next steps:

Just so we can clearly communicate the procedure to others (and to ourselves), I think sketching out a schematic and/or a block of psuedocode would be very useful.
It would be useful to run the procedure through some additional use cases where the "right answer" might be more apparent

https://github.com/NCATSTranslator/testing/issues/157 -- this is a blood clotting disease, so I'd expect that this simple one-hop query to get pathway figures related to blood clotting
I'd expect that an "explain" query for imatinib - [Gene] - leukemia (oncogenes) to have a different set of pathway figures relative to imatinib - [Gene] - asthma (mast cells)

Regarding the observation in @ariutta's example above that "none of the cluster figures include RAB13 (NCBIGene:5872), which the user specified in ids for n0", I think it would be worth having a parameter that indicates whether explicitly specified IDs are required to be present in the returned pathway figures.

I updated the documentation to help explain what's going on. Here's the updated notebook for the same query and for the Von Willebrand Disease query:

same query as before
Von Willebrand Disease

Working on the other items...

Here are two updated examples that may be enlightening:

leukemia and asthma - user-specified IDs NOT required
leukemia and asthma - user-specified IDs required

In both examples, there are many more results for leukemia than for asthma. When user-specified IDs were not required, notice there was a 15-way tie for lowest p-value.

I did another example, similar to the previous one:

CELECOXIB - Gene - cancer/arthritis: user-specified IDs NOT required
CELECOXIB - Gene - cancer/arthritis: user-specified IDs required

When user-specified IDs were not required, there was a 35-way tie for lowest p-value.

Going to close this exploratory ticket in favor of the concrete game plan laid out in #538


BUG: Fix bug with regress_artifact picking

Make EOGRegression check for projections only applicable to the channels being processed. So if you want to regress MEG sensors using a reference channel for example, it shouldn't matter whether or not there is an average EEG reference projector.
As part of (1), make pick_info remove any projectors that are no longer relevant to the data. So if you start with M/EEG data and remove all EEG channels, you should no longer have an EEG reference projector in info. I went back and forth on this one a bit but I think this is the most reasonable behavior.

... and I realized I could greatly simplify some stuff and make the dataset dual-use for https://github.com/mne-tools/mne-bids-pipeline/pull/837 by BIDSifying it, so those changes are in here, too.

Done, marking for merge when green, thanks for the quick look @drammock !


Added default name as John Doe and age as 42 in Person class

/claim #585
Added default values for Person class.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Hey, can you write the test described in this issue just to make sure the PR is heading in the right direction? Thanks!

This changes have nothing to do with the actual issue. Closing it.


pkg/devicemapper: external device activation

cc @rhvgoyal @yasker
Reported-by: Sheng Yang<EMAIL_ADDRESS>Signed-off-by: Vincent Batts<EMAIL_ADDRESS>

Hi @rhvgoyal,
This is a feature that device-mapper supported, to create external snapshot based on a image. The document can be find at: https://github.com/torvalds/linux/blob/master/Documentation/device-mapper/thin-provisioning.txt#L229
I am using pkg/device-mapper for https://github.com/rancherio/volmgr , which has ability to create a volume from an shared read-only base image, as well as take snapshot of it and backup/restore the snapshot. Currently volmgr is backed by device mapper only, and I used go binding of docker to implement all the features. I created an separate patch for pkg/device-mapper in my own tree, at https://github.com/yasker/docker/commit/f06dc8e9e10ff654e41dddae93a15a2a99e5ebc0 , but hopeful the feature can make it upstream.
I met @vbatts yesterday at Dockercon, and talked with him about it. And thanks @vbatts for this patch!
I've tested it and it works well with volmgr(rancher-volume).
Probably we can eliminate one "if" by using trim for the trailing space? Or does it matter at all for API?

Ok, got it.
I did not know that devicemapper package is being used external to docker as well. Now this is interesting. Changing anything in that package has potential to break other dependent applications. Is this common practice or just an exception for device mapper. IOW, is docker expecting this?

@rhvgoyal
I've talked with @crosbymichael and @jlhawn , they're fine with the approach. In fact I think Docker is encouraging using the code outside of docker now.
Also this change is pretty minimal, and no API change for docker at all. Shouldn't have much impact on docker.

Also this doesn't break existing api. Only adds a function.
On Jun 23, 2015 13:09, "Sheng Yang"<EMAIL_ADDRESS>wrote:

@rhvgoyal https://github.com/rhvgoyal
I've talked with @crosbymichael https://github.com/crosbymichael and
@jlhawn https://github.com/jlhawn , they're fine with the approach. In
fact I think Docker is encouraging using the code outside of docker now.
Also this change is pretty minimal, and no API change for docker at all.
Shouldn't have much impact on docker.
—
Reply to this email directly or view it on GitHub
https://github.com/docker/docker/pull/14127#issuecomment-114626127.

LGTM

Not sure why test failed.
On Tue, Jun 23, 2015 at 1:19 PM, Vivek Goyal<EMAIL_ADDRESS>wrote:

LGTM
—
Reply to this email directly or view it on GitHub
https://github.com/docker/docker/pull/14127#issuecomment-114630447.

LGTM

LGTM


My finished exercises

Good morning @NazgulM, you don't need to PR your finished exercises to this repo.  It's enough to link to your fork from your checkin.
you don't want to give away all the answers!


Tooltip dot is not removes

Commit: latest
Steps to reproduce

turn on tooltip
mouse over a track
be amazed by the tooltip
move the cursor outside the base container
be enraged that the tooltip dot is still there
get yourself a nice cup of coffee to calm down 😇

Observed behavior

tooltip dot remains visible

Expected behavior

tooltip dot should be removed

Why? This is annoying when taking screenshots.

Seems to be fixed in v1.5.2