Route and Listener setup tips

Very useful library 👍  Just a few things I noticed when implementing it -
I had to reference the route like this (note the slash at the beginning of the class)
Route::any('/aws/sns', '\Rennokki\LaravelSnsEvents\Http\Controllers\SnsController@handle');
I used the event:generate artisan command to generate the listeners and it added the wrong class declarations at the top of the listeners e.g.
change
use App\Events\Rennokki\LaravelSnsEvents\Events\SnsSubscriptionConfirmation
to
use Rennokki\LaravelSnsEvents\Events\SnsSubscriptionConfirmation
change
use App\Events\Rennokki\LaravelSnsEvents\Events\SnsEvent
to
use Rennokki\LaravelSnsEvents\Events\SnsEvent

Hi @plindsay
Thanks for your contribution
Do you have any advice for the listener of the subscription confirmation?
I am trying to test this in my app, but for some reason, I don't receive any POST request.
At the moment, my listeners are set to log the event but nothing gets there.
I am wondering if it is something related with the authentication?
Any help would be appreciated, thanks!
Note: My app is on staging so my subscription on SNS is set to http://myproject.ecstaging.com/aws/sns

Hello,
No problem - was there anything in the logs to help you?
Also, have you remembered to whitelist the route in VerifyCsrfToken.php that receives the POST request?
Cheers,
Phil

On 11 Dec 2019, at 03:18, Paloma Martinez<EMAIL_ADDRESS>wrote:
Hi @plindsay
Thanks for your contribution
Do you have any advice for the listener of the subscription confirmation?
I am trying to test this in my app, but for some reason, I don't receive any POST request.
At the moment, my listeners are set to log the event but nothing gets there.
I am wondering if it is something related with the authentication?
Any help would be appreciated, thanks!
Note: My app is on staging so my subscription on SNS is set to http://myproject.ecstaging.com/aws/sns
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Yes! I worked with both logs and double-checked the whitelist. There was the problem. Uhhh!
Thank you so much

@plindsay Fixed in https://github.com/renoki-co/laravel-sns-events/commit/72146c1d6d518b9c705bc39b0a7d66cfcb508cb8


Add scalar documentation

Description
Adds documentation for Scalar types. Requires https://github.com/strawberry-graphql/strawberry.rocks/pull/23 to be merged first.
Types of Changes

[ ] Core
[ ] Bugfix
[ ] New feature
[ ] Enhancement/optimization
[x] Documentation

Issues Fixed or Closed by This PR

#328

Checklist

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] I have tested the changes and verified that they work and don't break anything (as well as I can manage).

Hi, thanks for contributing to Strawberry 🍓!
We noticed that this PR is missing a RELEASE.md file. We use that to automatically do releases here on GitHub and, most importantly, to PyPI!
So as soon as this PR is merged, a release will be made 🚀.
Here's an example of RELEASE.md:
Release type: patch

Description of the changes, ideally with some examples, if adding a new feature.

Release type can be one of patch, minor or major. We use semver,so make sure to pick the appropriate type. If in doubt feel free to ask :)

/preview-docs sha=2020c17


Support partitioning in the SignificantTerms aggregation

This patch adds the missing methods to the SignificantTerms aggregation.

I'd prefer the more generic:
func (a *SignificantTermsAggregation) IncludeExclude(includeExclude *TermsAggregationIncludeExclude) *SignificantTermsAggregation {
	a.includeExclude = includeExclude
	return a
}

The thing is that these methods are present in the Terms and SignificantText aggregations.
So we can use them like:
agg := NewSignificantTextAggregation().Field("field_name").Partition(0).NumPartitions(20)
or:
agg := NewTermsAggregation().Field("field_name").Partition(0).NumPartitions(20)
But this will fail:
agg := NewSignificantTermsAggregation().Field("field_name").Partition(0).NumPartitions(20)
Seems inconsistent.

Oh my. Yes, then we should add the Partition and NumPartitions and mark them as deprecated for removal in the future.


Can not send log event with Statsig.log_event

Thanks for creating Ruby SDK 😄
I am trying to send a custom event to Statsig using Statsig.log_event .
Now, I'm running my scripts in development, but it doesn't work. (I cannot send custom events to statsig metrics.)
When I executed Statsig.log_event, it only just returns nil. It does not return any errors.
Docs I read.
https://docs.statsig.com/server/rubySDK#step-5---log-event
SDK version: 1.6.1
Ruby version: 3.0.2
What I did
I initialized Statsig like this.
options = StatsigOptions.new({ "tier" => tier })
Statsig.initialize(Rails.application.credentials.statsig_server_secret_key, options

and I will send custom log event with ActiveJob, like this
class TrackStatsigEventJob < ApplicationJob
  queue_as :default

  def perform(attributes)
    Statsig.log_event(statsig_user(attributes), attributes[:event_name], attributes[:value], attributes[:event_properties])
  end

  private

  def statsig_user(attributes)
    StatsigUser.new({
      "user_id" => attributes[:user_id], # user_id is random uuid, per user
    })
  end
end

Questions
By reading the source code, I found out that log_event is executed via several class instance methods. But, I can not understand this line.
https://github.com/statsig-io/ruby-sdk/blob/768db34124e85ece1d7866941db13493c0bf520a/lib/statsig_logger.rb#L19
Q1. What does this number 500 mean?
Am I correct in assuming that this code will only send events to Statsig when the number of events stored in @events exceeds 500?
Q2. Is there anything I'm missing or possible causes for sending the event?
Thank you for reading my issue 😄

Hey!
We batch our logs to minimize network calls.
The line you pointed out is making us flush logs whenever we have at least 500 of them. However, we also flush logs periodically, every 60 seconds, so even if you don’t hit 500 logs we’ll still upload them eventually.
If you’re not seeing logs uploaded even after a minute, then that’s a bug. We’ll look into it soon!

Hi @roim !
OK, I will check the status of the log 😄

@roim
I tried it again. But, it doesn't send a events.
this my script I tried.
user = StatsigUser.new({'user_id' => User.first.uuid}) # User.first is my local db user record
Statsig.log_event(user, 'add_to_cart', 'SKU_12345', { 'price' => '9.99', 'item_name' => 'diet_coke_48_pack' }) # docs sample code

# and I force "flush" by Statsif.shutdown
Statsig.shutdown

I have added a log inside the gem and confirmed that Network#post_helper is called, but I have not checked the behavior after that.

Could you confirm you called initialize?
Statsig.initialize('server-secret-key')

I have a minimal repro for the issue that was reported:
gem 'statsig', '~>1.6.1'
require 'statsig'

Statsig.initialize(<SERVER_SECRET>)
user = StatsigUser.new({'userID' => '1234'})
gate = Statsig.check_gate(user, 'test_gate')
config = Statsig.get_config(user, 'test_config')
puts gate
puts config.value

Statsig.log_event(user, 'add_to_cart', nil, nil)

Statsig.shutdown

The gate and config values are printed correctly, but log events fail to show in the console.  I am continuing to investigate

@tore-statsig
Thank you.
I will continue my research with the script at hand.

We have a fix ready and will publish a new version of the SDK shortly

the ruby sdk v1.6.2 has been published with the fix, and the provided sample is now working as expected, provided you:
gem install statsig
And update the version to 1.6.2:
gem 'statsig', '~>1.6.2'
require 'statsig'

Statsig.initialize(<SERVER_SECRET>)
user = StatsigUser.new({'userID' => '1234'})
gate = Statsig.check_gate(user, 'test_gate')
config = Statsig.get_config(user, 'test_config')
puts gate
puts config.value

Statsig.log_event(user, 'add_to_cart', nil, nil)

Statsig.shutdown

Thanks for the detailed bug report!

@tore-statsig
Thanks a lot!!!!!!!!!!!!
I will do so 👍

Hello guys, anyone having problem to call Statsig.shutdown() on android  ?
When I call it my app completly crashes because of the runBlocking inside of the method, the problem is I am not having any logs from it


Repeater row_label arguments are undocumented

Issue description:
The repeater control has optional arguments for a row label and button label, but I had to dig into the code to find them. As far as I can tell, these options are not documented in the official documentation.
Version used:
https://kirki.org/docs/controls/repeater.html
Using theme_mods or options?
N/A
Code to reproduce the issue (config + field(s))
N/A

If someone can spare a few minutes to update the docs on https://kirki.org/docs/controls/repeater.html that would be great...
Sorry I'm not doing it myself, time is a luxury right now. 😞


Revert "Removes reloading of routes when eager loading ..."

Reverts plataformatec/devise#3195, that proved to be create an regression @ https://github.com/plataformatec/devise/pull/3153#issuecomment-57259282. We need to eager load the routes to ensure that the our mappings and helpers are defined before loading the rest of the app.

Consequently routes are loaded twice at Rails startup, which is not good for Rails startup time if there are many routes. Any other ideas how to avoid this?


✅ (file): Add functional tests inspired from unit tests

I would love to see the same tests for functional testing to make sure those all work on the robot.
Originally posted by @ladislas in https://github.com/leka/LekaOS/pull/1275#pullrequestreview-1275076949

Might be related to

#1161


Use the Zipkin URLConnectionReporter from new zipkin-reporter libs…

… rather than copy-pasting from brave

@adriancole - everything looks a lot nicer after getting rid of the copy-paste code and using the zipkin-reporter lib. This should make it trivial for users to take advantage of new reporters as they show up. Thanks for pulling the reporter stuff out into a separate lib!

Closing this PR without merging for now. After the zipkin-reporter libs stabilize a little I'll update and reopen.


Remove DO-specific configurations

Configurations specific to the Data Observatory should ultimately be removed from the Python SDK, which should be able to get everything it needs from OVE Core using its APIs.
However, a major part of the Data Observatory specific configurations is the list of port numbers.
This transition is therefore blocked until we start proxying our microservices properly, rather than assigning them to a port range that differs between installations.

This issue is no longer blocked as the apps are now listed under http://OVE_CORE_HOST:PORT/app/OVE_APP_NAME.

@jamesscottbrown, I am affraid the issue is not yet fully resolved. Can we get rid of the dodev and doprod specifications altogether please?


Fix TomlTargetKind parsing rules

There were no reasons to disallow [[target.lib]].
On the other hand, it would be cool to expect target names to be valid package names.

Stack:

#709
#697
#675
#657
#646
#708 ⬅
#707

⚠ Part of a stack created by spr. Do not merge manually using the UI - doing so may have unexpected results.

Closing pull request: commit has gone away

superseded by #712


Configurable websocket initial connection timeout

Can the timeout for the web socket to be established be configurable? Due to lack of web proxy support on our corporate network it takes some time for this to fail.

It can be. Not sure why it isn't in the README (I could have swore it was at some point...).
See here:
https://github.com/daltoniam/Starscream/blob/master/Source/WebSocket.swift#L178
Basically just set the socket.timeout = 20 or whatever you need.


Dependency resolving via mix.exs

This appears to work quite nicely.
I have tested it out on a few dummy projects, including elm libs with other nested elm libs.
Mix does spit out a warning when loading the "elchemy.exs" script - that seems acceptable for now.
It became apparent that at some later time the existing steps from elchemy compile could be split and better integrated with the mix deps.get and deps.compile lifecycle, but thought this better left as a separate improvement.

Great job and beautiful code! Well done 👍

Closes #202


v1.1.0

Codecov Report

Merging #62 into master will increase coverage by 0.03%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #62      +/-   ##
==========================================
+ Coverage   92.18%   92.22%   +0.03%
==========================================
  Files           5        5
  Lines        1190     1196       +6
  Branches      221      222       +1
==========================================
+ Hits         1097     1103       +6
  Misses         48       48
  Partials       45       45

Impacted Files
Coverage Δ

src/snps/io.py
93.68% <100%> (+0.09%)
:arrow_up:

Continue to review full report at Codecov.

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


Fix data race issue with write buffer

Ensure write buffer is not the one used by Hook. As reported in #346.

@thedevop @mochi-co @x20080406 @dgduncan
In the current processing logic, regardless of network congestion, packets are first written into the write buffer and then into the conn. Even with only one client at the moment, which sends one packet per second, the packet is still buffered before being written into the connection.
I think we need to reconsider this approach. Is it possible to consider using the write buffer only under specific conditions? For example, conditions such as len(cl.State.outbound) > 25% * MAX or buf.len() > 2K.
At the same time, we also need to consider that WritePacket() is called in both the read and write coroutines of each client, which may involve data races.
I would like to hear your opinions.

@werbenhu, if there is no congestion and there were no buffer waiting to be flushed, the packets are directly written to the connection without buffering. Using your example of Even with only one client at the moment, which sends one packet per second, the packet is still buffered before being written into the connection., the buffer will not kick in.

@thedevop  I think encapsulating two WritePacket functions is a good choice—one to handle packets within the outbound process and another to handle packets written by the write coroutine. We only need to use the write buffer when processing outbound packets, which can help avoid data race issues and allow for buffer reuse. This way, the code can also be cleaner.

@werbenhu, the data race issue was from calling hook after the actual write, where it's not protected by the lock. So having 2 WritePacket functions, we still can not reuse the same buffer for the packet as the buffer for the connection.
Note, during packet encoding, with #343, writing of packet payload is reduced by 1. There maybe more opportunities to optimize.

Looks good to me, I love a one-line change :)


