Night mode constantly "Arming" in HomeKit

I'm really grateful all the work you've put into this plugin.
When I arm the alarm via Home or Away, the feedback in the upper left corner of the HomeKit screen says "Arming" and then the red light appears along with the current state: "Home or Away".
When I arm via "Night" -> "Arming" appears for a split second, then "Night" appears and then it goes back to "Arming". The system is armed and it will disarm when I select "Off". I didn't think it was a worth mentioning, but then I had a false alarm this morning and went to the alarm screen to find the button in the "Off" position. Not sure if this behavior is liked tot he false Arm or not.

Hi,
Night setting is truly dependent on your alarm panel configuration. The plug-in send the command for night (e.g. 33), however what the panel returns will dictate what actual mode is reflected on home kit. I did notice that it does take long for "alarming" to clear when I use the night mode.
When alarm triggered it should indicate "Alarm", are you indicating that Home didn't send a notification of triggered event? What were your actions after you got false alarm? In general just as night mode the plug-in just read the event coming from panel via Envisalink board. I would need a debug log to see, why HomeKit does't triggered alert event, if you alarm is sounding.

It is my understanding from Envisalink that their API does not support "Night" mode. Although "Night" is supported by their web app, it is not supported via the API, and they have little interest in fixing the shortcoming.

Hi @7RDR7,
It is really depends on how your panel was programmed and this maybe something that should be clarify in the readme.

This plug-in uses the virtual keypad, when a user request night-stay it sends a 33, which is the default code command to request Night-stay. This something anyone can test and confirm on a physical panel and see if goes the night-stay. If it doesn't than the plug-in would not know the correct command code to get to Night-Stay. An enhancement can be made to allow the user to override the default code command, but I would need to know if this really an issue worth investing time.

The plug-in will read from EVL partition change of  "Code 6 - Arm-Instant (Zero Delay-Stay)". This is normally map to Night-Mode. However, you are correct this actually could  be configured differently on the panel. Thus, resulting in another state, thus the plug-in will report something different than "Night". The best test is manually enable Night-Mode on the physical keypad and see what state the plug-in reports. If Night-Mode is NOT configured for Zero-Delay-Stay. The plug-in will simple report Stay (e.g. Home), since Envisalink doesn't return any other code.


Bigger select field for "Selecteaza Companii" from "Cont" section

ENVIRONMENT: Validator UI
URL: https://admin.peviitor.ro/
Browser: Chrome
Device: Laptop
OS: Windows 11 Pro
DESCRIPTION:
We need a larger select field in the "Select companies" section to be able to select companies more easily. At the moment it is very small and difficult to use. There is also the option to increase or decrease the select field exactly as we need. Also, the select field for "Select Scraper" is too large.
EXPECTED RESULTS:
The "Select companies" section has a select field large enough to easily select companies.
ACTUAL RESULTS:
The "Select companies" section doesn't have a select field large enough to easily select companies.

Added...

It looks great. Thank you


Bring parity with vs treeview for all non tracked code.

Cleaned up treeView class to be as close to vs treeview as possible - leaving only tracked changes
Fixes #23590

What are "tracked" changes?
Overall I'm fairly concerned about the amount of changes being done here and the ongoing maintenance cost of keeping this up with the VS treeview. Why aren't we using the base treeview instead and then just overriding the parts that we need to customize?

What are "tracked" changes?

I've been seeing this term to apply to custom content when compared with vs/treeView version.

Overall I'm fairly concerned about the amount of changes being done here and the ongoing maintenance cost of keeping this up with the VS treeview. Why aren't we using the base treeview instead and then just overriding the parts that we need to customize?

I agree. This class seems to be written for https://github.com/microsoft/azuredatastudio/blob/a6bd75208299056bcebab60db34fbcde1da13a00/src/sql/workbench/contrib/dataExplorer/browser/dataExplorerExtensionPoint.ts
We are more-or-less modifying all types included here.. I've tried to remove all types that were unmodified, but rest are here. There may be possibilities to remove customizations even further but I'm less aware of their actual design needs so I haven't made any major changes. But this bump caused this class to go incompatible with styling, that's why all the effort here.

Welp, I expect this to be a continued source of issues going forward. But a complete rewrite seems out of scope right now so guess we can go forward with this and then hopefully have some time later to go back and look at removing all this custom stuff...
Thanks for looking into it!


[$250] mWeb - Chat - Emoji picker cut off in the bottom

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

Version Number: 1.4.83-0
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause - Internal Team
Action Performed:

Log in to New Expensify
Navigate to any chat
Open emoji picker

Expected Result:
Emoji picker should be fully rendered to the very bottom of the screen
Actual Result:
Emoji picker is cut off in the bottom
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/fe59e6a5-b101-4b4b-8f9d-3508b8deec4d
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~015d3ee2fb419bfdb5
Upwork Job ID:<PHONE_NUMBER>996738899
Last Price Increase: 2024-06-13

Issue OwnerCurrent Issue Owner: @rayane-djouah

@deetergp  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

We think that this bug might be related to #vip-vsp

This does not feel like a blocker to me, feel free to change that but demoting


✨ TinaCMS Block | Latest Rules

Cc:

Hi
Pain

Suggested Solution

Tasks

[ ] If it isn't already, create Latest Rules as a TinaCMS Block
[ ] Add it as an available block in the Sidebar collection
[ ] Block should have a preview image (if needed)

More Information

Screenshots

Thanks!

Done - As part of #1570. This was refactored into its own component, and the block is available on TinaCMS.


Better tsconfig.json generation

The current generation of tsconfig.json is a manual and undiscoverable process inside VS Code. I suggest the following improvements:

We should introduce a command "Create tsconfig.json", this command should try to autodetect as much as possible from the workspace, and if needed ask the user some questions via QuickPick API. This command would in the end generate tsconfig.json, similar to how VS Code tries to help with the creation of launch.json
"Create tsconfig.json" should be contributed to the command palette and in the explorer context menu (if tsconfig.json is not present)
if we want to market some attributes in tsconfig.json we should write them in those files even if they have a default value so users can discover them
The commands should be contributed to the Explorer Context Menu - if tsconfig.json can not be found in the workspace.
If there is a typescript file open, and there is no tsconfig.json in the repository we should offer the user to automatically to create a tsconfig.json. I think a notification in this case is acceptable.

Step 2: we can consider to make the Problems welcome view contributable. So we can add a button in the problems view to generate tsconfig.json if no errors have been detected in the workspace.
With these improvements I believe we will make it much easier for the users to create a new typescript workspace.

The current generation of tsconfig.json is a manual and undiscoverable process.

https://www.typescriptlang.org/docs/handbook/compiler-options.html

@MartinJohns thanks for pointing. I meant inside VS Code. There is no UI for this. I have clarified my initial comment.
Also the --init command does not take into account the current workspace content I believe. And we should make this smarter, based on what the workspace already has.


Add 'ignored' option to webpack watch options

This will greatly reduce the high amounts of CPU usage when running
the watch options, especially when there is a disparity in filesystem
engines used when developing in docker environments between the host
and container.
More information:
https://webpack.js.org/configuration/watch/#watchoptionsignored

Ship it!


dlc.BoxPanel's addToDom issues with multipage apps

I am creating a Multi-page app using Dash and for one of the pages I would like to use your wonderful implementation of the lumino-components.
One issue I run into is that when I switch away from a page with a BoxPanel, where addToDom=True, it continues showing underneath the content of the new page. Is there a way of fixing that. I am happy to provide an example if neccessary.

Currently, the multi-page setup in Dash isn't fully supported with the lumino-components. However, I can suggest an alternative approach that should address your needs.
Instead of using the multi-page setup directly within Dash, I recommend creating a Flask application that hosts two separate Dash apps, one for each page you intend to have. This approach will allow you to cleanly switch between pages without encountering the issue you described.
There is an example at https://github.com/VK/dash-lumino-components/blob/master/examples/multiplage.py

Thank you! This is very helpful!


FCP xml adapter and invalid "out" values (premiere)

Hi,
We've seen some clip duration issues, looks like the start-end / in-out values can be exported oddly from Premiere.
I'm guessing that most apps ignore the "out" attribute and just add the duration from the start-end properties.
In this example the in/out duration is a frame short, has anyone come across this before ?
This causes the otio clip to be one frame short.
<masterclipid>masterclip-26</masterclipid>
<duration>51</duration>
<rate>
<timebase>24</timebase>
<ntsc>FALSE</ntsc>
</rate>
<start>1574</start>
<end>1618</end>
<in>7</in>
<out>50</out>

@alatdneg if you have a second, can you turn this into a unit test case we can add to the test suite?  I think that might help debug it.  @bashesenaxis might know the specifics of what you're asking, though.

Yeah, I've not had the contributors form signed off yet, not sure how you'd do a unit test for this, I think is a bug in how premiere writes it's FCP7 XML, it seems most apps ignore the  values and calculate it from -

Hmm, that does indeed look interesting.
duration = 51
out - in = 50 - 7 = 43
end - start = 1618 - 1574 = 44

The way that I would interpret that, is as follows

there are 51 frames available in the media
we are taking frames 7 to 50 (43 frames)
and displaying that on the timeline from frame 1574 to 1618 (44 frames)

