Dash integration

I contacted @Kapeli regarding a docs.rs integration for Dash, similar to ones of rubygems.org, etc..
He said that while it is on the roadmap, he can't say when he will get to it. However, to make the process as smooth as possible, docs.rs should be ready for when the time comes. 😉
Quote from the email:

What I would need from docs.rs is:

A way to search for packages
A way to get the available versions for a given package
A way to download the docs in HTML format for a given package and version

Current status:

should be pretty straightforward, since a similar route already exists, so we just need a JSON version of it
AFAIK there is no specfic route for that yet, but since the same info is already shown at other places, so I guess the groundwork for that is there, and it just needs to be exposed on its own route
Route also doesn't exist yet (related to #88). I guess the best way to achieve it would be to generate a .tar.gz archive on the fly when it is first requested, and then cache that for subsequent requests. From what I can see, the tar crate makes it pretty easy to compress directories into a file.

@onur If the proposed approaches sound okay to you, I'll prepare a PR for each of routes.

Any update on this? I would love to have docs.rs support in Dash.

@Kapeli also created an issue regarding a Dash integration: https://github.com/rust-lang-nursery/docs.rs/issues/174
But other than that, no progress really. My first pull request is still open, and I'd still like to do further work towards it, if that one is accepted.
Maybe now that the repo has been moved under the rust-lang-nursery umbrella, things can move forward a bit...

I'd like to see this happen too. I'm voting for crate docs support in Dash for years now (almost thought I'm the only one who'd like it).
Kapeli stated that he just needs docs to be downloadable in some way. But since docsets seem to be pretty common (e.g. Zeal on Linux also uses them), wouldn't it be more versatile for docs.rs to provide docsets directly? (or maybe some other filetype if there's a more popular one).
Additional processing for creating docs upon a crate release isn't probably much. However, additional disk storage size would be significant.

I'm not sure if doc.rs should have native support for docsets. I think the current way of having one canonical doc format, that can then be transformed into others by the user is a more proper way, and also places less maintenance burden on the docs.rs team.
My rough plan was that once the features outlined in this issues have landed, I would implement support for using them from docs.rs in https://github.com/hobofan/rsdocs-dashing, and also expose rsdocs-dashing as a library. It should then be trivial to generate docsets for existing docs.rs documentation on-the-fly for other docset consumers, like Zeal users.

I added a route for retrieving basic information of a given crate that includes available versions of the crate: https://github.com/fanzeyi/docs.rs/commit/99eb7ca3d390593c68035558a1b0749bc1cad082 This should address the need 2 of this issue.

On building archives of Rustdoc, I wonder if it is possible to simply run some sort of tar command at the end of the documentation building process, and we can put this archive file into the database along with other files. Dash and other documentation viewers can simply download that archive as accessing other files.

Any updates on this?

wonder if it is possible to simply run some sort of tar command at the end of the documentation building process, and we can put this archive file into the database along with other files.

The problem with this is it will greatly increase our storage requirements. I don't have hard numbers, but we currently store about 3 TB of docs on S3. If we stored a compressed archive, I expect that to easily go up to 3.5. These storage costs are in perpetuity; we can't get rid of old versions because people are still using them.
Actually creating the archive is relativity cheap compared to the cost of the build, it's just storage costs that are an issue.

The downside of this method is that we would need to rebuild all the existing documents

This is unlikely to happen, but we have an issue open for a while: #464

Also note that it's not really feasible to store only the compressed archive because we would have to download the whole thing from S3 anytime someone visited a page for the crate+version. For large crates like winapi, that would greatly increase our egress costs.

Whoops, it looks like all this has been said before. Closing as duplicate of https://github.com/rust-lang/docs.rs/issues/174

Also note that it's not really feasible to store only the compressed archive because we would have to download the whole thing from S3 anytime someone visited a page for the crate+version. For large crates like winapi, that would greatly increase our egress costs.

Correction: egress is free, but downloading the entire archive would kill our response time for single pages.


Equipment Tab

A tab for tracking all equipment, tagged by farm and area. Including date purchased, price and storage locaton (use long. Lat. for accuracy and show on actual google map).

Also viewable within farm and area sections (possibly).

This would likely live within the 'farm' or 'area' sections. Since we want to adopt the 'belongs to' philosophy.


[Nix] Fully specify input dependencies on ocaml packages

Currently, a lot of the ocaml packages have too many/few dependencies, since opam doesn't use a sandbox and they are always built together. Some system deps are also missing here.
With Nix, we do have a sandbox and we can check if the dependencies are wrong and adjust them. This would increase build parallelism and code modularity.

Not really feasible because the dune files have a lot of inter-dependencies, so it's hard to split it into different projects.
If needed, we can work on this in the future, but for now the benefit of slightly more caching in builds and maybe faster ci sometimes is not really worth the hassle of fixing all the links.


[Meshmap] Dark mode enhancements

Notes for Reviewers
This PR fixes #
Signed commits

[x] Yes, I signed my commits.

https://github.com/layer5labs/meshery-extensions/pull/1796


Missing Documentation Image

The Starting Codespace page on https://contributor.r-project.org/r-dev-env/tutorials/creating_codespace/ appears to be missing the first image.

The file seems to be present in the repo so maybe just a build issue?

I've also added some changes to the wording here: https://via.hypothes.is/https://contributor.r-project.org/r-dev-env/tutorials/creating_codespace/.

The image added updated docs on  branch update/docs.
Right now following https://via.hypothes.is/https://contributor.r-project.org/r-dev-env/tutorials/creating_codespace/  and  updating other areas of docs.


Support grouping of clusters

/sig multicluster
This is mainly to support authorization on groups of clusters. Namespaces are the obvious mechanism for this, but they are not the only one and we need to do some design work here to find the right approach.
From https://github.com/kubernetes/community/blob/master/contributors/design-proposals/multicluster/cluster-registry/project-design-and-plan.md#beta

There is some more discussion about this in this doc.


Driver pod don't come up when secret value is changed for first time install

Describe the bug
In first time install , when first secret is created with wrong data(for eg. wrong username) and then it is deleted and recreated secret with correct values and same secret name then operator pod doesn't reconcile and driver pods don't come up.
How to Reproduce?

Install Operator and cr with wrong secret values for eg. wrong username or password
Only operator pod will be in running state now.
Now delete secret and create secret with same name and correct values
Observation : Operator pod doesn't reconcile and driver pods don't come up while correct secret is created

Expected behavior
Driver pod should come up in running state.
Data Collection and Debugging
1. Install Operator and cr with wrong secret values for eg. wrong username or password
[root@saurabh-csi-master dev]# oc get secret
NAME              TYPE     DATA   AGE
remoteguisecret   Opaque   2      2d16h
secret3           Opaque   2      23s
[root@saurabh-csi-master dev]# oc apply -f ibm-spectrum-scale-csi-operator.yaml
deployment.apps/ibm-spectrum-scale-csi-operator created
clusterrole.rbac.authorization.k8s.io/ibm-spectrum-scale-csi-operator created
clusterrolebinding.rbac.authorization.k8s.io/ibm-spectrum-scale-csi-operator created
serviceaccount/ibm-spectrum-scale-csi-operator created
customresourcedefinition.apiextensions.k8s.io/csiscaleoperators.csi.ibm.com created
[root@saurabh-csi-master dev]# oc apply -f csiscaleoperators.csi.ibm.com_cr.yaml
csiscaleoperator.csi.ibm.com/ibm-spectrum-scale-csi created

2. Only operator pod will be in running state now.
[root@saurabh-csi-master dev]# oc get pods
NAME                                               READY   STATUS    RESTARTS   AGE
ibm-spectrum-scale-csi-operator-65b8fc7548-l7hp8   1/1     Running   0          85s
[root@saurabh-csi-master dev]# oc get cso
NAME                     VERSION   SUCCESS
ibm-spectrum-scale-csi   2.9.0     False
Status:
  Conditions:
    Last Transition Time:  2023-02-02T03:29:13Z
    Message:               Failed to connect to GUI of the cluster with ID<PHONE_NUMBER>6884855798
    Reason:                readError
    Status:                False
    Type:                  Success
  Versions:
    Name:     ibm-spectrum-scale-csi
    Version:  2.9.0
Events:       <none>

3. Now delete secret and create secret with same name and correct values
[root@saurabh-csi-master dev]# oc delete secret secret3
secret "secret3" deleted
[root@saurabh-csi-master dev]#  kubectl create secret generic secret3 --from-literal=username=<correct username> --from-literal=password=<correct password> -n ibm-spectrum-scale-csi-driver
secret/secret3 created

4. Observation : Operator pod doesn't reconcile and driver pods don't come up while correct secret is created
[root@saurabh-csi-master dev]# oc get pods
NAME                                               READY   STATUS    RESTARTS   AGE
ibm-spectrum-scale-csi-operator-65b8fc7548-l7hp8   1/1     Running   0          4m52s
[root@saurabh-csi-master dev]# oc get cso
NAME                     VERSION   SUCCESS
ibm-spectrum-scale-csi   2.9.0     False

Images used :
Operator : quay.io/ibm-spectrum-scale-dev/ibm-spectrum-scale-csi-operator@sha256:3245168e3dc57c6a6d75a593f408dc4e2b099eefd1ed1969e155b05363b9493d
Driver: quay.io/ibm-spectrum-scale-dev/ibm-spectrum-scale-csi-driver@sha256:c50633c54f1771b4abfa843e42fb066890b66057dbede9401e7a6036a69ff573

The secret username part was fixed earlier. Now for secret password change - if initial password is wrong we delay locking of the user and appropriate error message is shown before and after locking of the user. After the user is locked the user has to be unlocked from storage cluster by Storage Scale admin.

Verified


[feature] : gunicorn  integration

gunicorn  integration

https://github.com/xiaopeng163/docker-compose-flask/blob/master/docker-compose.yml


Add InvalidSignatureException to supported error types

Commit Message: Add InvalidSignatureException to supported error types and allow error type being captured by stats.
Risk Level: Low
Signed-off-by: Bob Wang<EMAIL_ADDRESS>

Thanks, @bobwanglyft. Could you fix DCO?

/retest

@dio mind taking a look again? :)

cc. @lizan, just in case if you want to take another look.


Live Reload without using proxy

Honestly, I don't like the proxy setup through it is very easy 😃 .
I'll try to a new to implement the same 😸

Sample 😄

Released with v1.0.0. :)


Does not work with eslint on windows, but works on linux and osx

On windows no linting, eslint is in path and works from console. Insied vim what I get:
 Current Filetype: javascript.jsx
Available Linters: ['eslint', 'flow', 'jscs', 'jshint', 'standard', 'xo']
  Enabled Linters: ['eslint']
 Linter Variables:

let g:ale_javascript_eslint_executable = 'eslint'
let g:ale_javascript_eslint_options = ''
let g:ale_javascript_eslint_use_global = 0
 Global Variables:

let g:ale_echo_cursor = 1
let g:ale_echo_msg_error_str = 'Error'
let g:ale_echo_msg_format = '%s'
let g:ale_echo_msg_warning_str = 'Warning'
let g:ale_enabled = 1
let g:ale_keep_list_window_open = 0
let g:ale_lint_delay = 200
let g:ale_lint_on_enter = 1
let g:ale_lint_on_save = 1
let g:ale_lint_on_text_changed = 'always'
let g:ale_linter_aliases = {}
let g:ale_linters = {'javascript': ['eslint']}
let g:ale_open_list = 0
let g:ale_set_highlights = 1
let g:ale_set_loclist = 1
let g:ale_set_quickfix = 0
let g:ale_set_signs = 1
let g:ale_sign_column_always = 0
let g:ale_sign_error = '>>'
let g:ale_sign_offset = 1000000
let g:ale_sign_warning = '--'
let g:ale_statusline_format = ['%d error(s)', '%d warning(s)', 'OK']
let g:ale_warn_about_trailing_whitespace = 1
  Command History:

(finished - exit code 1) 'cmd /c "C:\Users\user\node_modules\eslint\bin\eslint.js"  -f unix --stdin --stdin-filename "C:\Users\user\workspace\bus-front\app\api\index.js" < "C:\Users\user\AppData\Local\Temp\VIL47D3.tmp\index.js"'

<<<NO OUTPUT RETURNED>>>

(finished - exit code 1) 'cmd /c "C:\Users\user\node_modules\eslint\bin\eslint.js"  -f unix --stdin --stdin-filename "C:\Users\user\workspace\bus-front\app\api\index.js" < "C:\Users\user\AppData\Local\Temp\VIN50ED.tmp\index.js"'

<<<NO OUTPUT RETURNED>>>

It seems to me that path to eslint is somehow incorrect.

I'll test this on Windows when I get the chance. It might be another path quoting issue. On Windows, the handling of quotes in the shell is the responsibility of each program, instead of the shell itself. This causes many issues.

@alex-shamshurin I haven't had the opportunity to try this myself, but you might try this again, given a commit I just pushed for #549. I changed the way strings are escaped for cmd /c on Windows, and that may or may not fix your issues.

This is what I see now:

 Current Filetype: javascript.jsx
Available Linters: ['eslint', 'flow', 'jscs', 'jshint', 'standard', 'xo']
  Enabled Linters: ['eslint']
 Linter Variables:

let g:ale_javascript_eslint_executable = 'eslint'
let g:ale_javascript_eslint_options = ''
let g:ale_javascript_eslint_use_global = 0
 Global Variables:

let g:ale_echo_cursor = 1
let g:ale_echo_msg_error_str = 'Error'
let g:ale_echo_msg_format = '%s'
let g:ale_echo_msg_warning_str = 'Warning'
let g:ale_enabled = 1
let g:ale_keep_list_window_open = 0
let g:ale_lint_delay = 200
let g:ale_lint_on_enter = 1
let g:ale_lint_on_save = 1
let g:ale_lint_on_text_changed = 'always'
let g:ale_linter_aliases = {}
let g:ale_linters = {'javascript': ['eslint']}
let g:ale_open_list = 0
let g:ale_set_highlights = 1
let g:ale_set_loclist = 1
let g:ale_set_quickfix = 0
let g:ale_set_signs = 1
let g:ale_sign_column_always = 0
let g:ale_sign_error = '>>'
let g:ale_sign_offset = 1000000
let g:ale_sign_warning = '--'
let g:ale_statusline_format = ['%d error(s)', '%d warning(s)', 'OK']
let g:ale_warn_about_trailing_whitespace = 1
  Command History:

(finished - exit code 0) 'cmd /c C:\Users\salex\node_modules\eslint\bin\eslint.js  -f unix --stdin --stdin-filename C:\Users\salex\workspace\bus-front\app\api\index.js < C:\Users\salex\AppData\Local\Temp\VILABD7.tmp\index.js'

<<<NO OUTPUT RETURNED>>>

So error code is 0, but is happened is very weird. Istead of run parser, a text file with eslint code is opened.

This will be a Windows issue. You can execute the file named eslint.js on Mac and Linux. It's not executable on Windows.

Try again. I made it run the script with node on Windows.

Thank you, it works!


Automated cherry pick of #4028: huawei reset password bugfix

Cherry pick of #4028 on release/2.13.
#4028: huawei reset password bugfix

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.13@0576b8f). Click here to learn what that means.
The diff coverage is 0%.

@@              Coverage Diff               @@
##             release/2.13   #4030   +/-   ##
==============================================
  Coverage                ?   6.93%
==============================================
  Files                   ?     505
  Lines                   ?   85146
  Branches                ?       0
==============================================
  Hits                    ?    5908
  Misses                  ?   78738
  Partials                ?     500

Flag
Coverage Δ

#aFlag
6.93% <0%> (?)

Impacted Files
Coverage Δ

pkg/compute/models/elasticcache_skus.go
4.87% <0%> (ø)

pkg/compute/models/elasticcache_accounts.go
3.82% <0%> (ø)

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 0576b8f...771b603. Read the comment docs.

/approve
/lgtm


lstrip_blocks doesn't preserve space before end block on the same line

Look at the following template code:
set_property verilog_define {
  {%- for k, v in vlogdefine.items() %}{{ k }}={{ v|param_value_str }} {% endfor -%}
  } [get_filesets sources_1]

https://github.com/olofk/edalize/blob/bdb6c9ccc666e9f60333279ad53ed09cda88b3dc/edalize/templates/vivado/vivado-project.tcl.j2#L27-L29
Up to Jinja2 2.10.3 this would result in something like
set_property verilog_define {vlogdefine_bool=1 vlogdefine_int=42 vlogdefine_str=hello } [get_filesets sources_1]

https://github.com/olofk/edalize/blob/bdb6c9ccc666e9f60333279ad53ed09cda88b3dc/tests/test_vivado/test_vivado_0.tcl#L10
The code has lstrip_blocks = True.
Now with 2.11.0 the code is rendered like this:
set_property verilog_define {vlogdefine_bool=1vlogdefine_int=42vlogdefine_str=hello} [get_filesets sources_1]

@towoe bisected the behavior change down to https://github.com/pallets/jinja/commit/7d00a40465c89bee141ab5a3db545a20e7d30509 (by @petee-d in https://github.com/pallets/jinja/issues/857)
According to the documentation

lstrip_blocks
If this is set to True leading spaces and tabs are stripped from the start of a line to a block. Defaults to False.

I don't think the whitespace should be removed before the endfor, since that's not whitespace "from the beginning of the line". Am I misunderstanding that, or does the new version introduce an unexpected change in behavior?
Python 3.7.3 (but also happens on 3.5 in CI)

This also affects me in the same way as the original poster. The documentation seems pretty clear to me that the 2.11 behavior is wrong. From https://github.com/pallets/jinja/blob/2.11.x/docs/templates.rst#whitespace-control:

(Nothing will be stripped if there are other characters before the start of the block.)

This is due to #858, which fixed a pretty big speed issue with parsing space. I'm fine with fixing this issue it caused, but I don't want to just revert that change. If anyone wants to play around with the regex in the lexer and fix this, I'm happy to review it.

cc @petee-d

Sorry about the fix breaking the intended behavior of lstrip_blocks, I remember being a bit confused about what exactly it's supposed to do and being unable to find proper documentation for it. I'm not sure why Google didn't take me to the docs part @kenyon linked to, very weird. So I ended up figuring out the intended behavior from the tests and the implementation and apparently missed this.
As @davidism said, reverting the fix would cause other trouble so a new fix needs to be devised. I will try to make time for that this week.

from jinja2 import Template

t = Template(
    "{% if x %}{{ x }} {% endif %}y",
    lstrip_blocks=True,
)
out = t.render(x="x")
assert out == "x y"

https://github.com/pallets/jinja/blob/547e6e39ec3994c9dd0c806ee7bb29353843060e/src/jinja2/lexer.py#L721-L735
Here's the issue. When this template is being tokenized, find("\n") is handed text containing only the space between {{ x }} and {% endif %}, sees no newline, then strips from the beginning of the text.
Adding "\n" in text to the elif makes a bunch of tests fail because the first line of a template doesn't contain a newline but should be stripped if it only has space.

And if we get a little smarter and track whether we're on the first line, it still fails if trim_blocks is also enabled since that strips off the newline as part of the regex.

It also seems that the behaviour of {{ raw }} {{ endraw }} is affected. Before 2.11.0 this will force a space at this place. Now this space is removed.

@petee-d any chance you have some time to take a look at this again? I'm going to revert it for 2.11.2 otherwise.

Ouch, totally forgot about this. Will try to actually make the time this week, otherwise revert it if the side effects are as bad as it seems.

My tentative plan is to release on Saturday. Let me know if you're working on it, I can push that back if so.

I think I have a fix. I tried not to be influenced in my fix by your previous comments @davidism and yet still came to the same solution you tried, just went a bit further.
First of all, I think I originally intended for my fix to behave differently if l_pos = text.rfind("\n") + 1 didn't find any newline character but then forgot about it. So I no longer do the stripping if there is no newline in text. Then I also tried to solve the problem with the source first line needing to be stripped anyway, but instead of using or pos == 0, I used a line_starting boolean flag intialized at True. Then I just set this flag after processing each token based on whether the matching string ends with a newline and it also solves the trim_blocks issue. See the fix in #1183.
The current test suite passes, tomorrow I will also add new tests for the cases in this issue and other I can think of. I will also run the original version, first fix and the second fix about my freshly collected 5GB set of user created templates I collected from my project, compare the parse trees and performance.

Tests added, perf tests showed no degradation, so it's done from my side. :)

Just released 2.11.2 with this.


Nodebalancers - Update E2E Tests for Fast Track

Updated nodebalancers tests to handle the changes introduced in the nodebalancer fast track work
Updated list linodes powerOff action's assertion to "Powering off" (Although 'Powering Down' sounds more like regular english to be honest).

To Test
yarn && yarn start
yarn selenium
yarn e2e -d nodebalancers

Tests take a while, because they create new linodes and a new nodebalancer per test spec. This will be much quicker when running on mocks.
22 passing (289.20s)

Coverage remained the same at 28.418% when pulling 7dd6362ea871ccecfe124d2a04e64c32caf6e189 on patthiel:nodebalancers-fixes into 2cf7a2876be56ab5f9968406c964e1bf4beff329 on linode:develop.


Augeas[whitelist_phar]: Could not evaluate

Hello, im using your module on my Vagrant-Puppet configuration.
I have puppet Puppet v3.4.3
Vagrant 1.6.3
configuration on my manifest
class { 'composer':
target_dir      => '/usr/local/bin',
composer_file   => 'composer', # could also be 'composer.phar'
}
composer::selfupdate { 'selfupdate_composer':
timeout       => 300,   # Timeout for this command
tries         => 3,     # Retries for this command
}
composer::exec { 'project-update':
cmd => 'update',  # REQUIRED
cwd => '/var/www', # REQUIRED
}
i get this error:
Error: /Stage[main]/Composer/Augeas[whitelist_phar]: Could not evaluate: Save failed with return code false, see debug
Warning: /Stage[main]/Composer/Exec[download_composer]: Skipping because of failed dependencies
Warning: /Stage[main]/Composer/File[/usr/local/bin/composer]: Skipping because of failed dependencies
Warning: /Stage[main]/Php/Composer::Exec[project-update]/Exec[composer_update_project-update]: Skipping because of failed dependencies
Warning: /Stage[main]/Php/Composer::Selfupdate[selfupdate_composer]/Exec[composer_selfupdate_selfupdate_composer]: Skipping because of failed dependencies
In the documentation reads that wont require augeas but its installed by default on ubuntu OS 14.04

A pull request was merged which fixes the suhosin_enabled on Ubuntu 14.04: https://github.com/tPl0ch/puppet-composer/pull/59. We released module version 1.3.4 that contains the fix. Please let us know if still not working.


chore(rust): bump rustc to v1.69.0 (nightly-2023-04-20)

To be merged after tomorrow's release.

!bench


asciidoctor-diagram fails to find dot.exe