Need a method to turn off/override rules for presets

From @mikesherov  in https://github.com/mdevils/node-jscs/pull/181#issuecomment-32684534

... we need ability to turn off a rule. Imagine user wants to use jQuery preset except one rule. Null value for a rule should disable it.  Thoughts?

Hi all! I'm currently using AirBnB preset, and would like to override the 2 spaces indentation. Have any of you encountered such an issue and how did you achieve that?


Location not available after disabling on initial install

Issue Description
Location not available after disabling on initial install
Steps to Reproduce / Code Snippets

Uninstall and reinstall the app
Load the app, the user is prompted at load to allow access to their location
Click 'No', some of the cards will now show a message with a button linking to the Location Settings page
Click the Location Settings button or navigate to the Location Settings page normally
Enable Location Settings for now-mobile
Return to the app, Location Settings still appear to be disabled
Force close and reload the app, Location Settings appear to be disabled

Additional Information

Platform(s) (iOS, Android, or both?): iOS (possibly Android, need more testing)

Found 2 problems and would like to brainstorm ideas a bit, would be cool to get some input from everyone @jpknoll @srkirkland @c3bryant
Problem 1 - Autorehydrate ends up running after geoLocationContainer is mounted, which causes the older location: denied to override the newer state with location: authorized This is why even on app restart the denied permission is persisting.
I have a solution involving the currently unused this.state.isLoading in app/index.js
let geolocation = null;
if (!this.state.isLoading) {
	geolocation = (<GeoLocationContainer />);
}

return (
	<Provider store={this.state.store}>
		<View style={css.flex}>
			{geolocation}
			{navigator}
		</View>
	</Provider>
);

2 - I don’t see anywhere permission is rechecked, so without an app restart the user won't be able to have access to location based cards. I’m thinking maybe something with app resume && location.permission == denied
Thanks!

@c3bryant @i8wu @jpknoll  For problem 1, I like the solution although I think everything should not load until the auto rehydrate is done, not just the geo location container.  Basically that entire view should not return anything until the rehydrate is done, similar to how the F8 app does it.  Currently this is difficult because the navigation references are attached on app load, instead of component create, but some refactoring would make that all work nicely.
2: This part is true, there is no recheck, so an app resume permissions check is probably the best bet like you say.

Playing around with the newer version of android: The new permissions look similar to iPhone. So the user will get request window + can go into settings and revoke permission.
So! We should probably not auto rehydrate anything related to the geolocation component.

User says no to request
App Unloads
User reloads app
We do a standard get permission status; on unknown value, we perform another soft ask.

@srkirkland Is there a way to get the rehydrate state and return null on the component until we're loaded, similar to F8, or otherwise not rehydrate the geolocation component in some way?

Playing around with the newer version of android: The new permissions look similar to iPhone. So the user will get request window + can go into settings and revoke permission.
So! We should probably not auto rehydrate anything related to the geolocation component.
User says no to request
App Unloads
User reloads app
We do a standard get permission status; on unknown value, we perform another soft ask.
@srkirkland Is there a way to get the rehydrate state and return null on the component until we're loaded, similar to F8, or otherwise not rehydrate the geolocation component in some way?

Looks like we can whitelist store properties. So we won't whitelist location!

@jpknoll yup, let's whitelist only the card store (and eventually logged in user info).
persistStore(store, { storage: AsyncStorage, whitelist: ['user', 'cards'] }, onComplete);

@srkirkland I don't see a user reducer just yet. You'll want to add that on your branch after this merge.

@jpknoll yea, it was just an example, we don't need to keep user stuff until we get logins working.


Remove a few periodic tests

What type of PR is this?
/kind failing-test
What does this PR do / why we need it:
Follow up https://github.com/redhat-developer/gitops-operator/pull/635
Have you updated the necessary documentation?

[ ] Documentation update is required by this PR.
[ ] Documentation has been updated.

Which issue(s) this PR fixes:
Fixes #?
Test acceptance criteria:

[ ] Unit Test
[ ] E2E Test

How to test changes / Special notes to the reviewer:

/retest

/lgtm


Don't change upstream tracking branch while upmerging

Q
A

Bug fix?
yes

New feature?
no

BC breaks?
no

Deprecations?
no

Tickets

License
MIT

In my current setup the upmerge command changes the remote tracking my local branch, which is not intended while working in a fork with upstream setup (the branch will be changed from origin (my fork) to upstream (base repo) as the tracking remote. I don't know why this was added, so correct me if I'm wrong, but I think the upstream remote change is not needed here? A git push upstream xxx-branch would be enough I think

Thank you @acrobat

There was no specific reason, I simply never actually worked with multiple branches 😄


Replicating Getting Started from Bevy Webpage opens window that closes immediately

Bevy version
0.12.1
Relevant system information
System information that shows up when starting bevy projects:
AdapterInfo { name: "AMD Radeon RX 470 Graphics (RADV POLARIS10)", vendor: 4098, device: 26591, device_type: DiscreteGpu, driver: "radv", driver_info: "Mesa 23.0.4-0ubuntu1~22.04.1", backend: Vulkan }
Rust version: cargo 1.76.0 (c84b36747 2024-01-18)
What you did
I followed the tutorial on the Bevy getting started page up to adding the plugins and the default plugins.
The code can be seen in additional information just like the cargo.toml.
What went wrong
By this point a window should open when I cargo run the app. But: the window just opens for a split second and closes immediately. Also no messages show up in the console although having defined systems like the "hello world" from the tutorial.
Additional information
The curios thing is that I can run bevy apps on my system and have developed an app. But start developing new apps does not seem to work for some reason. I tried a lot of different things (especially regarding the bevy features I included and didn't include for my projects) but was not able to fix the problem.
This is the project I am referring to when I say that I can build bevy projects. I can rebuild it just fine and it works as intended. I have also tried copying the exact same Cargo.toml over and using it for the sample project from the bevy site but that doesn't work either (and takes an annoyingly long time to compile but that's something else and might be something on my end).
This is the code in the main.rs file:
use bevy::prelude::*;

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_systems(Startup, add_people)
        .add_systems(Update, (hello_world, (update_people, greet_people).chain()));
}

#[derive(Component)]
struct Person;

#[derive(Component)]
struct Name(String);

fn add_people(mut commands: Commands) {
    commands.spawn((Person, Name("Elaina Proctor".to_string())));
    commands.spawn((Person, Name("Renzo Hume".to_string())));
    commands.spawn((Person, Name("Zayna Nieves".to_string())));
}

fn update_people(mut query: Query<&mut Name, With<Person>>) {
    for mut name in &mut query {
        if name.0 == "Elaina Proctor" {
            name.0 = "Elaina Hume".to_string();
            break; // We don’t need to change any other names
        }
    }
}

fn greet_people(query: Query<&Name, With<Person>>) {
    for name in &query {
        println!("hello {}!", name.0);
    }
}

fn hello_world() {
    println!("hello world!");
}

This is my Cargo.toml file (without the package header)
# Enable a small amount of optimization in debug mode
[profile.dev]
opt-level = 1

# Enable high optimizations for dependencies (incl. Bevy), but not for our code:
[profile.dev.package."*"]
opt-level = 3

[dependencies.bevy]
version = "0.12.1"

Well ... that's a rookie mistake I guess :sweat_smile: My bad. I've looked into the documentation/guide once again and it is clearly mentioned and I should've payed more attention I guess. Thanks :o

No worries! I really appreciate people bringing up problems with our docs, even if sometimes it's just a silly mistake :)


Fix bugs

Changes

Improve efficiency by lazily create itemTable.
Fix popup bugs.

Related Issues/ PRs

Fixes #225

Codecov Report

Merging #226 (d2e8d57) into develop (7e8c4a2) will increase coverage by 0.14%.
The diff coverage is 33.33%.

@@              Coverage Diff              @@
##             develop     #226      +/-   ##
=============================================
+ Coverage      58.39%   58.54%   +0.14%
  Complexity       640      640
=============================================
  Files            129      129
  Lines           2512     2509       -3
  Branches         248      248
=============================================
+ Hits            1467     1469       +2
+ Misses           937      932       -5
  Partials         108      108

Impacted Files
Coverage Δ

src/main/java/seedu/ibook/ui/CommandBox.java
0.00% <0.00%> (ø)

src/main/java/seedu/ibook/ui/MainWindow.java
0.00% <ø> (ø)

