resolves #124 allow format codes in Code blocks

Although it only took a change in the Code block template in Website/plugins/ogdenwebb, getting it to work with highlighting was not obvious. Basically all HTML tags are replaced with 0xFF chars before highlighting, then put back.

This is the second attempt at this patch. Results can be seen at new-raku pod


Documentation: Links to components need show 404

React Native version:

Steps To Reproduce
1.Access the url: https://facebook.github.io/react-native/docs/components-and-apis
2.Try to open any component

Describe what you expected to happen:
Snack, code example, or link to a repository:

@inferate this error is related to the documentation, please close this issue and open a new one here

Looks like it was broken in https://github.com/facebook/react-native-website/pull/933 which itself attempted to fix some broken links.


Inject class loader safe classes with guice in Kafka

Inject class loader safe classes with guice in Kafka

Comments addressed.
@electrum I guess you noticed that I added javax.inject dependency to SPI and you are ok with this. Just double checking.


Release r2dii.data 0.1.5

Prepare for release:

[x] devtools::build_readme()

[x] Check current CRAN check results

[x] devtools::check(remote = TRUE, manual = TRUE)

[x] devtools::check_win_devel()

[x] rhub::check_for_cran()
https://builder.r-hub.io/status/r2dii.data_<IP_ADDRESS>00.tar.gz-d86d085045b343f7a1df3a849c20deeb
https://builder.r-hub.io/status/r2dii.data_<IP_ADDRESS>00.tar.gz-8675c2ccc66c4ca48fef09b6259b303a
https://builder.r-hub.io/status/r2dii.data_<IP_ADDRESS>00.tar.gz-b856ffed4ed74467a7bf24b09a63cb0d

[x] revdepcheck::revdep_check(num_workers = 4)

[x] Update cran-comments.md

[x] Polish NEWS

[x] Review pkgdown reference index for, e.g., missing topics

Submit to CRAN:

[x] usethis::use_version('patch')
[x] devtools::submit_cran()
[x] Approve email

Wait for CRAN...

[ ] Accepted :tada:
[ ] usethis::use_github_release()
[ ] usethis::use_dev_version()

Dear maintainer,
package r2dii.data_0.1.5.tar.gz has been auto-processed. The auto-check found problems when checking the first order strong reverse dependencies.
Please reply-all and explain: Is this expected or do you need to fix anything in your package? If expected, have all maintainers of affected packages been informed well in advance? Are there false positives in our results?
*** Changes to worse in reverse dependencies ***
Debian: https://win-builder.r-project.org/incoming_pretest/r2dii.data_0.1.5_20201118_173338/reverseDependencies/summary.txt
Log dir: https://win-builder.r-project.org/incoming_pretest/r2dii.data_0.1.5_20201118_173338/
The files will be removed after roughly 7 days.
Pretests:
Windows: https://win-builder.r-project.org/incoming_pretest/r2dii.data_0.1.5_20201118_173338/Windows/00check.log
Debian: https://win-builder.r-project.org/incoming_pretest/r2dii.data_0.1.5_20201118_173338/Debian/00check.log
Last published version on CRAN:
CRAN Web: https://cran.r-project.org/package=r2dii.data
Best regards,
CRAN teams' auto-check service
Package check result: OK
Changes to worse in reverse depends:

Package: r2dii.analysis
Check: tests
New result: ERROR
    Running ‘spelling.R’ [0s/0s]
    Running ‘testthat.R’ [12s/11s]
  Running the tests in ‘tests/testthat.R’ failed.
  Complete output:
    > library(testthat)
    > library(r2dii.analysis)
    >
    > test_check("r2dii.analysis")
    ── FAILURE (test-summarize_weighted_production.R:198:3): with demo data returns
    `credit_limit0` has changed from known value recorded in 'ref-summarize_weighted_production-credit_limit0'.
    Component "weighted_production": Mean relative difference: 0.4845804
    Component "weighted_technology_share": Mean relative difference: 0.9475177

    ── FAILURE (test-summarize_weighted_production.R:200:3): with demo data returns
    readRDS(test_path(file0)) not equal to `credit_limit0`.
    Component "weighted_production": Mean relative difference: 0.9401667
    Component "weighted_technology_share": Mean relative difference: 0.5067486

    ── FAILURE (test-summarize_weighted_production.R:205:3): with demo data returns
    `credit_limit1` has changed from known value recorded in 'ref-summarize_weighted_production-credit_limit1'.
    Component "weighted_production": Mean relative difference: 0.4969045
    Component "weighted_technology_share": Mean relative difference: 0.9951008

    ── FAILURE (test-summarize_weighted_production.R:207:3): with demo data returns
    readRDS(test_path(file1)) not equal to `credit_limit1`.
    Component "weighted_production": Mean relative difference: 0.9876941
    Component "weighted_technology_share": Mean relative difference: 0.5175998

    ── FAILURE (test-summarize_weighted_production.R:393:3): with demo data returns
    `credit_limit0` has changed from known value recorded in 'ref-summarize_weighted_percent_change-credit_limit0'.
    Component "weighted_percent_change": Mean relative difference: 0.9778045

    ── FAILURE (test-summarize_weighted_production.R:395:3): with demo data returns
    readRDS(test_path(file0)) not equal to `credit_limit0`.
    Component "weighted_percent_change": Mean relative difference: 44.04961

    ── FAILURE (test-summarize_weighted_production.R:400:3): with demo data returns
    `credit_limit1` has changed from known value recorded in 'ref-summarize_weighted_percent_change-credit_limit1'.
    Component "weighted_percent_change": Mean relative difference: 0.9789449

    ── FAILURE (test-summarize_weighted_production.R:402:3): with demo data returns
    readRDS(test_path(file1)) not equal to `credit_limit1`.
    Component "weighted_percent_change": Mean relative difference: 46.48797

    ══ testthat results  ═══════════════════════════════════════════════════════════
    FAILURE (test-summarize_weighted_production.R:198:3): with demo data returns known value
    FAILURE (test-summarize_weighted_production.R:200:3): with demo data returns known value
    FAILURE (test-summarize_weighted_production.R:205:3): with demo data returns known value
    FAILURE (test-summarize_weighted_production.R:207:3): with demo data returns known value
    FAILURE (test-summarize_weighted_production.R:393:3): with demo data returns known value
    FAILURE (test-summarize_weighted_production.R:395:3): with demo data returns known value
    FAILURE (test-summarize_weighted_production.R:400:3): with demo data returns known value
    FAILURE (test-summarize_weighted_production.R:402:3): with demo data returns known value

    [ FAIL 8 | WARN 0 | SKIP 0 | PASS 176 ]
    Error: Test failures
    Execution halted

Package: r2dii.match
Check: tests
New result: ERROR
    Running ‘spelling.R’ [0s/0s]
    Running ‘testthat.R’ [9s/9s]
  Running the tests in ‘tests/testthat.R’ failed.
  Complete output:
    > library(testthat)
    > library(r2dii.match)
    >
    > test_check("r2dii.match")
    ── FAILURE (test-match_name.R:122:3): w/ row 1 of loanbook and crucial cols yiel
    match_name(fake_lbk(), fake_ald()) not equal to `expected`.
    Component "borderline": 1 element mismatch

    -- Skip (test-match_name.R:213:3): warns overwrite -----------------------------
    Reason: On CRAN

    -- Skip (test-match_name.R:365:3): warns/errors if some/all system classificatio
    Reason: On CRAN

    -- Skip (test-match_name.R:472:3): works with UP266 ----------------------------
    Reason: On CRAN

    ── FAILURE (test-match_name.R:482:3): with loanbook_demo and ald_demo outputs kn
    `out` has changed from known value recorded in 'ref-match-name'.
    Attributes: < Component "row.names": Numeric: lengths (408, 502) differ >
    Component "id_loan": Lengths (408, 502) differ (string compare on first 408)
    Component "id_loan": 124 string mismatches
    Component "id_direct_loantaker": Lengths (408, 502) differ (string compare on first 408)
    Component "id_direct_loantaker": 124 string mismatches
    Component "name_direct_loantaker": Lengths (408, 502) differ (string compare on first 408)
    Component "name_direct_loantaker": 124 string mismatches
    Component "id_intermediate_parent_1": Lengths (408, 502) differ (string compare on first 408)
    Component "id_intermediate_parent_1": 'is.NA' value mismatch: 396 in current 395 in target
    ...

    ── FAILURE (test-match_name.R:486:3): with loanbook_demo and ald_demo outputs kn
    `out` not equal to `ref`.
    Attributes: < Component "row.names": Numeric: lengths (408, 502) differ >
    Component "id_loan": Lengths (408, 502) differ (string compare on first 408)
    Component "id_loan": 124 string mismatches
    Component "id_direct_loantaker": Lengths (408, 502) differ (string compare on first 408)
    Component "id_direct_loantaker": 124 string mismatches
    Component "name_direct_loantaker": Lengths (408, 502) differ (string compare on first 408)
    Component "name_direct_loantaker": 124 string mismatches
    Component "id_intermediate_parent_1": Lengths (408, 502) differ (string compare on first 408)
    Component "id_intermediate_parent_1": 'is.NA' value mismatch: 396 in current 395 in target
    ...

    -- Skip (test-prioritize.R:202:3): error if score=1 & values by id_loan+level ar
    Reason: On CRAN

    ── Skipped tests  ──────────────────────────────────────────────────────────────
    ● On CRAN (4)

    ══ testthat results  ═══════════════════════════════════════════════════════════
    FAILURE (test-match_name.R:122:3): w/ row 1 of loanbook and crucial cols yields expected
    FAILURE (test-match_name.R:482:3): with loanbook_demo and ald_demo outputs known output
    FAILURE (test-match_name.R:486:3): with loanbook_demo and ald_demo outputs known output

    [ FAIL 3 | WARN 0 | SKIP 4 | PASS 158 ]
    Error: Test failures
    Execution halted

Here is a reprex to explore one failing test in r2dii.match:
    FAILURE (test-match_name.R:122:3): w/ row 1 of loanbook and crucial cols yields expected

@jdhoffa, do you see an obvious reason for this "bad" commit in r2dii.data to result in this failing test in r2dii.match?

# r2dii.match points to the latest commit on master
system("git -C ~/git/r2dii.match log --oneline --decorate | head -1")
devtools::install("~/git/r2dii.match")
#> crayon (6b3f0c672... -> 4bceba8f3...) [GitHub]
#> Skipping 1 packages ahead of CRAN: r2dii.data
#> Downloading GitHub repo r-lib/crayon@HEAD
#>      checking for file ‘/tmp/RtmpRAMzQF/remotesa38b636032/r-lib-crayon-4bceba8/DESCRIPTION’ ...  ✓  checking for file ‘/tmp/RtmpRAMzQF/remotesa38b636032/r-lib-crayon-4bceba8/DESCRIPTION’
#>   ─  preparing ‘crayon’:
#>      checking DESCRIPTION meta-information ...  ✓  checking DESCRIPTION meta-information
#>   ─  checking for LF line-endings in source and make files and shell scripts
#>   ─  checking for empty or unneeded directories
#>   ─  building ‘crayon_<IP_ADDRESS>00.tar.gz’
#>
#>
#> Installing package into '/home/mauro/R/x86_64-pc-linux-gnu-library/4.0'
#> (as 'lib' is unspecified)
#> Adding 'crayon_<IP_ADDRESS>00_R_x86_64-pc-linux-gnu.tar.gz' to the cache
#>      checking for file ‘/home/mauro/git/r2dii.match/DESCRIPTION’ ...  ✓  checking for file ‘/home/mauro/git/r2dii.match/DESCRIPTION’ (356ms)
#>   ─  preparing ‘r2dii.match’:
#>      checking DESCRIPTION meta-information ...  ✓  checking DESCRIPTION meta-information
#>   ─  checking for LF line-endings in source and make files and shell scripts
#>   ─  checking for empty or unneeded directories
#>    Removed empty directory ‘r2dii.match/tests/testthat/_snaps’
#>   ─  building ‘r2dii.match_<IP_ADDRESS>00.tar.gz’
#>
#> Running /usr/lib/R/bin/R CMD INSTALL \
#>   /tmp/RtmpRAMzQF/r2dii.match_<IP_ADDRESS>00.tar.gz --install-tests
#> * installing to library ‘/home/mauro/R/x86_64-pc-linux-gnu-library/4.0’
#> * installing *source* package ‘r2dii.match’ ...
#> ** using staged installation
#> ** R
#> ** inst
#> ** tests
#> ** byte-compile and prepare package for lazy loading
#> ** help
#> *** installing help indices
#> ** building package indices
#> ** testing if installed package can be loaded from temporary location
#> ** testing if installed package can be loaded from final location
#> ** testing if installed package keeps a record of temporary installation path
#> * DONE (r2dii.match)
packageVersion("r2dii.match")
#> [1] '<IP_ADDRESS>00'