Although I'm not sure if this is right place to post this but as I've summarized in the title, after following the instructions to enable the asciidoctor-diagram in .adoc files, the extension fails to find dot.exe, throwing the errors below;
asciidoctor: ERROR: 2017-05-20-diagram-in-a-post.adoc: line 8: Failed to generate image: Could not find the 'dot' executable in PATH; add it to the PATH or specify its location using the 'graphvizdot' document attribute
asciidoctor: ERROR: 2017-05-20-diagram-in-a-post.adoc: line 18: Failed to generate image: no implicit conversion of nil into String
asciidoctor: ERROR: ascii-sampleDiagram.adoc: line 7: Failed to generate image: Could not find Java executable

You can find my build in my repo either in the main branch (also my working branch) or the source branch (where my github page gets built/deployed), but in my gem file I have;
source 'https://rubygems.org'
gem 'jekyll', '~> 4.2'
gem 'jekyll-include-cache', group: :jekyll_plugins

# If you have any plugins, put them here!
group :jekyll_plugins do
  gem 'kramdown-parser-gfm' if ENV['JEKYLL_VERSION'] == '~> 3.9'
  gem 'asciidoctor-diagram', '~> 2.2', '>= 2.2.1'
  gem 'jekyll-asciidoc', github: 'asciidoctor/jekyll-asciidoc'
  gem 'minitest', '~> 5.14', '>= 5.14.4'
  gem 'rake', '~> 13.0', '>= 13.0.6'
  gem 'minima', '~> 2.5'
  gem 'jemoji', '~> 0.12.0'
  gem 'titleize', '~> 1.4', '>= 1.4.1'
  gem 'jekyll-remote-theme', '~> 0.4.3'
  gem 'jekyll-timeago', '~> 0.13.1'
  gem 'jekyll-feed', '~> 0.12'
  gem 'jekyll-sitemap', '~>1.4'
  gem 'jekyll-archives', '~> 2.2', '>= 2.2.1'
  gem 'jekyll-scholar', '~> 7.0'
  gem 'jekyll-webp', '~> 1.0'
  gem 'jekyll-loading-lazy', '~> 0.1.1'
  gem 'jekyll_figure', '~> 0.0.3'
end

platforms :mingw, :x64_mingw, :mswin, :jruby do
  gem 'tzinfo', '~> 1.2'
  gem 'tzinfo-data'
end

gem 'wdm', '~> 0.1.1', :platforms => [:mingw, :x64_mingw, :mswin]
gem 'eventmachine', '1.2.7', git: 'https://github.com/eventmachine/eventmachine.git', tag: 'v1.2.7'

and my config is as follows;
############################################################
# Plugins (previously gems)
plugins:
 - asciidoctor-diagram
 - jekyll-asciidoc
 - jekyll-feed
 - jekyll-seo-tag
 - jekyll-remote-theme
 - jekyll-include-cache
 - jekyll-archives
 - jekyll/scholar
 - jekyll-webp
 - jekyll-loading-lazy
 - jekyll_figure
 - jemoji
 - titleize

############################################################
# Site configuration for the Jekyll-AsciiDoc Plugin
keep_files:
  - images

asciidoc: {}
asciidoctor:
  base_dir: :docdir
  safe: unsafe
  attributes:
    imagesdir: assets/img/ascii
    stem: ''
    :page-layout: auto@

I'll also add the steps I've taken to address the problem in no particular order;

installed graphviz-2.50.0 (64-bit) from the graphviz.org website w/ graphviz PATH added to all users
manually added C:\Program Files\Graphviz\bin dir to the windows 10 environment paths and placed it above the ruby27-x64 PATH.
checked-out issue #142 and tried this
followed the instructions on How to configure Asciidoctor Diagram in a Jekyll site gist

Any help is much appreciated!

Please direct usage questions to the project chat at https://asciidoctor.zulipchat.com.
The issue you are likely facing is that you have to tell Asciidoctor Diagram where the location of dot.exe using an AsciiDoc attribute. See https://docs.asciidoctor.org/diagram-extension/latest/#specifying-diagram-generator-paths We can elaborate in the chat.


WIP greenify build

I rule and have completed some work on Case Manager that's ready for review!
(brief, plain english overview of your changes here)
This pull request makes the following changes:

(your change here)
(another change here)
(etc)

(If there are changes to the views, please include a screenshot so we know what to look for!)
It relates to the following issue #s:

Fixes #X
Bumps #Y

For reviewer:

Adjust the title to explain what it does for the notification email to the listserv.
Tag this PR:

feature if it contains a feature, fix, or similar. This is anything that contains a user-facing fix in some way, such as frontend changes, alterations to backend behavior, or bug fixes.
dependencies if it contains library upgrades or similar. This is anything that upgrades any dependency, such as a Gemfile update or npm package upgrade.

If it contains neither, no need to tag this PR.

Codecov Report

Merging #2265 (373b8ae) into main (00415a5) will increase coverage by 5.30%.
The diff coverage is 98.45%.

@@            Coverage Diff             @@
##             main    #2265      +/-   ##
==========================================
+ Coverage   90.94%   96.25%   +5.30%
==========================================
  Files          84       79       -5
  Lines        1966     1655     -311
==========================================
- Hits         1788     1593     -195
+ Misses        178       62     -116

Impacted Files
Coverage Δ

app/helpers/calls_helper.rb
100.00% <ø> (ø)

app/helpers/welcome_message_helper.rb
100.00% <ø> (ø)

app/controllers/dashboards_controller.rb
95.83% <66.66%> (-4.17%)
:arrow_down:

app/models/concerns/paper_trailable.rb
92.30% <80.00%> (+14.52%)
:arrow_up:

app/lib/paper_trail_version.rb
97.14% <96.77%> (-2.86%)
:arrow_down:

app/models/patient.rb
98.38% <96.77%> (-1.05%)
:arrow_down:

app/controllers/accountants_controller.rb
100.00% <100.00%> (ø)

app/controllers/application_controller.rb
97.50% <100.00%> (+0.06%)
:arrow_up:

app/controllers/call_lists_controller.rb
100.00% <100.00%> (ø)

app/controllers/calls_controller.rb
96.42% <100.00%> (ø)

... and 34 more

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 f7aa6fa...373b8ae. Read the comment docs.

godmode to get builds to pass, and because not codebase-facing


show history plots incl. mean values

Something similar to the graph tab of the opensensemap-widget to give an impression of the history of sensor values.
I think it would also be interesting to additionally plot the mean sensor value of the last 24 hours / weeks / years (configurable). Possibly even the mean value of nearby senseboxes?
Generally speaking, I would be interested in contributing an implementation of this idea to your project (I was thinking about android widgets before someone pointed me to your project). However, I'm not sure how much time I can spend on this in the near future.

That's a great idea and it would be great if you provide such a widget.
Besides that I plan to add an app part with more features and screens to Open Sense. Certainly, there will be screens in the app to show history and statistics. I added your idea  to the issue #13. Unfortunately, I won't have the time to develop this app part in the coming weeks. So if you start with the widget part, I'm be glad to review and integrate it as soon as possible.


keyboard control for materialize-select

Currently, tab-flow bypasses materialize select.  Keyboard functionality should instead mirror system select.  Generally the way this is done is by instead of setting the 'invisible'  to display:none, clipping it to 0,0,0,0 and detecting keyboard input when it is focused.

Solved by https://github.com/Dogfalo/materialize/pull/582

Added in 48ff6ccf348523fe9c4f8d3c82a097dd8caa0651 by @robinbortlik


Using this with echo?

I tried to incorporate this example to echo but a lot of things seem to break.
Do you have an example somewhere with this on echo?

I don't actually have any examples. Maybe you could post some pieces that are breaking? Keep in mind that Authboss has it's own router, so using echo you should be using http://godoc.org/github.com/labstack/echo#Echo.Any I believe to mount the Authboss handler.

h := echo.WrapHandler(ab.NewRouter())
e.Any("/authboss", h)

This far, i figured!
Do i need middleware at this point or should i just incorporate echo's

Check the Authboss logs. May tell you something.

The logs are empty. Just to be sure, is it using the old version of context? My errors seem to be context related. If that is the case i will wait for v2 release as i use Go 1.8+ now. When is the release?


Windows 10 taskbar on top of the game

After the last Windows 10 update, the taskbar started to appear on top of the game. If GW2P is stopped, the taskbar is properly hidden. Is there something I do on my side to fix the problem?

I noticed that Sam has already fixed this in the develop branch. I built that branch myself locally and can confirm that the taskbar is no longer on top of GW2. If you have Visual Studio on your machine you can try to create a build yourself, otherwise you need to wait for the next official release.

Yes, this is already "fixed" on the develop branch. I don't understand the exact cause yet, but something in one of the new windows 10 updates changed the taskbar's behavior so that it always appears unless the WPF "ShowInTaskbar" window property is set to false.
I know it's a rather frustrating issue. No promises, but I'm going to see about getting a new release out sooner than later.

After building the develop branch, I can confirm that the taskbar is no longer over the game.

Also confirmed that the taskbar no longer appears while in windowed fullscreen on develop branch.

Is it possible to add this fix to the current version?

Can confirm that its still being a issue, this is the only reason why i haven't 100% gone over to this app instead of using Overwolf. :/


Bug: Unable to execute manifest

Description
Hi! I am encountering issues while trying to execute a manifest in comtrya. The manifest appears to not execute as expected and the output indicates that it's attempting to process unrelated files.
Example manifest
$ cat /tmp/manifests/foo.yaml
actions:
  - action: command.run
    dir: {{ env.HOME_DIR }}
    command: touch
    args:
      - {{ env.HOME_DIR }}/hello_world.txt

Steps to reproduce

Create the manifest file /tmp/manifests/foo.yaml as shown above.