Therefor, the clip would be stretched in time ever so slightly. Or perhaps you are displaying a 24 fps clip on a 25 fps timeline? @alatdneg, can you confirm whether this is the case?
@ssteinbach, @jminor  I`m not entirely sure if OTIO supports scaled clips at the moment?

Tagging @bbb999 to try and get some eyes from Premiere on it.

@bashesenaxis we have time effects including a linear time warp that we're starting to introduce to support scaled clips.  for an example in the EDL adapter, see:
https://github.com/PixarAnimationStudios/OpenTimelineIO/blob/33ad026c7d46f106eb079f77324ffae6060691d5/opentimelineio/adapters/cmx_3600.py#L150

Pinging @alatdneg just to put this back on your radar per our earlier conversation.  See the question from @bbb999.
Thanks!

Here's the full clip item, I'll see if I can clean the timeline so you can have the whole thing
<clipitem id="clipitem-204">
	<masterclipid>masterclip-26</masterclipid>
	<name>test.mov</name>
	<enabled>TRUE</enabled>
	<duration>51</duration>
	<rate>
		<timebase>24</timebase>
		<ntsc>FALSE</ntsc>
	</rate>
	<start>1574</start>
	<end>1618</end>
	<in>7</in>
	<out>50</out>
	<pproTicksIn>74088000000</pproTicksIn>
	<pproTicksOut>529200000000</pproTicksOut>
	<alphatype>none</alphatype>
	<pixelaspectratio>square</pixelaspectratio>
	<anamorphic>FALSE</anamorphic>
	<file id="file-26">
		<name>test.mov</name>
		<pathurl>file://localhost/test.mov</pathurl>
		<rate>
			<timebase>24</timebase>
			<ntsc>FALSE</ntsc>
		</rate>
		<duration>51</duration>
		<timecode>
			<rate>
				<timebase>24</timebase>
				<ntsc>FALSE</ntsc>
			</rate>
			<string>00:00:00:00</string>
			<frame>0</frame>
			<displayformat>NDF</displayformat>
		</timecode>
		<media>
			<video>
				<samplecharacteristics>
					<rate>
						<timebase>24</timebase>
						<ntsc>FALSE</ntsc>
					</rate>
					<width>1920</width>
					<height>1080</height>
					<anamorphic>FALSE</anamorphic>
					<pixelaspectratio>square</pixelaspectratio>
					<fielddominance>none</fielddominance>
				</samplecharacteristics>
			</video>
		</media>
	</file>
	<logginginfo>
		<description></description>
		<scene></scene>
		<shottake></shottake>
		<lognote></lognote>
		<good></good>
		<originalvideofilename></originalvideofilename>
		<originalaudiofilename></originalaudiofilename>
	</logginginfo>
	<colorinfo>
		<lut></lut>
		<lut1></lut1>
		<asc_sop></asc_sop>
		<asc_sat></asc_sat>
		<lut2></lut2>
	</colorinfo>
</clipitem>

I've got a cleaned timeline, is there someone I can email it to, it's too big to attach here.

@alatdneg, can you paste it into a gist? https://gist.github.com

https://gist.github.com/alatdneg/3a708eb34649631fea7ef774f1f95843


Provide way to self-diagnose TS server re-initializing

I frequently run into the issue where every time I open a JS file, I'll get the "Initializing JS/TS language features" message, which eats up all my CPU for a minute or so.
The problem is, it comes and goes, and is difficult to consistently reproduce. I've opened issues, but they usually end up getting closed because of this difficulty.
Could some logging be added to tsserver.log that clarifies what the cause of the re-initialization is?

Can you share an example tsserver log? It already should have this information in it, but it may not be clearly marked

@mjbvz Yeah, but it's got stuff in it that I don't want to post publicly, and because of #75748 I'm not sure how to upload it privately anymore. Anything I can look for myself?

Followed up on #77533
For this issue, TS server log is really not meant for anyone except the members of the vscode or TypeScript dev teams. This is who the TS server log was designed for.
The loading indicator is one of the user facing ways we expose the TS server state to end users. If you have other ideas on how we could improve this, let me know but I don't think focusing on the server log itself is the correct direction

OK. In that case, can I consider it a bug worth reporting, whenever that "Initializing" message re-appears, even if it's not consistently reproducible or it happens with extensions enabled? (Not including the first time and times when I change config settings.)

The initializing indicator is expected to show up whenever a new js/ts project is loaded. Because we unload inactive projects, it may show up multiple times per session depending on which files you open and close. But it should always go away and we in generally should not unload and reload the same project


⚠ Bofrost.be has degraded performance

In 7e75f5d, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1750 ms

Resolved: Bofrost.be performance has improved in 618dfc9.


(graphviz) Update changelog URL in graphviz.nuspec

Description
Update URL to upstream changelog file. The graphviz repo's default branch has been renamed from master to main .
Motivation and Context
Prevents 404 when following link under "Release Notes" on Chocolatey website.
How Has this Been Tested?

Screenshot (if appropriate, usually isn't needed):
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Migrated package (a package has been migrated from another repository)

Checklist:

[x] My code follows the code style of this repository.
[ ] My change requires a change to documentation (this usually means the notes in the description of a package).
[ ] I have updated the documentation accordingly (this usually means the notes in the description of a package).
[ ] I have updated the package description and it is less than 4000 characters.
[x] All files are up to date with the latest Contributing Guidelines
[ ] The added/modified package passed install/uninstall in the Chocolatey Test Environment(https://github.com/chocolatey-community/chocolatey-test-environment/). Note that we don't support the use of any other environment.
[x] The changes only affect a single package (not including meta package).

:x: Package verification failed, please review the Appveyor Logs and the provided Artifacts before requesting a human reviewer to take a look.

@ferdnyc your changes have been merged. Thanks for your contribution 👍

Actually, the correct link for release package downloads is https://graphviz.org/download/#windows, where 10.0.1 packages are at the bottom of the list (for some reason).

Sounds like the Graphviz updater needs to be updated, can you create a new issue for outdated packages here: https://github.com/chocolatey-community/chocolatey-packages/issues/new/choose (Assuming an issue doesn't already exist).

Done as https://github.com/chocolatey-community/chocolatey-packages/issues/2432


[7.3.x] GUVNOR-3524: Do not expose unsupported features by UI (e.g. scorecards, decision trees)

See https://issues.jboss.org/browse/GUVNOR-3524
This is the corollary of https://github.com/AppFormer/uberfire/pull/859 for 7.3.x
(cherry picked from commit 9de3efa4ef839cec95d7c8f3a72a844d8c6b83ff)

Jenkins please retest this.

Jenkins please retest this.


Communication error: timeout reached :0 milloseconds

Description
Hi, we have followed all your instruction step by step for setting up the Libiiwa package. when we start connect to the project in teach pendant we didnt hear any sound of brakes unlocking . then we opened a new terminal and launched "roslaunch libiiwa_ros default.launch".
Problem 1:
In new termainal we ran direct command "rostopic pub -1 /iiwa/command/joint sensor_msgs/JointState "{name: ['iiwa_joint_1', 'iiwa_joint_2', 'iiwa_joint_3', 'iiwa_joint_4', 'iiwa_joint_5', 'iiwa_joint_6', 'iiwa_joint_7'], position: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2]}", then sound of  brake unlocking was released  and it did move but still we got error in terminal "failed to command position to [0.0, 0.0,0.0,0.0,0.0,0.0,0.2] and error.NO_ERROR". Again we gave new position and we didn't get that error and the joints are moving .

Problem 2:
We tried to control the Cartesian pose and we got error that process has died and we had to restart the whole.
Problem 3:
We tried using using **"roslaunch iiwa14_moveit_config real.launch" **and we where getting an error in teach pendant that "Communication error: timeout reached :0 milloseconds" when we are trying to click plan and execute in rviz.

Steps to reproduce
1.Select libiiwa project from teach pendant
2.we launch "roslaunch libiiwa_ros default.launch"
3.we click run in teach pendant and we get the following " connection from <IP_ADDRESS>:18001" which is our ip address of sunrise workstation.
4.roslaunch iiwa14_moveit_config real.launch
5.rotate joint 7 in rviz by few degrees and click "plan and execute" button.
Setup information
Describe the characteristic of your setup:

Python version: [3.8.10]
ROS version: [Noetic]
OS: [ Ubuntu 20.04]
libiiwa (Python) version [0.1.1-beta]
libiiwa (Python) API version [0.3.1-beta]
LibIiwa (JAVA) API version: [0.3.1-beta]

Checklist

[x] I have checked that there is no similar issue in the repository (required)

Hi @Toni-SM , recently even i found out about the package and facing the similar issues as posted above. Any solution to solve it would be great.

Hi @mistimohan and @qwertyuiop789456
Sorry for late response, I'm visiting my native country where I only have limited internet access.
I have fixed the issue related to the FollowJointTrajectory logging methods.
Please, use the libiiwa_ros package and the libiiwa.py file from the repository rather than the released files (I will update release files when I get back home).
Regarding robot control issues, if the robot is in manual mode (T1/T2), please make sure that enabling switches are operated in order to be able to jog the manipulator. Also, if possible, enable verbose output in the ROS launch


[iOS] Print Quality not set on IOS

Hi @CodeMinion,
Got a quality problem with IOS. In app i fix quality to PrintQuality.HIGH_RESOLUTION, like this:
printInfo.printQuality = PrintQuality.HIGH_RESOLUTION;
With Android everything work as expected, but with IOS, quality is not set to High.

I have read on another post that it may be a Brother SDK problem, but the post is old (one year).
Do you have a fix for this?
My test is done on a TD-2125NWB.
Regards,
Alain Deseine

Hi @alaindeseine ,
Thanks for reaching out about this. This one has always been strange to me. In the case of Android and iOS we are translating the same field printQuality (https://github.com/CodeMinion/another_brother/blob/main/ios/Classes/Method/BrotherUtils.m#L1249).
After taking a second look I noticed that we are not configuring the print resolution for the TD printers so I'll set some time aside to add it and see if perhaps that solves the issue.
In the meantime, I don't own any TD printers and was wondering if you could help me out by verifying on your end. The only change you would need to perform is to add the following line printerSettings.resolution = [BrotherUtils printResolutionFromMapWithValue:dartPrintQuality2];  under this https://github.com/CodeMinion/another_brother/blob/main/ios/Classes/Method/BrotherUtils.m#L1249 and try printing.
Thanks again for reaching out about this,

Hi @CodeMinion
I will give it a try as soon as possible.
regards.

Hi @CodeMinion
After taking a look at source code, i'm not shure what you want me to test!
You say:

The only change you would need to perform is to add the following line printerSettings.resolution = [BrotherUtils printResolutionFromMapWithValue:dartPrintQuality2]; under this https://github.com/CodeMinion/another_brother/blob/main/ios/Classes/Method/BrotherUtils.m#L1249 and try printing.

I currently use the 1.0.3 version of another_brother, and if i check the file you have linked, i already got this code.
So, what am i supposed to modify?
Regards.

Thanks for giving it a try @alaindeseine . It seems that printer settings object does not include the resolution field. Looking at the docs I don't even see some of the existing fields so not sure how up to date they are https://support.brother.co.jp/j/s/support/html/mobilesdk/reference/ios_v4/brlmtdprintsettings.html
I'll have to set some time aside to dig a bit and see why it's failing.
Have you tried modifying the density setting the density field to see if it affects the quality?
Let me dig a bit more later tonight and see if I can find anything else,

Hi @CodeMinion
You right!
With:
printInfo.rjDensity = 8;
I get same print density as the android one.
For me, this does the trick.
Regards.
Alain.


Add kjd_gate

this is mostly for benchmarking purposes and to see if tensordot increases the memory consumption with repeated application (in contrast to normal matmul). note that this function requires the allocation of the indices which are huge long tensors

@Roland-djee, the method in this MR can be used to contract over target qubits, maybe its useful for #113

merged with https://github.com/pasqal-io/pyqtorch/pull/125/files


#915 Android: Unregister receiver in when detaching from activity.

:sparkles: What kind of change does this PR introduce? (Bug fix, feature, docs update...)
fixes bug with activity not being removed from locationServiceHandler
:arrow_heading_down: What is the current behavior?
MainActivity leaks IntentReceiver
:new: What is the new behavior (if this is a feature change)?
unregister Receiver if activity change
:boom: Does this PR introduce a breaking change?
No
:bug: Recommendations for testing
Keep background task running without
:memo: Links to relevant issues/docs
https://github.com/Baseflow/flutter-geolocator/issues/915
:thinking: Checklist before submitting

[ ] I made sure all projects build.
[ ] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
[ ] I updated CHANGELOG.md to add a description of the change.
[ ] I followed the style guide lines (code style guide).
[ ] I updated the relevant documentation.
[ ] I rebased onto current master.

Closing this in favor of #1003.


AttributeError: 'QStringList' object has no attribute 'remove'

Traceback (most recent call last):
File "./labelImg.py", line 1096, in openDir
self.openNextImg()
File "./labelImg.py", line 1158, in openNextImg
self.loadFile(filename)
File "./labelImg.py", line 937, in loadFile
self.addRecentFile(self.filePath)
File "./labelImg.py", line 554, in addRecentFile
self.recentFiles.remove(filePath)
AttributeError: 'QStringList' object has no attribute 'remove'
When i click 'Open Dir' ,this problem happen ,and 'File list' is empty ,when i click 'Next Image' or 'Prev Image' ,the image show correctly in the main window, but the same error log appear again,just like above.
This tool is really helpful and i appreciate the contributors from heart.
Thank you!

OS: ubuntu14.04
PyQt version: Qt4

Thanks for giving a heads up

Fix it https://github.com/tzutalin/labelImg/commit/6958e69851567abb18bfece52888d4709bbacc5b#diff-335ce07d50088fb26e24f96701ddfed4R436.


GUI: Show correct total with royalties when making an offer that requests an NFT

When creating an offer that requests one or more NFTs with royalties, fungible asset amounts in the offering column should reflect the royalties that will be added upon offer acceptance.
The TXCH amount shown should also display the 0.05 TXCH royalty amount that will be included in the total.

The same offer, correctly showing the total 1.05 TXCH amount.

PR https://github.com/Chia-Network/chia-blockchain-gui/pull/1173


Test file to be deleted later

Why:
Closes [issue link]

What's being changed:

Check off the following:

[ ] I have reviewed my changes in staging (look for the latest deployment event in your pull request's timeline, then click View deployment).
[ ] For content changes, I have completed the self-review checklist.

Writer impact (This section is for GitHub staff members only):

[ ] This pull request impacts the contribution experience

[ ] I have added the 'writer impact' label
[ ] I have added a description and/or a video demo of the changes below (e.g. a "before and after video")

@sid-FBLA Seems like this was opened as practice! I am closing it now. But, feel free to take a look at the contributing.md to learn how to contribute in this repo. You can open a discussion if you have any questions or check out issues with the help wanted label. ✨


Feature Request: Add Reorder Handle Button for Shopping List Items

Currently, users of the shopping list app can view items in a static list. This feature request aims to introduce a reorder handle button to allow users to rearrange the items in the shopping list manually.
Proposed Solution

Add a reorder handle (e.g., a small drag icon with horizontal lines) next to each item in the shopping list.
Users can press and hold the reorder handle to drag and move items up or down the list.
The reordered list should persist after changes, either by saving the new order in the database or retaining the order while the app is active.
I am confident that I can implement this feature to enhance the user experience by allowing item reordering in the shopping list.
Could I please be assigned to this issue?  Also, could you kindly add the @GSSOC tag and the appropriate level tag? Thank you!

I'd like to work on this @Ankesh-erek. Please assign this to me with appropriate gssoc-ext tags. Thank you.

@Ankesh-erek any update on this ??

@yuvrajsinghgmx I apologize for the inconvenience sir, but due to my mid-semester exams, I was unable to complete the task on time. I assure you that I will have it finished by tomorrow evening. Thank you for your understanding.

No Worries @Ankesh-erek .


feat: Hashing IDs Currency Pair Strategy

implementing a new currency pair strategy that will broadcast (sha256 hash of each CP, raw price) per vote.
implements the same caching strategy as other strategies so there should be a similar amount of reads as the delta strategy.
amount of overhead in terms of VE size should be constant but slightly larger than default.

Can we use this with the delta encoding strategy?

roll ups need the raw price. otherwise they would need something like ICQ which is not part of the design.


Installing with a package manager

I would like to gather some thoughts on how to make these libraries (and any other dev libs) easily installable with basher.
Suppose I add a new command to basher:
$ basher dev-bundle

This would look for a package.sh file on the current directory, look for an item DEV_DEPENDENCIES, and install each dependency on a local path (instead of the global basher cellar). These dependencies could then be loaded with a simple change to the load command that you're already suggesting.
In the future, maybe basher itself could provide a way to load all dev dependencies automatically.
This is just an initial idea from the top of my head. If you like it, I would like your thoughts on how to evolve it.

After a night's sleep I came up with an alternative:
Add a command basher bundle that globally installs all dependencies of the current project. Then, basher could provide a command similar to "load" that knows how to load libraries into the current shell, for instance:
basher-load ztombol/bats-core
basher-load ztombol/bats-assert

I think I like this option better.

More installation methods! This would be great! Though, I'm not familiar with basher. I've got a few things to finish first (e.g. travis ci, examples), but I'll look into this as soon as I can. Let's see what others have to say. Though, since you are the developer of basher, I'm sure you know what you are doing. :smile:

I don't want to hijack this thread, but I'll point out that the nodenv org has a vested interest in bats-* being installable via npm (not necessarily from the registry, just using an npm-compatible package.json file; potentially even shared by bpkg)

What's the status of this @juanibiapina ? Something PR-able to the readme, perhaps?

basher currently has an include command which sources a file from a package into the current shell. It's very explicit and bare bones, but it solved my use case: https://github.com/basherpm/basher/blob/master/lib/include.sh
basher itself uses load from bats. I have no easy way to change that because then I would make basher depend on itself in order to run its own tests. Since I have worked on almost nothing else in bash these days, I haven't had again the need for a bundle command.
This can be closed, if no one else is interested.

Would you be interested in opening a PR to the readme that just adds an example for how to install/load the bats-support/bats-assert libs using basher? I wouldn't mind merging an addition like that to my fork of bats-docs: https://github.com/jasonkarns/bats-docs

This might be a good idea. I'm having trouble finding time these two weeks but will do so soon.


refresh

Added refresh to Window class.

Closing this in favor of pull #146 which has the same method and some more.


Magic getter in BaseActiveRecord has readability and extensibility issues

The magic __get($name) override in BaseActiveRecord is confusing, and its combination of private _attributes and _related array access and strange use of $this->hasAttributes($name) renders it inextensible.
public function __get($name)
{
    if (isset($this->_attributes[$name]) || array_key_exists($name, $this->_attributes)) {
        return $this->_attributes[$name];
    } elseif ($this->hasAttribute($name)) {
        return null;
    } else {
        if (isset($this->_related[$name]) || array_key_exists($name, $this->_related)) {
            return $this->_related[$name];
        }
        $value = parent::__get($name);
        if ($value instanceof ActiveQueryInterface) {
            return $this->_related[$name] = $value->findFor($name, $this);
        } else {
            return $value;
        }
    }
}

This line..
... elseif ($this->hasAttributes($name)) {return null;}

.. might return the correct value for the framework, but it makes no sense in a getter. Also if the hasAttributes($name) function is extended to include extra attributes, returning null here is not expected.
I would suggest the following replacement, which as far as I can tell produces the same logic, but allows for much greater extensibility:
public function __get($name)
{
    if ($this->hasAttribute($name)) {
        return $this->getAttribute($name);
    }  else {
        if (isset($this->_related[$name]) || array_key_exists($name, $this->_related)) {
            return $this->_related[$name];
        }
        $value = parent::__get($name);
        if ($value instanceof ActiveQueryInterface) {
            return $this->_related[$name] = $value->findFor($name, $this);
        } else {
            return $value;
        }
    }
}

Related with #18

Done #318


truncation of struct initializers results in compiler warnings

The codebase (including the precompiled Windows distribution headers) has initializers that are truncating their values. This results in compiler warnings. This and other such errors I've found https://github.com/luxonis/depthai-core/issues/71 and https://github.com/luxonis/depthai-core/issues/247 and https://github.com/luxonis/depthai-core/issues/79 suggest the codebase has not been compiled with analyzers and warnings to surface easily found bugs.
Three incidents I found in my compile are double truncated to float. As they are initializers, I would hope (but it is not promised across all compilers) that the executable would only store a float in the static init data. But if the compiler does not, then the size is doubled (4 -> 8 bytes) and additional bytecode is needed to convert the double -> float at runtime.
Naturally, none of that is desired and the fix is easy. Put an f after the number literal.
// errant
float epsilon = 0.01;

// correct
float epsilon = 0.01f;

Setup

all compilers and OS
throughout codebase, yet can also be seen in the headers of precompiled Windows distrib:  depthai-core-v2.11.1-win64

Repro

Enable warnings and errors in compiler. e.g. in MSVC it is with /W4
Compile an app that uses the depthai-core-v2.11.1-win64 and simple code that cascades to headers like RawFeatureTrackerConfig.hpp. Most any code, even just a dai device, will do this.

Result
...
[build] C:\repos-nobackup\depthai-core-v2.11.1-win64\include\depthai-shared/datatype/RawFeatureTrackerConfig.hpp(99): warning C4305: 'initializing': truncation from 'double' to 'float'
[build] C:\repos-nobackup\depthai-core-v2.11.1-win64\include\depthai-shared/datatype/RawFeatureTrackerConfig.hpp(105): warning C4305: 'initializing': truncation from 'double' to 'float'
[build] C:\repos-nobackup\depthai-core-v2.11.1-win64\include\depthai-shared/datatype/RawFeatureTrackerConfig.hpp(174): warning C4305: 'initializing': truncation from 'double' to 'float'
...

Expected
No warnings or errors. No increase in exe size, no runtime convert double->float.

Thanks for the thorough report.  Brought up internally.  :-)

Also found truncation in depthai SDK itself (I'm getting closer to a full depthai sdk compile)
Unclear if hard truncs on floats indicating dimensions is ok, or needs to round up, down, towards zero, accounting style, etc.

@szabi-luxonis I have a PR for some of these if you don't yet have the work started. It needs changes in this repo and changes in depthai-shared.

@szabi-luxonis I have a PR for some of these if you don't yet have the work started. It needs changes in this repo and changes in depthai-shared.

Please do.
Once PR is in place I will update the firmware. (core and firmware must point to the same depthai-shared commit).

@szabi-luxonis I have a PR ready. What is your team's standard approach for contributors wrt which branch/commit on which PRs should be?
For example, my changes to depthai-shared are currently branched from 99f9c588547e828663bb42e89f816d184d8dcff5 which is the submodule commit for v2.11.1.
Or should I rebase it on to the most recently commit of main and submit the PR that way?

@szabi-luxonis I have a PR ready. What is your team's standard approach for contributors wrt which branch/commit on which PRs should be? For example, my changes to depthai-shared are currently branched from 99f9c588547e828663bb42e89f816d184d8dcff5 which is the submodule commit for v2.11.1. Or should I rebase it on to the most recently commit of main and submit the PR that way?

Please target latest develop with PR.


private files: must only be accessed through the "Site" model

Each site must add some prefix to the key to keep its files separate from rest of the sites.
Currently this is not the case and that is a source of a bug.
As of now, one project can overwrite the "repo.zip" of another project, if the two projects have the same name.

fixed in https://github.com/pipalacademy/capstone/commit/ee9c97885bf67891d8b30da6c917004c973b399f, https://github.com/pipalacademy/capstone/commit/586be215d5757f6cebaa6557bd373e3009ef0941

Ah, https://github.com/pipalacademy/capstone/commit/ee9c97885bf67891d8b30da6c917004c973b399f is unrelated to this issue.
It is related to adding the gitto fixture for tests.
This is the one I wanted to link here: https://github.com/pipalacademy/capstone/commit/0a9fbfdfe133d1bbf80843b25eb76a3389072f2d


ArgumentError: Trying to register Bundler::GemfileError for status code 4 but Bundler::GemfileError is already registered

Thanks for update bundler to 2.1.0 🎉
But today when I creating a new rails app, bundler had an error below.
My environment
MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)
macOS HighSierra version 10.13.3

ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]
RubyGems version 3.0.3
Bundler version 2.1.0

Command I ran
rails new tsukuroyo3 -d mysql --skip_javascript

Short log
bundler: failed to load command: spring (/Users/suzuki_y/projects/tsukuroyo3/vendor/bundle/ruby/2.6.0/bin/spring)
ArgumentError: Trying to register Bundler::GemfileError for status code 4 but Bundler::GemfileError is already registered
  /Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/2.6.0/bundler/errors.rb:9:in `status_code'
  /Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/2.6.0/bundler/errors.rb:20:in `<class:GemfileError>'
  /Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/2.6.0/bundler/errors.rb:20:in `<module:Bundler>'
  /Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/2.6.0/bundler/errors.rb:3:in `<top (required)>'
  /Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/2.6.0/bundler.rb:10:in `require'
  /Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/2.6.0/bundler.rb:10:in `<top (required)>'
  /Users/suzuki_y/projects/tsukuroyo3/vendor/bundle/ruby/2.6.0/gems/spring-2.1.0/lib/spring/client/run.rb:3:in `require'
  /Users/suzuki_y/projects/tsukuroyo3/vendor/bundle/ruby/2.6.0/gems/spring-2.1.0/lib/spring/client/run.rb:3:in `<top (required)>'
  /Users/suzuki_y/projects/tsukuroyo3/vendor/bundle/ruby/2.6.0/gems/spring-2.1.0/lib/spring/client.rb:5:in `require'
  /Users/suzuki_y/projects/tsukuroyo3/vendor/bundle/ruby/2.6.0/gems/spring-2.1.0/lib/spring/client.rb:5:in `<top (required)>'
  /Users/suzuki_y/projects/tsukuroyo3/vendor/bundle/ruby/2.6.0/gems/spring-2.1.0/bin/spring:48:in `require'
  /Users/suzuki_y/projects/tsukuroyo3/vendor/bundle/ruby/2.6.0/gems/spring-2.1.0/bin/spring:48:in `<top (required)>'
  /Users/suzuki_y/projects/tsukuroyo3/vendor/bundle/ruby/2.6.0/bin/spring:23:in `load'
  /Users/suzuki_y/projects/tsukuroyo3/vendor/bundle/ruby/2.6.0/bin/spring:23:in `<top (required)>'

Full log

suzuki_y@MBP:~/projects$ rails new tsukuroyo3   -d mysql --skip_javascript
      create
      create  README.md
      create  Rakefile
      create  .ruby-version
      create  config.ru
      create  .gitignore
      create  Gemfile
         run  git init from "."
 Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/............
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...

Bundled gems are installed into `./vendor/bundle`
         run  bundle binstubs bundler
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
         run  bundle exec spring binstub --all
/Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/2.6.0/bundler/vendor/fileutils/lib/fileutils.rb:1186: warning: already initialized constant Bundler::FileUtils::Entry_::S_IF_DOOR
/Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.1.0/lib/bundler/vendor/fileutils/lib/fileutils.rb:1284: warning: previous definition of S_IF_DOOR was here
/Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/2.6.0/bundler/vendor/fileutils/lib/fileutils.rb:1444: warning: already initialized constant Bundler::FileUtils::Entry_::DIRECTORY_TERM
/Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.1.0/lib/bundler/vendor/fileutils/lib/fileutils.rb:1568: warning: previous definition of DIRECTORY_TERM was here
/Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/2.6.0/bundler/vendor/fileutils/lib/fileutils.rb:1499: warning: already initialized constant Bundler::FileUtils::OPT_TABLE
/Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.1.0/lib/bundler/vendor/fileutils/lib/fileutils.rb:1626: warning: previous definition of OPT_TABLE was here
/Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/2.6.0/bundler/vendor/fileutils/lib/fileutils.rb:1553: warning: already initialized constant Bundler::FileUtils::LOW_METHODS
/Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.1.0/lib/bundler/vendor/fileutils/lib/fileutils.rb:1685: warning: previous definition of LOW_METHODS was here
/Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/2.6.0/bundler/vendor/fileutils/lib/fileutils.rb:1560: warning: already initialized constant Bundler::FileUtils::METHODS
/Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.1.0/lib/bundler/vendor/fileutils/lib/fileutils.rb:1692: warning: previous definition of METHODS was here
bundler: failed to load command: spring (/Users/suzuki_y/projects/tsukuroyo3/vendor/bundle/ruby/2.6.0/bin/spring)
ArgumentError: Trying to register Bundler::GemfileError for status code 4 but Bundler::GemfileError is already registered
  /Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/2.6.0/bundler/errors.rb:9:in `status_code'
  /Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/2.6.0/bundler/errors.rb:20:in `<class:GemfileError>'
  /Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/2.6.0/bundler/errors.rb:20:in `<module:Bundler>'
  /Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/2.6.0/bundler/errors.rb:3:in `<top (required)>'
  /Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/2.6.0/bundler.rb:10:in `require'
  /Users/suzuki_y/.rbenv/versions/2.6.3/lib/ruby/2.6.0/bundler.rb:10:in `<top (required)>'
  /Users/suzuki_y/projects/tsukuroyo3/vendor/bundle/ruby/2.6.0/gems/spring-2.1.0/lib/spring/client/run.rb:3:in `require'
  /Users/suzuki_y/projects/tsukuroyo3/vendor/bundle/ruby/2.6.0/gems/spring-2.1.0/lib/spring/client/run.rb:3:in `<top (required)>'
  /Users/suzuki_y/projects/tsukuroyo3/vendor/bundle/ruby/2.6.0/gems/spring-2.1.0/lib/spring/client.rb:5:in `require'
  /Users/suzuki_y/projects/tsukuroyo3/vendor/bundle/ruby/2.6.0/gems/spring-2.1.0/lib/spring/client.rb:5:in `<top (required)>'
  /Users/suzuki_y/projects/tsukuroyo3/vendor/bundle/ruby/2.6.0/gems/spring-2.1.0/bin/spring:48:in `require'
  /Users/suzuki_y/projects/tsukuroyo3/vendor/bundle/ruby/2.6.0/gems/spring-2.1.0/bin/spring:48:in `<top (required)>'
  /Users/suzuki_y/projects/tsukuroyo3/vendor/bundle/ruby/2.6.0/bin/spring:23:in `load'
  /Users/suzuki_y/projects/tsukuroyo3/vendor/bundle/ruby/2.6.0/bin/spring:23:in `<top (required)>'

With previous version, Bundler 2.0.2, This error is not occurred.
suzuki_y@MBP:~/projects$ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]
suzuki_y@MBP:~/projects$ bundle -v
Bundler version 2.0.2
suzuki_y@MBP:~/projects$ gem -v
3.0.3

log

suzuki_y@MBP:~/projects$ rails new tsukuroyo4   -d mysql --skip_javascript
      create
      create  README.md
      create  Rakefile
      create  .ruby-version
      create  config.ru
      create  .gitignore
      create  Gemfile
         run  git init from "."
 Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/............
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...

Bundled gems are installed into `./vendor/bundle`
         run  bundle binstubs bundler
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
         run  bundle exec spring binstub --all
* bin/rake: Spring inserted
* bin/rails: Spring inserted

Hi @u16suzu, thanks for quickly reporting this after the release.
Unfortunately I cannot reproduce this on my machine. Are you able to reproduce on a docker image or something that I can use? Also, can you run bundle env and gem env before running the rails generator and paste the results?
Thanks again!

Forget about it, I can reproduce it by configuring bundler like bundle config set path vendor/bundle before running the command. I'm going to have a look now.

I'm still investigating the cause, but gem update --system fixed the problem for me. Can you try?

Hi @deivid-rodriguez
Thanks comments!
Yes, exactly I am setting install path via --path vendor/bundle, and using fish shell.
Also for me, gem update --system fixed the problem.
So, the problem is that rubygems's version and bundler's version.
I want to investigate the reason, but I should make my new web app for Interview test until next week.

I have same issue, but downgrading bundler to v2.0.2 works for me.

I'm getting a similar error with Rails 6 and ruby 2.7.0 in docker, is it the same bug/problem?.  Please see Dockerfile attached.
Dockerfile.txt
bundler: failed to load command: spring (/usr/local/bundle/ruby/2.7.0/bin/spring)
ArgumentError: Trying to register Bundler::GemfileError for status code 4 but Bundler::GemfileError is already registered
  /usr/local/lib/ruby/2.7.0/bundler/errors.rb:9:in `status_code'
  /usr/local/lib/ruby/2.7.0/bundler/errors.rb:20:in `<class:GemfileError>'
  /usr/local/lib/ruby/2.7.0/bundler/errors.rb:20:in `<module:Bundler>'
  /usr/local/lib/ruby/2.7.0/bundler/errors.rb:3:in `<top (required)>'
  /usr/local/lib/ruby/2.7.0/bundler.rb:7:in `require_relative'
  /usr/local/lib/ruby/2.7.0/bundler.rb:7:in `<top (required)>'
  /usr/local/bundle/ruby/2.7.0/gems/spring-2.1.0/lib/spring/client/run.rb:3:in `require'
  /usr/local/bundle/ruby/2.7.0/gems/spring-2.1.0/lib/spring/client/run.rb:3:in `<top (required)>'
  /usr/local/bundle/ruby/2.7.0/gems/spring-2.1.0/lib/spring/client.rb:5:in `require'
  /usr/local/bundle/ruby/2.7.0/gems/spring-2.1.0/lib/spring/client.rb:5:in `<top (required)>'
  /usr/local/bundle/ruby/2.7.0/gems/spring-2.1.0/bin/spring:48:in `require'
  /usr/local/bundle/ruby/2.7.0/gems/spring-2.1.0/bin/spring:48:in `<top (required)>'
  /usr/local/bundle/ruby/2.7.0/bin/spring:23:in `load'
  /usr/local/bundle/ruby/2.7.0/bin/spring:23:in `<top (required)>'
       rails  webpacker:install
Yarn not installed. Please download and install Yarn from https://yarnpkg.com/lang/en/docs/install/
root@773608b2eb9f:/home/app#  gem --version
3.1.2
root@773608b2eb9f:/home/app# bundle --version
Bundler version 2.1.2

Same here.


Survey unit conversion globally and check for duplication

The intent of this ticket is to note that we're doing some complex unit conversion and there's potentially some code duplication/chance to simplify.
Incoming data from the API comes in some kind of nested structures, and those differ depending on the endpoint.  Fine!  There's some logic in the utils/convert which is semi-specific to the nested structures currently (pre-merging GIPL2 work); in other cases, some of the data sculpting/conversion is partially handled in the individual stores that correspond to the data fetch.
This may all be good as it is.  But it could be worth looking to see if there's any simplifications that could be achieved by globally surveying the conversions.

Probably the parameter in the convertToInches function should change the parameter name permafrostData to sourceData or something because it appears to be used by non-permafrost data at this point.


Is it possible to attach tags to envoy.server.live only?

We spin up multiple envoys as part of our internal platform, potentially all of them configured differently. Stats from these envoys are sent to a centralised place.
We would like to have an easy way to see what envoys have what top-level features (think auth, retries, circuit breaking) turned on via arbitrary stats and tags, but without having to tag all stats for it. An idea we had was to tag only the envoy.server.live stat, so that metric becomes the "Envoy is alive here and is configured like this".
Is this even possible? How would we go around it?
Thanks!

No this is not possible. It sounds like a potentially interesting feature though I think details need to be thought out in terms of whether we should do something more generic or there is some other potential solution. cc @jmarantz for stats thoughts.


FIX: link to non-raw project charter doc

The previous link destination was directed to the raw markdown page. It would be more useful to link to the rendered GitHub page.

Indeed, thanks a lot for pointing that out!


soroban-cli: uses the same identity/account/key for everybody by default

What version are you using?
$ soroban version
soroban 20.0.0-rc.4.2 (v20.0.0-rc.4.1-4-g4e9a48756b96e4e1a070105bad202f39901139ad-dirty)
soroban-env 20.0.0-rc2 (8c63bff68a15d79aca3a705ee6916a68db57b7e6)
soroban-env interface version<PHONE_NUMBER>7
stellar-xdr 20.0.0-rc1 (d5ce0c9e7aa83461773a6e81662067f35d39e4c1)
xdr curr (9ac02641139e6717924fdad716f6e958d0168491)

What did you do?
Used the default identity:
$ soroban config identity address

What did you expect to see?
A non-shared address. Maybe randomly generated on first use.
What did you see instead?
An address and key that everybody who is using the soroban-cli will use by default.
GDIY6AQQ75WMD4W46EYB7O6UYMHOCGQHLAQGQTKHDX4J2DYQCHVCR4W4

Why is this a security bug?
It's surprising that any key is shared.
Tooling that provides any shared key runs the risk of causing someone to think they have a unique key when they don't. Somebody may use the key on mainnet thinking it is a key unique to themselves.
Why is this a general bug?
Developers who use the default identity will be contending for access to the network. The network will only allow one tx per account in each ledger.

True, my thought was that it was useful for generating the same transactions for testing across CI and teams. But it's not that hard to generate a test account with the default seed. This was also when we thought people would use the sandbox.
I vote the first option. Better to be explicit.

For CI testing predictability is still helpful so I think we'd still want to use some common key in CI.

Yeah that was what I was saying.
soroban config identity generate --default-seed

Is equivalent to
soroban config identity generate --seed<PHONE_NUMBER>000000

Then you can use --hd-path for generating multiple accounts.

I don't think we've explicitly said here, but I believe we have agreed to remove the default identity.
cc @mollykarcher if you remember otherwise.

Yes, that's my understanding as well


global admin dashboard

This serves as a place to put global admin tools. Currently:

basic charts
Options to download usage data and whatsapp number list

In future this can be expanded with more features as needed.
Access to these pages is permitted to staff users.
Note: this also moves the Django Admin to /django-admin/

FYI @bderenzi

changes look good, but curious why we chose staff vs admin to have easy access to downloading phone numbers? In my eyes, that is more sensitive information than just the usage data so maybe that can be an additional permission or restricted the downloading of data to admins? I know this isn't a big deal now with the number of people that are staff vs admin on projects, but just thinking about in the future if it were to scale

Sorry for the confusion.
staff refers to the Django is_staff attribute on users which is what is used to gate access to the Django Admin panel. This would only be set for specific global admin users.
Also this dashboard is not team specific, it is a global admin dashboard.


Add more tests for flexible session

Summary
Related to #462. More tests for the new flexible session code.
Details and comments
Fixes #

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-2.4%) to 61.649%

Totals

Change from base Build<PHONE_NUMBER>:
-2.4%

Covered Lines:
3014

Relevant Lines:
4889

💛  - Coveralls

Turns out the test did what it intended to - i.e. testing.
It appears to be an issue with caching on the server side. It was passing the wrong parameters to the second call (to sampler). I've opened an issue with the server.


chore(release): 2.22.4

Version bump in package.json and package-lock.json for release 2.22.4

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


left_sidebar: Adjust size and position of DM icons.

This PR attempts to tweak the positioning of DM-box icons and the size of the Zulip-bot icon, which may appear too low relative to the text, and in the bot icon's case, too large relative to other icons.
While the screenshots below are from MacOS, the original CZO discussion shows a greater existing discrepancy.

Screenshots and screen captures:
Before, 100% zoom (Firefox, MacOS)

After, 100% zoom (Firefox, MacOS)

Before, 110% zoom (Firefox, MacOS)

After, 110% zoom (Firefox, MacOS)

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

The bot icon change in the screenshots looks like an improvement to me, and it looks fine when I test it as well.

Merged, thanks @karlstolley!


Razor View as an input string

Hi,
This library looks great.
However, I see that it might be a great to have a feature where in, instead of just reading the views from a folder, one should be able to pass it to the function.
Use case:
In case one would want to allow the user to edit the template, they same would not necessarily be save at the same place. It might be pulled from a blob, DB or any other location.
Thanks.

Hi @gr8tushar, that sounds like an interesting use case. However, as far as I know, I doubt this can be achieved as this library is just an abstraction of ASP.NET Core Razor engine which expects the razor view file path as input.
Anyhow, I'll still check the possibilities & let you know. Thanks :)

Hi @soundaranbu, yup. This would be great if one would want to send out emails using console / background services via the templates customized in the web app / other places.
More over, if the user customized a template, it would probably not be available in the compiled file / views folder. I would come either from the user directory / DB / BLOB.
Let me know in case you need more info. Would be happy to help in anyway.

I think this should be possible with a custom IFileProvider and Razor runtime compilation.

Razor runtime compilation: https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-5.0
Custom IFileProvider example: https://github.com/mikebrind/RazorEngineViewOptionsFileProviders

I tried configuring services as follows:
var services = new ServiceCollection();
services.AddRazorPages().AddRazorRuntimeCompilation();
services.Configure<Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.MvcRazorRuntimeCompilationOptions>(opts =>
    opts.FileProviders.Add(new MyCustomFileProvider()));

// Add RazorTemplating after registering all dependencies
// this is important for the razor template engine to find the injected services
services.AddRazorTemplating();

and when calling RazorTemplateEngine.RenderAsync, my custom file provider is correctly used by the razor engine, but I then get a CompilationFailedException.
I have found similar errors on the web:

https://stackoverflow.com/questions/61526883/compilationfailedexception-during-runtime-compilation-of-razor-from-aspnetcore-t
https://github.com/aspnet/Razor/issues/1212

But I couldn't get it to compile without errors.

Looks promising :) will give it a try. Thanks!

Hi @gr8tushar, that sounds like an interesting use case. However, as far as I know, I doubt this can be achieved as this library is just an abstraction of ASP.NET Core Razor engine which expects the razor view file path as input. Anyhow, I'll still check the possibilities & let you know. Thanks :)

Like @gr8tushar  mentioned, our use case is that we have several user/customer-specific templates and as such they are stored either on the cloud or in the database for editing purposes. This library makes the email generation process so easy especially since we can use dependency injection to ensure we're only retrieving the data and services needed for any given template. Based on your comment here, I wondered if saving the file at runtime after pulling it from the db would help but it appears there's no runtime support at all. I found older libraries which support this capability and was wondering if this is something worth pursuing in the future or if it was ruled out due to relying on older/unsupported technologies.

I tried this approach. This is working in v1.7.0. I'll be adding samples for this in the coming days. Also, I'm adding some helper classes. so that, it's easier to implement.

This is a great new feature. Thanks!

Hello, any idea when this will be available to use?

Hi @NichlasNielsen, this feature is already possible. Please refer to the above commit for sample implementation. I'll need to add  documentation for this. I'll do that once I get some free time. Thanks.

Does this work for azure functions, I can't get it to work?

Hi @Joffreyvl, technically it should work. But I need to try once to confirm. In the meantime, please upload a sample project if possible. I'll take a look. Thanks.

Ok, I can the see the problem already. Make sure, you've followed the steps here for creating the razor class library https://soundaranbu.medium.com/render-razor-view-cshtml-to-string-in-net-core-7d125f32c79

@soundaranbu do you need a razor class library when you are doing runtime compilation? I am trying to read cshtml files from a blob storage account.

That's a valid point. It's not necessary. However, you'll need to make these changes to make it to work.

With my recent PR, the function public static void AddRazorTemplating(this IServiceCollection services) could be extended to allow customizing the MvcRazorRuntimeCompilationOptions, such as public static void AddRazorTemplating(this IServiceCollection services, Action<MvcRazorRuntimeCompilationOptions>? setupOptions) and if setupOptions is not called, then services.Configure<MvcRazorRuntimeCompilationOptions>(setupOptions); can be called. This approach will work for the manually registered instance instead of the static RazorTemplateEngine methods.

Hi, I have a pull request #48 that should hopefully address your concerns. Can you take a look and provide any feedback to changes for your use case.  In this case, you will need to use the following approach to initialize
var services = new ServiceCollection();
services.Configure<Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.MvcRazorRuntimeCompilationOptions>(opts =>
    opts.FileProviders.Add(new MyCustomFileProvider()));

services.AddRazorTemplating();

and either use the static method RazorTemplateEngine.RenderAsync(...) or you can inject in an instance of IRazorTemplateEngine into your defendant service.  Hopefully we can have a prerelease with these changes deployed to nuget soon.

any solution on this, rendering razor string as input instead of path ?

The PR mention here was merged. You should be able save your template as an embedded resource and add a ManifestEmbeddedFileProvider.
Say you want to store your template in a database, you would need to create a file provider that could query the database for the given template.
https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.fileproviders.ifileprovider?view=dotnet-plat-ext-8.0


[sharing-ng] blocksDownload link type is not implemented yet

CS3ResourcePermissionsFromSharingLink does not implement the blocksDownload link type.
sending a request with that type returns
{"error":{"code":"invalidRequest","innererror":{"date":"2023-12-05T05:52:31Z","request-id":"eb2eb607293d/ADjidDU61G-005777"},"message":"invalid link type"}}

See also https://github.com/owncloud/ocis/issues/6993
CC @micbar

Yes. Not implemented. Also noted in the spec.


devDependencies: removed mocha, added verb

Took a wild guess, due to lack of test, & likelihood of you having verb installed globally.

@tomByrer how did I miss this PR! I'm so sorry, I'm terrible at noticing these github notifications.
I'll get this merged in, I really appreciate it!

@tomByrer would you mind checking "allow edits" on the RHS of this PR?

@tomByrer would you mind checking "allow edits" on the RHS of this PR?

done


The cached nc files need to be better organized and new methods should be provided to judge and read them.

Description
In "hydrodatasource/reader/data_source.py", we use "cache_attributes_xrdataset" and "cache_timeseries_xrdataset" to trans csv files into nc files, to support our model to read data.
However, we encounter two problems here.

When we have already generated the nc files before we add the number of the basins in the "data_path", the "read_ts_xrdataset" function will fail to read the added basins, and will regenerate the nc files from the "data_path". However, it will not delete the generated nc files. And when we read the time_series nc files or the attributes nc files, it will cause an error. We need to manually delete all the nc files in ~/.cache/hydro/ of the specified time unit.
When we change the "data_path" of the "SelfMadeHydroDataset", we will still keep the old nc files in cache dir. But when the same basins exist between nc files, it will also cause an error in the case mentioned in 1.

The easiest solution is that, we will delete the attr nc file and all the timeseries files with the time units we need, such as "1D", in the CACHE dir, and we always regenerate new nc files based on the "data_path" given.
But I'm wondering if that's a good solution.


Error when cloning in Windows

Hello,
Your configuration won’t load and crash on Windows at install.
See image below.

Hi @raylemon , thank you for the feedback.
I'm using the config principally in a Linux machine. However, I did test it in a Windows 10 machine, it worked with some limitations (some issues with tree-sitter and dirvish-fd).
It seems to me that this error is caused by straight.el. Try to remove the .emacs.d/local folder and try again.
By the way, what version of Emacs you are using? and how you installed it (using Gnu installer, MSYS2?).

I use emacs 29 build with Msys2 on Windows 11.
The bug is due to version of emacs. I have tested with vanilla emacs 28 (installed with winget tool) and it works.
I use your doom config in Windows (with some adjustements), and i love your config (mainly for ltex-lsp).

Thanks for the feedback, great to hear that!
For the ls command, I've fixed it in my test machine by adding C:\MSYS2\usr\bin (where there is a version of ls with other Unix-like commands) to the Path environment variable (from Win+R, SystemPropertiesAdvanced, click Environment Variables).
I hope it helps!

Thanks for the quick reply !
So, another problem, linked to this : if I want to use chemacs 2 to have your config and doom config, I can’t use your config with another folder than .emacs.d

I don't think that the current config works with Chemacs2, in Emacs 29+ thought, there is a new option --init-directory which should work!

Thanks again, I’ll investigate this !!

After taking a look at my old Chemacs2 configuration, I would say that you can specify your MinEmacs directory in Chemacs2's ~/.emacs-profiles.el like this:
(("doom"      . ((user-emacs-directory . "path/to/your/doom/clone")
                 (env . (("DOOMDIR" . "~/.doom.d")))))
 ("minemacs"  . ((user-emacs-directory . "path/to/your/minemacs/clone")
                 (env . (("MINEMACS_DIR" . "~/.minemacs.d"))))))

In MinEmacs, all directories are defined with respect to user-emacs-directory, so if this one is set properly by Chemacs2, it should work!

I'm assuming this issue is resolved, please feel free to reopen it if you still face this problem.


The details of mouse-hovering over a price candle are difficult to read

https://bitsharestalk.org/index.php/topic,19417.msg249458.html#msg249458

It's much better now but if you could add a leading 0 for all the figures making up the timestamp, it would be perfect as it would make the number of characters constant and thus not jumping when the mouse is being moved.
e.g. 11/2/2015, 9:00:00 ---> 11/02.2015, 09:00:00

Seems like an easy number formatting fix.


[Bug] Some tests for script-generator don't work

See https://kotlinlang.slack.com/archives/C02UUATR7RC/p1682589060948629?thread_ts=1682589060.948629&cid=C02UUATR7RC

I can look into this.

Closing per https://github.com/typesafegithub/github-workflows-kt/issues/844


I think we need a better way to handle permissions

Currently, it seems we ask for 3 permissions on login/registration and require all 3 to be accepted:

public_profile
email
user_friends

While I think its convenient to ask for user_friends on login, its probably shouldn't be required for using Kiva.
This makes me think we might need a way to differentiate between "permissions that are requested on login" and "permissions that are required".
If we do that, we'll also have to make sure we don't keep asking users for a permission that they've already rejected.  I think the only time it would be ok to ask them for that permission again is if they explicitly took an action that requires the permission.
Here's Facebook's documentation for working with permissions.

Taken care of here with pull #4


touchend / mouseup listeners for ngSwipe should be bound to window

As touchend / mouseup listeners are bound to element, if the user releases outside of the element's boundaries, the touchend / mouseup listeners wont be called.
A mouse up event from an element is intrinsically a mouse up event from the window.
https://github.com/angular/angular.js/blob/master/src/ngTouch/swipe.js
Line 130:
angular.element(window).on('touchend mouseup', function(event) {
    if (!active) return;
    active = false;
    eventHandlers['end'] && eventHandlers['end'](getCoordinates(event), event);
});

http://plnkr.co/edit/VebWtE3HiFX3xHWzJmif

I'm closing this issue since the ngTouch module will be deprecated in AngularJS 1.7.0, and we will not do any more work on it. This is because touch handling is a complex topic, and there are stand-alone libraries that are better equipped to handle all the nuances and edge cases. For example, https://hammerjs.github.io/, which is also used by Angular.


Importing BIDS dataset

I was excited to see that ezBIDS allows me to import BIDS datasets. I aimed to find an easy way to use the GUI to upload a bids directory to BrainLife.
I used a validated BIDS dataset created with Heudiconv (and therefore dcm2niix underneath). You can retrieve the dataset here: https://osf.io/m2dz7
The dataset includes IntendedFor fields for both the phasediff.json and the reverse polarity DWI images in the fmap directory.
These are correctly specified as confirmed by the BIDS validator and by running fMRIprep and QSIprep.
I was somewhat disappointed that ezBIDS encountered so many difficulties importing a fully validated BIDS dataset:

fmap/sub-CAM003_ses-01brain_dir-PA_epi.nii.gz was interpreted as a BOLD image with 8 volumes.
anat/sub-CAM003_ses-01brain_acq-hippo_T2w.nii.gz, which is a standard partial volume T2w image aligned to the hippocampus, was interpreted as being the same as the other T2w image.
fmap/sub-CAM003_ses-01brain_phasediff.nii.gz was confused with the magnitude images
func/sub-CAM003_ses-01brain_task-rest_run-01_bold.nii.gz was successfully identified as task-rest but NOT successfully identified as run-01

I was surprised that there was no pass-through mechanism that would do something like:

detect that the data uploaded looked like a BIDS directory,
validate it with the BIDS validator, only report problems found by the validator (which would have been no errors in this case)
allow me to upload it to BrainLife.

Thanks for all your hard work!

Thanks for these helpful comments, @dkp!
Indeed, now that ezBIDS is interoperable with both brainlife.io and OpenNeuro, we've been meaning to incorporate a mechanism that assess a dataset's BIDS-compliance. If so, ezBIDS should skip its processing steps (i.e. web pages) and proceed directly to the Finalize page for transfer.
We can't commit to a timeline, but this is definitely something that would be useful to users, particularly for cases like yours. We'll keep you updated on this feature enhancement.
cc @anibalsolon

On second though, it might be better to still allow users to proceed through the steps, even though the data should all be accurate. Reason being in the event user wants to upload task events timing data for conversion to events.tsv format, or defacing of anatomical images.

Maybe there could be a choice.  I'm glad it is on your roadmap though, because the command-line setup for uploading to brainlife is a bit difficult for anyone who isn't skilled with npm.  Thank you.

hi @dkp thanks so much for your contribution here. I was wondering whether you were aware that the the Command Line Interface (CLI) of brainlife.io allows uploading BIDS datasets.
See here: https://brainlife.io/docs/cli/upload/
The command would like something like this:
bl bids upload --tag test --project 5b031990251f5200274d9cc4 -d my_bids_dir
Installing the CLI should be easy, enough:  https://brainlife.io/docs/cli/install/
Let me know if this helps! And absolutely we will also improve ezBIDS!

Thank you @francopestilli! I have used the command line interface.  However, I teach neuroimaging and I know that folks who are not that comfortable at the command line are going to have trouble with node and npm (it is not always as clean and flawless as the installation page implies, at least in my experience).  That's why I was hunting for a GUI to do the same thing.

I see the use case. We will work on the GUI. Thanks for using brainlife for teaching.
If possible, please report issues on the CLI repository when you encounter them. Without that we cannot help/improve.

@dkp,
I've pushed a series of changes that allow ezBIDS users to upload BIDS-compliant data(sets).  If ezBIDS determines that the uploaded data is BIDS-compliant according to the bids-validator (i.e. no validation errors generated), then several processing steps are altered/skipped. If any errors are found however; ezBIDS will not treat the data as BIDS-compliant.
You will still need to proceed through the web-pages; however, the BIDS information (data type, suffix, entity labels) from each image file is preserved, including information in the root level folder (e.g., dataset_description.json, participants.json, and participants.tsv), as well as IntendedFor mapping information.
Three things to note:
1). Any task events (events.tsv) files uploaded will currently not be converted. This will take me some time, given the workflows ezBIDS uses for converting users' task events files to BIDS' events.tsv format.
2). B0FieldSource and B0FieldIdentifier mapping options are not currently unavailable on ezBIDS, so any uploaded BIDS-compliant data with these mappings won't be preserved.
3). Lastly, uploaded BIDS-compliant data will still subject to ezBIDS' QA checks (e.g., checking to ensure that an IntendedFor mapping doesn't point to a field map), so there's the possibility that certain BIDS information could be modified if the QA checks determine it to be problematic.
I've tested this on several different BIDS-compliant datasets, and things appear to be working as expected, but let me know if you encounter any issues of your own.

I tried it and it was awesome!  I can't thank you enough.  This lowers to bar for exploring Brainlife.


Update zio, zio-streams, zio-test, ... to 2.0.10

Updates

dev.zio:zio
dev.zio:zio-streams
dev.zio:zio-test
dev.zio:zio-test-magnolia
dev.zio:zio-test-sbt

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

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "dev.zio" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "dev.zio" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #185.


create a system for reporting errors

How it works

When you click Report an issue, the chrome extension queries the chrome API to fetch all user preferences.
This data is encoded and appended to the end of the URL (https://politicry.com/report#ENCODED_DATA). It is stored after the # for privacy reasons (the server can't see this part of the URL). The encoding process is as follows

The user preferences are a JSON object - e.g. { "redditToggled": true }
This object is first converted into a string - "{\"redditToggled\":true}"
Then the string is encoded using base64  - eyJyZWRkaXRUb2dnbGVkIjp0cnVlfQ==

The website decodes the data from the URL, and uses it to populate the form
The website also populates the form with other infomation such as the computer's memory. This is available to every browser via the navigator object
When the user submits the form, it opens a mailto: link, which is a link that opens the mail app with a pre-populated email.

Test Plan

start the website cd website && npm run dev
build the extension cd extesion && npm run build
reload the extension
click Report an issue in the extension
edit the URL and replace https://politicry.com with http://localhost:3000

Todo

[x] change the "Report an issue" button to open politicry.com/report instead
[x] pass data from the extension to politicry.com/report
[x] create politicry.com/report
[x] receive data on the report website from the extension
[x] make the submit button send an email

Motivation
See issue #99. We need a better system for reporting issues, just redirecting a user to github issues is not adequate.
Attached GitHub issue
Closes #99
Checklist
Documentation

[x] Updated the readme documents (README.md etc.)
[x] New functions and methods have additional comments added to document their usage

Local Build

[x] Ran all pre-commit hooks pre-commit run --all-files
[x] Extension has been tested to build correctly cd extension && yarn && yarn build
[x] Backend has been tested to build correctly cd backend && docker-compose build
[x] Extension test suite has been run locally cd extension && yarn && yarn test
[x] Backend test suite has been run locally cd backend && python3 -m unittest

GitHub

[x] Target branch has been set correctly
[x] PR has been rebased onto target branch
[x] PR has been assigned an owner
[x] Author has performed a self-review of the code
[x] Removed the WIP message from the top of this PR

Also, should the Blocked Words field be empty when you first install the extension and click report (the default list of words doesn't show).

good thinking, I've changed it to "Not configured". This might be useful to identify users who have never edited the blocked words list.
🦖


[Bug]: showing code.

Contact Details
No response
What happened?
In "Build your Dynamic Profile" section in name field code is visible "#include" which is note possible that every user understand this.This issue need to solved.

What browsers are you seeing the problem on?
Chrome
Relevant log output
No response
Are you interested in contributing?

[X] I'd like to work on this issue

Code of Conduct

[X] I have used the search function to check if an issue already exists
[X] I agree to follow this project's Code of Conduct

Which program are you contributing in?
gssoc

That's done intentionally to keep coding theme


feat: add cisbenchmark checks for session 1.2 API Server

Signed-off-by: Jose Donizetti<EMAIL_ADDRESS>Adds rules for session 1.2 API Server (up to 1.2.30, for now 1.2.31 and 1.2.32 are not included). This is my first time writing opa, let me know if you see anything that can be improved.
https://github.com/aquasecurity/trivy/issues/2200
cisbenchmark version: V1.23
"KCV0001": "1.2.1 Ensure that the --anonymous-auth argument is set to false (Manual)",
"KCV0002": "1.2.2 Ensure that the --token-auth-file parameter is not set (Automated)",
"KCV0003": "1.2.3 Ensure that the --DenyServiceExternalIPs is not set (Automated)",
"KCV0004": "1.2.4 Ensure that the --kubelet-https argument is set to true (Automated)",
"KCV0005": "1.2.5 Ensure that the --kubelet-client-certificate and --kubelet-client-key arguments are set as appropriate (Automated)",
"KCV0006": "1.2.6 Ensure that the --kubelet-certificate-authority argument is set as appropriate (Automated)",
"KCV0007": "1.2.7 Ensure that the --authorization-mode argument is not set to AlwaysAllow (Automated)",
"KCV0008": "1.2.8 Ensure that the --authorization-mode argument includes Node (Automated)",
"KCV0009": "1.2.9 Ensure that the --authorization-mode argument includes RBAC (Automated)",
"KCV0010": "1.2.10 Ensure that the admission control plugin EventRateLimit is set (Manual)",
"KCV0011": "1.2.11 Ensure that the admission control plugin AlwaysAdmit is not set (Automated)",
"KCV0012": "1.2.12 Ensure that the admission control plugin AlwaysPullImages is set (Manual)",
"KCV0013": "1.2.13 Ensure that the admission control plugin SecurityContextDeny is set if PodSecurityPolicy is not used (Manual)",
"KCV0014": "1.2.14 Ensure that the admission control plugin ServiceAccount is set (Automated)",
"KCV0015": "1.2.15 Ensure that the admission control plugin NamespaceLifecycle is set (Automated)",
"KCV0016": "1.2.16 Ensure that the admission control plugin NodeRestriction is set (Automated)",
"KCV0017": "1.2.17 Ensure that the --secure-port argument is not set to 0 (Automated)",
"KCV0018": "1.2.18 Ensure that the --profiling argument is set to false (Automated)",
"KCV0019": "1.2.19 Ensure that the --audit-log-path argument is set (Automated)",
"KCV0020": "1.2.20 Ensure that the --audit-log-maxage argument is set to 30 or as appropriate (Automated)",
"KCV0021": "1.2.21 Ensure that the --audit-log-maxbackup argument is set to 10 or as appropriate (Automated)",
"KCV0022": "1.2.22 Ensure that the --audit-log-maxsize argument is set to 100 or as appropriate (Automated)",
"KCV0024": "1.2.24 Ensure that the --service-account-lookup argument is set to true (Automated)",
"KCV0025": "1.2.25 Ensure that the --service-account-key-file argument is set as appropriate (Automated)",
"KCV0026": "1.2.26 Ensure that the --etcd-certfile and --etcd-keyfile arguments are set as appropriate (Automated)",
"KCV0027": "1.2.27 Ensure that the --tls-cert-file and --tls-private-key-file arguments are set as appropriate (Automated)",
"KCV0028": "1.2.28 Ensure that the --client-ca-file argument is set as appropriate (Automated)",
"KCV0029": "1.2.29 Ensure that the --etcd-cafile argument is set as appropriate (Automated)",
"KCV0030": "1.2.30 Ensure that the --encryption-provider-config argument is set as appropriate (Manual)",

@chen-keinan ^^

@josedonizetti can you put more details on , it will be clear to understand:

which cis bench was the the checks written against
mapping between rego checks and cis checks

@chen-keinan prefix id changed!

@liamg @owenrumney This is ready for review now.


Unable to pass Int value from JSON via $S{id} to .withPathParams, resulting in "Validation failed (numeric string is expected)"

In a test, an ID is being stored using .stores when creating a POST request.
the ID is an Integer. However, when passing to .withPathParams using $S{<variable>}, it results in Validation failed (numeric string is expected).
The method in the main code has ParseIntPipe active for the value.

I'm not sure how to replicate the issue.
I'm able to use data management in path params without any effort.
const { spec, stash } = require("pactum");

stash.addDataMap({
  ID: '232'
})

spec()
  .get('https://httpbin.org/anything/{id}')
  .withPathParams('id', '$M{ID}')
  .inspect()
  .toss()

@kunaldas1997 can you share a sample code for the above issue?
I was also able to make it work with stores. Below is a sample test.
// test.js
const { spec, stash } = require('pactum');

describe('sample test', () => {
  it('get all list users', async () => {
    await spec()
    .get('https://reqres.in/api/users?page=1')
    .stores('id', 'data[0].id')
    .inspect()
  });

  it('get random user', async () => {
    await spec()
    .get('https://reqres.in/api/users/{id}')
    .withPathParams('id', '$S{id}')
    .inspect()
  });
});

`it('should create bookmarks', async () => {
return pac
.spec()
.post('/bookmarks/post')
.withHeaders({
Authorization: 'Bearer $S{a_t}'
})
.withBody(dto)
.expectStatus(201)
.stores('bookmarkId', '[0].id').inspect();
  });`

The above part creates the user, and stores the bookmark.
The following part access the same bookmarkId
` it('should get bookmark by id', async () => {
    return pac
      .spec()
      .get('/bookmarks/get/{id}')
      .withPathParams('id', '$S{bookmarkId}')
      .withHeaders({ Authorization: 'Bearer $S{a_t}' })
      .expectStatus(200)
      .inspect();

  });`

The part I am testing
@Get("get/:id")     getBookmarkById(@GetUser('id') userId: number, @Param('id', ParseIntPipe) bookmarkId: number) {         return this.bookService.getBookmarkById(userId, bookmarkId);     };

Unable to understand the code block here. Sorry for that.

It seems the mentioned url is wrong. Why does it has a get in between bookmarks and id?
- /bookmarks/get/{id}'
+ /bookmarks/{id}'

I don't think the issue is w.r.t pactum. If you can provide us a sample reproducible code, we can further investigate the issue.

I have already attached that above.

Can you create a repository with sample code in github and share it with us.

@kunaldas1997 One GET standalone controller snippet will not help to troubleshoot.
This is not an issue with pactumJS but your server side implementation. One things that might be causing this is your order of routes in the controller are incorrect ? (apparently in NestJS routes order matter!)
Click for Sample Implementation to replicate

// custom.decorator.ts
  import { createParamDecorator, ExecutionContext } from '@nestjs/common';

  export const GetUser = createParamDecorator(
    (data: string, ctx: ExecutionContext) => {
      const request = ctx.switchToHttp().getRequest();
      const user = request.user;

      return data ? user?.[data] : user;
    },
  );

// app.service.ts
import { Injectable } from '@nestjs/common';

@Injectable()
export class BookService {
  getBookmarkById(userId: number, bookmarkId: number): object {
    return {
      "userId":userId,
      "bookmarkId": bookmarkId
    };
  }

  createBookmark(): object {
    return [
      {
        "id": "1"
      }
    ];
  }
}

// app.controller.js
import { Controller, Get, Post, Param, ParseIntPipe, HttpCode } from '@nestjs/common';
import { BookService } from './app.service';
import { GetUser } from './custom.decorator';

@Controller("bookmarks")
export class AppController {
  constructor(private readonly bookService: BookService) {}

  @Post("post")
  @HttpCode(201)
    createBookmark() {
      return this.bookService.createBookmark();
    };

  @Get("get/:id")
    getBookmarkById(@GetUser('id') userId: number, @Param('id', ParseIntPipe) bookmarkId: number) {
        return this.bookService.getBookmarkById(userId, bookmarkId);
    };

    @Get("get/all")
    getBookmarks() {
        return {"hello": "world"};
    };
}

Click for Tests

const {request, spec } = require('pactum');

request.setBaseUrl("http://localhost:3000")

describe('Bookmarks test', () => {

  let dto = {}

  it('should` create bookmarks', async () => {
    await spec()
      .post('/bookmarks/post')
      .withHeaders({ Authorization: 'Bearer $S{a_t}' })
      .withBody(dto)
      .expectStatus(201)
      .stores('bookmarkId', '[0].id').inspect();
  });

  it('should get bookmark by id', async () => {
    await spec()
      .get('/bookmarks/get/{id}')
      .withPathParams('id', '$S{bookmarkId}')
      .withHeaders({ Authorization: 'Bearer $S{a_t}' })
      .expectStatus(200)
      .inspect();
  });

  it('should get bookmark all', async () => {
    await spec()
      .get('/bookmarks/get/all')
      .withHeaders({ Authorization: 'Bearer $S{a_t}' })
      .expectStatus(200)
      .inspect();
  });

});