# r2dii.data points to the first bad commit
system("git -C ~/git/r2dii.data log --oneline --decorate | head -1")
devtools::install("~/git/r2dii.data")
#>      checking for file ‘/home/mauro/git/r2dii.data/DESCRIPTION’ ...  ✓  checking for file ‘/home/mauro/git/r2dii.data/DESCRIPTION’ (349ms)
#>   ─  preparing ‘r2dii.data’:
#>      checking DESCRIPTION meta-information ...  ✓  checking DESCRIPTION meta-information
#>   ─  checking for LF line-endings in source and make files and shell scripts
#>   ─  checking for empty or unneeded directories
#>    Removed empty directory ‘r2dii.data/vignettes’
#>   ─  building ‘r2dii.data_<IP_ADDRESS>00.tar.gz’
#>
#> Running /usr/lib/R/bin/R CMD INSTALL \
#>   /tmp/RtmpRAMzQF/r2dii.data_<IP_ADDRESS>00.tar.gz --install-tests
#> * installing to library ‘/home/mauro/R/x86_64-pc-linux-gnu-library/4.0’
#> * installing *source* package ‘r2dii.data’ ...
#> ** using staged installation
#> ** R
#> ** data
#> *** moving datasets to lazyload DB
#> ** inst
#> ** tests
#> ** byte-compile and prepare package for lazy loading
#> ** help
#> *** installing help indices
#> ** building package indices
#> ** testing if installed package can be loaded from temporary location
#> ** testing if installed package can be loaded from final location
#> ** testing if installed package keeps a record of temporary installation path
#> * DONE (r2dii.data)
packageVersion("r2dii.data")
#> [1] '<IP_ADDRESS>00'

devtools::load_all("~/git/r2dii.match")
#> Loading r2dii.match
devtools::load_all("~/git/r2dii.data")
#> Loading r2dii.data

expected <- tibble(
  sector_classification_system = "NACE",
  id_ultimate_parent = "UP15",
  name_ultimate_parent = "Alpine Knits India Pvt. Limited",
  id_direct_loantaker = "C294",
  name_direct_loantaker = "Yuamen Xinneng Thermal Power Co Ltd",
  sector_classification_direct_loantaker = 3511,
  id_2dii = "UP1",
  level = "ultimate_parent",
  sector = "power",
  sector_ald = "power",
  name = "Alpine Knits India Pvt. Limited",
  name_ald = "alpine knits india pvt. limited",
  score = 1,
  source = "loanbook",
  borderline = TRUE
)

waldo::compare(
  match_name(fake_lbk(), fake_ald()),
  expected
)
#> `old$borderline`: FALSE
#> `new$borderline`: TRUE

Created on 2020-11-19 by the reprex package (v0.3.0)


JSX part of React component without error

Didn't seem to find a duplicate.
Situation:

Regular component written with JSX
All imports and all
Seems working pretty fine with whole module

import React from 'react';

export default class AdminTableMobile extends React.Component {
  render() {
    const rows = get(this, 'props.rows', []);
    const headers = get(this, 'props.headers', {});
    const manageUsers = get(this, 'props.manageUsers', false);
    const toRender = keys(headers);

    return (

        {map(rows, row => (

            {row.map(value, key) => (

{`${key}.text`}

{value}

            ))}

{row.action}

        ))}

    );
  }
}
AdminTableMobile.displayName = 'AdminTableMobile';

But for educational purposes, we need to safely show only few lines of component like this:
  {row.map(value, key) => (

{`${key}.text`}

{value}

  ))}

{row.action}

like all components defined but the active editable part is only part of it.
So are there a feature that will allow doing next:

Render only focused part of the whole code without syntax errors (like you have a code scope but it collapsed or hidden)?
Render component but with editable only center part?

@hmelenok See #45 and #953.

Thanks @rcjsuen you are the best!


⚠ Samsung has degraded performance

In eda4548, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2793 ms

Resolved: Samsung performance has improved in c27ff59.


Add 5miles

https://lite.5milesapp.com/

It doesn’t trigger app install banner for some reason, investigating.


onSubmit() is really onPreSubmit().  I would like to see onSuccessfulSubmit().

The onSubmit() support for the various forms is great for doing some validation, but I would also like to execute code after a successful form submission.  In particular, I want to route to another location, but I might want to do just about anything once I know the submission was complete and successful.
My particular use case is with ChangePasswordForm, which I would like to route to HomeRoute after the password is changed.

I agree with this. That is a great addition!


[DOCS]Update Concurrency page

Summary:

Add inline configs
Add high level context
Add section on Early conflict detection

Change Logs
Doc changes to Concurrency page
Impact
Doc changes to Concurrency page
Risk level (write none, low medium or high below)
Low
Documentation Update
Describe any necessary documentation update if there is any new feature, config, or user-facing change

The config description must be updated if new configs are added or the default value of the configs are changed
Any new feature or user-facing change requires updating the Hudi website. Please create a Jira ticket, attach the
ticket number here and follow the instruction to make
changes to the website.

Contributor's checklist

[ ] Read through contributor's guide
[ ] Change Logs and Impact were stated clearly
[ ] Adequate tests were added if applicable
[ ] CI passed

Tested locally


error: No such file or directory @ rb_sysopen - elm-stuff/exact-dependencies.json.