Install comtrya binary (I've added it to an empty directory /tmp/tmp).

Create the empty directory /tmp/tmp_home

Run the command as follows: HOME_DIR="/tmp/tmp_home" /tmp/tmp/comtrya -vvv apply -m "/tmp/manifests/foo"

Here's the output from my machine:
TRACE load_config{args=GlobalArgs { manifest_directory: None, no_color: false, verbose: 3, command: Apply(Apply { manifests: ["/tmp/manifests/foo"], dry_run: false, label: None }) }}:load_config: No Comtrya.yaml found in current working directory
TRACE load_config{args=GlobalArgs { manifest_directory: None, no_color: false, verbose: 3, command: Apply(Apply { manifests: ["/tmp/manifests/foo"], dry_run: false, label: None }) }}:load_config: No Comtrya.yaml found in users config directory
TRACE build_contexts: context="user" key="id" value="501"
TRACE build_contexts: context="user" key="name" value="[REDACTED_NAME]"
TRACE build_contexts: context="user" key="username" value="[REDACTED_USERNAME]"
TRACE build_contexts: context="user" key="home_dir" value="[REDACTED_HOME_DIR]"
TRACE build_contexts: context="user" key="config_dir" value="[REDACTED_CONFIG_DIR]"
TRACE build_contexts: context="user" key="data_dir" value="[REDACTED_DATA_DIR]"
TRACE build_contexts: context="user" key="data_local_dir" value="[REDACTED_LOCAL_DATA_DIR]"
TRACE build_contexts: context="user" key="document_dir" value="[REDACTED_DOCUMENT_DIR]"
TRACE build_contexts: context="os" key="hostname" value="[REDACTED_HOSTNAME]"
TRACE build_contexts: context="os" key="family" value="unix"
TRACE build_contexts: context="os" key="name" value="macos"
TRACE build_contexts: context="os" key="distribution" value="Mac OS"
TRACE build_contexts: context="os" key="codename" value="unknown"
TRACE build_contexts: context="os" key="bitness" value="64-bit"
TRACE build_contexts: context="os" key="version" value="14.5.0"
TRACE build_contexts: context="os" key="edition" value="unknown"
TRACE build_contexts: context="env" key="TERM_SESSION_ID" value="[REDACTED_TERM_SESSION_ID]"
TRACE build_contexts: context="env" key="SSH_AUTH_SOCK" value="[REDACTED_SSH_AUTH_SOCK]"
TRACE build_contexts: context="env" key="LC_TERMINAL_VERSION" value="3.5.4"
TRACE build_contexts: context="env" key="COLORFGBG" value="15;0"
TRACE build_contexts: context="env" key="ITERM_PROFILE" value="Default"
TRACE build_contexts: context="env" key="XPC_FLAGS" value="0x0"
TRACE build_contexts: context="env" key="LANG" value="sv_SE.UTF-8"
TRACE build_contexts: context="env" key="PWD" value="/tmp/tmp"
TRACE build_contexts: context="env" key="SHELL" value="/bin/zsh"
TRACE build_contexts: context="env" key="__CFBundleIdentifier" value="com.googlecode.iterm2"
TRACE build_contexts: context="env" key="SECURITYSESSIONID" value="[REDACTED_SECURITY_SESSION_ID]"
TRACE build_contexts: context="env" key="TERM_FEATURES" value="[REDACTED_TERM_FEATURES]"
TRACE build_contexts: context="env" key="TERM_PROGRAM_VERSION" value="3.5.4"
TRACE build_contexts: context="env" key="TERM_PROGRAM" value="iTerm.app"
TRACE build_contexts: context="env" key="PATH" value="[REDACTED_PATH]"
TRACE build_contexts: context="env" key="LC_TERMINAL" value="iTerm2"
TRACE build_contexts: context="env" key="COLORTERM" value="truecolor"
TRACE build_contexts: context="env" key="COMMAND_MODE" value="unix2003"
TRACE build_contexts: context="env" key="TERM" value="xterm-256color"
TRACE build_contexts: context="env" key="TERMINFO_DIRS" value="[REDACTED_TERMINFO_DIRS]"
TRACE build_contexts: context="env" key="HOME" value="[REDACTED_HOME_DIR]"
TRACE build_contexts: context="env" key="TMPDIR" value="[REDACTED_TMPDIR]"
TRACE build_contexts: context="env" key="USER" value="[REDACTED_USERNAME]"
TRACE build_contexts: context="env" key="XPC_SERVICE_NAME" value="0"
TRACE build_contexts: context="env" key="LOGNAME" value="[REDACTED_USERNAME]"
TRACE build_contexts: context="env" key="LaunchInstanceID" value="[REDACTED_LAUNCH_INSTANCE_ID]"
TRACE build_contexts: context="env" key="__CF_USER_TEXT_ENCODING" value="0x1F5:0x0:0x0"
TRACE build_contexts: context="env" key="ITERM_SESSION_ID" value="[REDACTED_TERM_SESSION_ID]"
TRACE build_contexts: context="env" key="SHLVL" value="1"
TRACE build_contexts: context="env" key="OLDPWD" value="/"
TRACE build_contexts: context="env" key="HOMEBREW_PREFIX" value="/opt/homebrew"
TRACE build_contexts: context="env" key="HOMEBREW_CELLAR" value="/opt/homebrew/Cellar"
TRACE build_contexts: context="env" key="HOMEBREW_REPOSITORY" value="/opt/homebrew"
TRACE build_contexts: context="env" key="INFOPATH" value="/opt/homebrew/share/info:"
TRACE build_contexts: context="env" key="PYENV_SHELL" value="zsh"
TRACE build_contexts: context="env" key="PYENV_VIRTUALENV_INIT" value="1"
TRACE build_contexts: context="env" key="ZSH" value="[REDACTED_ZSH_DIR]"
TRACE build_contexts: context="env" key="PAGER" value="less"
TRACE build_contexts: context="env" key="LESS" value="-R"
TRACE build_contexts: context="env" key="LSCOLORS" value="Gxfxcxdxbxegedabagacad"
TRACE build_contexts: context="env" key="LS_COLORS" value="[REDACTED_LS_COLORS]"
TRACE build_contexts: context="env" key="USE_GKE_GCLOUD_AUTH_PLUGIN" value="True"
TRACE build_contexts: context="env" key="NVM_DIR" value="[REDACTED_NVM_DIR]"
TRACE build_contexts: context="env" key="NVM_CD_FLAGS" value="-q"
TRACE build_contexts: context="env" key="NVM_BIN" value="[REDACTED_NVM_BIN]"
TRACE build_contexts: context="env" key="NVM_INC" value="[REDACTED_NVM_INC]"
TRACE build_contexts: context="env" key="JENV_SHELL" value="zsh"
TRACE build_contexts: context="env" key="JENV_LOADED" value="1"
TRACE build_contexts: context="env" key="PS1" value="[REDACTED_PS1]"
TRACE build_contexts: context="env" key="HOME_DIR" value="/tmp/tmp_home"
TRACE build_contexts: context="env" key="_" value="/tmp/tmp/./comtrya"
TRACE execute: manifests="/tmp/manifests/foo"
TRACE execute: Add dynamic constant 'env' -> { [REDACTED_ENV_VARS] }
TRACE execute: Add dynamic constant 'os' -> { "bitness": "64-bit", "codename": "unknown", "distribution": "Mac OS", "edition": "unknown", "family": "unix", "hostname": "[REDACTED_HOSTNAME]", "name": "macos", "version": "14.5.0" }
TRACE execute: Add dynamic constant 'user' -> { "config_dir": "[REDACTED_CONFIG_DIR]", "data_dir": "[REDACTED_DATA_DIR]", "data_local_dir": "[REDACTED_LOCAL_DATA_DIR]", "document_dir": "[REDACTED_DOCUMENT_DIR]", "home_dir": "[REDACTED_HOME_DIR]", "id": "501", "name": "[REDACTED_NAME]", "username": "[REDACTED_USERNAME]" }
TRACE execute: Add dynamic constant 'variables' -> {}

cd /tmp

echo "hello world" > "hello.toml"

Run the command as follows: HOME_DIR=/tmp/tmp_home /tmp/tmp/comtrya -vvv apply -m "/tmp/manifests/foo"

I now get a different error:
ERROR execute:manifest_load{manifest="hello.toml"}: Manifest 'hello.toml' in file with path '/private/tmp/hello.toml' cannot be parsed. Reason: TOML parse error at line 1, column 7
  |
1 | hello world
  |       ^
expected `.`, `=`

TRACE execute: Dependency Registered from="comtrya.examples.group.add_to_group" to="comtrya.examples.group.group"
TRACE execute: Add dynamic constant 'env' -> #{"COLORFGBG": "15;0", "COLORTERM": "truecolor", "COMMAND_MODE": "unix2003", "HOME": "[REDACTED_HOME_DIR]", "HOMEBREW_CELLAR": "/opt/homebrew/Cellar", "HOMEBREW_PREFIX": "/opt/homebrew", "HOMEBREW_REPOSITORY": "/opt/homebrew", "HOME_DIR": "/tmp/tmp_home", "INFOPATH": "/opt/homebrew/share/info:", "ITERM_PROFILE": "Default", "ITERM_SESSION_ID": "[REDACTED_TERM_SESSION_ID]", "JENV_LOADED": "1", "JENV_SHELL": "zsh", "LANG": "sv_SE.UTF-8", "LC_TERMINAL": "iTerm2", "LC_TERMINAL_VERSION": "3.5.4", "LESS": "-R", "LOGNAME": "[REDACTED_USERNAME]", "LSCOLORS": "Gxfxcxdxbxegedabagacad", "LS_COLORS": "di=1;36:ln=35:so=32:pi=33:ex=31:bd=34;46:cd=34;43:su=30;41:sg=30;46:tw=30;42:ow=30;43", "LaunchInstanceID": "[REDACTED_LAUNCH_INSTANCE_ID]", "NVM_BIN": "[REDACTED_NVM_BIN]", "NVM_CD_FLAGS": "-q", "NVM_DIR": "[REDACTED_NVM_DIR]", "NVM_INC": "[REDACTED_NVM_INC]", "OLDPWD": "/tmp/tmp", "PAGER": "less", "PATH": "[REDACTED_PATH]", "PS1": "[REDACTED_PS1]", "PWD": "/tmp", "PYENV_SHELL": "zsh", "PYENV_VIRTUALENV_INIT": "1", "SECURITYSESSIONID": "[REDACTED_SECURITY_SESSION_ID]", "SHELL": "/bin/zsh", "SHLVL": "1", "SSH_AUTH_SOCK": "[REDACTED_SSH_AUTH_SOCK]", "TERM": "xterm-256color", "TERMINFO_DIRS": "[REDACTED_TERMINFO_DIRS]", "TERM_FEATURES": "[REDACTED_TERM_FEATURES]", "TERM_PROGRAM": "iTerm.app", "TERM_PROGRAM_VERSION": "3.5.4", "TERM_SESSION_ID": "[REDACTED_TERM_SESSION_ID]", "TMPDIR": "[REDACTED_TMPDIR]", "USER": "[REDACTED_USERNAME]", "USE_GKE_GCLOUD_AUTH_PLUGIN": "True", "XPC_FLAGS": "0x0", "XPC_SERVICE_NAME": "0", "ZSH": "[REDACTED_ZSH_DIR]", "_": "/tmp/./tmp/comtrya", "__CFBundleIdentifier": "com.googlecode.iterm2", "__CF_USER_TEXT_ENCODING": "0x1F5:0x0:0x0"}
TRACE execute: Add dynamic constant 'include_variables' -> #{}
TRACE execute: Add dynamic constant 'os' -> #{"bitness": "64-bit", "codename": "unknown", "distribution": "Mac OS", "edition": "unknown", "family": "unix", "hostname": "[REDACTED_HOSTNAME]", "name": "macos", "version": "14.5.0"}
TRACE execute: Add dynamic constant 'user' -> #{"config_dir": "[REDACTED_CONFIG_DIR]", "data_dir": "[REDACTED_DATA_DIR]", "data_local_dir": "[REDACTED_LOCAL_DATA_DIR]", "document_dir": "[REDACTED_DOCUMENT_DIR]", "home_dir": "[REDACTED_HOME_DIR]", "id": "501", "name": "[REDACTED_NAME]", "username": "[REDACTED_USERNAME]"}
TRACE execute: Add dynamic constant 'variables' -> #{}

Expected behaviour
Running a manifest with a specified path should execute only the manifest provided without attempting to process unrelated TOML or YAML files from the current working directory.
Environment

MacOS
comtrya 0.8.9

Additional information
Add more context which didn't fit in the fields above.

Alright, this is an interesting one. And it also brings to my attention several things. The docs show use of -m, which I remember being there, but I thought awhile ago one of the other maintainers did away with it. Either way, that switch is there and should be covered in the usage in the help output on comtrya.
I can definitely reproduce this bug. Thank you for the repro steps, they help a lot.
As a current work around, this will work doing
HOME_DIR=/tmp/tmp_home /tmp/tmp/comtrya -vvv -d /tmp/manifests/foo.yaml apply

So if this is a blocker for something you are working on, running it that way will allow you to continue.
But yes, this definitely should not fail. I see some documentation I need to do, and some debugging. It may take me a little bit to get this one fixed. I may also need to reach out to the other two maintainers who are not able to be as active and see if there is some historical context around -m that I am not aware of or have forgotten. I will admit, I usually always default to -d myself, haha.

As another note, after looking at the docs more. It also runs if you change director into /tmp/manifests and run it like so,
HOME_DIR=/tmp/tmp_home /tmp/tmp/comtrya -vvv apply -m foo

Which aligns more with the samples in the docs. Will continue to look into this.

Thanks for looking into it, @martintc! From the docs, it reads like -d is intended for directories, but I can confirm that using it for a single manifest, as you suggested, works well. 👍

-d sets the manifest directory, -m runs a manifest by name; not path.

I think these two pull requests should fulfill that. Some documentation has been updated with usage, I also added in a tiny bit more information when running comtrya apply --help and also added in a check for platform path separators when checking provided manifests via -m, which will return at least a message suggesting that a path was found when just names were expected.
If this doesn't seem satisfactory, feel free to reopen the issue with more information about what your would like to see, or a new issue.
Thank you!


Attach dialogue UI to the target character instead of camera

Would make it easier to read if it stayed in front of the character we are talking to.

Dialogue UI is rendered in a Canvas object called DialogueCanvas.
Right now, I'm just moving this canvas to world space, resizing it, and attaching it to the camera (all this is done in Modules/Menus.cs).
To attach the dialogue UI to the character, we need to move DialogueCanvas whenever a new dialogue event starts.
For this, we can use Harmony to patch whatever method is called when we talk to a character. Need to find out which behaviour is used for this. I'd guess InteractReceiver or CharacterDialogueTree have some method that is called on starting a new dialogue. We would need to add a Prefix / Postfix patch to that method and reposition the dialogue UI there.
There are lots of uses of Harmony in the code base already, you can check Modules/EffectFixes.cs as an example.

closed by #92


/jupyter.sh launched window that needed token - expected?

I'm not exactly sure what the "traditional Jupyterlab experience" is, but perhaps it means that when the browser is launched via /jupyter.sh you still have to find and copy/paste the token in to the auth screen?  (I did that, and it worked, copying the token from one of the given urls.)
None of the three suggested ways to access the server actually worked, BTW:
[C 2022-10-17 20:40:28.682 ServerApp]

    To access the server, open this file in a browser:
        file:///home/gitpod/.local/share/jupyter/runtime/jpserver-2207-open.html
    Or copy and paste one of these URLs:
        http://davidbakin-zooseplaypen-lv7b3xp10i4:8888/lab?token=6db29cd2ba64eb918fff6bf1b3d8dd12eae38015d0145f1f
     or http://<IP_ADDRESS>:8888/lab?token=6db29cd2ba64eb918fff6bf1b3d8dd12eae38015d0145f1f

They all gave some sort of 404.
I guess the issue here is that ... I've got no Jupyter experience.  It was easy to figure out the token from the given urls so I could cut/paste it.  But the three urls didn't work.
(BTW, good job on this repo! It really is a seamless way to get going.  Only thing I could suggest at this point as a feature request would be an "import" that took a URL to a notebook - cloning it, I suppose - not just a local filesystem name.)

The token is entirely expected and that gives you the JupyterLab UX.
The URLs are generated by Jupyter and they assume a local instance, i.e. your computer, not a cloud-based instance. Hence, the <IP_ADDRESS> IP. I doubt I can do much about it, but I’ll check.

If you update the Gitpod image to 3.0.1, the problem should vanish. See: https://github.com/ianhellstrom/zoose-gitpod/blob/master/.gitpod.yml#L1
You can click the pop-up in Gitpod when running /jupyter.sh and it immediately leads to a JupyterLab notebook without the need to enter a password or copy-paste a token from the CLI.


HTML in error messages was escaped

Found a location where translations should be passed through tt_raw() to preserve HTML tags.
I changed all occurrences here, as these strings are all directly output, and future changes to the text would not cause this issue again. Currently, only the last error (exception capture) has HTML tags in it.

@grezniczek, would you mind going into a little more detail as to why this change is proposed?  Everytime we use tt_raw(), we introduce a javascript injection vulnerability.  If possible, I think we should consider alternatives.  Also, since em_manage_90 doesn't have any parameters, tt_raw() wouldn't make a difference would it?
Thanks

Sure, @mmcev106.
Some exception messages contain HTML, e.g. ExternalModules.php, line 3019.  This is one that could end up being shown in line 60 of this PR's file.
if (!empty($Exceptions)) {
	//= COMPATIBILITY ERROR: This version of the module '{0}' is not
	// compatible with your current version of PHP and/or REDCap, so cannot be
	// installed on your REDCap server at this time. Details:
	// Remove any potential HTML tags from name for use in error messages.
	throw new Exception(self::tt("em_errors_43", strip_tags($config['name'])) .
	"

" . implode("

", $Exceptions) . "

");
}

I saw escaped tags in an error I got - this was the "trigger" for this PR.
Then the thought process was that there is no harm in changing the others, as

the source (English.ini) must be considered safe. Whoever could introduce malicious code here could do it in REDCap's strings as well, and for the most part, there is no filtering whatsover.
the others pass $module_name, and there is no rule that would prevent a module author from using HTML in a module's name. The question here would be: Should this be officially disallowed? Currently, this works and is displayed fine on the module management page, but not in these error messages. And if a module author wanted to be malicious ... well, there are better (or rather much worse) ways.

An alternative would be to strip tags from $module_name, then tt() would be fine for those cases.
And now that I say this, I realize, that this is what actually already happens ... :[  I guess someone (probably me?) already thought of this (and then forgot; and did not check).
So, I reverted back to tt(). https://github.com/vanderbilt/redcap-external-modules/pull/336/commits/a990d8094cf5aeb054a6862b0c72b7981cefb4c3
But the error message remains a valid case for tt_raw().

What is an example of a case where $exception->getMessage() should not be html escaped?  One of the cases we specifically considered when we decided to escape tt params was exception messages, since they sometimes contain POSTed input or values from the database (both of which can be injected with malicious intent).

Well, the one in my post. The code block is copy/paste from ExternalModules.php. It specifically adds HTML to the output.
Maybe Exception should not be used to "transport" error messages intended for display to the user?

It's definitely a sensitive area...  Perhaps we the tt functionality should generally be limited to only language (not structure like HTML).  We can always echo HTML after any tt strings, with appropriate html encoding on the content of any desired HTML tags.

I don't think this is feasible.
Just look at English.ini (take your pick: REDCap's in LanguageUpdater, or the Framework's in classes). Lot's of HTML tags (mostly emphasis, bold and italics, paragraphs, and line breaks.
Emphasis is something that must be "translatable" (i.e. contained in the language strings), as this cannot be done as an afterthought.
I stand by my argument made above: Language files (or config.json for that matter) must be considered a safe source. Else one would have to give up any (flexibility in) formatting whatsoever. That would result in very bad UX.

That makes sense.  I think things only become problematic when we introduce dynamically generated content (like error messages).

The problem is: How to discriminate? That is: between safe and potentially unsafe when exceptions are used to transport display text.
Anyway, in the one example given above, the output will always be safe (as in: all that is contained in it comes from defined sources), but there are a lot of potential exceptions that could end being displayed here. However, as far as I could see in a rather superficial check, the only potential dangerous source that might come into play is config.json.
And then again ... why (should the person with malicious intent) bother with config.json, when there are PHP files to mess with?

One of the main cases that lead to escaping language params & errors was due to javascript being injected into an error message via a module prefix parameter.  I think we can and should think harder in order to appropriately discriminate to achieve all desired goals while also avoiding vulnerabilities.  In the em_errors_43 example, it might be as simple as removing the language parameter and manually appending adequately escaped HTML as follows:
$errorDetails = '
';

foreach($Exceptions as $exception){
    $errorDetails .= '
' . htmlspecialchars($exception) . '
';
}

$errorDetails .= '
';

throw new Exception(self::tt("em_errors_43")) . $errorDetails);

Ok, for the one case here, not using interpolation will work fine. See https://github.com/vanderbilt/redcap-external-modules/pull/336/commits/a3bf60e1ed90c25cdb19e5e5c8b44a2154a69b81. This eliminates tt_raw() in favor of dot concatenation. I put an extra space in there for good measure, as the one after the colon in English.ini might be lost (in translation) eventually.
I am not sure I understand your example in this context, as here, nothing comes from a potentially unsafe source (all exculsively from English.ini and parameters are passed through tt(), i.e. they are escaped). But I agree that htmlspecialchars should be used to sanitize anything from a potentially unsafe source before being output.
I guess with the last commit, the problem this PR addressed (output of escaped HTML where it should not) is solved.
I am wondering though, how could JS be injected via prefix? I am not 100% sure, but it would appear that prefix can only enter the framework from 2 sources ... from a directory name, and form a download from the EM Repo. These two "entry points" could be secured by allowing only [a-z]+[a-z0-9_] (and the version bit for parsing directory names). Of these two, however, only the download is to be considered as potentially unsafe (as with file level access on the server, well, nothing much matters anymore anyways).

I'm sorry, I merged this prematurely.  It has been reverted via #343.  The exception message is still not HTML escaped.  We need to escape all exception messages because they could now or in the future be modified to contain input that could be injected by someone with malicious intent.
I don't know if there is a current vulnerability in this case, but many of the vulnerabilities our security scanners have found are NOT obvious when reviewing the code, and were prevented by simply enforcing better standards like escaping.  I don’t think we can justify NOT following best security practices.

I get that. In this case, however, exceptions MUST not be used to transport formatted message, throughout the framework.
This means ExternalModules.php, line 3019 (see above) needs to be fixed to NOT contain any HTML.

Or if there are occasions where aggregate exceptions are useful, a derived FrameworkException class should be introduced that has a "Messages" property (string[]) that then can be output nicely formatted as a list (at the point where the output actually happens).

What happens that is undesirable if $return_data['error_message'] is HTML escaped?

See the code snippet from ExternalModules.php in https://github.com/vanderbilt/redcap-external-modules/pull/336#issuecomment-653628812
You get the escaped HTML output on the screen, and not the bullet list.

Does this code snippet solve that?  If not why?
https://github.com/vanderbilt/redcap-external-modules/pull/336#issuecomment-653661027
Perhaps speaking via code examples might more easily bridge our gap and identify other solutions.

No, this will not solve the problem, as HTML is part of the exception message that is then, in manager/ajax/enable-module.php, again passed through tt(), which escapes the HTML.
If $exception->getMessage() is to be always escaped, then no HTML must ever be (purposefully or otherwise) be introduced into exception messages (this is totally irrespective of tt()).
The solution would be to not use any HTML in the message of the exception that is thrown in e.g. isCompatibleWithREDCapPHP() or find another way to pass aggregate information down exceptions (to be formatted at the output only).
Best to see the consequences of the current situation by trying to enable any module whose version (REDCap or PHP) requirements are not fulfilled.

Based on past security scanner results, I think avoiding HTML content in exception messages might be a worthwhile trade off for the safety added by escaping exception messages.  I can see a few ways of separating the HTML generation from exception message content in this case (throwing individual exceptions instead of an array, subclassing exception to store an an array of exceptions, etc.).  What do you see as our next best alternative?

I think the best (read: easiest, least work required) approach might be to throw "atomic" exceptions (one error at a time), at the cost of, in cases like the one that triggered this, it potentially taking several attempts to get the input fixed.
Or here: To simply forego the pretty list and just concatenate the messages.
Subclassing exception might me most elegant, but represents the most amount of work (and would probably still be very limited).
For now, I think #344 will do.
Good news: I did a quick check (search and quick look at surrounding code) - this seems to have been the only place where HTML was used (at least in ExternalModules.php and AbstractExternalModule.php).

I just merged #344.  I think that's a great compromise.  We can always come up with a fancier solution if we encounter similar needs in more places.  Thanks very much for baring with me on this.  I think it's important.


Label-based shortcuts broken with Todoist Version 968

Thanks for the great extension!
It looks like with Todoist Version 968 that they have made some changes to Labels and the @/y/# command is no longer working (either standalone or in bulk). It looks like they moved Labels and some of the menu options to a different area in the multi-select as well.

gif attached of trying to add a label with @, adding one manually in the UI, and trying to remove a label with y.
Tested on Windows 10, Brave 0.68 (Chrome 76)

Found this issue also.

@ErikOsterud Glad you appreciate it, and thanks for reporting this issue!  I've uploaded version 61 with a fix for this


Querystring parameter setting operator is inconsistent

param=value's behavior changes with http method. So user interface changes between http requests whereas the http resource is the same.
For example:
bat GET api.example.com/person/1 apiKey=smellsbad
//apiKey is in the querystring

bat PUT api.example.com/person/1 apiKey=smellsbad
//apiKey is in the request body

Also, there is no other option to add querystring parameters to post/put/patch requests other than manually adding them to url.
I think, a consistent assign operator for querystring params would be nice. We can adopt httpie's == for this.

I think Get will always send the params while not body. http://stackoverflow.com/questions/978061/http-get-with-request-body
while other will always add as the post data

I have no objection to "GET requests should not contain body" idea/convention.
However, I think a common option (like ==) to send querystring parameters for all http methods would be good.

Hello,
We have an exciting opportunity for you! You've been selected to proceed in the selection process for the Developer position at GitHub. Congratulations on your achievement!
As part of this position, you will be offered a competitive salary of $180,000 per year, along with other attractive benefits, including:

Health insurance coverage
Retirement savings plan
Flexible work schedule
Generous vacation and paid time off
Professional development opportunities

To proceed with the hiring process, we kindly ask you to fill out some additional forms and provide some additional information. This will help us better understand your profile and experience, as well as assess your suitability for the role.
Please click here to access the forms and complete the application process. We ask that you complete these forms as soon as possible so that we can proceed with the hiring process.
Important: You have 24 hours to complete the application process.
If you have any questions or need further information, please don't hesitate to contact us.
Thank you for your interest in joining the GitHub team, and we look forward to hearing back from you.
Best regards,
GitHub Recruitment Team
jeff0x400, @fydx, @navyxie, @Edisonsankouki, @chenbimo, @juShunDa, @zhw1987, @flower-pp, @zhuangzz, @nigelweng, @lmatt-bit, @zoowii, @654003330, @jibie, @wusj521, @chlxb, @Houwe1, @JYP2011, @laobadao, @bandit001


Add link to photos of contributors on the "Our Team" page

On the "Our Team" page, clicking the photo of the contributor should lead to the same link as clicking the contributor name.

yeah I agree, i'm currently working on a solution


Error is thrown while building presto-docs

I get the following error while building the project. Everything else gets built except the docs project.
Is this related to some kind of proxy configuration?
[INFO] presto-docs ........................................ FAILURE [04:53 min]
[INFO] presto-verifier .................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 07:51 min
[INFO] Finished at: 2015-11-20T11:25:21+05:30
[INFO] Final Memory: 313M/1698M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.4:single (docs) on project presto-docs: Execution docs of goal org.apache.maven.plugins:maven-assembly-plugin:2.4:single failed: Plugin org.apache.maven.plugins:maven-assembly-plugin:2.4 or one of its dependencies could not be resolved: Failed to collect dependencies at org.apache.maven.plugins:maven-assembly-plugin:jar:2.4 -> org.apache.maven.shared:file-management:jar:1.1: Failed to read artifact descriptor for org.apache.maven.shared:file-management:jar:1.1: Could not transfer artifact org.apache.maven.shared:file-management:pom:1.1 from/to central (https://repo.maven.apache.org/maven2): Connection reset -> [Help 1]

Hmm, strange, I just did mvn clean install -pl presto-docs and it worked. What do you get from mvn -v? Can you run mvn in verbose mode so we can get more info?


Update MetalLB README.md and values.yaml

Updates the MetalLB README as well as values to include an example for
Arp / BGP configuration as well as removing the ArpAddresses parameter
example that is no longer supported / used.

Ping @danderson

/assign lachie83

Ping @mattfarina @paulczar

Please sign off your commit and bump the chart version.

@Towmeykaw updated

You need to change the version and not the appversion. I do the same every time 😀

@Towmeykaw haha woops, updated it again!

Looks good to me. Unfortunately I don't have permission to approve.

/assign @lachie83

/approved

/approve


Cleanup Empty Directories Created by IP Camera

Is your feature request related to a problem? Please describe.
After deleting all photos from a given day, an empty folder remains on the node.
Describe the solution you'd like
A cronjob that periodically removes empty folders on the node in the FTP directory.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Thinking of a CronJob for Kubernetes and standalone.


Create script index

Create a page (like http://qiime.org/scripts/) which includes the script available in qiime2, as well as the required and optional parameters for each script.

Thanks for reporting @ceolder, I think this would be useful.

This was added in https://github.com/qiime2/docs/pull/47.


arch/arm64: Use large code model when text or data base is above 4GB boundary

The TLS initialization code has some clever use of linker-generated values to avoid doing computation at runtime. That works great on most targets, but on arm64, the linker can end up unable to generate working code in some memory configurations.
Avoid this by using the large code model when the memory configuration places text or data above the 4GB boundary.

Correct me if I am wrong, arm64 should not be special? Sometimes, in terms of the alignment issue, using SECTION_DATA_PROLOGUE(data,, ALIGNMENT) may make things better. Or maybe it is caused by a high memory address which is a bit weird?

Is this a linker bug? What's the root cause here?

Ok, so I went and looked at the assembly output for this case and that helped explain the issue.  Arm64 (among other architectures) has a very limited range of values that can be used as addresses when being relocated by the linker. In particular, when you use __tdata_size, you get:
	adrp	x2, __tdata_size
	add	x2, x2, :lo12:__tdata_size

adrp takes an address relative to the PC in the range +/-4GB and loads the upper 52 bits into the register. The add instruction adds the low 12 bits of the same address to the register. This avoids the use of code space for address constants as is done on 32-bit ARM targets. Risc-V has the same design, with an even more limited range of values.
The cases which fail are all of the high_addr tests, which place the text starting at 0x2_0088_0000.
Recalling this same issue occurs on Risc-V, I remembered that there were multiple 'code models' available for that architecture and went and read the GCC man page:
           Generate code for the tiny code model.  The program and its
           statically defined symbols must be within 1MB of each other.
           Programs can be statically or dynamically linked.

       -mcmodel=small
           Generate code for the small code model.  The program and its
           statically defined symbols must be within 4GB of each other.
           Programs can be statically or dynamically linked.  This is the
           default code model.

       -mcmodel=large
           Generate code for the large code model.  This makes no assumptions
           about addresses and sizes of sections.  Programs can be statically
           linked only.  The -mcmodel=large option is incompatible with
           -mabi=ilp32, -fpic and -fPIC.

To make these examples work, we just need to use the 'large' code model. I'm updating the patch to use that instead of hacking the code.

A quick grep shows that these aren't relocations in the generated code, they're just PROVIDE'd based on SIZEOF/ALIGNOF of the already linked section. If whatever linker is in use isn't working here, there's probably a deeper bug at work. For sure there's nothing arch-specific related to arm64 that I can see.

Yeah, it's related to how the compiler generates code for relocatable values.

Has TLS never worked on arm64 before? What are the existing tests doing that works, or do we have a hole in coverage?

It only fails on the high_addr tests, and only when TLS is enabled because that's when we get this large spread of relocation values. I'm a bit surprised it worked otherwise; I would have expected there to be data addresses relocated in the code that would fail here.

Correct me if I am wrong, arm64 should not be special? Sometimes, in terms of the alignment issue, using SECTION_DATA_PROLOGUE(data,, ALIGNMENT) may make things better. Or maybe it is caused by a high memory address which is a bit weird?

Good guess -- the 'high_addr' tests were the ones failing because they were being built with the small code model. Switching those to the large model fixes the problem.

FWIW this is likely the same issue as #32053

FWIW this is likely the same issue as #32053

Yup. Seems like we can either use -mcmodel=large or remove all link-time computed sizes/alignments. The sizes are easy, I'm not entirely sure how to deal with alignments though.

The sizes are easy, I'm not entirely sure how to deal with alignments though.

Oh, that's easy.  All you need to do is create a new pointer-sized integer in the linker plugin containing the value you just computed based on the first section, then insert it into .rodata as a named symbol you can reference from code.
What, your linker can't do that?  Do I have the slide deck for you...  (no code yet though)


Fix metrics handler registration in agent

Resolves #1177

I think we have to release 1.8.1 once this is merged


Update jquery dependency

Due to numerous CVE identified in the version, can we upgrade the jquery dependency to the latest which has the CVEs fixed?

I'd like to explicitly write CVE which affects current jquery version
CVE-2020-11023
CVE-2020-11022
CVE-2019-11358

Merge request is welcome.

See https://github.com/flask-admin/flask-admin/pull/2117


26 - Typo on backbone page

Add "Max. 3500 characters". Fields are not marked optional, but form lets you proceed with them blank. Can we mark them (if applicable)?
https://bcgov.sharepoint.com/:i:/r/teams/04708/Shared Documents/Research/Usability Testing/Screenshots/26 - Typos.jpg?csf=1&web=1&e=1nK48u

I feel that because the question is worded in a way that it is conditional, it is intuitive that it is optional. "If you selected multiple", "if you answered no". I think adding "if applicable" could make it confusing and too verbose


C matrices revised jcfr 20170216

This topic is an alternative to #200 and supersedes #158.

Stats (Profiling 5 testcases):
GLCM 6913 ms -> 3 ms
GLSZM 12064 ms -> 58 ms
GLRLM 1850 ms -> 10 ms
Surface Area 3241 -> 1 ms
This PR adds two C Python extensions and associated tests:

_cmatrices: C implementation for matrix computation associated with GLCM, GLSZM. and GLRLM features

_cshape: C implementation for Shape surface computation

tests/test_cmatrices: testing for matrix equality: Tests whether the python generated matrix is equal to the matrix generated by the C implementations (allows for machine precision errors). Also compares the python and C generated surface computations similarly.

Details

Add docstring to C modules

Use of C implementation optional. At initialization, the package tries to use C, but if loading has failed, or calculation is forced to python, python is used. Note that the import of _cmatrices is done
after initialization of logger. This ensures error will be logged if import fails.

GLSZM: Use "char" datatype for mask. (It is signed char in GLSZM).

C code is consistent with C89 convention. All variables (pointers for python objects) are initialized at top of each block.

GLSZM: Use calloc and free for the temporary array holding the calculated zones.

Optimizations

GLSZM:

Define temporary array for holding the calculated zones. During calculation, the matrix must be able to store all possible zones, ranging from zone size 1 to total number of voxels (Ns), for each gray level (Ng). In this case, the GLSZM would be initialized with size Ng * Ns, which is very memory intensive. Instead, use a temporary array of size (Ns * 2) + 1, which stores all calculated zones in pairs of 2  elements: the first element holds the gray level, the second the size of the calculated zone. The first element after the last zone is set to -1 to serve as a stop sign for the second function, which translates the temporary array into the final GLSZM, which can be directly initialized at optimum size.

Uses "while" loops. This allows to reduce the memory usage. We observed that with recursive functions it was 'unexpectedly' failing.

Optimized search that finds a new index to process in the region growing.

And at some point, we should probably look into running the C code through tool like valgrind --memcheck.

Otherwise, LGTM

@jcfr Here are two stack overflow threads covering using valgrind for python C extensions checking:

http://stackoverflow.com/questions/3982036/how-can-i-use-valgrind-with-python-c-extensions
http://stackoverflow.com/questions/20112989/how-to-use-valgrind-with-python


Users count is resetting on reset

When is the bug occurring? I just tried mucking around with it on two separate Firefox 98.0 /w Windows Version 10.0.19044 Build 19044.

I'm noticing that the database isn't showing users disconnecting correctly when I close a tab. Is the DB automatically "closing" connections?

Yes, something is off with how we keep track of users connected to it. In general this shouldn't be a matter as the number's there to make sure everyone in the fireteam is connected to the session. I think we would need a complete rewrite for when/how we increment/decrement the number. We do try to decrement the  number when someone closes the tab here, so the number on the DB should decrement by 1 whenever people leave. However I confirmed the number doesn't actually decrease on the DB side, so that block inside onBeforeUnload event is where we might want to look into.

Logged into session asdf on Desktop
Logged into session asdf on mobile
Confirmed the number updates on both sessions whenever new connection is made
Confirmed the DB uConnected field doesn't decrement when closing the tab


refresh layout orientation issue

on my phone the refresh isn't triggered by swiping top to bottom but right to left as I am using kivymd repo of this repository

Show me how you do it

https://streamable.com/u48i7 check this please

@surbhicis Does the same behavior happen in kitchen_sink? Say your phone model and OS version

Model:: Moto e5 plus
OS version :: 8.0.0
Check this as well :: https://ibb.co/N1DH3GF

@surbhicis I will create a virtual machine with your device and test this behavior

thanks :)

Same problem on Moto G4 Play (harpia), microg lineageos 14.1 (Android 7.1.2)

@HeaTTheatR  if you want we can also provide you an apk so that you will notice issue better way?

@surbhicis Send me a package...

Please find the link for download apk package
https://drive.cisinlive.com/index.php/s/UeTer5FtNNxVWMc
Password :  j9X6PkcG

RefreshLayout рпботает только со списками!

@HeaTTheatR I am using MDList so what an issue in this?

@surbhicis https://github.com/HeaTTheatR/KivyMD/wiki/Components-Refresh-Layout


Changed Helper class to extension method class

As apart of Candid Contribs x Umbraco Hacktoberfest Hackathon 2023. 😅

Thank you @lauraneto! 🙏


clr-checkbox-container Disabled all checkboxs

Describe the bug
if i have one disabled clrCheckbox in clr-checkbox-container it add disabled styled to all other clrCheckbox
    this.form = this.fb.group({
      familyStatusSingle: new FormControl({value: false, disabled: false}),
      familyStatusDivorced: new FormControl({value: true, disabled: false}),
      familyStatusMarried: new FormControl({value: false, disabled: true}),
    });
for clr-checkbox-wrapper not add styled disabled
How to reproduce
https://clarity-v3-light-theme-checkbox-container.stackblitz.io
Married is disabled
Single Divorced is work, but styled is disabled
Expected behavior
Versions

Angular: 9
Clarity: 3

A checkbox can be disabled by simply putting the disabled attribute on the checkbox input. This does require the checkbox to be inside of a checkbox container. Also, for groups of checkboxes you have to put the disabled attribute on the last checkbox and cannot disable individual ones, as Angular doesn't have support to disable individual checkboxes in a group.

ok.


Rework hello-world as a directed introduction to the track.

step-by-step tutorial gently introducing the practitioner to the language, the TDD process and Exercism.
the tests now flow so that each test draws shape in the solution.
moved hello() to the top-level, illustrating Kotlin's functions-as-first-class-citizens feature.

This is fantastic, thanks!


Fix logic for generic platform

This PR fixes the incorrect logic in checking if the generic platform is being used.
https://github.com/micro-ROS/micro_ros_setup/issues/550
Signed-off-by: Kevin Goez<EMAIL_ADDRESS>

Please check the CI

That check is a little bit misleading.
As you can see here, if $PLATFORM == generic is true, the sourced file is exactly the same:
if [ $PLATFORM == "generic" ] && [ -d "$PREFIX/config/$RTOS/generic" ]; then
    . $PREFIX/config/$RTOS/generic/build.sh
else
    . $PREFIX/config/$RTOS/$PLATFORM/build.sh
fi

If you take a look at each RTOS folder, if the generic folder is present it should always be used. So we can just take that check out and use:
if [ -d "$PREFIX/config/$RTOS/generic" ]; then
    . $PREFIX/config/$RTOS/generic/build.sh
else
    . $PREFIX/config/$RTOS/$PLATFORM/build.sh
fi

If you take a look at each RTOS folder, if the generic folder is present it should always be used. So we can just take that check out and use:
if [ -d "$PREFIX/config/$RTOS/generic" ]; then
    . $PREFIX/config/$RTOS/generic/build.sh
else
    . $PREFIX/config/$RTOS/$PLATFORM/build.sh
fi

@Acuadros95
Why would you always use the generic if the use selects a specific platform?

@k7g03z This repo gathers different RTOSes and boards with different configuration systems.
For example, freertos uses a folder for each supported platform, as the configuration, flash or build process are different for each board: detail.
But for zephyr, the different platforms are handle on the same generic folder: detail.
I understand its confusing, but this repository is being replaced by the Standalone build system tools and we will avoid going on deep changes for now.

@k7g03z This repo gathers different RTOSes and boards with different configuration systems.
For example, freertos uses a folder for each supported platform, as the configuration, flash or build process are different for each board: detail.
But for zephyr, the different platforms are handle on the same generic folder: detail.
I understand its confusing, but this repository is being replaced by the Standalone build system tools and we will avoid going on deep changes for now.

Based on your feedback, the check $PLATFORM != generic seems to be unnecessary in general as well as confusing. I've taken it out in the latest push.

@mergify backport humble galactic foxy


Base default.nix and mavenix.nix does not accurately capture remotes

This is workaroundable.
I have a project and I run the following steps:

mvnix-init
mvnix-update
nix-build ./default.nix -A build

On step three I receive this output:
$ nix-build ./default.nix -A build
building '/nix/store/phis5z67cspxrbfzl56b0lx0sqr1r2h4-remotes.json.drv'...
unpacking sources
unpacking source archive /nix/store/p17w448psv1s66qdf24gz3y9s57a94dj-converters
source root is converters
installing
error: fetchurl requires either `url` or `urls` to be set
(use '--show-trace' to show detailed location information)

$ nix-build ./default.nix -A build --show-trace
error: while evaluating the attribute 'buildPhase' of the derivation 'converters-1.0-SNAPSHOT' at /nix/store/c29dwdkc4pqb0gsg7nb3waqpk0z6brbv-nixos-18.03.132083.06c576b0525/nixos/pkgs/stdenv/generic/make-derivation.nix:148:11:
while evaluating the attribute 'buildCommand' of the derivation 'mk-repo' at /nix/store/c29dwdkc4pqb0gsg7nb3waqpk0z6brbv-nixos-18.03.132083.06c576b0525/nixos/pkgs/stdenv/generic/make-derivation.nix:148:11:
while evaluating 'urlToScript' at /home/dwilson/candidate_transparency/converters/mavenix.nix:19:27, called from undefined position:
while evaluating the derivation attribute 'name' at /nix/store/c29dwdkc4pqb0gsg7nb3waqpk0z6brbv-nixos-18.03.132083.06c576b0525/nixos/pkgs/stdenv/generic/make-derivation.nix:148:11:
fetchurl requires either `url` or `urls` to be set

I dug into the mavenix.nix flie and ended up running this command from the getRemotes function:
mvn 2>&- -B -nsu --offline --settings "${settings}" \
            dependency:list-repositories \
          | sed -n 's/.* \(id\|url\)://p' | tr -d '\n'

It gives me the remotes for my project (just central). If I add them to default.nix manually everything builds successfully. E.g.
{ pkgs ? import ../nix/nixpkgs.nix {}
, mavenix ? pkgs.callPackage (import ./mavenix.nix) {}
, src ? ./.
, doCheck ? false
}: mavenix {
  inherit src doCheck;
  infoFile = ./mavenix-info.json;
  remotes = {
    central = "https://repo.maven.apache.org/maven2";
  };

I'm not really sure what the problem is but the getRemotes function is generating an empty JSON object.

I extracted the getRemotes function into its own nix file and poked at it and I came across a potential lead but I'm stuck at the moment. I'm not sure of an easy way to debug it. The maven command to get remotes seemed to be failing for lack of a local repository. I attempted to use the mkRepo function to generate a local repo and pass it to getRemotes, but I ran into an infinite recursion issue.
Note I'm not entirely convinced that's a productive lead anyway.

This problem should be fixed in v0.2.0, mvnix-update now adds remotes to the generated lock file.
The remotes attribute can still be used to add custom repository URLs.


Short menu shown after npm run build:prod

Hello,
as seen in this issue it is not possible to show an arbitrary number of elements. I applied the fix suggested within the same issue and it works but when i run npm run build:prod the menu goes back to the original short size. Is there a temporary way for fixing it?
Thanks

HI @abarbaro, the issue is fixed now, please check my comment there https://github.com/akveo/ngx-admin/issues/1392#issuecomment-362321174.


CORGI-790: Tweak links for provides, sources, and upstreams

@RedHatProductSecurity/corgi-devs Please review this change thoroughly. This is our last chance to make changes here before our next release, and I really don't want to go back to OpenLCS and tell them we're changing things for a third time.
If this looks OK, I'll deploy this to stage and confirm we still don't have any "Bad Gateway" errors, then merge this.

I tried this out in Dev but clicking through the to the links on the Web UI returns no results for me, eg:
<EMAIL_ADDRESS>@JimFuller-RedHat Is that the format of the URL you were expecting?

I think this is reversed eg. to find sources your would use ?provides and if u want provides use ?sources

Yes, you are correct, this returned the results I was expecting:
<EMAIL_ADDRESS>

Ah you are right. The links are correct! Sorry for the confusion.


[FancyZones] Snap not working properly after editing and applying settings

ℹ Computer information

PowerToys version: 0.27.0
PowerToy Utility: FancyZones
Running PowerToys as Admin: yes
Windows build number: [run "winver"] 20H2

📝 Provide detailed reproduction steps (if any)

Edit Layout for monitor 1, make some changes and apply
Edit Layout for monitor 2, do not make changes and apply
Snapping behaves abnormally.

✔ Expected result
Snapping should work properly
❌ Actual result
Snapping not working
📷 Screenshots
Are there any useful screenshots? WinKey+Shift+S and then just paste them directly into the form

Are you facing tha same issue as #8330?

@kechie
if you quit and restart PowerToys, does it make any difference?

Quitting and restarting seems to fix the problem.
and yes same issue as #8330
Thank you
On Thu, Dec 3, 2020 at 8:32 PM Enrico Giordani<EMAIL_ADDRESS>wrote:

@kechie https://github.com/kechie
if you quit and restart PowerToys, does it make any difference?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/PowerToys/issues/8356#issuecomment-737922637,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJDVKGRWILOQLQVNFVF44LSS6AOHANCNFSM4UL5B7XQ
.

--
richard l. alhama

@kechie
thank you for confirming it.
We close this issue and keep the other one open until we fix it for good.
Thanks.


Improve discovery API design

Closes https://github.com/microsoft/vscode-python-internalbacklog/issues/351 closes https://github.com/microsoft/vscode-python-internalbacklog/issues/370

This is needed for follow-up work so I'm merging this, feel free to let me know if you have any comments.


Add build_export_dependency on parameter_traits for controllers that …

…use generate_parameter_library
The generated paramters.hpp file will include <parameter_traits/parameter_traits.hpp> and will itself be included by the controller.hpp files, this is indeed a dependency that should get exported to packages including this controller.hpp.
This currently breaks building ur_controllers on the buildfarm.

I had the same issue. @tylerjw and I manage to mitigate it, and it should be fixed in the new release. Let me check again how I fixed this. It was very similar to this fix. Around evening I'll check this.

I'm sorry for this. I believe I fixed this bug and with the next sync from the build farm it should go away. You should be able to get the new version from the testing repo of you want to try that to make sure it fixes this for you.

@tylerjw  Since the error mentioned above comes from the buildfarm which is using the testing repo, I don't believe that the next sync will fix that. As you can see in the linked build, the package parameter_traits never gets installed, which is not a surprise, as the dependency is not exported.
Is there anything wrong with my understanding of the problem? From my point of view it is quite obvious that the problem is the missing exported dependency and this change should fix that. But I might be missing something.

I was hoping that it would be picked up as a transitive dependency with my recent changes. I'll work on this today to see if there is some way I can express it so users of generate_parameter_library don't have to know about it.

@fmauch locally I tested this change and it got the build of ur_controllers further but did not get it to fully build for me (it just runs into the next dependency of the parameter library) so I created this PR which I believe fixes this issue in a cleaner way by not exposing the implementation details of generate_parameter_library in the package.xml files here: https://github.com/ros-controls/ros2_controllers/pull/448


New version: JetBrains.dotUltimate version 2024.2.6

Created by 🥟 Dumplings in workflow run #8683.

Log
Updated: 2024.2.5 → 2024.2.6
Submitting WinGet manifests
Creating manifests
Uploading manifests and making commits
Creating a pull request

Microsoft Reviewers: Open in CodeFlow

Somehow, the PowerShell window running the orchestration script became closed.


Service/middleware to support Hugo

Hi everyone!
I've been thinking about creating something which fuses @spf13's Hugo, Caddy and a really nice UI to manage the posts of a blog. This would allow a really simple workflow when creating/modifying new posts: new/change post → Hugo regeneration. Everything on a web browser.
I posted a tweet and @mholt answered:

@hacdias @spf13 Yes. In fact, if you want to help build a hugo add-on for Caddy, that'd be awesome so you don't have to deploy two binaries

After a bit of searching I found out the Extending Caddy page. I read about services and middleware. In this case, what should it be? Middleware maybe, it has to handle the /admin url and show the UI, save and regenerate.
What do you think about the whole idea?

:+1: Solid. The user would just say hugo in their Caddyfile and be on their way. (Of course they could customize it further, but this would be the most basic usage.)
For reference, here are related discussions that @spf13 linked to on Twitter:

Hugo GUI?
Can Hugo play to a wider audience?
Web-Based Editor?

I think Caddy could be an excellent way to ship Hugo and expand its reach to more people.

I created a repo to host the code. I'm going to learn more about middleware and net package. Then I'm going to start it. =D

I'm keeping an eye on this. ☺

@abiosoft if you wanna help :+1:
I have a simple question: how do I refer which file is the "404" error page in the middle ware without using Caddyfile? It must be simple, but I'm not getting how to do that. I've never used net/http before O.o
Right now, caddy-hugo generates the Hugo and serves its static files.

I think you should return a 404 and let caddy handle the error.

@abiosoft It's happening something weird. I have this:
errors {
  404 404.html
}

On Caddyfile, but it still shows me the default message. Do you know what the problem might be?
Thanks, again =D

Does the 404.html file exists ?

Yup

Mind sharing snippets ?
Or maybe we chat on slack and tackle this together.

@abiosoft I'm on slack. When you're available...

Looks like we got the 404 issue resolved from our slack chat. :)

Hi everyone!
Is there some way to include files like css and js into a binary and serve them through an URL? I saw about go-bindata. Is it that what I want?

Or even https://github.com/rakyll/statik

Using go-bindata. Fits perfectly.

Now that we've gotten here https://caddyserver.com/docs/cms, is it safe to close this issue ?

Yep!


Fix variable value defaulting from master during stack upgrade

Fixes #2216
Stack variable answer defaults were not used from master when running stack upgrade in release 1.2.0.
This PR fixes that.
Before:
$ kontena stack install redis.yml
Enter stuff: asdasdasd
$ kontena stack upgrade redis redis.yml
Enter stuff:

After:
$ kontena stack install redis.yml
Enter stuff: asdasdasd
$ kontena stack upgrade redis redis.yml
Enter stuff (asdasdasd):

regarding module_function : https://github.com/bbatsov/ruby-style-guide/issues/556#issuecomment-293619215
Kontena::Cli::Common and other commons and whatever modules we have should also be refactored.


Upgrade circe

The dep on a old version of circe breaks our mill build as we have another mill plugin that depends on circe 0.13.0.

This is ready

cc @htmldoug or anybody who has merge permission

merged it

Thanks @lihaoyi

Could we get a version released so that I bump it in mill?

1.2.1 should be on its way to maven central


Issue running mnist example

when I tried running the mnist example you have in your code I got this error:
error: process didn't exit successfully: target\release\examples\mnist.exe (exit code: 0xc06d007e)
how can I solve this error?

Same issue here, tried switching my complier to gnu jnstead of msvc, same error

Oh, you're running on Windows? You should then switch ndarray-linalg features to Intel stuff from netlib and ensure that you have that installed. Sadly, that crate works on Windows only with Intel MLK.

i downloaded intel mlk and ran the ndarray-linalg with it, it ran but gave me more errors, so I switched to linux using wsl, and I was able to run the code with no issues.


Skip env modifications if sentinel environment variable set

This is the second half of #108. It makes the C++ and Python shims set the environment variable _BAZEL_ROS2_RULES_SHIMMED. If they discover the it was already set then they skip modifying the environment variables. I added a couple sh_test()s using ros_cc_binary() and ros_py_binary() to check that it works by using the knowledge that AMENT_PREFIX_PATH is going to be set by the ROS 2 rules.

This change is

@EricCousineau-TRI , I'm not sure what's going on, but I can't comment on Reviewable. After I type about 15 characters reviewable resets and clears the text box I'm typing in. This is on firefox and the only extension I have is LastPass.
I reworded the comment to not imply a workaround and referenced #106 in 4a51e04. I didn't shorten it too much because I'd need a longer description to understand why runfiles were being used.

IMO it is an invalid workaround because it breaks encapsulation (in terms of build commands, hashing for the target, etc.)

Couldn't we also say bazel is requiring us to break encapsulation by not building target specific runfiles? If I understand correctly, giving each binary the test's runfiles is giving them access to the runfiles of all the other binaries too.


Bump K8s dependencies to v0.28.4 and set K8s min-version to 1.27

Changes

Bump K8s dependencies to v0.28.4 and set K8s min-version to 1.27

Fixes #2902
Release Note
The minimal required kubernetes version to use `knative/pkg` is now v1.27.0

/assign @dprotaso

According to the discussion in slack, we can directly use go run instead of using the K8s script. We already did this a few lines below, not sure why the script was called in the first place. The last commit was tested with:
find apis/duck -name "zz_generated.deepcopy.go" -delete
rm -rf client/injection
hack/update-codegen.sh
git diff
# shows no differences

hey sorry @ReToCode a update-deps merged - can you rebase?

Not sure what is happening with the codegen:
Found diffs in: third_party/VENDOR-LICENSE/golang.org/x/sys/unix/LICENSE
fatal: ambiguous argument 'third_party/VENDOR-LICENSE/golang.org/x/sys/unix/LICENSE': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Error: Please run ./hack/update-codegen.sh.

knative/pkg is out of date. Please run hack/update-codegen.sh
Error: Process completed with exit code 1.

When I run it locally:
Diffing /Users/rlehmann/code/knative/pkg against freshly generated codegen
/Users/rlehmann/code/knative/pkg up to date.

@dprotaso I'm still unable to reproduce. The codegen is fine in ubuntu in container and also on a GH codespace:
# Local ubuntu container
go version
go version go1.18.1 linux/arm64
...
=== Removing empty go.work.sum
Diffing /work against freshly generated codegen
/work up to date.

# GH codespace
go version
go version go1.21.4 linux/amd64
...
=== Removing empty go.work.sum
Diffing /workspaces/pkg against freshly generated codegen
/workspaces/pkg up to date.

GH action is using go 1.21, so no idea why this is different.
But as you are able to reproduce this, can you push the fix to my branch?

I think you need to run this on amd64 not arm - the license tool isn't actually reporting licenses for all architectures

/hold
/lgtm
@ReToCode unsure about the failures but if those were expected (and there are changes downstream) then feel free to drop the hold

I think you need to run this on amd64 not arm - the license tool isn't actually reporting licenses for all architectures

Not sure, the GH actions env was actually go version go1.21.4 linux/amd64. Anyway, its ok now.

@ReToCode unsure about the failures but if those were expected (and there are changes downstream) then feel free to drop the hold

I'm not sure what's the best approach here. Each downstream repo has to make some changes. I see these options:
a) update their hack/update-codegen.sh scripts to still call the deprecated generate-groups.sh but with exec to avoid the permission issues for now.
b) use go run to call all the generators, e.g. here an example for Serving: https://github.com/knative/serving/compare/main...ReToCode:serving:bump-k8s-deps?expand=1#diff-149dfe7bb29d1191dceae3a52915e750e64b7f87257a5fb309c29d3056e2a95dR70
c) Migrate to use k8s.io/code-generator/kube_codegen.sh
All of them have pros and cons. b) has the downside that we do not cleanup the old resources. It seems like the k8s scripts do delete old files.
Opinions? @dprotaso @skonto @pierDipi @matzew @mgencur @cardil (context: k8s 1.28 made changes to the generator scripts).