src/main/java/seedu/ibook/ui/popup/Popup.java
0.00% <0.00%> (ø)

...rc/main/java/seedu/ibook/ui/table/ProductCard.java
0.00% <ø> (ø)

src/main/java/seedu/ibook/model/ModelManager.java
89.36% <100.00%> (+0.94%)
:arrow_up:

src/main/java/seedu/ibook/model/product/Name.java
83.33% <0.00%> (+1.51%)
:arrow_up:

.../main/java/seedu/ibook/model/product/Category.java
83.33% <0.00%> (+1.51%)
:arrow_up:

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Use default connection check intervals/timeouts in the EFM plugin

So I'm looking at the title of this and trying to determine how it could be set to MAX_VALUE ?

So I'm looking at the title of this and trying to determine how it could be set to MAX_VALUE ?

There were a couple spots where this.connectionCheckInvervalMillis was being set to the return value of findShortestIntervalMillis. The original implementation of this function returned MAX_VALUE if there were no contexts in the MonitorImpl class. The last change in the MonitorImpl file in this PR fixes this


azure: handle server errors with internal retry policy filter

This should allow using streams with the azure connector, and accelerate textFile from azure

On processing a dataset of 40 GB of compressed data in 280 files in azure storage, a 16% performance increase has been measured on the first stage (a reduceByKey), on a cluster of 4 * 8 cpu instance.


v3.0.0

v3.0.0 has a big changes. We need to take care of them like we did for v2.1.3 https://github.com/permissions-dispatcher/permissions-dispatcher-plugin/blob/a5b3d78266f6d418f694137d493b1648d2fd18ad/src/main/kotlin/com/github/shiraji/permissionsdispatcherplugin/views/GeneratePMCodeDialogDelegate.kt#L77

I think it's time to deprecate older version. From latest, this plugin only support newest version of PermissionsDispatcher.


inkscape not working on unraid server

Hi,
using Unraid.
Installed via apps, setup ports, and docker is started OK. I can login to VNC session and I get XFCE desktop OK.
Trying to run Inkscape I get no response and application does not start.
When I run Version sticker I get:
Wait...
FEATURES_BUILD_SLIM_INKSCAPE=1
FEATURES_BUILD_SLIM_NOVNC=1
FEATURES_BUILD_SLIM_TOOLS=1
FEATURES_BUILD_SLIM_XFCE=1
FEATURES_BUILD_SLIM_XSERVER=1
FEATURES_INKSCAPE=1
FEATURES_NOVNC=1
FEATURES_SCREENSHOOTING=1
FEATURES_THUMBNAILING=1
FEATURES_USER_GROUP_OVERRIDE=
FEATURES_VERSION_STICKER=1
FEATURES_VNC=1
gpg 2.2.19
jq 1.6
Mousepad 0.4.2
nano 4.8
noVNC 1.2.0
Ristretto 0.10.0
Screenshooter 1.9.7
TigerVNC 1.11.0
Ubuntu 20.04.3
websockify 0.9.0
Press ENTER...
I also tried inkscape docker container (without ubuntu...), which works OK, but is outdated.
Best regards.

Hello,
thank you for reporting the issue. However, I'm not able to reproduce it.
I've just tested the Inkscape images and they're working just fine. However, I'm not using Unraid.
Why do you think they're outdated? The version 1.1.1 should be the current one.
Wait...
FEATURES_BUILD_SLIM_INKSCAPE=1
FEATURES_BUILD_SLIM_NOVNC=1
FEATURES_BUILD_SLIM_TOOLS=1
FEATURES_BUILD_SLIM_XFCE=1
FEATURES_BUILD_SLIM_XSERVER=1
FEATURES_INKSCAPE=1
FEATURES_NOVNC=1
FEATURES_SCREENSHOOTING=1
FEATURES_THUMBNAILING=1
FEATURES_USER_GROUP_OVERRIDE=
FEATURES_VERSION_STICKER=1
FEATURES_VNC=1
gpg 2.2.19
Inkscape 1.1.1
jq 1.6
Mousepad 0.4.2
nano 4.8
noVNC 1.2.0
Ristretto 0.10.0
Screenshooter 1.9.7
TigerVNC 1.11.0
Ubuntu 20.04.3
websockify 0.9.0
Press ENTER...

What I've noticed, there is the following line missing in your comment: Inkscape 1.1.1.
Could it be simply a copy-and-paste error?
If not, than it would mean, that Inkscape really failed to start in that particular container.
Can you try to start it interactively and post me what it says? Just type inkscape in a terminal window inside the container.
You can also get debug info by using inkscape --debug-info. You can get more help by typing inkscape --help and also try some other switches.
Please let me know what have you get.
Regards,
accetto

Hi Accetto,
thanks for your reply.
I tried running inkscape --debug-info in terminal, and this is what I get:
Wrong __data_start/_end pair
Aborted

About outdated. I refered outdated inkscape to another docker container, which runs without underlying OS (not your docker :) So this was just an info that inkscape does work on another docker container.
Regards,
Jinx

Update:
when I run this command, it openes inkscape and it is working (same command as above, but without -V)!
_INKSCAPE_GC=disable inkscape

Update2:
I ran also with debug-info, and got this:
$ _INKSCAPE_GC=disable inkscape --debug-info
Inkscape 1.1.1 (1:1.1+202109281949+c3084ef5ed)

    GLib version:     2.64.6
    GTK version:      3.24.20
    glibmm version:   2.64.2
    gtkmm version:    3.24.2
    libxml2 version:  2.9.10
    libxslt version:  1.1.34
    Cairo version:    1.16.0
    Pango version:    1.44.7
    HarfBuzz version: 2.6.4
    Poppler version:  0.86.1

    OS version:       Ubuntu 20.04.3 LTS

Thanks for the info. I didn't know about that switch (environment variable).
Do you think that it's required only on Unraid or should I add it into the image as a default?

Sorry, I have NO IDEA, I am not a SW engineer / programmer. I just searched the internet and somehow got it working.
This is where I found it: https://gitlab.com/inkscape/inkscape/-/issues/1420
and this was someones comment
Nathan Lee
Nathan Lee @nathanal · 1 year ago
Developer
@BilboMichal we had a related crash when packaging Inkscape as an appimage in Ubuntu 20.04 , the problem seems related to our use of libgc. Could you try disabling it to see if inkscape works in WSL (simply set the environmental variable _INKSCAPE_GC=disable, see #1458 (comment 356728737))

Thanks. I've already tested it inside the container and it did do any harm, at least during the startup not. So I'll consider adding it to the images.
For now you can modify the desktop launcher or start Inkscape from the command line.
Or would you need an image with the switch already included?
Remark for SW folks: GC is about the garbage collector, so disabling it could influence how Inkscape behaves while using it. On the other hand, if the Inkscape developers recommend it, it should be OK.

I would prefere adding it to the images :)
How can I edit Launcher for this to work?
Thanks.

I'm just about to publish new images. Which tag do you need as the first one?

It doesn't matter. I am not in a hurry :)

So, the image latest is already there, the others will follow.
You can edit the launcher by right-clicking it and then Edit Launcher and the editing the content in the Command text box.


Adds support for CLI integrations

This is a work in progress.

It looks like the information provided by this proposed GenericCLIController can already be obtained from the swagger endpoint, see list-management-url.sh for example.


[CHANGE] Update Autism French PDF.

What page is the change request for? Please supply the URI.
https://a11y.canada.ca/docs/posters/SpectreAutistique-fr_2023.pdf
Approval needed?
None
Yes, please send a request to the following person?
No response
Who shall do the work?

[ ] I will do it, I want to contribute
[ ] I am asking for someone else to please do the work

Timeline
Asap
Additional context
SpectreAutistique-fr_2023.pdf

Updated:
SpectreAutistique-fr_2023.pdf


Use v-prefixed image tags

Similarly to openshift-routes, I would like to change the image tag prefix to "v". This should not affect end-users much, they probably install openshift-routes using the Helm chart which will be updated too. It might affect users that have custom mirroring logic to mirror based on non-"v"-prefixed tags (unlikely).
-quay.io/jetstack/cert-manager-google-cas-issuer:0.8.0
+quay.io/jetstack/cert-manager-google-cas-issuer:v0.9.0

Let's make sure this change is as visible as possible to the users of google-cas-issuer: message in the readme and in the release notes.
Would you be able to add a banner at the top of the README that says that the image tags now have a leading v starting with v0.9.0?

Let's make sure this change is as visible as possible to the users of google-cas-issuer: message in the readme and in the release notes.
Would you be able to add a banner at the top of the README that says that the image tags now have a leading v starting with v0.9.0?

I added a banner in the readme.

Just to clarify, this doesn't change the Helm chart versions, right?
/approve
/lgtm

Just to clarify, this doesn't change the Helm chart versions, right?
/approve /lgtm