Swapping the order of @Get routes in the above mentioned example implementation gets rid of the error and tests pass.
References
Below stackoverflow answers should help

https://stackoverflow.com/a/70088559
https://stackoverflow.com/questions/59118081/nestjs-validation-failed-numeric-string-is-expected-inside-controllers-nested


Automatic structuring in metadata editor using OCR

In Kitodo.Production repository a detailed ticket for integrating the automatic structuring was created.
https://github.com/kitodo/kitodo-production/issues/5476

@markusweigelt The linked feature sounds great. But i think it would be very useful to have this functionality (in a way also the basis of the described functionality):

show the recognized OCR as plain text inside of Kitodo (by parsing the ALTO and filtering out the XML tags)
enable the OCR of a single page or multiple pages from Kitodo
give an indication in the Kitodo editor which pages are OCR processed and which are not

The main use case for me would be to allow the OCR to be done at the beginning of a workflow. Even before people have done some quality assurance (missing pages etc.). So that the OCR does not have to wait. And if people then do corrections in Kitodo enable the OCR only for newly added pages for example.
I am not quite sure if those features could be adressed in the KITODO-OCRD-project or wether they are something for the Kitodo development fund, what do you think?

Most of the things which kitodo/kitodo-production#5476 describes are new Kitodo UI features – out of scope for our OCR-D integration project, so yes, that would mean Kitodo development fund.