Whenever I try to run elm-install, I get that error. The gem installs fine.
Trace:  Resolving packages... Solving dependencies... Traceback (most recent call last):         20: from /home/jackfly26/.gem/ruby/2.6.0/gems/commander-4.4.7/lib/commander/import.rb:5:in `block in <top (required)>'         19: from /home/jackfly26/.gem/ruby/2.6.0/gems/commander-4.4.7/lib/commander/delegates.rb:15:in `run!'         18: from /home/jackfly26/.gem/ruby/2.6.0/gems/commander-4.4.7/lib/commander/runner.rb:68:in `run!'         17: from /home/jackfly26/.gem/ruby/2.6.0/gems/commander-4.4.7/lib/commander/runner.rb:446:in `run_active_command'         16: from /home/jackfly26/.gem/ruby/2.6.0/gems/commander-4.4.7/lib/commander/command.rb:153:in `run'         15: from /home/jackfly26/.gem/ruby/2.6.0/gems/commander-4.4.7/lib/commander/command.rb:182:in `call'         14: from /home/jackfly26/.gem/ruby/2.6.0/gems/elm_install-1.6.1/bin/elm-install:20:in `block (2 levels) in <top (required)>'         13: from /home/jackfly26/.gem/ruby/2.6.0/gems/elm_install-1.6.1/lib/elm_install.rb:40:in `install'         12: from /home/jackfly26/.gem/ruby/2.6.0/gems/contracts-0.16.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'         11: from /home/jackfly26/.gem/ruby/2.6.0/gems/contracts-0.16.0/lib/contracts/call_with.rb:79:in `call_with'         10: from /home/jackfly26/.gem/ruby/2.6.0/gems/contracts-0.16.0/lib/contracts/method_reference.rb:43:in `send_to'          9: from /home/jackfly26/.gem/ruby/2.6.0/gems/elm_install-1.6.1/lib/elm_install/installer.rb:28:in `install'          8: from /home/jackfly26/.gem/ruby/2.6.0/gems/contracts-0.16.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'          7: from /home/jackfly26/.gem/ruby/2.6.0/gems/contracts-0.16.0/lib/contracts/call_with.rb:79:in `call_with'          6: from /home/jackfly26/.gem/ruby/2.6.0/gems/contracts-0.16.0/lib/contracts/method_reference.rb:43:in `send_to'          5: from /home/jackfly26/.gem/ruby/2.6.0/gems/elm_install-1.6.1/lib/elm_install/populator.rb:22:in `populate'          4: from /home/jackfly26/.gem/ruby/2.6.0/gems/contracts-0.16.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'          3: from /home/jackfly26/.gem/ruby/2.6.0/gems/contracts-0.16.0/lib/contracts/call_with.rb:79:in `call_with'          2: from /home/jackfly26/.gem/ruby/2.6.0/gems/contracts-0.16.0/lib/contracts/method_reference.rb:43:in `send_to'          1: from /home/jackfly26/.gem/ruby/2.6.0/gems/elm_install-1.6.1/lib/elm_install/populator.rb:30:in `write_exact_dependencies' /home/jackfly26/.gem/ruby/2.6.0/gems/elm_install-1.6.1/lib/elm_install/populator.rb:30:in `binwrite': No such file or directory @ rb_sysopen - elm-stuff/exact-dependencies.json (Errno::ENOENT)

I see the last line says:
No such file or directory @ rb_sysopen - elm-stuff/exact-dependencies.json
Maybe try running the elm compiler first to generate the exact-dependencies.json file.
(Side note: try using triple backticks instead of single backticks here -- that will preserve newlines and make it much easier to read this stacktrace!)


migrate PowerIndexRouter to PPAgentV2

Codecov Report

Merging #15 (d78260b) into master (86b5cea) will decrease coverage by 43.92%.
The diff coverage is 33.87%.

@@             Coverage Diff             @@
##           master      #15       +/-   ##
===========================================
- Coverage   80.66%   36.74%   -43.93%
===========================================
  Files          16       16
  Lines         900      928       +28
  Branches      130      137        +7
===========================================
- Hits          726      341      -385
- Misses        174      587      +413

Impacted Files
Coverage Δ

contracts/PowerIndexVaultRouter.sol
80.76% <0.00%> (ø)

...racts/connectors/BakeryChefPowerIndexConnector.sol
21.73% <0.00%> (-42.55%)
:arrow_down:

...racts/connectors/MasterChefPowerIndexConnector.sol
25.00% <0.00%> (-41.67%)
:arrow_down:

contracts/AbstractPowerIndexRouter.sol
50.40% <38.70%> (-39.89%)
:arrow_down:

...onnectors/PancakeMasterChefPowerIndexConnector.sol
65.21% <90.00%> (-13.36%)
:arrow_down:

contracts/connectors/AbstractConnector.sol
7.40% <0.00%> (-77.78%)
:arrow_down:

...tracts/connectors/BProtocolPowerIndexConnector.sol
13.17% <0.00%> (-75.97%)
:arrow_down:

contracts/AssetManager.sol
32.60% <0.00%> (-67.40%)
:arrow_down:

...tracts/connectors/AbstractStakeRedeemConnector.sol
9.52% <0.00%> (-64.29%)
:arrow_down:

contracts/connectors/TornPowerIndexConnector.sol
15.78% <0.00%> (-60.53%)
:arrow_down:

... and 7 more

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


develop

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 2 (0.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 60.72%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/services/unid.rs
0
2
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1620

Relevant Lines:
2668

💛  - Coveralls


src/app/main-app.js is missing

I cannot get v2.6.1 to run.  Both production and development fail trying to load src/app/main-app.js.  It looks like references to this file were added in the latest commit, but this file is not in the repo (/src/app).  It is loaded from index.html.  The Gruntfile copies it to the deploy folder.

Sorry about the @regan-sarwas, the repo has been updated, and the source can be downloaded from: http://links.esri.com/storymaps/map_tour_template_zip


Deleting a calendar

Hello! I'm still a novice with CalDAV, so apologies if this question has an obvious answer. It seems straightforward to create and query calendars with this library, but is there any capability to delete calendars?

just call deleteObject on the calendar url
Dylan Praul @.***>于2022年3月17日 周四04:43写道：

Hello! I'm still a novice with CalDAV, so apologies if this question has
an obvious answer. It seems straightforward to create and query calendars
with this library, but is there any capability to delete calendars?
—
Reply to this email directly, view it on GitHub
https://github.com/natelindev/tsdav/issues/100, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACG4GTUTFCH2KY2OQEPGANLVAJBWXANCNFSM5Q47OP3A
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Perfect, love a simple and straightforward solution. Thank you!


Update sbt-bintray to 0.5.4

Updates org.foundweekends:sbt-bintray from 0.5.3 to 0.5.4.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention @scala-steward in the comments below.
Have a nice day!

https://github.com/sbt/sbt-bintray/releases
I'm using 0.5.4 in lots of other repos. I think this is safe to merge.
there is an opportunity here to use 0.5.4's skip in publish support to replace the janky old way, but it isn't actually necessary for merging this


Change the api version from v1alpha to v1beta.

Coverage remained the same at 42.736% when pulling baf8d3d3e3a761cd2227420201fe8a9946342967 on wisererik:development into 93a98bc0b1f233877253c6ed776c6ef7a8f6656d on opensds:development.

Looks good!


Karabiner-Elements Stops Working After Re-boot

After installing, Karabiner-Elements works.  But after the computer is shutdown and rebooted the next day it doesn't work.  The initial screen appears, and it'is set to start at login but it doesn't work. To get it to work, the package must be reinstalled. Any ideas on a workaround. This is on a 2016 macbook pro with Sierra.

This is most likely related to this issue: https://github.com/tekezo/Karabiner-Elements/issues/448
It's a bug in 67, downgrading to 66 fixes it. I had the same issue as you did.

Thanks. Will go to 66.


Support more instructions, add scaffolding for further issues

Separated Code.lean into the AST and the parsers, supported nop and const properly, added to proper support of multiple function results, fixed some smol issues.
Closes #16, closes #19
Follows #21 (possibly closes?)

Oh wow, this PR is a BANGER!
Will review by the meeting.
On Thu, 15 Dec 2022 at 00:48, Ilona Prikule @.***>
wrote:

@ixahedron https://github.com/ixahedron requested your review on: #28
https://github.com/yatima-inc/Wasm.lean/pull/28 Support more
instructions, add scaffolding for further issues.
—
Reply to this email directly, view it on GitHub
https://github.com/yatima-inc/Wasm.lean/pull/28#event-8042737506, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/APY6WRTKWJ2CKGNDV3J4FVTWNJTGPANCNFSM6AAAAAAS7EUWVM
.
You are receiving this because your review was requested.Message ID:
@.***>

--
—
Kindest regards,
¬Σ


Question. How can I zip output of the bundler?

I am experiencing problems with .app extension in my CI, because its actually folder. I would like to zip .app application as soon as its built. Can I do it with the bundler? Do I need to use resources adapters?
Thanks in advance.

Why don't you zip the .app file as soon as the bundler is done in your CI workflow ?

Yes, I did. Just thought using bundler may be a good idea. Nevermind :)
Thank you for great project!

Hello @asticode It's me again. Can you help me with saying how to make different names for appName and actual output file name?
Thank you!

@tpoxa you can set a different AppName by using this attribute. This is global to a bundler.json file though.
You can't set the output file names. However they are predictible, so after the bundler is done, you can rename them however you like.

I see. Thanks for an update. In my project application name comes from user’s input. I thought it should be different levels of sanitizing input for filename and app name.


Any reason not to support CONFIG_CRYPTO_DEV_CCP by default?

The Linux kernel needs CONFIG_CRYPTO_DEV_CCP enabled to support the cryptographic co-processor on my mainboard. Is there any particular reason why this config option should not be enabled by default?

enabled on arch https://git.archlinux.org/svntogit/packages.git/tree/trunk/config?h=packages/linux#n10506 but not sure on debian https://salsa.debian.org/kernel-team/linux/blob/master/debian/config/config

I have found a reason not to enable it: the chip doesn't actually work under Linux. The error message I get is:
ccp 0000:0c:00.1: enabling device (0000 -> 0002)
ccp 0000:0c:00.1: ccp: unable to access the device: you might be running a broken BIOS.

This is an ASUS Prime X570-P mainboard, but other users have reported the same issue with other hardware, too.

@teto It's enabled on Debian: https://salsa.debian.org/kernel-team/linux/-/blob/4ebea8b2e3422f03a2b0d8f0418cd318edaff2c8/debian/config/kernelarch-x86/config#L395
both config/config and config/kernelarch-x86/config need to be consulted


primary.xml is not generated entirely correct

We are not filling all XML elements, as they are filled by the createrepo. Try to create a sample repository with createrepo and compare with what we are generating in our XML files. You will see that we don't fill every required element. Many of them are simply omitted. This is definitely a bug.

@rultor release, tag is 0.1.0

@rultor release, tag is 0.1.0

@yegor256 OK, I will release it now. Please check the progress here

@rultor release, tag is 0.1.0

@yegor256 Done! FYI, the full log is here (took me 15min)


edit README.md

@mack-at-pieces seems I did not explain well the difference between the "Ask" and the "Copilot Ask"
the ask from the context menu I think I need better description for the "Copilot Ask"

and can you suggest me better name?


Use HTTPS for repository URLs

Short description:
RPM packages should be installed over HTTPS to prevent MITM attacks.
Apt is less susceptible since all packages are signed and verified, but
we should rely on the long key IDs instead of short ones to reduce the
chance of an OpenPGP key ID collision.
Closes #47
Bookkeeping
I did the following bookkeeping:

[ ] If a major change, bumped the playbook version in vars/
[ ] Added as much documentation as I could (we're not looking a book, just enough to help others)
[x] Confirmed that the PR works by running the vagrant tests (if any) and/or added to the tests (see ci/ or legacy tests/)
[ ] Followed up with any automated test results as a result of the pull request

I would use https for apt package as well

@ernestas-poskus I considered it, but there are very few benefits since all packages from apt repositories are signed/verified anyway, and we would need to also pull in the apt-transport-https package as well to ensure compatibility. The only real benefit would then be that a man in the middle could not tell what packages are being downloaded.
With this in mind, if you still think it's a good idea, I'd be happy to make those changes for apt as well.

:ok_hand:

@DavidWittman will you add something else or can merge ?

@ernestas-poskus What else would you like me to add?

Nothing, just asking


just a test to validate something...

@7flying @sarmahaj take a look here, if we get the error from Juerg, then we know what this is :)

Closing since we already have tests for this


fix: log dialog end after endsession action

Change to prevent two calls to end session

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

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Typescript CLI optimizations

added hot alias
fixed hot closing after deploy
improved watching files(switched to chokidar and added better exclusions)
improved sockets lookup
fixed some types/added lint ignore to some lines

Codecov Report

Merging #390 into feat/port_to_typescript will not change coverage.
The diff coverage is n/a.

@@                   Coverage Diff                    @@
##           feat/port_to_typescript     #390   +/-   ##
========================================================
  Coverage                    32.24%   32.24%
========================================================
  Files                            8        8
  Lines                          245      245
  Branches                        23       23
========================================================
  Hits                            79       79
  Misses                         164      164
  Partials                         2        2


Infinite loop under dynamic config situation

Bug
Under some circumstances, the Typhoon module can jump in a "wait forever" loop, if:

Typhoon is use as a module in a main Terraform deployment
the mac addresses are dynamically provided via another Terraform module/resource
the cluster size excess 10 nodes

Environment

Platform: bare-metal
OS: container-linux
Terraform: Terraform v0.11.7

Problem / Context
Typhoon is used as module in a global Terraform deployment. The mac addresses of the nodes are provided in a dynamic way by another module.
In a real world use-case, the mac address can be provided by:

a physical machine provisioner Terraform module: picking a node, firing some IPMI command, return the mac address
a virtual machine provisioner Terraform module: creating and starting a VM, return the mac address

Typhoon job graph is composed of 2 main branches:

matchbox setup branch:
https://github.com/poseidon/typhoon/blob/master/bare-metal/container-linux/kubernetes/groups.tf
ssh connection loops branch:
https://github.com/poseidon/typhoon/blob/master/bare-metal/container-linux/kubernetes/ssh.tf

Matchbox operations can be achieve as soon as mac_address values are provided.
SSH connection loop can start without dependencies.
By default, Terraform runs 10 concurrents threads to apply operations, which is govern by the -parallelism option.
Current Behavior
Let's consider a >10 nodes cluster.
If, which is the case, the machine provisioner takes some time to return the mac addresses, then Terraform will decide to allocate its 10 available threads to ssh connection operations, which leads to an infinite waiting loop.
Indeed, all the Terraform threads will be used/busy for ssh connection. In the mean time, all booting nodes are waiting for Matchbox to be configured, to start CoreOS, then sshd.
After some seconds, the machine provisioner will return the mac addresses for a proper matchbox setup, but ... it's too late: no available Terraform threads to apply these operations.
Steps to Reproduce
This is a simple way to reproduce the issue, by simulating a delayed machine/mac address provisioner.
# Providers are setup in a providers.tf file

variable "nodes" {
  description = "Number of worker node to deploy"
  default     = "2"
}

variable "latency" {
  description = "Latency in second before machine provisioner returns"
  default     = "0"
}

# Generate a dynamic list of workers, and render the name
data "null_data_source" "workers" {
  count = "${var.nodes}"

  inputs = {
    name   = "${format("worker-node-%d", count.index + 1)}"
    domain = "${format("worker-node-%d.example.com", count.index + 1)}"
  }
}

# Delayed machine provisioner simulator
resource "null_resource" "mac_address" {
  count = "${var.nodes}"

  provisioner "local-exec" {
    command = "sleep ${var.latency}"
  }
}

module "bare-metal-mercury" {
  source = "git::https://github.com/poseidon/typhoon//bare-metal/container-linux/kubernetes?ref=v1.10.3"

  providers = {
    local    = "local.default"
    null     = "null.default"
    template = "template.default"
    tls      = "tls.default"
  }

  # bare-metal
  cluster_name           = "europe"
  matchbox_http_endpoint = "http://matchbox.example.com"
  os_channel             = "coreos-stable"
  os_version             = "1632.3.0"

  # configuration
  k8s_domain_name    = "node1.example.com"
  ssh_authorized_key = "ssh-rsa AAAAB3Nz..."
  asset_dir          = "."

  # machines
  controller_names   = ["node1"]
  controller_macs    = ["52:54:00:a1:9c:ae"]
  controller_domains = ["node1.example.com"]

  worker_names   = "${data.null_data_source.workers.*.inputs.name}"
  worker_macs    = "${null_resource.mac_address.*.id}"                #Note this value is an ID, resulting in an invalid mac-address format on the matchbox server, but it's not what we are testing at that stage.
  worker_domains = "${data.null_data_source.workers.*.inputs.domain}"
}

To check if the matchbox config has been deploy, I run: ls /var/lib/matchbox/groups on the matchbox server. rm /var/lib/matchbox/groups/europe-worker-node-* to clean the config.

terraform apply -var latency=0 -var nodes=8
This test should properly deploy 8 + 1 (the controller node) matchbox config.

terraform apply -var latency=0 -var nodes=12
This test should properly deploy 12 + 1 matchbox config.

terraform apply -var latency=15 -var nodes=8
After ~15sec, this test should properly deploy 8 + 1 matchbox config.

terraform apply -var latency=15 -var nodes=12
This test should jump in an "wait forever loop".

Workaround, increase the number of Terraform threads:
terraform apply -var latency=15 -var nodes=12 -parallelism=15
After ~15sec, this test should properly deploy 12 + 1 matchbox config.

Unfortunately, this side effect implies to use Terraform bare-metal module with static configuration only (when nodes are >10).
Suggested solution
I suggest to make sure that all ssh connection operations will start only after all matchbox operations.
I propose to update https://github.com/poseidon/typhoon/blob/master/bare-metal/container-linux/kubernetes/ssh.tf by adding a depends_on condition to both copy-controller-secrets and copy-worker-secrets .
resource "null_resource" "copy-controller-secrets" {
...
  depends_on = [
    "matchbox_group.install",
    "matchbox_group.controller",
    "matchbox_group.worker",
  ]
...
}
resource "null_resource" "copy-worker-secrets" {
...
  depends_on = [
    "matchbox_group.install",
    "matchbox_group.controller",
    "matchbox_group.worker",
  ]
...
}

Note: these matchbox_group resources are the only ones which actually depends on the nodes mac addresses.

Hi,
Thanks for your reply.
I think you can delete two of the dependencies though (copy-controller-secrets depending on worker, copy-worker-secrets depending on controller).
Indeed. But this might allow situations where controllers needs to wait wait to be deployed before starting there own installation (or reverse).
Let's take this situation as an example: 10 workers, 10 controllers. We have these Terraform resources:

10 workers matchbox
10 workers SSH
10 controllers matchbox
10 controllers SSH

If workers ssh depends on workers matchbox and controllers ssh depends on controllers matchbox, then there is a probability for having this situation:

20 nodes are booting up
Terraform setup 10 workers matchbox
Terraform wait for 10 workers ssh connections
10 worker nodes find the matchbox config, and install CoreOS
10 controller nodes enter in a boot PXE crashing loop ... *
Terraform connects to 10 workers, and push the secrets
Terraform setup 10 controllers matchbox
10 controllers nodes find the matchbox config, and install CoreOS

*This might be any issue, since some machines abandon the PXE boot after many tries. I had some case where I needed to connect to the local console, just to hit Enter to the question No bootable device found, press Enter to retry.
Another potential issue is this would increase the time to deploy the Typhoon cluster, since workers OS and controllers OS (or reverse) would be deployed in sequential way. In particular, physical box can take up to 5min for each boot.
These are the reasons why I would recommend to achieve all matchbox setup before starting any ssh connection loops.
Appendix: For code readability, in one of our Terraform script, I am using a null_resource as a "synchronization barrier":
# This meta-resource is waiting all low-level add-ons to be deployed before continue
resource "null_resource" "addons-stage0" {
  depends_on = [
    "helm_release.metallb",
    "helm_release.external-dns",
    "helm_release.pvp-provider",
    "helm_release.ingress-internal",
    "helm_release.ingress-external",
  ]

  provisioner "local-exec" {
    # Wait for low-level components to be ready
    command = "sleep 10"
  }
}

# Deploy dashboard add-on after all low-level components are deployed
resource "helm_release" "dashboard" {
  count      = "${local.addons_activation["dashboard"] ? 1 : 0}"
  depends_on = ["null_resource.addons-stage0"]
  name       = "dashboard"
  namespace  = "kube-system"
  chart      = "stable/kubernetes-dashboard"
  version    = "${var.versions["dashboard"]}"
}

You could have PXE loop, but fair enough. Feel free to include the two explicit dependencies in your PR. Having the ssh null_resource steps at the end is the intent after all.
Appendix: Dear god, I'd rather not know what you're using it for. Whatever floats your boat I guess. :see_no_evil:

Sorry for have taken the time to PR, and thank you for this fix!


how to use LDA+U in cp2k with sirius

Dear SIRIUS developers,
I am trying to use Hubbard correction with CP2K/sirius,
The   HUBBARD_CORRECTION T  is set in the input under the &PARAMETERS section
In the meanwhile, I also set up the U value under the &KIND section.
      &DFT_PLUS_U
          U_MINUS_J [eV] 3.0
          L 2
      &END DFT_PLUS_U

However, I found that all the energies are the same regardless of the Hubbard U value I set in the &DFT_PLUS_U section. This is a bulk Cu2O system, and computed energies are supposed to vary a little bit with different U values.
 grep 'ENERGY| Total' subdir_hubbard_U?/joblog*
subdir_hubbard_U0/joblog.2344991: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887
subdir_hubbard_U1/joblog.2344992: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887
subdir_hubbard_U2/joblog.2344993: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887
subdir_hubbard_U3/joblog.2344994: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887
subdir_hubbard_U4/joblog.2344995: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887
subdir_hubbard_U5/joblog.2344996: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887
subdir_hubbard_U6/joblog.2344997: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887
subdir_hubbard_U7/joblog.2344998: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887
subdir_hubbard_U8/joblog.2344999: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887
subdir_hubbard_U9/joblog.2345000: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887

Is there anything wrong with the way I set up the Hubbard U correction?
Thank you very much in advance,
Best,
Geng

@mtaillefumier can you have a look, please? We probably need to tag the new version, because latest lda+u+v is just merged into develop branch.

Hi geng, thank you very much for this report. SIRIUS supports LDA+U (+V) types of calculations but this support is not activated in cp2k. Turning on hubbard correction (which I am a bit surprised it even shows up) is not enough as the information about atoms and constants should be given to sirius. The necessary bit of code is not present in cp2k at the time of this reply. I would suggest you to open an issue in cp2k repository to get this feature added to cp2k.

Hi geng,
Short question. Do you use cp2k pseudo-potentials or external one. The integration of the hubbard sirius functionality will only work with external pp for the time being. I am preparing a patch to support this in cp2k.

Hi geng,
Short question. Do you use cp2k pseudo-potentials or external one. The integration of the hubbard sirius functionality will only work with external pp for the time being. I am preparing a patch to support this in cp2k.

Dear mtailefumier,
Thank you very much for your reply.
I am using the cp2k pseudo-potentials provided in the GTH_POTENTIALS file.
Best,
Geng

Hi geng,
You can try cp2k master if you want to test lda+U+cp2k+sirius. The necessary code was merged during the summer.


scripts: kconfig: Add dt_compat_any_has_prop

Add a kconfig preprocessor function to check if
any node of a certain compatible has a specific property in DT.

ci error seems unrelated to the changes in the PR..

added in #69207


[Request-for-external] Codeunit 7000003 BG/PO-Post and Print - PayablePostOnly

Can you remove [Scope('OnPrem')] from procedure PayablePostOnly in Codeunit 7000003 BG/PO-Post and Print?

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


reloadFiles() not working

Couple reports of Client#reloadFiles() not reloading properly, making an issue now because I keep forgetting to look into it

closed with #63


connot find module<EMAIL_ADDRESS>

Describe the bug
Error wher install<EMAIL_ADDRESS>
Input code
npm install @swc/core/VIsitor.js

Config
No response
Playground link (or link to the minimal reproduction)
https://play.swc.rs/
SWC Info output
No response
Expected behavior
No error
Actual behavior
No response
Version
1.5.22
Additional context
No response

I also encountered this problem


Mouse Tracking Stack Trace | Mac Desktop App

Environment -> Flutter Desktop Mac OS
this is happening randomly, there is no specific way to reproduce it, still will keep a watch
Exception :
When the exception was thrown, this was the stack:
#2      BaseMouseTracker._deviceUpdatePhase (package:flutter/src/rendering/mouse_tracking.dart:311:12)
#3      BaseMouseTracker.updateAllDevices (package:flutter/src/rendering/mouse_tracking.dart:460:5)
#4      RendererBinding._scheduleMouseTrackerUpdate.<anonymous closure> (package:flutter/src/rendering/binding.dart:336:22)
#5      SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
#6      SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1090:9)

flutter doctor -v
[✓] Flutter (Channel stable, 2.0.6, on macOS 11.3.1 20E241 darwin-x64, locale en-IN)
    • Flutter version 2.0.6 at /Users/niranjanshah/Documents/Dev Tools/flutter
    • Framework revision 1d9032c7e1 (4 weeks ago), 2021-04-29 17:37:58 -0700
    • Engine revision 05e680e202
    • Dart version 2.12.3

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/niranjanshah/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5, Build version 12E262
    • CocoaPods version 1.10.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] IntelliJ IDEA Community Edition (version 2019.3.4)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 11.3.1 20E241 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 90.0.4430.212

• No issues found!

Hi @NiranjanShah
Can you please upgrade to the latest  stable and try again
Execute the following commands to upgrade
flutter channel stable
flutter upgrade --force
flutter doctor -v
To better address the issue, we need more information on how the issue reproduces. If the problem persists, can you please provide your flutter doctor -v with the upgrade, complete reproducible minimal code sample, and complete flutter run --verbose logs running the minimal code sample?
Thank you

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


Support key presses (and later, keymaps) in TUIs

Per Dave S: "having vim and emacs like bindings for navigating tabs and windows and searching would be a pro to see right up front for many terminal users I think."

Per @jsh:
I use vi-mode in bash (set -o vi), so I'll just play on the command line for a few minutes and jot down what I see myself using:

ctl-[ (control open-bracket): This combo sends an escape, which vi uses to switch to command mode. I suppose I could hit the escape key instead, but this is under my fingers, and now in my wetware.
h,j,k,l: (left, down, up, right).  I could use arrow keys, but don't. See above. :-)
^, $: (beginning and end of line)
/: (search forwards). On the command line, this looks back through history.
n
?: (search backwards). When I'm already looking through history, this looks the other direction. Not so common, in bash, but just as common as '/' in vi.
n: Look for the same string, again, in the same direction.
f: (search forwards in a line).  When I want to change something in the middle of a recalled command, I use 'f' to go directly to that character, or one nearby, and then change it.
; : (semicolon -- look forward again). If I find the first instance of a character in the line with 'f', but that's not the one I want to change, jumps me to the next instance.
F and , : (capital 'f' and comma -- look backwards in the line).  These jump through the line, just like 'f' and ';', but in the opposite direction.
r: (replace). Replace a character.
R: (overwrite). Overwrite a string of characters.
A, I: (Append and Insert). Stick stuff on the end ('A') or beginning ('I') of the line.  'A' is really useful if I want to recall a pipeline and stick another step at the end.

When I want to turn some-command-line  into some-other-command $(some-command-line), my fingers say
ctl-[   # command-mode
/some-command-line ENTER # search the history for some-command-line
I some-other-command $( # stick some-other-command at the beginning of the line
ctl-[ # command mode again
A ) # stick a close paren on the end of the line
ENTER # execute the new command line

The bash emacs mode (set -o emacs, the default) lets you edit the command line with EMACS keybindings instead.

Apps other than bash can supply both conveniences -- vi and emacs editing of command history -- with the GNU Readline package.
I just googled, and I *think* that's what [this supplies](https://pymotw.com/3/readline/) for Python programs, but I haven't tried it yet.


optimize sortpermby

This moves the fast_sortable logic inside sortperm_by and sortperm_fast: I followed the scheme of https://github.com/piever/StructArrays.jl/pull/48 (which hopefully can be closed once this is merged) on fast_sortable: StringArray{String} goes to StringArray{WeakRefString}, StringArray gets pooled and on pooled arrays we use the same logic as what was implemented in PooledArrays (it needs the companion PR https://github.com/JuliaComputing/PooledArrays.jl/pull/21 to make sure we never end up doing the fast_sortable computation on PooledArrays twice).
I hope this can restore good performance on groupby (end, more importantly, allows further performance tweaking without needing to change StructArrays), but have not benchmarked.
cc: @shashi @joshday

Actually, as both sortperm and refine_perm! are already optimized for PooledArrays, here I only need to pool strings before calling a sorting function, so I've renamed the preprocessing function poolstrings.

I wonder whether we actually need the intermediate convert(StringArray{WeakRefString}, x) step for string arrays, shouldn't it be enough to pool those?

I've improved sortperm and refine_perm! on PooledArrays in StructArrays (to avoind comparing strings but comparing the UInt value instead), so to optimize here it's enough to pool before running the sorting functions. For that it relies on https://github.com/piever/StructArrays.jl/blob/master/src/sort.jl#L12 so tests will pass here as soon as the StructArrays release is tagged and I can bump the dependency here.


Add basic flow examples and corresponding tests

Describe your changes

Add invoke/call (transfer/balanceOf) examples
Add const nonce account for tests
Add invoke/call/deployAccount/estimateFee(invoke) tests
Add revert_reason to mockedReceipt

Linked issues

Closes #278
Breaking changes

[ ] This issue contains breaking changes

Codecov Report
Patch and project coverage have no change.

Comparison is base (5fe4617) 70.29% compared to head (cfb108e) 70.29%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #300   +/-   ##
=======================================
  Coverage   70.29%   70.29%
=======================================
  Files          67       67
  Lines        2461     2461
  Branches      214      214
=======================================
  Hits         1730     1730
  Misses        658      658
  Partials       73       73

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


failed to find instances for deployment cf-XXXXX: failed to check os: ssh.Run failed: ssh.Stream failed: ssh.Dial failed: dial tcp <IP_ADDRESS>:22

Greetings,
Having a very strange behavior with Concourse. So, I’ve deployed Concourse though BOSH as part of deployment inside BOSH director. I was able to launch BBR job on it as well. So far so good. Now, out of three components of Concourse BBR pipeline, two finish without a problem:
export-om-installation
bbr-backup-director

However, bbr-backup-ert fails. Very curious error:
Using Ops Manager credentials
Status: 200 OK
Cache-Control: no-cache, no-store
Connection: keep-alive
Content-Type: application/json; charset=utf-8
Date: Fri, 21 Dec 2018 21:48:16 GMT
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Pragma: no-cache
Server: nginx/1.4.6 (Ubuntu)
Strict-Transport-Security: max-age=15552000
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Request-Id: 29966c32-bac4-4c24-a014-f568cbad8821
X-Runtime: 1.019136
X-Xss-Protection: 1; mode=block
Retreving BBR client credentials for BOSH Director
Status: 200 OK
Cache-Control: no-cache, no-store
Connection: keep-alive
Content-Type: application/json; charset=utf-8
Date: Fri, 21 Dec 2018 21:48:17 GMT
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Pragma: no-cache
Server: nginx/1.4.6 (Ubuntu)
Strict-Transport-Security: max-age=15552000
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Request-Id: 49f3c396-e933-498a-bff7-d530a147e5fd
X-Runtime: 1.341792
X-Xss-Protection: 1; mode=block
Status: 200 OK
Cache-Control: no-cache, no-store
Connection: keep-alive
Content-Type: application/json; charset=utf-8
Date: Fri, 21 Dec 2018 21:48:20 GMT
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Pragma: no-cache
Server: nginx/1.4.6 (Ubuntu)
Strict-Transport-Security: max-age=15552000
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Request-Id: fcddd37e-d160-406b-9201-fed33bfb2df2
X-Runtime: 2.298233
X-Xss-Protection: 1; mode=block
Status: 200 OK
Cache-Control: no-cache, no-store
Connection: keep-alive
Content-Type: application/json; charset=utf-8
Date: Fri, 21 Dec 2018 21:48:22 GMT
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Pragma: no-cache
Server: nginx/1.4.6 (Ubuntu)
Strict-Transport-Security: max-age=15552000
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Request-Id: 69c49dfb-c877-45dc-8bfa-b4b5593850c1
X-Runtime: 1.836832
X-Xss-Protection: 1; mode=block
Status: 200 OK
Cache-Control: no-cache, no-store
Connection: keep-alive
Content-Type: application/json; charset=utf-8
Date: Fri, 21 Dec 2018 21:48:23 GMT
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Pragma: no-cache
Server: nginx/1.4.6 (Ubuntu)
Strict-Transport-Security: max-age=15552000
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Request-Id: 60474c65-effb-4f6c-bb1a-27b545e92f37
X-Runtime: 0.077863
X-Xss-Protection: 1; mode=block
Status: 200 OK
Cache-Control: no-cache, no-store
Connection: keep-alive
Content-Type: application/json; charset=utf-8
Date: Fri, 21 Dec 2018 21:48:25 GMT
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Pragma: no-cache
Server: nginx/1.4.6 (Ubuntu)
Strict-Transport-Security: max-age=15552000
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Request-Id: 9d8e6205-82d7-44be-9803-b9c320961b61
X-Runtime: 1.924620
X-Xss-Protection: 1; mode=block
Status: 200 OK
Cache-Control: no-cache, no-store
Connection: keep-alive
Content-Type: application/json; charset=utf-8
Date: Fri, 21 Dec 2018 21:48:28 GMT
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Pragma: no-cache
Server: nginx/1.4.6 (Ubuntu)
Strict-Transport-Security: max-age=15552000
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Request-Id: 3c4120c1-9e82-4d40-9208-a8dff6f7051e
X-Runtime: 2.847638
X-Xss-Protection: 1; mode=block
/tmp/build/e4b91406/ert-backup-artifact /tmp/build/e4b91406
[bbr] 2018/12/21 21:48:28 INFO - Looking for scripts
1 error occurred:
error 1:
failed to find instances for deployment cf-bd9479cdb9dee3d26d39: failed to check os: ssh.Run failed: ssh.Stream failed: ssh.Dial failed: dial tcp <IP_ADDRESS>:22: connect: connection timed out

I don’t know where this IP <IP_ADDRESS> comes from. But with every backup it changes, while staying within the same RFC1918 address space (192.168.1.x). I hijacked into a container, couldn’t find anything but this little snippet:
$ fly42 -t boshcc hijack -j bbr-backup-CFLAB01-CG/bbr-backup-ert
1: build #1, step: bbr-backup-ert, type: task
2: build #1, step: bbr-release, type: get
3: build #1, step: extract-binary, type: task
4: build #1, step: slack-alert, type: get
5: build #1, step: slack-alert, type: put
choose a container: 1
root@6a7867a6-08b8-4447-746c-90ab5b6e025c:/tmp/build/e4b91406# ls
bbr-pipeline-tasks-repo  bbr_client.json  bbr_keys.json  binary  bosh.crt  deployed_products.json  ert-backup-artifact
root@6a7867a6-08b8-4447-746c-90ab5b6e025c:/tmp/build/e4b91406# cd ert-backup-artifact/

root@6a7867a6-08b8-4447-746c-90ab5b6e025c:/tmp/build/e4b91406/ert-backup-artifact# ls
bbr-2018-12-21T21:50:45Z.err.log

root@6a7867a6-08b8-4447-746c-90ab5b6e025c:/tmp/build/e4b91406/ert-backup-artifact# cat bbr-2018-12-21T21\:50\:45Z.err.log
1 error occurred:
error 1:
dial tcp <IP_ADDRESS>:22: connect: connection timed out
ssh.Dial failed
github.com/cloudfoundry-incubator/bosh-backup-and-restore/ssh.Connection.runInSession
      /tmp/build/80754af9/src/github.com/cloudfoundry-incubator/bosh-backup-and-restore/ssh/connection.go:148
github.com/cloudfoundry-incubator/bosh-backup-and-restore/ssh.Connection.Stream
      /tmp/build/80754af9/src/github.com/cloudfoundry-incubator/bosh-backup-and-restore/ssh/connection.go:85
github.com/cloudfoundry-incubator/bosh-backup-and-restore/ssh.Connection.Run

I don’t know what is it’s trying to do. It does not happen on any other foundations, however, it is important to tell that the other foundation Concourse ecosystem is not deployed using BOSH. That’s the difference. Other than that, all the pipeline settings are identical.
Here is my pipeline:
jobs:
- name: export-om-installation
  serial: true
  plan:
  - aggregate:
    - get: bbr-pipeline-tasks-repo
      tags:
      - ((concourse-worker-tag))
    - get: run-schedule
      tags:
      - ((concourse-worker-tag))
      trigger: true
  - task: export-om-installation
    tags:
    - ((concourse-worker-tag))
    file: bbr-pipeline-tasks-repo/tasks/export-om-installation/task.yml
    params:
      SKIP_SSL_VALIDATION: ((skip-ssl-validation))
      OPSMAN_URL: ((opsman-url))
      OPSMAN_USERNAME: {{opsman-username}}
      OPSMAN_PASSWORD: {{opsman-password}}
  - put: om-backup-artifact
    tags:
    - ((concourse-worker-tag))
    params:
      file: om-installation/installation.zip
      inputs:
        - name: export-om-installation
      outputs:
        - name: notify_message
  on_success:
    put: slack-alert
    tags:
    - ((concourse-worker-tag))
    params:
      channel: '#cloudeng'
      text: |
        The `BOSH BBR Export OM Installation` pipeline has Succeeded. Check it out at:
        $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
      silent: false
  on_failure:
    put: slack-alert
    tags:
    - ((concourse-worker-tag))
    params:
      channel: '#cloudeng'
      text: |
        The `BOSH BBR Export OM Installation` pipeline has FAILED. Please resolve any issues and ensure the pipeline lock was released. Check it out at:
        $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
      silent: false

- name: bbr-backup-ert
  serial: true
  plan:
  - get: run-schedule
    tags:
    - ((concourse-worker-tag))
    trigger: true
  - aggregate:
    - get: bbr-pipeline-tasks-repo
      tags:
      - ((concourse-worker-tag))
      trigger: false
    - get: bbr-release
      tags:
      - ((concourse-worker-tag))
      trigger: false
  - task: extract-binary
    tags:
    - ((concourse-worker-tag))
    config:
      platform: linux
      image_resource:
        type: docker-image
        source:
          repository: cloudfoundrylondon/bbr-pipeline
          tag: release-candidate
      inputs:
      - name: bbr-release
      outputs:
      - name: binary
      run:
        path: sh
        args:
        - -c
        - |
          tar -xvf bbr-release/bbr*.tar
          cp releases/bbr binary/
  - task: bbr-backup-ert
    tags:
    - ((concourse-worker-tag))
    file: bbr-pipeline-tasks-repo/tasks/bbr-backup-ert/task.yml
    params:
      SKIP_SSL_VALIDATION: ((skip-ssl-validation))
      OPSMAN_URL: ((opsman-url))
      OPSMAN_USERNAME: ((opsman-username))
      OPSMAN_PASSWORD: ((opsman-password))
  - put: ert-backup-bucket
    tags:
    - ((concourse-worker-tag))
    params:
      file: ert-backup-artifact/ert-backup.tar
  on_success:
    put: slack-alert
    tags:
    - ((concourse-worker-tag))
    params:
      channel: '#cloudeng'
      text: |
        The `BOSH BBR ERT/PAS Backup` pipeline has Succeeded. Check it out at:
        $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
      silent: false
  on_failure:
    put: slack-alert
    tags:
    - ((concourse-worker-tag))
    params:
      channel: '#cloudeng'
      The `BOSH BBR ERT/PAS Backup` pipeline has FAILED. Please resolve any issues and ensure the pipeline lock was released. Check it out at:
        $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
      silent: false

- name: bbr-backup-director
  serial: true
  plan:
  - get: run-schedule
    tags:
    - ((concourse-worker-tag))
    trigger: true
  - aggregate:
    - get: bbr-pipeline-tasks-repo
      tags:
      - ((concourse-worker-tag))
      trigger: false
    - get: bbr-release
      tags:
      - ((concourse-worker-tag))
      trigger: true
  - task: extract-binary
    tags:
    - ((concourse-worker-tag))
    config:
      platform: linux
      image_resource:
        type: docker-image
        source:
          repository: cloudfoundrylondon/bbr-pipeline
          tag: release-candidate
      inputs:
      - name: bbr-release
      outputs:
      - name: binary
      run:
        path: sh
        args:
        - -c
        - |
          tar -xvf bbr-release/bbr*.tar
          cp releases/bbr binary/

  - task: bbr-backup-director
    tags:
    - ((concourse-worker-tag))
    file: bbr-pipeline-tasks-repo/tasks/bbr-backup-director/task.yml
    params:
      SKIP_SSL_VALIDATION: ((skip-ssl-validation))
      OPSMAN_URL: ((opsman-url))
      OPSMAN_USERNAME: ((opsman-username))
      OPSMAN_PASSWORD: ((opsman-password))
  - put: director-backup-bucket
    tags:
    - ((concourse-worker-tag))
    params:
      file: director-backup-artifact/director-backup.tar
  on_success:
    put: slack-alert
    tags:
    - ((concourse-worker-tag))
    params:
      channel: '#cloudeng'
      text: |
        The `BOSH BBR Director Backup` pipeline has Succeeded. Check it out at:
        $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
      silent: false
  on_failure:
    put: slack-alert
    tags:
    - ((concourse-worker-tag))
    params:
      channel: '#cloudeng'
      The `BOSH BBR Director BAckup` pipeline has FAILED. Please resolve any issues and ensure the pipeline lock was released. Check it out at:
        $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
      silent: false

resource_types:
- name: pivnet
  tags:
  - ((concourse-worker-tag))
  type: docker-image
  source:
    repository: pivotalcf/pivnet-resource
    tag: latest-final
- name: slack-notification
  tags:
  - ((concourse-worker-tag))
  type: docker-image
  source:
    repository: cfcommunity/slack-notification-resource

resources:
- name: slack-alert
  tags:
  - ((concourse-worker-tag))
  type: slack-notification
  source:
    url: ((slack-webhook))

- name: bbr-pipeline-tasks-repo
  type: git
  tags:
  - ((concourse-worker-tag))
  source:
    uri<EMAIL_ADDRESS>    private_key: {{private_key}}
    branch: master

- name: om-backup-artifact
  tags:
  - ((concourse-worker-tag))
  type: s3
  source:
    bucket: ((backup-artifact-bucket))
    region_name: ((storage-region))
    endpoint: ((storage-endpoint))
    access_key_id: ((storage-access-key-id))
    secret_access_key: {{storage-secret-access-key}}
    versioned_file: installation.zip
    use_v2_signing: ((storage-use-v2-signing))
    disable_ssl: ((disable_ssl))

- name: ert-backup-bucket
  type: s3
  tags:
  - ((concourse-worker-tag))
  source:
    bucket: ((backup-artifact-bucket))
    region_name: ((storage-region))
    endpoint: ((storage-endpoint))
    access_key_id: ((storage-access-key-id))
    secret_access_key: {{storage-secret-access-key}}
    versioned_file: ert-backup.tar
    use_v2_signing: ((storage-use-v2-signing))
    disable_ssl: ((disable_ssl))

- name: director-backup-bucket
  tags:
  - ((concourse-worker-tag))
  type: s3
  source:
    bucket: ((backup-artifact-bucket))
    region_name: ((storage-region))
    endpoint: ((storage-endpoint))
    access_key_id: ((storage-access-key-id))
    secret_access_key: {{storage-secret-access-key}}
    versioned_file: director-backup.tar
    use_v2_signing: ((storage-use-v2-signing))
    disable_ssl: ((disable_ssl))

- name: run-schedule
  type: time
  tags:
  - ((concourse-worker-tag))
  source:
     location: America/New_York
     days: [Friday]
     start: 4:45 PM
     stop: 5:45 PM

- name: bbr-release
  tags:
  - ((concourse-worker-tag))
  type: pivnet
  source:
    api_token: {{pivnet-api-token}}
    product_slug: p-bosh-backup-and-restore
    product_version: ((BBR_major_minor_version))

Any thoughts ?
Thanks!!

We are having the exact same issue. @akamalov can you please help with the solution if you have?

I believe you need to resize your volume to larger volume size on your
workers.
On Wed, Feb 5, 2020, 7:44 PM Narenbommireddy<EMAIL_ADDRESS>wrote:

We are having the exact same issue. @akamalov
https://github.com/akamalov can you please help with the solution if
you have?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pivotal-cf/bbr-pcf-pipeline-tasks/issues/41?email_source=notifications&email_token=AB4FDSO5ZZLLPCYZQSPIEULRBNMPXA5CNFSM4GL6BMU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEK5QPEA#issuecomment-582682512,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB4FDSMC7WDL7OZIJO5BLFDRBNMPXANCNFSM4GL6BMUQ
.

Thank you @akamalov .. Our BBR workers already has 500GB disk, will try to increase and see if that helps.

I had to configure it to about 800GB to get it to work.
Alex
On Thu, Feb 6, 2020 at 8:44 AM Narenbommireddy<EMAIL_ADDRESS>wrote:

Thank you @akamalov https://github.com/akamalov .. Our BBR workers
already has 500GB disk, will try to increase and see if that helps.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pivotal-cf/bbr-pcf-pipeline-tasks/issues/41?email_source=notifications&email_token=AB4FDSJ2MC6TAZXA2SFUMJ3RBQH37A5CNFSM4GL6BMU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEK7INUY#issuecomment-582911699,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB4FDSKTAI3AT57I3IP34XDRBQH37ANCNFSM4GL6BMUQ
.

Hi
I doesn't work for me.  You also need to make the volume that
Concorse accesses (worker node) via docker, bigger as well. Try to restart
your worker. If it does not work, you need to delete that volume and
re-create the volume to expand to that size of the new disk size.
On Wed, Feb 26, 2020 at 12:09 AM Sergey Muha<EMAIL_ADDRESS>wrote:

Hi
I doesn't work for me.
Reply to this email directly, view it on GitHub
https://github.com/pivotal-cf/bbr-pcf-pipeline-tasks/issues/41?email_source=notifications&email_token=AB4FDSJZ5AFN6CSQ4MJSXT3REX2Q7A5CNFSM4GL6BMU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEM62F2Y#issuecomment-591241963,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB4FDSOCVIMY526JMVRQN2LREX2Q7ANCNFSM4GL6BMUQ
.

You can't just make disk bigger. You also need to make the volume that Concorse accesses (worker node) via docker, bigger as well. Try to restart your worker. If it does not work, you need to delete that volume and re-create the volume to expand to that size of the new disk size.
…
On Wed, Feb 26, 2020 at 12:09 AM Sergey Muha @.> wrote: Hi I doesn't work for me.  Reply to this email directly, view it on GitHub <#41?email_source=notifications&email_token=AB4FDSJZ5AFN6CSQ4MJSXT3REX2Q7A5CNFSM4GL6BMU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEM62F2Y#issuecomment-591241963>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB4FDSOCVIMY526JMVRQN2LREX2Q7ANCNFSM4GL6BMUQ .

any link to do this?


Add smoke test

Context
Smoke test of the deployed environment gives more confidence on
downstream deployment environments. This commit adds the workflow and
template to run the smoke test.
Trello card
https://trello.com/c/LT5NB32k

 Add smoke test

@merrilmathew I've just merged a basic smoke test for this to run https://github.com/DFE-Digital/apply-for-qualified-teacher-status/pull/295


IS docker-compose documetation doesn't say anything about creating an account and login to docker.wso2.com

Is your suggestion related to a missing or misleading document? Please describe.
Docker compose try out steps should include clear instructions for login to docker.wso2.com.  Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


updated ua and random agent switcher

Updated the Kijiji API to use a random user agent. Chosen from either MacOSX/Windows Chrome/FF. I've created an ad in the buy and sell and I haven't had an issue.
❤

Nice! Thanks for the quick change! I think the issue with #173 is related to the generate_post_file.py file. Can you also make the changes over in that file as well?

Nice! Thanks for the quick change! I think the issue with #173 is related to the generate_post_file.py file. Can you also make the changes over in that file as well?

whoops. Totes, on it.

@ArthurG Should be good now.

Thank you for your contribution!!

I hope to contribute more when needed :)


[GH-170] Fix CI Hydra issue

https://github.com/input-output-hk/cardano-shell/issues/170
Fix the failing CI and remove unnecessary Nix derivations.

It would be nice if somebody reviewed https://github.com/input-output-hk/cardano-shell/pull/167 so we can merge that, rebase this and then merge this to fix all CI issues popping up:

https://github.com/input-output-hk/cardano-shell/pull/167
https://github.com/input-output-hk/cardano-shell/pull/168
https://github.com/input-output-hk/cardano-shell/pull/148

runCoveralls is not needed anymore? (can be removed from default.nix then?)

@jbgi Good point, I'll put that back.

Added ci/hydra:Cardano:cardano-shell:required branch protection. Thanks @jbgi.

Why isn't Coveralls working? :thinking:
Do we need to add it to the CI pipeline? And if so, won't that void the Hydra caches when building it?
Otherwise, I have no clue why it's not working.

We can leave the coveralls issue for another task, not urgent.

@ksaric  Seems that https://github.com/input-output-hk/cardano-shell/commit/30829cc82ed74fd9da8d8be79b77da4b36a728d4#diff-8b496edab86012a437e80897eb7129c0 removed coverage checking.

@365andreas Yep, I noticed that. Adding it here results in:
building '/nix/store/s3lka8z0wrivjvrvdzqb2x9a44lgim0d-stack-hpc-coveralls-<IP_ADDRESS>.drv'...
setupCompilerEnvironmentPhase
Build with /nix/store/61jvs7n897lrnb2d60mpl84js8jwi7if-ghc-8.4.3.
ignoring (possibly broken) abi-depends field for packages
unpacking sources
unpacking source archive /nix/store/7b3im8mq46vjdfy44lpimll7smhj4gfl-stack-hpc-coveralls-<IP_ADDRESS>.tar.gz
source root is stack-hpc-coveralls-<IP_ADDRESS>
setting SOURCE_DATE_EPOCH to timestamp<PHONE_NUMBER> of file stack-hpc-coveralls-<IP_ADDRESS>/stack.yaml
patching sources
compileBuildDriverPhase
setupCompileFlags: -package-db=/build/setup-package.conf.d -j12 -threaded
[1 of 1] Compiling Main             ( Setup.hs, /build/Main.o )
Linking Setup ...
configuring
configureFlags: --verbose --prefix=/nix/store/6mfjg609dql1kvzsp68m72y8pg93wgp0-stack-hpc-coveralls-<IP_ADDRESS> --libdir=$prefix/lib/$compiler --libsubdir=$abi/$libname --docdir=/nix/store/79bk76ifsrcdzndfraqak4j28r90zxsi-stack-hpc-coveralls-<IP_ADDRESS>-doc/share/doc/stack-hpc-coveralls-<IP_ADDRESS> --with-gcc=gcc --package-db=/build/package.conf.d --ghc-option=-j12 --disable-split-objs --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --enable-library-vanilla --enable-library-for-ghci --ghc-option=-split-sections --extra-lib-dirs=/nix/store/1nmw74s77li7qswbmbln0c74gln13i6w-ncurses-6.1/lib --extra-lib-dirs=/nix/store/kn55ah0qwa4gyr5nncjdagrwbq9s4n2p-gmp-6.1.2/lib
Using Parsec parser
Configuring stack-hpc-coveralls-<IP_ADDRESS>...
CallStack (from HasCallStack):
  die', called at libraries/Cabal/Cabal/Distribution/Simple/Configure.hs:958:20 in Cabal-<IP_ADDRESS>:Distribution.Simple.Configure
  configureFinalizedPackage, called at libraries/Cabal/Cabal/Distribution/Simple/Configure.hs:462:12 in Cabal-<IP_ADDRESS>:Distribution.Simple.Configure
  configure, called at libraries/Cabal/Cabal/Distribution/Simple.hs:609:20 in Cabal-<IP_ADDRESS>:Distribution.Simple
  confHook, called at libraries/Cabal/Cabal/Distribution/Simple/UserHooks.hs:67:5 in Cabal-<IP_ADDRESS>:Distribution.Simple.UserHooks
  configureAction, called at libraries/Cabal/Cabal/Distribution/Simple.hs:191:19 in Cabal-<IP_ADDRESS>:Distribution.Simple
  defaultMainHelper, called at libraries/Cabal/Cabal/Distribution/Simple.hs:119:27 in Cabal-<IP_ADDRESS>:Distribution.Simple
  defaultMain, called at Setup.hs:2:8 in main:Main
Setup: Encountered missing dependencies:
hlint ==1.*

builder for '/nix/store/s3lka8z0wrivjvrvdzqb2x9a44lgim0d-stack-hpc-coveralls-<IP_ADDRESS>.drv' failed with exit code 1
error: build of '/nix/store/s3lka8z0wrivjvrvdzqb2x9a44lgim0d-stack-hpc-coveralls-<IP_ADDRESS>.drv' failed


PageNav dropdown updates #412

Description of the change
heroIcon refactor and link removal

Related issues: Link to related issue(s) this PR addresses, if any (use phrases like "fixes #1234" or "closes #1234").
#412

Screenshot(s)

Additional context

Ya, I wasn't sure how feasible changing that would be, mainly because its daisyUI and those components are usually a pain to change. Let me take a look and see if I can figure it out and I'll get back to you.

Ok- I found a solution! If you go onto the daisyUI docs, there is a class/component called dropdown. It provides the functionality that we would like, and also allows for dropdown-end, which will align it to the right hand side. If you add dropdown dropdown-end to the <details> tag, and then add dropdown-content to the <ul> tag, I think that should solve the issue. I also noticed that it uses bg-base-300, could you change it to bg-grey-2?

@calisio that did not seem to have any affect on the spacing.....


readthedocs: Waveforms for many different CFU use cases.

Using a wavedrom plugin for sphinx!

I looked at the waveforms on https://cfu-playground--581.org.readthedocs.build/en/581/interface.html and they look great! Amazing!

@danc86, yep, http://wavedrom.com is pretty cool!


add section: how to setup Apache manually

If anyone is interested to work on this, pleaes go ahead. I'm accepting pull requests to the docs.


Add web view support for follow logs.

cc @itowlson

@itowlson
How do you see this working? Would we modify the invokeAsync call to use spawn-rx
I'm a little vague on the concrete proposal, I agree it looks a little cleaner (though this PR's not that bad)

@brendandburns What I was thinking of was something like introducing the following method for shell/kubectl (roughly analogous to your execStreaming):
export function invokeTracking(command: string, args: string[]): rx.Observable<string> {
    const linesSubject = new rx.Subject<string>();
    let pending = '';
    const stdout = spawnrx.spawn(command, args);
    stdout.subscribe((chunk) => {
        const todo = pending + chunk;
        const lines = todo.split('\n').map((l) => l.trim());
        const lastIsWholeLine = todo.endsWith('\n');
        pending = lastIsWholeLine ? '' : lines.pop()!;
        for (const line of lines) {
            linesSubject.next(line);
        }
    });
    return linesSubject;
}

You can then use Rx to subscribe to the stream of lines being emitted, and append them to the web view content using the messaging protocol or by updating the HTML property.  This would look pretty similar to what you have except that you wouldn't need to manage line breaking etc. in the panel - it would be handled by invokeTracking/execStreaming/whatever.
What I like about this is that it encapsulates the management of line breaks, child processes etc. and gives us just a general-purpose interface for getting line-oriented output from a running process - I like the abstraction this gives me over dealing directly with the ChildProcess API in the application code.  It also means we call a synchronous method and get back an object that raises events, instead of calling an async method and having to skip past the result.  The Rx library also means we can do batching and buffering so that if, say, a whole bunch of log lines (or stdout chunks) appear in 0.1 second, we can package them up and do one update to the HTML instead of several.
Though... reviewing what I was finding in the Stern POC... what I don't like about it is that it doesn't give us a convenient way to kill the process (this seems to be a limitation of spawn-rx).  And that's probably a deal-breaker for this use case in the real world.  So maybe we should build on your approach of going all the way down to the ChildProcess level.  But I still wouldn't overload invokeAsync - I'd still approach it via a new method that returns a Disposable and hands lines to a callback (or perhaps even better, returns an object that raises events for stdout and also has a method for killing the child process).
And in the end, it doesn't make a huge difference - and I know you are super busy.  So as I mentioned, if you don't feel this justifies your time, then I'm happy to take the PR as it stands.  I'd quite understand that!

Taking this as it is because the technical suggestion isn't worth letting it languish.  Thanks @brendandburns!


Tags

I'm not sure if this is so useful as I think it would be, however adding tags would make it easier to organize and find pastas more easily once we have a bunch of them. Let me know what you think!

I think that's an interesting idea. Did you imagine this feature as tags within the text like #work for example, or as a completely separate attribute? I think the former would be very interesting, if it all pastas could be recalled that contain a specific tag through something like microbin.net/tag/work. I think I would wait for some input from others before going ahead with this feature but it would be very useful, especially if we manage to implement it without sacrificing any of the current simplicity of the app.


Plugin doesn't load / update if using jpg or gif image for background

This issue can be recreated in 2 ways:

Set panel background to a jpg or gif image (Panel pref -> Appearance)
AND/OR
Set the background image directly in the plugin settings

After this, the dockbarx plugin does not update it's background. Additionally, upon reloading the panel, the dockbarx plugin is no longer there.
Tested with:
dockbarx (0.92-1 - latest manjaro package)
xfce4-dockbarx-plugin (0.5-1 - latest manjaro package)
xfce4-dockbarx-plugin-git (49.a2dcb66-1 - latest AUR package)
Tested those against both:
xfce4-panel (4.12.2-1 - latest manjaro package)
xfce4-panel-gtk3 (4.13.3-2 - latest manjaro package)
=Current workaround=
It works as expected if you use a png image instead. I have not tested other image formats.

This is pretty much entirely because I presumed that the panel background would always be a PNG file. It's lossless and supports translucency, so I couldn't conceive why anyone would try to use an indexed, low-quality GIF or a lossy JPG. It's not my place to question your usecase though, so I'll look into how xfce4-panel handles it and then try to handle it similarly. Thanks for the report.

Thank you. It's just a tad confusing when a panel setting causes a plugin to stop working like that. Testing different image formats wasn't an obvious troubleshooting step, for me at least, especially when there isn't a warning in the dockbarx plugin configuration when you select an unsupported image format (neither is there any mention of image format restrictions in the ReadME for this project). Until earlier today I had just assumed that using any background image (not just jpg) broke it, since jpg is probably the most well-known/common format, and it would work in the panel, just not the plugin.
While I personally don't use a background image, I know a couple people who do (and use the stock Window List plugin because of it), and a few people who would if they knew that is an option with dockbarx.
Thanks again for looking into this. Until support is added (if/whenever that may be; don't feel rushed), I hope this bug report helps inform any users who might fall victim to the same assumptions I made.


fetch from phone directory and show , also play from that list.

i want to record audio and save on phone directory.
also i fetch from there and show in another page and aslo when i click on that list's any file then it's play .
i tried but i didn't able to do that so please give me suggestion.

 Are you facing any error, application is crashing or any other issues?
If you can share us more details about the system's behaviour and share us some code, it would be really helpful for us.

@mrugesha8 You can refer to example app to achieve what you have described.
Closing this issue for now. Feel free to create a new one if you face any other issues.


feat(i18n): added Turkish translations

Added Turkish translations

Thank you for this PR! Do you know another native speaking developer that could review the translations for me?

@behram Would you be up for the task?

@KutayGuler only I have above question beside of it all looks good, good job 👏


update to seller guide

#sign-off

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

#sign-off

@divacc - this needs to be submitted through the private repo, please, so it goes through the additional quality processes.


Transformation Randomly Occurs In Cell without transformation

I'm not sure how to recreate this, and it happens almost randomly.
Here is a screen shot showing a ListView in Forms with a cell that does not have transformations applied.
Could this be an issue of how Forms handles cell reuse?

Do you use new Xamarin.ListView items recycling feature (ListViewCachingStrategy.RecycleElement)? If yes, inside ViewCell OnBindingContextChanged override you should do:

clear, reapply transformations, cached image properties, etc, etc
after that update ImageSource

See this: https://github.com/molinch/FFImageLoading/issues/72

I'm using the default ListViewCachingStrategy not the RecycleElement.

Did you mean ListViewCachingStrategy.RetainElement? If yes, that could be a bug.
Is Transformations property binded to something? Or it doesn't change at all?

Yes im using RetainElement. The weirdest part is that there is no code in that Cell that has to do with transformations. I couldn't believe it when I saw it behave like that because it made no sense.
Here is a screenshot of the only code that touches the control.

Also a side note... The screenshot was showing the same image over and over when it should have been different.

It's always important to have Transformations property changed before ImageSource. I'm not sure if Xamarin.Forms preserves that order when using bindings. You could try to switch from bindings to OnBindingContextChanged override and see if that would help - if yes, it's a Xamarin.Forms binding issue.

So... that's a really strange one... I don't have a clue how it's possible. Are you sure that you create a new CachedImage instance in ViewCell contructor for every cell?

Positive. I'll let you know if i figure out a way to recreate it.

Ok :)

@highplains Does this bug still apply to 2.0.0-alpha3?

So hard to reproduce i'm really not sure. Feel free to close this out
though.
On Tue, Dec 8, 2015 at 10:46 AM, Daniel Luberda<EMAIL_ADDRESS>wrote:

@highplains https://github.com/highplains Does this bug still apply to
2.0.0-alpha3?
—
Reply to this email directly or view it on GitHub
https://github.com/molinch/FFImageLoading/issues/81#issuecomment-162958706
.

Ok :) BTW: That could be also a Forms renderer bug. I released alpha4 with some stability improvements. If you'll experience it once again - feel free to reopen this bug. We'll try to find out what's causing this bug. Thanks.

Btw, if there is a memory issue then transformation won't be applied (since it consumes even more memory)


tranquility-kafka

An app that is both a kafka consumer and a tranquility sender. Ideally it should work with only configuration, without users having to write code.

fixed by #65


Include 'Text Style' name in 'Get Property' output

This plug-in is very useful - it would be EVEN more useful if you could include any 'Text Style' names in the 'Get Property' output. I have Text Styles set up which the developers use in a style library, which means they don't want to know the font names and sizes - they want the Text Style names!
Many thanks,
Katy

+1 to that

+1 👍

+1 Our developer asked for this as well.

Update last version and 'Get Property' > 'Style name'

That for fast!!! Thank you!!!


working but not picking up status

it works, in that it switches off my tv but it does not pick up the current state
my TV is ON, the switch shows its off, i turn the power state to on and the TV switches off, Then the power state shows ON so i turn the TV back on, i switch power state to off the TV switches off.

Thank you I have yet to figured out how to get the status of the TV. This might be possible with pinging it or there might be some api. If you have any suggestion I d be happy to hear them

Hey, Tim, i am actually struggling to get the status of my sony tv as well, i tried ping but we do get replies back when the tv is in standby mode too......

In the Beta Branch I tried connecting to the http server and it seem to be allways on. Wich makes sense because i uses a http post request to wake up the tv. Im going to try to poll the Volume next time maybe the Volume will be 0 or n.V.  when its off.

var action = "X_GetKey" ; might be worth a try...

By fixing #2, this issue should also be resolved. Keep in mind that the HomeKit apps do not constantly request the state, so it might not be correctly shown if the state changes (through the normal remote for instance).


Speed up slow user export functionality

Trello: https://trello.com/c/AbFXHJ5u/104-504-timeout-when-trying-to-download-a-csv-of-signon-users-medium
The "Export as CSV" button in signon will generally result in a 504 in production due to it taking over 15 seconds to generate the CSV (actually around 10 minutes on a VM). This is mostly avoidable by fetching data in more optimised ways rather than relying on ActiveRecord's association magic.
CSVs with no filtering are now returned in around 4 seconds on a VM, which should be quick enough.
This pull request best reviewed commit by commit.
Possible future refactoring would be to pass a scope of users into the presenter and have it generate the CSV itself.

Apart from the nitpicks, seems reasonable to me.

Comments addressed and rebased


Add default project and remove default threads

This pull request attempts to do two things:

Implement a default LSF project that is used unless -P  is in the lsf.yaml.
Remove the default_threads option because Snakemake no longer respects it.

The default project works perfectly, but the latest commit is failing the tests because I cannot figure out how to update the tests.
Linting and Blackening were successful. If you just want to merge default project, that's fine, but default_threads is no longer respected.

@mbhall88, I have an uncustomized branch, so I can initiate a new pull request once we've addressed your other concerns.
In terms of threads not being respected, if I didn't specify threads in the rule definition, Snakemake put a default of 1 in the jobscript and that was never overridden by the cookiecutter default value. In other words, if I set default_threads to 2 and didn't specify threads:, it would default to 1, not 2.
I still don't understand how the unit testing is working, but if the removal of default_threads is wrong, then it won't be an issue other than lack of coverage of the work for project specification.

@mbhall88, I have an uncustomized branch, so I can initiate a new pull request once we've addressed your other concerns.

Whatever is easiest for you.

In terms of threads not being respected, if I didn't specify threads in the rule definition, Snakemake put a default of 1 in the jobscript and that was never overridden by the cookiecutter default value. In other words, if I set default_threads to 2 and didn't specify threads:, it would default to 1, not 2.

I see. Ok, happy to remove it then.

I still don't understand how the unit testing is working, but if the removal of default_threads is wrong, then it won't be an issue other than lack of coverage of the work for project specification.

The removal of default_threads is not wrong, it's just you need to mock the output of calling the default_proj() function. Like in the line I permalinked above.

@mbhall88, thanks. I'll try to figure out the tests on Friday. Do I also need to write tests for the new project feature and for my change I made after this PR that doesn't duplicate the -q flag if queue is specified in lsf.yaml?

@mbhall88, thanks. I'll try to figure out the tests on Friday. Do I also need to write tests for the new project feature and for my change I made after this PR that doesn't duplicate the -q flag if queue is specified in lsf.yaml?

Updating an existing test with project-related settings would be sufficient. So one test that uses the default, and adding -P to one of the config files and making sure that overrides the default would be enough.
Regarding the change to the -q flag, it would be great if you could add something for that also. It should be as simple as copying another test and just adding a mock for a cookiecutter default and a config file with -q in it.
If you can't figure any of this out let me know and I'll try and add some tests when I get time.

@BEFH this is a bit awkward now. While I wait for @leoisl to approve this PR, your recent commit to fix #47 has been pushed onto this PR.
@leoisl once you are happy with this PR, could you remove that commit on your branch and we might have to close this PR and open a new one that isn't on @BEFH's fork.

First, sorry again for my delay on reviewing this. I am overloaded and needed some time off.
TLDR
I agree with removing the default threads option. The reasoning is: snakemake defaults threads to 1 if the user does not specify the threads directive, and there is no way for us to know if the user specified 1 thread or did not specify the threads directive.
Some tests

LSF profile default threads = 1000, rule threads = 123

This is the submitted jobscript:
#!/bin/sh
# properties = {"type": "single", "rule": "concat_fastas", "local": false, "input": [], "output": ["output/all.fasta"], "wildcards": {}, "params": {}, "log": ["logs/concat_fastas.log"], "threads": 123, "resources": {"mem_mb": 1000, "disk_mb": 1000, "tmpdir": "/hps/nobackup/research/zi/leandro/temp"}, "jobid": 1, "cluster": {}}
cd /hps/nobackup/research/zi/leandro/snakemake_test/roundhound/pipelines/build_DB && /hps/nobackup/research/zi/leandro/miniconda3/bin/python -m snakemake --snakefile '/hps/nobackup/research/zi/leandro/snakemake_test/roundhound/pipelines/build_DB/Snakefile' 'output/all.fasta' --allowed-rules 'concat_fastas' --cores 'all' --attempt 1 --force-use-threads  --wait-for-files '/hps/nobackup/research/zi/leandro/snakemake_test/roundhound/pipelines/build_DB/.snakemake/tmp.8pvg9a13' --force --keep-target-files --keep-remote --max-inventory-time 0 --nocolor --notemp --no-hooks --nolock --ignore-incomplete --skip-script-cleanup  --conda-frontend 'mamba' --wrapper-prefix 'https://github.com/snakemake/snakemake-wrappers/raw/' --latency-wait 10 --scheduler 'greedy' --scheduler-solver-path '/hps/nobackup/research/zi/leandro/miniconda3/bin' --default-resources 'mem_mb=max(2*input.size_mb, 1000)' 'disk_mb=max(2*input.size_mb, 1000)' 'tmpdir=system_tmpdir' --mode 2 && exit 0 || exit 1

and we can get both values for threads with:
self.job_properties.get("threads") = 123
CookieCutter.get_default_threads() = 1000

This is the case that works.

LSF profile default threads = 1000, threads directive not specified for the rule

This is the submitted jobscript:
#!/bin/sh
# properties = {"type": "single", "rule": "concat_fastas", "local": false, "input": [], "output": ["output/all.fasta"], "wildcards": {}, "params": {}, "log": ["logs/concat_fastas.log"], "threads": 1, "resources": {"mem_mb": 1000, "disk_mb": 1000, "tmpdir": "/hps/nobackup/research/zi/leandro/temp"}, "jobid": 1, "cluster": {}}
cd /hps/nobackup/research/zi/leandro/snakemake_test/roundhound/pipelines/build_DB && /hps/nobackup/research/zi/leandro/miniconda3/bin/python -m snakemake --snakefile '/hps/nobackup/research/zi/leandro/snakemake_test/roundhound/pipelines/build_DB/Snakefile' 'output/all.fasta' --allowed-rules 'concat_fastas' --cores 'all' --attempt 1 --force-use-threads  --wait-for-files '/hps/nobackup/research/zi/leandro/snakemake_test/roundhound/pipelines/build_DB/.snakemake/tmp.3c84_mlu' --force --keep-target-files --keep-remote --max-inventory-time 0 --nocolor --notemp --no-hooks --nolock --ignore-incomplete --skip-script-cleanup  --conda-frontend 'mamba' --wrapper-prefix 'https://github.com/snakemake/snakemake-wrappers/raw/' --latency-wait 10 --scheduler 'greedy' --scheduler-solver-path '/hps/nobackup/research/zi/leandro/miniconda3/bin' --default-resources 'mem_mb=max(2*input.size_mb, 1000)' 'disk_mb=max(2*input.size_mb, 1000)' 'tmpdir=system_tmpdir' --mode 2 && exit 0 || exit 1

and we can get both values for threads with:
self.job_properties.get("threads") = 1
CookieCutter.get_default_threads() = 1000

i.e. snakemake tells us that the rule must be run with 1 thread, but it does not tell us if the user said this explicitly (through the threads directive) or not (implicitly, by omitting the directive). As such, we can't decide if we should run with 1 thread (explicit usage) or with the LSF profile default threads (implicit usage).
A cumbersome solution
There is actually a way to fix this, but I think it is cumbersome and as 99.9% of the cases the default threads should be 1, I don't think we should go through the trouble of fixing. By looking at the jobscripts above, we can actually see the Snakefile that snakemake should run and the specific rule it should run. As such, we could actually parse the Snakefile and infer if the threads directive was specified or not. However, this gets complicated with things like included Snakefiles, modules, etc... It would be a lot of work for very little benefit, as I think almost all users would use default threads = 1

Codecov Report

Merging #43 (9469fc0) into master (34c3c4c) will increase coverage by 0.44%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #43      +/-   ##
==========================================
+ Coverage   88.67%   89.12%   +0.44%
==========================================
  Files           6        6
  Lines         468      478      +10
  Branches       47       64      +17
==========================================
+ Hits          415      426      +11
+ Misses         46       45       -1
  Partials        7        7

Flag
Coverage Δ

unittests
89.12% <100.00%> (+0.44%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

{{cookiecutter.profile_name}}/CookieCutter.py
76.00% <100.00%> (+4.00%)
:arrow_up:

{{cookiecutter.profile_name}}/lsf_submit.py
89.15% <100.00%> (+0.69%)
:arrow_up:

{{cookiecutter.profile_name}}/memory_units.py
100.00% <100.00%> (ø)


Which endpoint

I would like to use the feedback widget what endpoint?
Got the .env part down what endpoint is used in your Netlify demo? or some idea.
Thanks
Donald Boulton

Hey there! This widget assumes you have your own endpoint. We send it to our API as a submitFeedback mutation, so you could copy that if you like, or you could change it up to submit the data somewhere else.
Hope that helps!


lib: Prevent failure if the service is not a gateway

Stack:

#72
#71
#69
#65
#68
#73
#70 ⬅
#66

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

✓ Commit merged in pull request #73