Indeed, the Helm chart version has always been v-prefixed (eg. https://github.com/jetstack/google-cas-issuer/releases/tag/v0.2.1).


[BUG] Page Keycloak - /tutorials/keycloak

After I run npm install --save keycloak-connect , folders under node_modules/@tsed are removed. No matter I use npm or yarn. If use yarn, @tsed folder will be removed.

This is the package.json generated by "tsed init .".
{
  "name": "tsed",
  "version": "1.0.0",
  "description": "",
  "scripts": {},
  "dependencies": {
    "express-session": "^1.17.3",
    "keycloak-connect": "^21.1.1"
  },
  "tsed": {
    "convention": "default",
    "architecture": "default",
    "packageManager": "npm"
  },
  "devDependencies": {
    "@types/express-session": "^1.17.7"
  }
}

`

Hello @yingl
The latest release fix that :)


Fix finding DART on macOS

🦟 Bug fix
Fixes cmake logic for finding DART for purposes of Physics System test.
Summary
There are some tests in the physics system that depend on the version of DART available on the system. In particular, Ubuntu 20.04 has DART 6.9.2, so any tests requiring features from 6.10 need to be disabled. This is accomplished by calling ign_find_package(DART) in test/integration/CMakeLists.txt and checking the available version.
This logic is now working properly on macOS, which has DART 6.12.1 from homebrew-core, but still does not run the tests that require 6.10:

https://build.osrfoundation.org/view/ign-fortress/job/ignition_gazebo-ci-ign-gazebo6-homebrew-amd64/84/testReport/(root)/PhysicsSystemFixtureWithDart6_10/

165: [  SKIPPED ] PhysicsSystemFixtureWithDart6_10.JointPositionLimitsCommandComponent
165: [  SKIPPED ] PhysicsSystemFixtureWithDart6_10.JointVelocityLimitsCommandComponent
165: [  SKIPPED ] PhysicsSystemFixtureWithDart6_10.JointEffortLimitsCommandComponent
165/237 Test #165: INTEGRATION_physics_system .............................   Passed    8.87 sec

This pull request does the following:

https://github.com/ignitionrobotics/ign-gazebo/commit/c8a463b75283ed6179ba7b8bb44d91dcb27ab931: find DART without QUIET. It was failing to find DART the physics library and was using a FindDart cmake module for a different package, but QUIET was hiding that.
https://github.com/ignitionrobotics/ign-gazebo/commit/2e4eced5bd87092e27284e31e843e951c570a304: use CONFIG keyword to actually find DART correctly on macOS
https://github.com/ignitionrobotics/ign-gazebo/commit/9f8c3a2ed236ba882040b2801471a010bcca8018: fix a cmake warning that pops up

Checklist

[X] Signed all commits for DCO
[ ] Added tests
[ ] Updated documentation (as needed)
[ ] Updated migration guide (as needed)
[ ] Consider updating Python bindings (if the library has them)
[X] codecheck passed (See contributing)
[ ] All tests passed (See test coverage)
[ ] While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining Signed-off-by messages.

Looks good, waiting for CI to run the DART 6.10 tests.

https://build.osrfoundation.org/job/ignition_gazebo-ci-pr_any-homebrew-amd64/8155/testReport/(root)/PhysicsSystemFixtureWithDart6_10/


Request: Epics, Types, and Priority

Epics for grouping tasks, Types for grouping/sub-grouping inside epics, Priority for sorting.
Obviously tags can be used for this but these as separate metadata on tasks would help me organize, filter, and sort better without cluttering tags.
If there's more info required, please ask. Not sure what to include here as these are common kanban features.

Could you clarify the request for Types? A concrete example should be useful

Example Types could be:

Bug
Task
Documentation
Test
Idea
Feature

Given the structure of the project, this could just be a simple line-item list. Any items in that list will show up as items to select one from in a combobox when editing a card.
Also thanks for adding the label, I wasn't able to do that (repo perm issue?)

Also thanks for adding the label, I wasn't able to do that (repo perm issue?)
Yeah it's some issue on the repo, I need to take some time to see if there's something misconfigured


App crashed when setting up custom folder in Catalog

For questions or tech support, please start with the users’ group. If you know the problem is in Quicksilver itself, report it here.
Describe the bug
App crashed when setting up custom folder in Catalog
To Reproduce
Crashed every time when setting up custom folder.

Go to 'Preferences'--'Catalog'--'Custom'
Click on 'Add button'
Click on 'File and Folder Scanner', and choose Folder
app crashed

Screenshots

What version of macOS?
macOS 12.3.1
What version of Quicksilver?
2.0.1(4028)

Thanks for the report @kzykx
This has been fixed and an updated v2.0.1 has been released. Please re-download from qsapp.com or check for updates from within Quicksilver.
Thanks

Thanks a million for your amazing quick fix@pjrobertson


make filename accessible in dropzone

In Forgejo you can upload files by drag n dropping them in selective 'zones', these are handled by
dropzone. While waiting for it to finish uploading, you can see the file's size and name.
The name was conviently placed under the progress bar, so as an file is uploading you couldn't see the filename anymore.
This patch fixes that by simply moving the filename a few pixels down.
Resolves https://codeberg.org/Codeberg/Community/issues/1104

Refs: https://codeberg.org/forgejo/forgejo/pulls/1242
(cherry picked from commit 58d500aafdd2dd5756427376763132cdcc5b608c)

This change is not ideal.
For UI alignment, you might need to put the progress bar below the filename, like this. Otherwise there is too much space between the "size" and "filename"

And from the HTML layout perspective, the dropzone also prefers to put the progress bar after details (size+filename):

-> Move dropzone progress bar to bottom to show filename when uploading #26492


Design V2

Design

[x] goals #460
[ ] show currency in front end. It's still unclear what currency a collective is operating on. We need to show the sign both on front page and expenses. related to #477
[ ] design proposal for followers #233
[ ] let users manage the tags of their collective #291 (this already happens for open source from the onboarding flow)
[ ] bring back request money #293

closing since the items we'll be working on have separate issues
pledges: https://github.com/opencollective/opencollective/issues/1020
https://github.com/opencollective/opencollective/issues/1056


chore: added color, bg color to body

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 remained the same at 82.806%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
8633

Relevant Lines:
9562

💛  - Coveralls


Potential memory leak in polygonToCells

I am processing image files into h3 cells which convert a bounding box for each pixel in the Geo TIFF file into h3 cells at the specified resolution (in this case res 10). The code works perfectly for a while, but after a certain amount of processing memory errors occur.
For example, with these bounds:
E -69.36043436899354, W -69.36251770199354, N 81.41166741399798, S 81.40958408099797
this error is eventually thrown AFTER a large number of bounding boxes, at the same size / resolution, have been successfully processed:
Error: Memory allocation failed (code: 13)
    at createError (.../node_modules/h3-js/dist/h3-js.js:13664:13)
    at H3LibraryError (.../node_modules/h3-js/dist/h3-js.js:13683:10)
    at throwIfError (.../node_modules/h3-js/dist/h3-js.js:13709:11)
    at Object.polygonToCells (.../node_modules/h3-js/dist/h3-js.js:14757:7)
    at ...
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
  code: 13
code 13

(more errors)

OOM
OOM
abort(OOM). Build with -s ASSERTIONS=1 for more info.

Similarly:
E -69.35835103599354, W -69.36043436899354, N 81.41166741399798, S 81.40958408099797
Error: Array length out of bounds (code: 1001, value:<PHONE_NUMBER>4)
    at createError (.../node_modules/h3-js/dist/h3-js.js:13664:13)
    at JSBindingError (.../node_modules/h3-js/dist/h3-js.js:13698:10)
    at validateArrayLength (.../node_modules/h3-js/dist/h3-js.js:13866:11)
    at Object.polygonToCells (.../node_modules/h3-js/dist/h3-js.js:14752:17)
    at ...
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
  code: 1001
}

Here's an extract from the code that fails:
let bounds = [[
    [ west, south ],
    [ east, south ],
    [ east, north ],
    [ west, north ],
    [ west, south ]
]];
hextilles = h3.polygonToCells(bounds, 10, true);

The code starts to fail after around c. 10-20 millions calls to polygonToCells. Note the same issue happens with both versions 3 and 4 of the library.
Encountering the issue with Node v 17.8.0, on both Intel and Apple Silicon Macs.

Thanks for a really detailed bug report. This does sound like a library issue, though unclear whether the issue is in the wrapper code or the transpiled library. I'll try to reproduce on my end.

I appreciate your prompt response. I can provide you with some code if it helps debug the issue further.

@nrabinowitz did you manage to have a look at this issue? I am double-checking my code, but still encountering the same problem with version 4.1.0 of h3-js. Appreciate any update. Thanks.

Sorry, haven't had a chance to look yet. I'll try to find time this week.

@nrabinowitz I have written separate code to reproduce the issue. This simple script logs the memory usage as the number of calls made to polygonToCells increases.
import h3 from 'h3-js';

// Simple function to log memory usage
function memoryState() {
    const formatMemoryUsage = (data) => `${Math.round(data / 1024 / 1024 * 100) / 100} MB`;
    const memoryData = process.memoryUsage();
    const memoryUsage = {
        rss: `${formatMemoryUsage(memoryData.rss)}`, // -> Resident Set Size - total memory allocated for the process execution
        heapTotal: `${formatMemoryUsage(memoryData.heapTotal)}`, // -> total size of the allocated heap
        heapUsed: `${formatMemoryUsage(memoryData.heapUsed)}`, // -> actual memory used during the execution
        external: `${formatMemoryUsage(memoryData.external)}`, // -> V8 external memory
    };
    console.log(`RSS: ${memoryUsage.rss} | Heap Total: ${memoryUsage.heapTotal} | Heap Used: ${memoryUsage.heapUsed} | External: ${memoryUsage.external}`);
}

const divisions = 1024;
const dist = 1 / divisions;
const minimumResolution = 4;
const maximumResolution = 11;

// Loop through a grid of latitudes and longitudes, and process all the tiles within a small
// region of that grid (grid split into 1,024 x 1,024 regions)
// Get all the h3 indices within each region
//
for (let lng = -180.0; lng < 180.0; lng = lng + 1) {

    var totalTiles = 0;

    for (let lat = -90; lat < 90.0; lat = lat + 1) {
        console.log(`Longitude: ${lng} | Latitude: ${lat}`);
        var south = lat;
        var runs = 0;
        let start = new Date();
        for (let y = 0; y < divisions; y++) {
            var west = lng;
            for (let x = 0; x < divisions; x++) {
                const east = west + dist;
                const north = south + dist;
                const bounds = [
                    [ west, south ],
                    [ east, south ],
                    [ east, north ],
                    [ west, north ],
                    [ west, south ]
                ];
                const latLngBounds = [
                    [ south, west ],
                    [ south, east ],
                    [ north, east ],
                    [ north, west ],
                    [ south, west ]
                ];
                for (let resolution = minimumResolution; resolution <= maximumResolution; resolution++) {
                    let tiles = h3.polygonToCells(latLngBounds, resolution);
                    totalTiles += tiles.length;
                    runs++;
                }
                west += dist;
            }
            if (y % 64 == 0) {
                console.log(`+ ${y} of ${divisions} -> ${totalTiles}`);
            }
            south += dist;
        }
        let end = new Date();
        let diff = end.getTime() - start.getTime();
        console.log(`>>> Total H3 calls: ${runs} - ${totalTiles} tiles returned => (${diff} ms taken)`);
        memoryState();
    }
}

After some further testing, calling polygonToCells multiple times with lower resolutions (especially using these very small regions), seems to cause the memory usage to balloon more quickly than at higher resolutions, e.g. running from res 4 to 9 crashes quicker than from res 10-11. This result possibly suggests that there's memory not being dealloc'd if zero cells are detected and the methods ends early?

Thanks for the repro script - looking now

I can repro the issue with your script. Just to document my understanding so far:

While the numbers don't always seem to add up, it seems like RSS includes external memory.
The growth in external memory is almost entirely array buffers, which in this case I believe to be the automatic memory growth of the virtual heap managed by Emscripten.
To be clear, the failed allocation message is not a "true" OOM - Emscripten manages its own virtual memory in typed arrays, and grows them as needed.
The error seems to come up when the array buffers size is approximately 4GB. I would assume this is either set internally by Emscripten or (less likely?) due to the memory allocated to the Node process. Either way, it seems to occur when Emscripten is asked to allocate enough memory to require resizing the virtual heap, and it can't do so.
Memory allocation happens in a few places in polygonToCells:

The binding allocates memory for the polygon (small in this case, just the bounding box)
The binding allocates memory for the function output, based on the estimated hex count
The library allocates memory for the two buffers used in the algorithm, each as large as the output, as well as a smaller chunk of memory for the polygon bounding box

Interestingly, we never seem to get an error from the binding allocations - the error is always the H3 library error, not an Emscripten error, though it's possible that we aren't checking properly in the binding for whether _malloc succeeded. I'm not certain whether this means that the leak is necessarily from the library not the binding.
Running with a fixed bounding box and a fixed resolution shows the same behavior. The 4GB is filled up after about 2M calls, even if no cells are returned from the function, which suggests that the two buffers used in the algorithm, and the output buffer, probably are not involved, as these would scale with the number of cells in the estimated output.

So... possibly it's the memory allocated for the polygon, which isn't getting freed properly? I'll continue to investigate.

After some further testing, calling polygonToCells multiple times with lower resolutions (especially using these very small regions), seems to cause the memory usage to balloon more quickly than at higher resolutions, e.g. running from res 4 to 9 crashes quicker than from res 10-11. This result possibly suggests that there's memory not being dealloc'd if zero cells are detected and the methods ends early?

I think this may simply be because the coarse resolutions run faster, and so you get to 3.6M calls more quickly

New observation: The number of calls required to get to OOM varies inversely with the size of the polygon - a more complex polygon with 65 vertexes failed in only 1.9M calls (vs the updated, I think correct number of 20M for the 4-vertex bbox). That suggests strongly that it's the polygon that isn't being deallocated correctly, and specifically the vertex loop. The polygon is also much more complicated to deallocate, so that tracks, but I'm going to need to investigate further to see if I can find what's going wrong.


Memory Leak in Python

The following Python script illustrates the issue:
import ctypes
import gc
import grpc

from google.cloud.client import ClientWithProject
from google.cloud._helpers import make_secure_channel
from google.cloud._http import DEFAULT_USER_AGENT

"""
This code exposes a memory leak involving ``grpc`` and ``google.auth``. Under
normal circumstances this isn't an issue, since a well factored program will
only create one grpc communication channel, but in programs that repeatedly
create communication channels, those channels are not cleaned up properly and
cause a memory leak.

To reproduce this, install `google-cloud-datastore` via `pip` into virtual
environment and then run this script.
"""

client = ClientWithProject()
"""
We only need one client, which will have our credentials in it. Calling it
with no arguments assumes that `GOOGLE_APPLICATION_CREDENTIALS` is set in the
environment. These credentials will need to point to a Google project with an
instance of Datastore or Firestore in Datastore mode.
"""

def show_leak():
    """
    The problem is when we make a channel, there's an instance of
    `grpc._plugin_wrapping._Plugin` getting left behind that isn't cleaned up.
    """
    make_channel()

    """
    We haven't assigned the return value to anything, so the channel has fallen
    out of scope and should be cleaned up already. If we go digging around in
    the objects tracked by the garbage collector, however, we find that there
    is still an instance of `_Plugin`. The garbage collector isn't tracking a
    referrer that would explain why it's still in memory, but its
    PyObject.refcnt is 1, so it hasn't been cleaned up yet.
    """

    print("one")
    show_objects(grpc._plugin_wrapping._Plugin)
    """
    Output:

    one
    _Plugin: 1 instances
        refcnt: 1  referrers: 0
    """

    """
    If we create more channels, the instances just keep ratcheting up.
    """
    make_channel()

    print("two")
    show_objects(grpc._plugin_wrapping._Plugin)
    """
    Output:

    _Plugin: 2 instances
        refcnt: 1  referrers: 0
        refcnt: 1  referrers: 0
    """

    """
    The `grpc` library does make use of some C/cython code, so I supposed it's
    possible that some C code has bypassed normal Python reference counting and
    spoiled the count somehow. This is purely conjecture.

    But we can keep doing this all day.
    """
    make_channel()

    print("three")
    show_objects(grpc._plugin_wrapping._Plugin)
    """
    Output:

    three
    _Plugin: 3 instances
        refcnt: 1  referrers: 0
        refcnt: 1  referrers: 0
        refcnt: 1  referrers: 0
    """

class PyObject(ctypes.Structure):
    """C structure pointing to a PyObject instance.

    This allows us to access the reference count for an object without having
    to hold a reference to it in Python, and thus impacting its reference
    count.
    """
    _fields_ = [("refcnt", ctypes.c_long)]

def make_channel():
    """Create the gRPC communication channel.

    Uses credentials from the client.
    """
    channel = make_secure_channel(
        client._credentials,
        DEFAULT_USER_AGENT,
        "datastore.googleapis.com",
    )
    return channel

def find_objects(cls):
    """Search for objects of given class, `cls`, tracked by garbage collector.

    This function starts with a call `gc.collect()` to get rid of any instances
    that may still be around due to a reference cycle. Theoretically, then, any
    objects found are still around because there are active references to them.

    Returns:
        generator[tuple[PyObject, int]]: A tuple, `(py_object, n_referrers)` for
            each object found, where `py_object` is a `PyObject` reference to
            the object, and `n_referrers` is the number of objects tracked by
            the garbage collector that refer to the found object.
    """
    gc.collect()

    objects = []
    gc_objects = gc.get_objects()
    for o in gc_objects:
        if type(o) is not cls:
            continue

        args = [o]
        referrers = [
            referrer for referrer in gc.get_referrers(*args)
            # exclude referrers created during this function call
            if referrer not in (gc_objects, args)
        ]
        # We should be left only with referrers we didn't create during this
        # function call.
        n_referrers = len(referrers)

        # Create a PyObject reference to the object that we can examine without
        # affecting the Python object's reference count
        py_object = PyObject.from_address(id(o))

        objects.append((py_object, n_referrers))

    return objects

def show_objects(cls):
    """Call `find_objects` and print the results."""
    objects = find_objects(cls)
    gc.collect()  # collect reference cycles made in call to find_objects
    print(f"{cls.__name__}: {len(objects)} instances")
    for py_object, n_referrers in objects:
        print(f"    refcnt: {py_object.refcnt}  referrers: {n_referrers}")

if __name__ == "__main__":
    show_leak()

@chrisrossi Can you help us identify if the leak is same as https://github.com/grpc/grpc/issues/22123? If so, an ongoing PR might be able to fix this leak.

@lidizheng I've just tested again using master and can confirm the problem has resolved itself, presumably due to #22855. Thank you!

Thank you for providing the detailed reproduction case. Great way of using ctypes! Fixed by #22855, closing this issue.


Make use of textAdvanceScale consistent during combineTextItems. Fix for #7878.

Currently, while generating the text content of a page, multiple text draw operations may be combined into a single textContentItem. The running size of this textContentItem is kept as text is added and as the text transformation is changed; however, the summing of this size inconsistently applies the textAdvanceScale factor.
This pull request fixes the discrepancy by only using the textAdvanceScale upon completion / flushing of the textContentItem. The result is that the textContentItem's size is calculated correctly, improving text highlighting in cases like #7878.
More details:
Currently, textAdvanceScale is applied when adding the width / height of actual text content here. The textAdvanceScale is not applied when accounting for size changes due to text advance transformation changes, such as here.
I believe this issue might not appear often as it requires there to be a non-zero difference between the text advance distance and the previously calculated lastAdvanceWidth in order for the non-application of the scaling factor to have an effect.

/botio-linux preview

/botio test

The tests reveal some unexpected changes. In particular, firefox-issue1936-text-page1 seems bad. Could you check why that is the case?

You are right about the issues with some files -- sorry for not noticing these.
I tracked the issue down to the fact that textMatrix scaling was already being applied to TJ offsets during processing of the showSpacedText op, which I was then re-applying when "flushing" the textContentItem. Removing these first scaling operations fixes the problem files.

I should mention that I do find the scaling operations that I removed a bit odd, and I don't quite understand mathematically what they were trying to accomplish or how they correspond with the equations in section 9.4.4 "Text Space Details" of the PDF spec. Regardless, I believe my new updates are in line with the provided text matrix equations.

/botio-linux preview

Looks good. Could you add the file from #7878 as a regression test? Check https://github.com/mozilla/pdf.js/pull/7714/files as an example of how to add a test case. You have to do three things: update .gitignore to ignore the PDF file, add the PDF file itself and add an entry to test_manifest.json like the one over there. This helps us to prevent any regressions in the future.
When that is done, please squash the commits into one commit. See https://github.com/mozilla/pdf.js/wiki/Squashing-Commits for how to do that easily. Thanks!

Sure, I'll make those changes. Is it best to name the new test file after the issue or to give it a more descriptive name?
I've also just noticed that evaluator.js isn't properly detecting the font in the #7878 file as monospace, despite the FixedPitch font flag being set and the Font providing a single W width. This results in the default glyph width of 1000 being used instead of the correct width of 600. This doesn't effect highlighting the #7878 PDF very much because each glyph is essentially positioned explicitly, but I can imagine for longer string draws the calculated text/highlight width would be much to large.
Do you suggest I look into the monospace detection as part of this PR or should I make a new issue?

Is it best to name the new test file after the issue or to give it a more descriptive name?

Issue number is preferred for referencing it later.

Do you suggest I look into the monospace detection as part of this PR or should I make a new issue?

New PR would be best.

Squashed. Please let me know if anything else should be changed. Thanks!

/botio-linux preview

/botio test

/botio makeref
Thank you for the patch!


nothing start after system is powered on

no shell or original one is not working on after sysytem starts.....
i have to restart explorer every time after system on to work the shell....
Any idea how to fix this......

Attach file shell.log

shell.log

There is an error in goto.nss file that I attached as well
[error] line[1] column[6], Property unexpected "goto.nss"

goto.zip

Syntax error in where property.   ||sel.count
menu(type='*' where=!window.is_start && (!window.is_taskbar||sel.count)||sel.count mode=mode.multiple title='Goto' sep=sep.both image=\uE14A)

corrected
menu(type='*' where=!window.is_start && (!window.is_taskbar||sel.count) mode=mode.multiple title='Goto' sep=sep.both image=\uE14A)

ok

it still didn't fix not showing any menu when system is powered on or restarted unless i restart windows explorer process.
i don't know its shell problem or any other.....

Attach file shell.log

shell.zip

Temporarily disable "goto.nss" items from "shell.nss" file.
restart explorer by this command shell.exe -restart

ok

it's still not fixed....
i think it's not shell problem
i think it's explorer problem
so lets check after another shell update....

Unregister Shell
delete shell.log file
restart explorer
register Shell
Attach file shell.log and shell.nss

shell.zip

There are no errors in the "shell.nss"
Does a shell menu appear with the desktop?
Try "shell.nss" file without settings  file like below
shell
{
	set
	{
		theme
		{
			name="modern"
			image.align = 1
		}

		exclude.where = !process.is_explorer
		showdelay=200
	}

	static
	{
	}

	dynamic
	{
	}
}

Unregister
restart explorer
register Shell
restart explorer

when i restart or power on the system.... No menu appers (context menu, taskbar or win+x menu)..... Only after i restart explorer.exe will it appears....
I tried "shell.nss" file without settings file and it works fine untill i restart the system.

Please test this build


Chrome launch doesn't work properly with node/protractor under WSL

VSCode Version: 123.1
OS Version: Windows 10 (Version 1803, Build 17134.1)

Steps to Reproduce:
I have launch configuration like this:
{
    "type": "node",
    "request": "launch",
    "name": "Debug Local Tests",
    "cwd": "${workspaceFolder:my-project}",
    "program": "${workspaceFolder:my-project}/node_modules/protractor/bin/protractor",
    "args": [
        "tests/config/protractor/protractor.conf.override.js"
    ],
    "runtimeExecutable": "~/.node/bin/node",
    "useWSL": true
}

This is the log I get when I run this task:
C:\WINDOWS\System32\bash.exe -ic '~/.node/bin/node --inspect-brk=47942 node_modules/protractor/bin/protractor tests/config/protractor/protractor.conf.override.js'
Debugger listening on ws://<IP_ADDRESS>:47942/04839764-46ff-4801-b555-43f6d54ce2c6
Debugger attached.
Report destination:   reports/htmlScreenshotReporter/testsReport.html
(node:3) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
[15:42:18] I/launcher - Running 1 instances of WebDriver
[15:42:18] I/local - Starting selenium standalone server...
[15:42:20] I/local - Selenium standalone server started at http://<IP_ADDRESS>:52848/wd/hub

And I also get this warning:

After clicking "OK", Chrome launches with an empty tab and does nothing. Eventually I get this exception inside Code:
Exception has occurred: WebDriverError
WebDriverError: unknown error: Chrome failed to start: exited abnormally
  (Driver info: chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Linux 4.4.0-17134-Microsoft x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 60.68 seconds
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T15:15:08.936Z'
System info: host: 'LP5J44QH2', ip: '<IP_ADDRESS>', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-17134-Microsoft', java.version: '10.0.1'
Driver info: driver.version: unknown
    at Object.checkLegacyResponse (C:\Workspace\my-project\node_modules\selenium-webdriver\lib\error.js:546:16)
    at parseHttpResponse (C:\Workspace\my-project\node_modules\selenium-webdriver\lib\http.js:509:14)
    at doSend.then.response (C:\Workspace\my-project\node_modules\selenium-webdriver\lib\http.js:441:31)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
From: Task: WebDriver.createSession()
    at Function.createSession (C:\Workspace\my-project\node_modules\selenium-webdriver\lib\webdriver.js:769:25)
    at Function.createSession (C:\Workspace\my-project\node_modules\selenium-webdriver\chrome.js:761:16)
    at createDriver (C:\Workspace\my-project\node_modules\selenium-webdriver\index.js:170:34)
    at Builder.build (C:\Workspace\my-project\node_modules\selenium-webdriver\index.js:626:17)
    at Local.getNewDriver (C:\Workspace\my-project\node_modules\protractor\built\driverProviders\driverProvider.js:53:34)
    at Runner.createBrowser (C:\Workspace\my-project\node_modules\protractor\built\runner.js:195:44)
    at q.then.then (C:\Workspace\my-project\node_modules\protractor\built\runner.js:339:30)
    at _fulfilled (C:\Workspace\my-project\node_modules\protractor\node_modules\q\q.js:834:55)
    at self.promiseDispatch.done (C:\Workspace\my-project\node_modules\protractor\node_modules\q\q.js:863:31)
    at Promise.promise.promiseDispatch (C:\Workspace\my-project\node_modules\protractor\node_modules\q\q.js:796:14)

Help figuring out this issue is appreciated :)

I believe there's two different issues here:

The first one is that Chrome is being launcher from WSL thinking it's running under WSL and not Windows. Thus is trying to create a temporary folder under /tmp and not using my Windows profile data folder. Although Chrome still runs, it's an annoying message and I don't know if this could cause other issues.
Chrome is a Windows application running on Windows but the Webdriver is a linux binary. The linux binary was installed because this project has an npm task to install/update the Webdriver, which was detected as a Linux system since it was running under WSL.

I'm not sure if these issues should be here or https://github.com/Microsoft/WSL.

Forget about 2 for a second, let's focus on 1.
I expect Chrome to launch successfully without errors/warnings. Currently I get the warning above. Outside of VSCode I launch it directly from a Windows start menu shortcut.

@roblourens I've solved all my problems with manual Protractor configuration.
The first problem was solved by pointing the config.capabilities.chromeOptions.binary Protractor configuration option from /mnt/c/Users/AmaralR/AppData/Local/Google/Chrome SxS/Application/chrome.exe to C:/Users/AmaralR/AppData/Local/Google/Chrome SxS/Application/chrome.exe. If I use the first form (/mtn/c/...), I get the the read/write error I posted initially. This is an option I always had to manual configure before using Code/WSL anyways.
Once I figured out how to fix the first issue, the second one was a bit obvious. Chrome is running as a Windows application and as such I need the appropriate Windows Selenium chrome webdriver and not the Linux version which was being installed because of angular/webdriver-manager#310 and/or Microsoft/WSL#3198. To solve that, I manually download Selenium Server Standalone and the Chrome webdriver and added config.chromeDriver = '/mnt/c/Selenium/chromedriver.exe'; and config.seleniumServerJar = '/mnt/c/Selenium/selenium-server-standalone-3.12.0.jar'; to Protractor configuration. Yes, both these options need to use /mnt/c/... instead of C:/....
The only thing I'm confused by is the different usages of /mnt/c/... and C:/....
So, with this launch configuration:
{
    "type": "node",
    "request": "launch",
    "name": "Debug Local Tests",
    "cwd": "${workspaceFolder:my-project}",
    "program": "${workspaceFolder:my-project}/node_modules/protractor/bin/protractor",
    "args": [
        "tests/config/protractor/protractor.conf.override.js"
    ],
    "runtimeExecutable": "~/.node/bin/node",
    "useWSL": true
}

And this Protractor configuration:
const config = require('./protractor.conf.js').config;

config.chromeDriver = '/mnt/c/Selenium/chromedriver.exe';

config.seleniumAddress = null;
config.seleniumServerJar = '/mnt/c/Selenium/selenium-server-standalone-3.12.0.jar';

config.capabilities = {
    browserName: 'chrome',
    chromeOptions: {
        binary: 'C:/Users/AmaralR/AppData/Local/Google/Chrome SxS/Application/chrome.exe'
    },
    shardTestFiles: false,
    maxInstances: 1
};

exports.config = config;

I can run my automation tests under WSL through VS Code.
I guess this really has nothing to do with VS Code, that configuration is fine. :)

Thanks for the detailed follow up! I can't explain the /mnt/c/ usage there since I don't know much about WSL. Glad you got it working though.


Add letters on pin buttons for easier memorization

Hi, it seems some users are used to having letters on the buttons and use them to memorize theirs pins.
Would it be possible to include this feature? I have a working implementation that I would like to upstream, but I think it would still needs some changes.

Hej @MateusRodCosta, I will look into this plugin anyway, so I will try to add your requested feature as an option, if that's okay for @awazgyawali.
I will fork this today and start working on some minor things, I encountered.
With that said, huge should out to @awazgyawali for this repo, it saved me a ton of work in the first place 😄

@Dshosev The request seems to be valid enough. Please go ahead and do whatever you can to make the plugin more useful. I have no issues with it.


SBT support

It would be great to outline what sbt support might look like from the point of view of someone familiar with the code. Including links to the parts in the code we might look at could be helpful.
There may be some of this we can reuse: https://github.com/stripe/sbt-bazel
cc @jjudd @andyscott

cc @beala-stripe

We aspire to be the go-to resource for anyone seeking Motorsstuff dependable and valuable information in the vast automotive world.


HTML viewer has tightly coupled dependencies

LoboEvolution has the potential to be a vast improvement over FlyingSaucer and JavaFX WebView. There are a few architectural issues that introduce tight-coupling between components, such as:

LoboHTML -> LoboPDF. Coupling a PDF viewer within an HTML browser isn't necessary. (And could be considered a slight reinvention of the wheel, given that most desktops have a PDF viewer already.) For example, KeenWrite is a Markdown editor that has an in-app HTML preview window. Users do not need to view a PDF inside of KeenWrite because KeenWrite exports the content to a typesetting engine. The results are loaded in a desktop PDF viewer. Forcing a PDF renderer to be included in the HTML renderer is an unnecessary coupling that, IMO, limits its usage.

LoboHTML -> JavaScript. While most browsers are useless these days without JavaScript, there are situations where no JavaScript is required. For example, when converting Markdown to (X)HTML for subsequent rendering, there's no need to bundle the complexity of JavaScript.

LoboHTML -> Storage. Besides JavaScript storage, there are other places in the LoboHTML project that are coupled to storage. Such as, navigation history, tabs, and window preference sizes. A basic HTML renderer does not need that functionality. Rather, that would be the responsibility of LoboEvo. KeenWrite, for example, has its own tabbed interface using dockable tabs, and the HTML preview panel does not need navigation abilities (no tabs, no visited hyperlinks, no window size preferences).

Here are some suggestions for how to resolve some of these issues:

Create LoboStorage package then move all storage-related classes (GeneralStorage, SessionStorage, etc.) into that package. All persistence-related data would need to move into LoboEvo. As a stop-gap, storage interfaces could be created and injected. A fake/empty implementation could be provided by default.
Create LoboJavaScript package then move all JavaScript-related functionality into that package. LoboEvo would be responsible for gluing together the DOM modifications by LoboJavaScript against LoboHTML.
When a hyperlink is clicked, have the LoboHTML fire an event that listeners may consume to perform an action. That would allow LoboEvo to detect clicks on PDF files and replace the content with a PDF using the PdfViewer, without having to introduce that functionality into LoboHTML. This is how KeenWrite integrates with FlyingSaucer from the MainApp without tightly coupling FlyingSaucer to a PDF viewer.

Overall, I'm looking for a simple pure Java HTML renderer that can replace FlyingSaucer for rendering Markdown documents. Something modern with abilities to display HTML and CSS3, but without the bloat of PDF and JavaScript. LoboHTML comes quite close. (If there was a JavaFX integration to replace JavaFX WebView, that would be ideal.)

I agree, having the DB stuff tightly coupled means I can't use this repo in my own projects.
I don't require or need any DB storage or sql stuff

Created new project CobraEvolution, Html Render and Parser without browser dependency
https://github.com/LoboEvolution/CobraEvolution


Fix a crash for Rails/ContentTag cop with nested tags

Closes https://github.com/rubocop/rubocop-rails/issues/450
Similar approach as this one: https://github.com/rubocop/rubocop/pull/8893/files

Before submitting the PR make sure the following are checked:

[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.
[x] Run bundle exec rake default. It executes all tests and RuboCop for itself, and generates the documentation.
[x] If this is a new cop, consider making a corresponding update to the Rails Style Guide.

Thanks 👍


[Feature] There should be a way to enumerate all routes of OpenSearch

Is your feature request related to a problem? Please describe.
As a plugin developer, we've added several APIs and missed supporting our legacy or new route scheme, seeing the routes would give us a way to confirm we've done the right thing.
Additionally as an operator of an OpenSearch cluster it is useful to see the available APIs when I am forgetful or if I want to understand the surface area of the service.
Describe the solution you'd like
Similar to the /_cat/ call there would be a way to inventory all the supported routes of OpenSearch including the installed plugins.
%  curl https://localhost:9200/_cat/routes
|\---/|
| o_o |
 \_^_/
/_cat/allocation [GET]
/_cat/routes [GET]
...
/_plugins/_alerting/monitor/{monitor_id} [GET, POST, PUT, DELETE]
/_plugins/_alerting/monitors/_search [GET, POST]
/_plugins/_alerting/stats [GET]
/_plugins/_alerting/stats/{metric} [GET]

Describe alternatives you've considered
While these registered routes could be displayed output to the log, that doesn't seem as useful for a more adhoc check, but that would be useful for system administrators if they want to make sure they know the capabilities of the cluster.
Additional context

Brainchild from https://github.com/opensearch-project/security/pull/1841

The RESTful API should be generated from spec (https://github.com/opensearch-project/OpenSearch/issues/3090), making this easy.


modem: modem_cmux: C/R bit not set correctly in CMUX UIH frames

Describe the bug
The CMUX protocol uses the UIH frame type to transport data on a DLCI channel. The frame contains a header,
which contains a flag named C/R (command/response). This flag is used to indicate if a frame is a command (1) or a
response (0) to a command. The UIH frame is special as it does not define a response, unlike frames like SABM which
require an echo of said frame (with the C/R cleared (response)).
Some modems therefore ignore the C/R flag, so did the modem_cmux module, setting it to 0. However, the TELIT ME910
requires the flag to be set, as discovered by @JeffWelder
To Reproduce

build the sample net/modem_cellular for a board which has a TELIT ME910 modem, enabling CONFIG_MODEM_MODULES_LOG_LEVEL_DBG=y
Run the sample
Observe the modem_cellular.c driver reach the state run dial script
Observe the modem_chat script time out.

Expected behavior
The chat script should not time out and the modem_cellular.c driver should move to the next state await registered
Impact
The modem_cmux module can not send data to some modems like the TELIT ME910
Logs and console output
The following log is provided by @JeffWelder. It shows the parsed CMUX frames, parsed by Wireshark, imported as MUX27010.

The modem simply ignores the two AT commands shown on the last 4 lines of the log.
Environment

OS: MacOS
Zephyr SDK 0.16.0
NCS based on zephyr-rtos https://github.com/zephyrproject-rtos/zephyr/commit/4e7930b099771ecc5ad5c05b95a158cc0ceee0d2

Solved by https://github.com/zephyrproject-rtos/zephyr/pull/63574


developer docs: Clarify purpose of zulip-announce.

Testing plan:
manual
GIFs or screenshots:

Merged, after removing "developer" from the commit message, since this is the section that is docs for sysadmins, not for developers.  (We generally just use the docs:  prefix for all of ReadTheDocs).


Allow people to subscribe vs creating subscriber

As an admin I can manually create subscribers and a verification email goes out as expected. The verification email however doesn't work unless the "Allow people to sign up to email notifications is checked." This means in order to create subscribers we have to allow anyone who can see the status page to be able to subscribe themselves.
Do we want to cover the case that only admins can create subscribers?

Just tested this, looks like confirmations and unsubscribes are dependent on that option being enabled. Seems like a bug to me, since notifications are able to be sent when the option is disabled. Pretty simple fix gonna send a PR in a minute.

Thanks @mmollick


Fixed android client notification with non-latin characters

Same as here: https://github.com/Azure/azure-notificationhubs-samples/pull/48

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

@wagsousa : Thanks for your contribution to the Azure documentation! The author, @ysxu, has been notified to review your proposed change.

Thank you for your contribution. This issue has been resolved in a separate update. Closing this PR.


Update Block interface and update callers, add tests

@nickbp:  I would just complete your thought regarding OfferEvaluator behavior now.  After that I'd be happy to merge.


replace size-comparison in test with "hasSameSizeAs"

Checklist

[x] Test your changes as thoroughly as possible before you commit them. Preferably, automate your test by unit/integration tests.
[x] Make sure mvn install runs for the whole project and, if you touched any code in the respective service, submission and distribution service can be run with spring-boot:run

Description

My SonarLint-plugin displayed this as warning and I just applied the quick-fix.
This is the same as #311, but due to organisational reasons it would have made problems for us to submit a pull request at that time.

@nils4cosee could you please link to the relevant sonar warning? I'm not seeing it on our https://sonarcloud.io/project/issues?id=corona-warn-app_cwa-server&resolved=false neither was able to find the online reference to it, so I'm curious ;)

Oh sorry, I assumed it was SonarLint showing me this warning, but it was actually this plugin: https://github.com/chrisly42/cajon-plugin/blob/master/README.md

@nils4cosee we'd like to merge this in but it seems we are not able to via Github. Can you try perhaps to merge master into your branch manually?

@stevesap I have rebased onto the master

@nils4cosee we still cannot merge. Could you please try to check the box 'Allow edits from maintainers' on your PR?


change self.mean and self.cov to self._mean and self._cov in circuit.py

In circuit.py, self.mean and self.cov did not update（line 962,963）,  which causes gaussian backend mcmc sampling error.

#27 中已经修正了


Persian (Farsi) Calendar support

Investigate and add support for Persian calendar

First of all, thank you for the such great library.
How can I turn the calendar into Persian?

Hi @alibahadori, it's not supported currently.


Thrift 2905 fixes

Fixes incorrect generics generation for boxed types
• Fixes rendering of complex constant values (e.g. maps of structs & ints)

Tracked in THRIFT-3381
(@kdubb: if you create the JIRA ticket before the PR and reference the ticket within the PR we get the PR message into the ticket automatically.)


Hovers are not working when scrollable current line blame annotations are disabled

GitLens Version: 11.1.0
Git Version: 2.29.2
VSCode Version: 1.52.1
OS Version: macOS 11.1

Steps to Reproduce:

Set gitlens.currentLine.scrollable to false.
Hover the cursor over a current line blame annotation.

Expected behavior (when gitlens.currentLine.scrollable is set to true):

However, hovers are not working if gitlens.currentLine.scrollable is set to false:

Unfortunately, this is expected behavior (because of limitations with the VS Code APIs). Setting gitlens.currentLine.scrollable to false only allows the hover to show at the very last character of the line (not very useful, I know). But you can also set "gitlens.hovers.currentline.over": "line" and that will allow the hovers to show anywhere over the line.
I've added a note about this to both the setting and the GitLens settings UI.


Open and close new window multiple times apparently cause memory leak on ubuntu 20.04

Describe the bug
After update from 0.9.12 to 0.10.0, noticed memory leak after open and close new window multiple times (on Ubuntu 20.04).
To Reproduce
Steps to reproduce the behavior:

Open and close modal window multiple times

Desktop (please complete the following information):

OS: Linux
Version 0.10.0

Example: TestApp.zip

Seems this helps (Avalonia.X11/X11Window.cs/Cleanup, add  this._transparencyHelper?.Dispose()):
 void Cleanup()
        {
            this._transparencyHelper?.Dispose();

            if (_imeControl != null)
            {
                _imeControl.Dispose();
                _imeControl = null;
                _ime = null;
            }

            if (_xic != IntPtr.Zero)
            {
                XDestroyIC(_xic);
                _xic = IntPtr.Zero;
            }

            if (_handle != IntPtr.Zero)
            {
                XDestroyWindow(_x11.Display, _handle);
                _platform.Windows.Remove(_handle);
                _platform.XI2?.OnWindowDestroyed(_handle);
                _handle = IntPtr.Zero;
                Closed?.Invoke();
                _mouse.Dispose();
                _touch.Dispose();
            }
        }


crash when trying on test yaml file

Testing on a .yaml containing the following content (file renamed to .txt for upload to GH)
logMethods copy.txt
produced the following error:
Configuration Parameters Reference
Any information about this page goes here.
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.9/bin/yamldoc", line 8, in
sys.exit(cli())
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/yamldoc/cli.py", line 14, in cli
yamldoc.main(args.file, args.char, args.debug, args.schema)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/yamldoc/parser.py", line 413, in main
yaml = parse_yaml(yaml_path, char, debug)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/yamldoc/parser.py", line 43, in parse_yaml
key, value = line.rstrip().split(":", 1)
ValueError: not enough values to unpack (expected 2, got 1)

Hi, thanks very much for the report. Would you mind letting me know which version of yamldoc you are using? The one on pypi is quite a bit behind the master branch here.
Do you mind if I ask where you got this file from as well? I don't know if I've included the case of a list on the top level as you have here (three lines starting with - name but without an identifier).
yamllint (https://www.yamllint.com/) shows that your file is valid YAML, it might just be a bit more complicated than I've included coverage for.
The comments should all be ignored by the way, so a clean version for testing would look like:
---
- names:
    - logMethods
  description: names of source code methods that are considered to be logging
    methods (e.g. 'error')
  type: list
  required: false
- names:
    - logMethodRegex
  description: pattern that source code methods that are considered to be logging
    methods must match (e.g. '^(log|Log)|(Log|log)$')
  type: string
  required: false
- names:
    - logStreams
  description: names of source code variables who are considered to be logging
    streams (e.g. 'cerr')
  type: list
  required: false

Version - i ran ' pip install yamldoc' (on OSX) based on the instructions from website - so that's the ver used.
File - it's part of our application, it was just the first one I grabbed (we have many like it). The project looks great so I wanted to recommend we use it to doc our .yamls. Be great if we could make it happen. Thanks!

I see, that makes sense. I will look into the specifics of your use case, but while I'm doing that I wanted to provide a stopgap solution as well.
I would recommend a few things based on your file:

The title and description that you are providing won't be respected by yamldoc naively, they must be placed in special _yamldoc_title and _yamldoc_description objects in a schema file. This basically just sets the title and the description of the page.
The - name: - logMethod syntax is a little strange (though I'm sure reasonable in your application), could you possible refactor to have just the object named logMethod followed by its attributes? That would be recommended from the yamldoc use case.
I would also recommend moving the type attribute into the same schema file used for the title and descriptions. I don't have support for a special type attribute in the raw document. It has to be in a separate file.
Your comments right now do not use any special syntax to indicate that they should be included by yamldoc in the resulting file. If you take a quick look at the Flat YAML section of the tutorial it explains the distinction: https://chrisbcole.me/yamldoc/tutorial/ but basically you have to start them with #' instead of #.
Note that you have to escape some special characters in the second description, because | is the tab separator in markdown for tables.

As an illustrative example, I've reformatted your input so that it works with yamldoc as-is without any modifications.
The logMethods.yaml file would look like:
#' 'logMethods' lists known method names collected from common logging
#'  frameworks used to indicate source code that is logging event data to stream.
logMethods:
  description: "names of source code methods that are considered to be logging methods (e.g. 'error')"
  type: list
  required: false

#' 'logMethodRegex' specifies an optional regex that will be applied
#'  to a scanned source code method/function name. If matched, the method
#'  will be considered to be a 'logging method' (see above). For example: ^(log|Log)|(Log|log)$
logMethodRegex:
  description: "pattern that source code methods that are considered to be logging methods must match (e.g. '^(log\|Log)\|(Log\|log)$')"
  type: string
  required: false

#' 'logStreams' defines which source code variables within
#'  this ANTLR syntax are treated as output streams (e.g. stdout, stderr).
#'  Literal constants (e.g. "error connecting to {}") passed to a variable
#'  listed below (e.g 'cout') will be assigned a 'logger_method_invoke'
#'  symbol source context.
logStreams:
  description: "names of source code variables who are considered to be logging streams (e.g. 'cerr')"
  type: list
  required: false

And the special logMethods.schema file that I mentioned above would look like:
# These are special options that
# control the output markdown document.
_yamldoc_title: 🔟❎ 'compile' log methods options
_yamldoc_description: log Methods options define input source code method name that if found to be called within a function located inside scanned source code file will mark the symbol context of any string constant passed to them as 'logger_method_invoke' within output symbol unit produced for that source code file. Identifying points in input source code that perform logging operations allows the 'run' pipeline to correlate l1x Objects read from a target input back to the source code from which they originated.

This gives the Markdown output shown below by using (note: the -s switch refers to the schema file):
yamldoc logMethods.yaml -s logMethods.schema

I'll attach the formatted markdown below that results from this. Note that I'm using the master branch here rather than the pip install version, I think it should work with that version as well though. Let me know if these refactoring changes are impossible and I can look into any of the specific changes that might be needed to help you out.

⚠  The resulting markdown from the above command follows ⚠

🔟❎ 'compile' log methods options
log Methods options define input source code method name that if found to be called within a function located inside scanned source code file will mark the symbol context of any string constant passed to them as 'logger_method_invoke' within output symbol unit produced for that source code file. Identifying points in input source code that perform logging operations allows the 'run' pipeline to correlate l1x Objects read from a target input back to the source code from which they originated.
logMethods
'logMethods' lists known method names collected from common logging  frameworks used to indicate source code that is logging event data to stream.
Member variables:

Key
Value
Type
Information

description
"names of source code methods that are considered to be logging methods (e.g. 'error')"
Unknown

type
list
Unknown

required
false
Unknown

logMethodRegex
to a scanned source code method/function name. If matched, the method  will be considered to be a 'logging method' (see above). For example: ^(log|Log)|(Log|log)$
Member variables:

Key
Value
Type
Information

description
"pattern that source code methods that are considered to be logging methods must match (e.g. '^(log|Log)|(Log|log)$')"
Unknown

type
string
Unknown

required
false
Unknown

logStreams
this ANTLR syntax are treated as output streams (e.g. stdout, stderr).  Literal constants (e.g. "error connecting to {}") passed to a variable  listed below (e.g 'cout') will be assigned a 'logger_method_invoke'  symbol source context.
Member variables:

Key
Value
Type
Information

description
"names of source code variables who are considered to be logging streams (e.g. 'cerr')"
Unknown

type
list
Unknown

required
false
Unknown

Generated by yamldoc v0.1.6 on 2023-08-10

Thanks for the feedback!
Changing doc structure: this doc is parsed by a jackson objectMapper as part of a much larger deserialization process where this file and many others like it are combined into a much larger configuration DOM which i was hoping to document using yamldoc :) .. so I can't refactor it :/
Comments - I can def do that!
Type propety - this is a property of a java object that is read into it from the yaml via jackson's objectMapper. I can change its name - will that help?


Added greedy algorithms

I have added some Greedy algos (kadane, seive of erathosthenes, finding gcd and rat in a maze).

Please give this repo a star and follow me for follow back 😊


Cleanup of AKSettings change for mic sample rate issue

Don't check for device type anymore, check for sample rate setting before AVAudioEngine creation.
Also cleaned up recorder demo

Its breaking Travis but I know how to fix


Vec of size 0 not supported

I have been told that Vec's of size 0 is not supported.  I would like for them to be supported.
I have a pipeline of a parameterized size num_stages:
val r_valids = Reg(init = Vec.fill(num_stages) { Bool(false) })

It may even be of size zero, in which the data passes through instantly with no registering.

How do you plan on using this? When it's zero size, you would have zero width wire (I think work is in progress to support that), but how would you get the combinational passthrough behavior? Presumably, if you tried to do anything with the Vec that's not a collective operation, it would just give you an error.
At a glance, I don't see anything that would prevent having a size zero Vec; the collective operations all seem to do approximately sane things on an empty Vec, and indexing into it hopefully should just error out.
Since you want to see both combinational and registered behavior, might it make more sense to define your own helper function / class, like makePipelineStage(numStages: Int) which internally can generate either a Wire or Reg(Vec)?

It looks like (at least in this case) I can code my way around this - I was already guarding accesses to the r_valids if num_stages==0, but it makes code a bit uglier to move the instantiations around.
I'd make this low priority, but still something I'd like to see.

I'm still not sure how you plan on making zero width Vecs do what you want to do (combinational passthrough) unless Reg does something super unintuitive on having a zero width element passed in or you add in special case code (which defeats the purpose of this in the first place, and you should probably just write your custom makePipelineStage(numStages: Int) or delay(numCycles: Int) method that internally instantiates either a Reg or Wire).

At least one other design, (LBNL's OpenSoC) makes similar assumptions (constructing a Vec with zero elements is legal).

On May 12, 2016, at 4:16 PM, Christopher Celio<EMAIL_ADDRESS>wrote:
I have been told that Vec's of size 0 is not supported. I would like for them to be supported.
I have a pipeline of a parameterized size num_stages:
val r_valids = Reg(init = Vec.fill(num_stages) { Bool(false) })
It may even be of size zero, in which the data passes through instantly with no registering.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub

Can you link to their code (if it's open source) or post a snippet showing how it's used?

Vec(0) should be supported to avoid needless special casing in generators.
It's also presently used in some cases to conditionalize I/O generation.
(You might say that would better handled with Option or something, but not
supporting Vec(0) is certainly a regression.)
On Thu, May 12, 2016 at 4:52 PM, Richard Lin<EMAIL_ADDRESS>wrote:

I'm still not sure how you plan on making zero width Vecs do what you want
to do (combinational passthrough) unless Reg does something super
unintuitive on having a zero width element passed in or you add in special
case code (which defeats the purpose of this in the first place, and you
should probably just write your custom makePipelineStage(numStages: Int)
or delay(numCycles: Int) method that internally instantiates either a Reg
or Wire).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/ucb-bar/chisel3/issues/188#issuecomment-218917896

I think it would be nice to see some example code, but having Vec(0) be part of an interface definition could make sense, essentially equivalent to Option(None) but more uniform.

Is this still an issue for anyone? Vec of size 0 is supported now and we use it extensively in RocketChip's top-level.

Ups. I clicked 'close' meaning to close the window. ;-) Probably this issue should be closed anyway.

FYI, it looks like the (to be deprecated?) Vec.fill approach doesn't like vectors of size zero. The following craps out:
val din = Vec.fill(numReadWritePorts)(UInt(OUTPUT, width = dataWidth))

With the following (truncated) error:
...
Caused by: java.lang.IllegalArgumentException: requirement failed
	at scala.Predef$.require(Predef.scala:207)
	at chisel3.core.Vec$.do_apply(Aggregate.scala:50)
	at chisel3.core.Vec$.do_fill(Aggregate.scala:95)
...

Due to: https://github.com/ucb-bar/chisel3/blob/master/chiselFrontend/src/main/scala/chisel3/core/Aggregate.scala#L50
The supported Vec(gen: T, n: Int) works fine, however:
val din = Vec(UInt(OUTPUT, width = dataWidth), numReadWritePorts)

No, Vec.fill is supported going forward, but Vec(gen: T, n: Int) is
deprecated.
I think the issue is that you can declare vectors of size 0, but you can't
try to connect anything to them.
On Fri, Jul 22, 2016 at 5:49 PM, Schuyler Eldridge<EMAIL_ADDRESS>
wrote:

FYI, it looks like the (to be deprecated?) Vec.fill approach doesn't like
vectors of size zero. The following craps out:
val din = Vec.fill(numReadWritePorts)(UInt(OUTPUT, width = dataWidth))
With the following (truncated) error:
...
Caused by: java.lang.IllegalArgumentException: requirement failed
at scala.Predef$.require(Predef.scala:207)
at chisel3.core.Vec$.do_apply(Aggregate.scala:50)
at chisel3.core.Vec$.do_fill(Aggregate.scala:95)
...
Due to:
https://github.com/ucb-bar/chisel3/blob/master/chiselFrontend/src/main/scala/chisel3/core/Aggregate.scala#L50
The supported Vec(gen: T, n: Int) works fine, however:
val din = Vec(UInt(OUTPUT, width = dataWidth), numReadWritePorts)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ucb-bar/chisel3/issues/188#issuecomment-234688829,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAaehwC5YH0fACIQp1fAc9hrCIF3N156ks5qYWU1gaJpZM4IdkOl
.


Error when running "famous dev"

I am installing famo.us, and I created a project, then went into the folder and ran famous dev like it says here
http://famous.org/get-started.html
but then I get an error:
Does anyone know how to fix this? (I'm on windows 7 64-bit)
Thanks
C:\Users\Me\Desktop\Apps\Messenger>famous create messenger
Seed project created at: C:\Users\Me\Desktop\Apps\Messenger\messenger
C:\Users\Me\Desktop\Apps\Messenger>cd messenger
C:\Users\Me\Desktop\Apps\Messenger\messenger>famous dev
Node Modules not yet installed, attempting to do so now.
events.js:85
throw er; // Unhandled 'error' event
^
Error: spawn npm ENOENT
at exports._errnoException (util.js:746:11)
at Process.ChildProcess._handle.onexit (child_process.js:1053:32)
at child_process.js:1144:20
at process._tickCallback (node.js:355:11)
C:\Users\Me\Desktop\Apps\Messenger\messenger>

I had to run
npm install -g browserify
npm install -g uglify
npm install -g uglifyjs
npm install -g watchify
npm install -g serve
and then run the commands in the packages.json directly - seems like the famous command line does not work

Do not understand how they can release a product in this state Does not give me a warm and fuzzy feeling

Not released :smile: v0.5.0 still Beta

Sorry my bad

@TheInvoker @jmcfet The CLI should be fully compatible with windows as of 92fbc75a0f7409c495bf75786d82baba531d9cbf.