show the recognized OCR as plain text inside of Kitodo (by parsing the ALTO and filtering out the XML tags)

What we can do here is previewing OCR results with OCR-D browser.
On the Kitodo side, for the intended extension, I think you're right – a simple plain text editor would suffice (one line per TextLine with all its ./String/@CONTENT concatenated).

enable the OCR of a single page or multiple pages from Kitodo (from the metadata editor)

Already possible (see --page-id option for for_production.sh and for_presentation.sh). The syntax is explained here (notice multi-value / range / regex support).

give an indication in the Kitodo editor which pages are OCR processed and which are not

That's also something we (as integration project) have little control over, since it's a genuine UI feature. All we can do is ensure the filesystem side (FULLTEXT subdirectory and file names) fits Kitodo's conventions.

The main use case for me would be to allow the OCR to be done at the beginning of a workflow. Even before people have done some quality assurance (missing pages etc.). So that the OCR does not have to wait. And to allow people to use the OCR results while structring. And if people then do corrections in Kitodo enable the OCR only for newly added pages for example.

Yes, these are valid use-cases, too. But renaming pages adds the difficulty of ensuring consistency (as long as OCR is still running). I'll try to reformulate under kitodo/kitodo-production#5476.
For ocrd_kitodo IMO we can already close (as it's already supported from our side).

For ocrd_kitodo IMO we can already close (as it's already supported from our side).

Except perhaps the feature that we should skip pages which have already been processed earlier (an ALTO file exists).

Great, thanks for your detailed answer!


webhook: cannot unmarshal string into Go value of type github.Organization

I've got code that looks like this:
func serveGithubHook(w http.ResponseWriter, req *http.Request) {
	decoder := json.NewDecoder(req.Body)
	defer req.Body.Close()
	event := github.WebHookPayload{}
	err := decoder.Decode(&event)

Which when github sends its payload results in an error:
json: cannot unmarshal string into Go value of type github.Organization

I think this is because the repository field on the Body has organization: "string", whereas the WebHookPayload has a Repository whose organization field is a *Organization.
Should this work? Have I made a mistake?

How is it a bug in the Github API? If it were, is it something they can fix without breaking all existing clients of the API?
But I also don't understand how anyone is successfully using this code to receive push payloads currently.

It's not really a bug but an annoying inconsistency, ideally you would want the representation of a resource to be the same across endpoints, especially when you are using a language like Go.
I ran into a similar issue here: https://github.com/google/go-github/pull/158

@pengwynn Is this a known issue?

@pengwynn Is this a known issue?

@parkr yeah, and something we'd like to change in a future version.

Yeah I just hit this as well for decoding push webhooks. Is there any idea on how to fix this so I can maybe tackle it?