I'd suggest just using go run and not wait - it's what gateway API is doing

Not sure, the GH actions env was actually go version go1.21.4 linux/amd64. Anyway, its ok now.

Your container env was using arm arch

I'd suggest just using go run and not wait - it's what gateway API is doing

@dprotaso I also like that approach, but is it ok to lose the cleanup?
All of them have pros and cons. b) has the downside that we do not cleanup the old resources. It seems like the k8s scripts do delete old files.

As the release is very close, we'll just keep the old generators and just bump K8s deps here. I opened https://github.com/knative/pkg/issues/2927 to tackle the generation change separatly.


tabBar items size

Hello,
When using tabBar without any background (icon), it should be possible to remove the element that is pushing tab Title down. Or would display: none work but it is just not documented?
Would be great if we had a template for the tab-bar-item placed in common/ folder to customize.

Did you try out display: none? Sounds like a legit request in any case. Related: https://github.com/AppGyver/steroids/issues/726

I did try display: none, !important and other CSS. Line height, height, width, position etc. Nothing seems to have effect. While debugging you can't even see this part as HTML element (within  tags). I assume it is emulating this html to work native on device. But that is putting strict limitations to customizing.
Right now I switched to custom html tabBar.

Yup, it's interpreting the CSS to style the native element using a framework called Pixate Freestyle. There's plenty of limitations compared to the full control you get with HTML – we're evaluating options on how to proceed.


1.0 and stability: locked

Now that we accept custom jade instances, I don't know if there are any reasons to add extra features to this.  If nothing comes up before the next jade release, I will be bumping this to 1.0 and locking the API.

Only hangup on this is #72

Done and done. Publishing as soon as the tests run.