Add linter and run it on CI

Add linter configuration
Fix issues raised by linter
Lint on CI

こうしてもよい
name: Lint
run-name: ${{ github.actor }} is testing out GitHub Actions
on: [push]
jobs:
  Explore-GitHub-Actions:
    runs-on: ubuntu-latest
    container:
      image: node:20.9.0-bullseye-slim
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Lint files in the repository
        run: |
          yarn install
          yarn lint

こうしてもよいらしい。
こちらの方がコンテナイメージをpullする必要がない分早そう。
refs:

https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/using-conditions-to-control-job-execution#example-only-run-job-for-specific-repository

name: Lint
run-name: ${{ github.actor }} is testing out GitHub Actions
on: [push]
jobs:
  Lint-On-GitHub-Actions:
    runs-on: ubuntu-latest
    container:
      image: node:20.9.0-bullseye-slim
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20.9.0'
      - name: Lint files in the repository
        run: |
          yarn install
          yarn lint

続きは #7 で


get ready for the first release

Codecov Report

Merging #2 (66a2999) into main (8d86999) will increase coverage by 0.55%.
The diff coverage is 33.33%.

@@            Coverage Diff             @@
##             main       #2      +/-   ##
==========================================
+ Coverage   85.93%   86.48%   +0.55%
==========================================
  Files           8        7       -1
  Lines         263      259       -4
==========================================
- Hits          226      224       -2
+ Misses         37       35       -2

Impacted Files
Coverage Δ

src/mtables.jl
81.69% <33.33%> (+1.96%)
:arrow_up:

Continue to review full report at Codecov.

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


Fix 'async' is not highlighted

I found that async keyword is not highlighted. It is highlighted as javascriptAsyncFuncKeyword, but not linked to any highlight where color is specified. I corrected this problem.

Before

After

Thanks 👍


netstandard

Could you add netstandard in nuget package ?
doods.

Duplicate of #29
You can just add the import flags for netstandard for now.


No Intellisense on TargetFramework and PackageReference

Envioronment
build: d15rel/25904.2
cli: 1.0.0-preview3-004056

@RaulPerez1 can you update the schema to include these?

The schema is global so modifying that will make these tags show up in member list for any project regardless of if it's supported or not. Is that what we want?
Note that with the changes to the xml editor those 2 squiggles won't show up.

Both these can be applied to regular projects as well and so it's fine to put them in the schema. The editing scenario is more important for CPS-based projects.

For PackageReference, do we want to expose all of the properties defined in src\Microsoft.VisualStudio.ProjectSystem.Managed\ProjectSystem\Rules\PackageReference.xaml?

Change for this needs to happen on the VS side. Opening a bug there.

@RaulPerez1 this isn't VS side, it should be msbuild http://github.com/microsoft/msbuild.

Thanks for pointing that out, here's the PR on the MsBuild repo https://github.com/Microsoft/msbuild/pull/1347#pullrequestreview-8693522


Feature: Expose an API to interact with MoneroTipBot

Currently MoneroTipBot is not accessable/usable through another bot since Telegram does not allow to talk between bots.
But developers might want to build their own services while using the MoneroTipBot as a backend for their (Monero) apps on Telegram.
Proposal:
Build an API for one or more or all commands of MoneroTipBot and enable interaction with a user's own wallet through this exposed API endpoint.
Use case:
A user can access his/her own wallet through his/her own bot on Telegram to offer services (eg. quiz bot, giveaway bots, rating bots, gaming bots, etc.) and use implemented commands through the bot and thus automate things.
Rate this feature proposal by giving thumbs up or down on this OP (opening post).
Or a +1 or -1 if you like to comment.
When this proposal gets enough thumbs up or +1, it will be implemented.

Good idea. And you are thinking about an endpoint for everyone to use, not just for other Telegram bots right?

yes. everyone as in: bots or users (eg. via MTProto)

JSON please :-)

yes

Initially i thought about an API that is also accessible from outside of Telegram but quickly realized that it wouldn't work of course.

it will be publicly available, that means outside from Telegram as well so actually it is not restricted or bound to Telegram only.

Yes but you will have to use MTProto and that's what i initially didn't get

due to no public interest I will close this issue and dismiss this feature.


Automator: update istio/api@master dependency in istio/istio@master

Generated by Automator - 2021-01-21T19:05:49+00:00

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-telemetry-mc-k8s-tests_istio
c6d382454d624bbc5eba931d992d68c9c7d8afef
link
/test integ-telemetry-mc-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-telemetry-mc-k8s-tests_istio
c6d382454d624bbc5eba931d992d68c9c7d8afef
link
/test integ-telemetry-mc-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

/retest


webpack doesn't eliminate module required under false condition

Related issue: https://github.com/mishoo/UglifyJS2/issues/3110
Bug report

What is the current behavior?
webpack include dev module in production bundle.
If the current behavior is a bug, please provide the steps to reproduce.
Re-pro: https://github.com/dangh/test-webpack-treeshaking
The dev.js is included in the bundle with the following code:
const __DEV__ = process.env.NODE_ENV === 'development'

if (__DEV__) {
  require('./dev.js')
}

But not this one:
if (process.env.NODE_ENV === 'development') {
  require('./dev.js')
}

UglifyJS/BabelMinify doesn't help since it can optimize the calling site but doesn't touch the bundled module.
See the output: https://github.com/dangh/test-webpack-treeshaking/blob/master/dist/main.js#L74-L79

What is the expected behavior?
The dev.js module shouldn't be included in the bundle.

Other relevant information:
webpack version:  4.7.0
Node.js version:  9.11.1
Operating System: macOS
Additional tools:

webpack is able to evaluate expressions but it does not memoize the bindings' value.
const __DEV__ = process.env.NODE_ENV === 'development'
//              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//           webpack understands this is 'false' or 'true'

if (__DEV__) {
//  ^^^^^^^
//  webpack can't optimize the 'if' test because '__DEV__' is unknown since its
//  value isn't tracked.
  require('./dev.js')
}

if (process.env.NODE_ENV === 'development') {
//  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//  webpack can optimize the 'if' test it is able to evaluate the test
  require('./dev.js')
}

tl;dr: webpack only optimizes constant expressions. Use DefinePlugin to replace variables.


Provide an option to disable the pagination

In a recent release, a pagination was introduced in the dashboard. As I have many projects a quick glance over the whole status was great, but now I have to click between the pages to get the whole picture.
Therefore, an option to disable the pagination would be appreciated. 🙏

I think the simplest solution would be to load pagination size from settings.
It will give you an option to set big number for example 100.

I agree, maybe this should be a setting that can be customizable per user?

Yeah, we could make it customizable! I like that solution. I'm a bit busy at the moment but I'd happily include this in the next release if someone were to make a PR.

I can add this.
Are we talking about customization on user level or instance level?

Going to mark this as closed now that #135 is merged. (You can set DASHBOARD_PAGE_SIZE to something very large, which will have the same effect as disabling pagination.)
Thanks to everyone involved!

Thank you so much!


fix(security): resolving SQL injection protection bypass (942380 PL2)

I found TONS of ways how to bypass rule 942380 and some of them were extremely easy (for example using \s instead of \s+ in regex).

What is the difference on what you did? Does having work with no spacing?

\s means exactly 1 space so it can be bypassed using 2 or more spaces. Any SQL server ignores excessive spaces in commands. For example order\sby can be bypassed using order     by.

You could try removing all spaces with a transformation first.

Ready to review (again)!


Add --> true if not present

I find myself writing things like
 @fact a == b

a lot, instead of
 @fact a == b --> true

Could we add the --> true automatically if it is not present, to make it more like Base.Test and save effort? Enabling this could be made optional.

I agree with the sentiment, but I can't come up with a good solution where you could still preserve checking that the fact statement is well formed.

How about first trying the fact statement as is; if it would give the current error, then try adding the --> true and see if now it works? (All this is from a position of ignorance about the internal workings.)

but then any statement would "work" at compile time, even if it did not make sense.

Is it possible to call a method towards the end that dispatches on a bool vs anything else:
finalcheck(expr, result::Bool) = result ? SUCCESS() : FAILURE()
finalcheck(expr, result) = NORMAL_HANDLING()

I admit I haven't looked as to whether this is feasible... just an idea.


Sets project expectations

This is a simple readme change, since this repo is getting a fair bit of attention from around the world and I feel it is unfair that people may get the wrong expectations about this. Feel free to reword this as you see fit.
/cc @marksmall

This note is very helpful. Would be good to get this merged.


Make the search field the default when creating a new book note

When you create a new book note, the search dialog defaults to the language instead of the search field. You can start typing your search by setting the default to the search field. Currently, I am changing the language because I am typing without changing fields.

I had the same problem and glad to find a new setting called "Ask for Locale" which if disabled hides the locale field :)

I should have looked closer at the options but thanks for pointing it out.


Create clymene component metrics

Describe the bug
I want to collect Clymene's metrics and use them for performance analysis.

add influxdb write success/fail metric

add influxdb write success/fail metric

Only asynchronous influxdb writes are supported. Only errors can be transmitted through chan


Manual triggering?

I have a use case where I can rely on declarative fetching in most cases but I occasionally need to manually trigger a fetch after a process has completed. I’m currently using useTask because the existing code was already a task. Is there any way to manually trigger the task? A workaround would be to add something like a counter as part of the thunk that I increment to trigger a fetch, but that would be unfortunate 😆
Thanks for your work on this, I’m just now finally getting to try out the use/resources concepts and this addon seems like it’ll be helpful 🤩

I'm not sure if this is available, but you could call the update function?
https://github.com/NullVoxPopuli/ember-resources/blob/main/addon/-private/resources/ember-concurrency-task.ts#L54

hmm it’s undefined for me 🤔  I’m pretty unfamiliar with these ideas so maybe there’s another approach (it probably doesn’t need to be an Ember Concurrency task, for instance), but I wonder if this is a valid use case regardless?

With some guidance I was able to change to useResource instead which opened up manual triggering 🎉


Delta on Managed Identity Policy

Did you get any feedback on this? We also have a requirement to not use secrets or certificates.


[EventProcessor] Consider moving EventProcessor to the root namespace

The EventProcessor is the main way for people to interact with Event Hubs. It should be easy to find and putting it in the root namespace might help with that.

Final decision is to not have EventProcessor as public API


🐞 How to scan multi whatsapp account

What happened?
How can i add more devices?
Reproduction Steps
1. scan multi-WhatsApp account in http://localhost:3000/app/login
its show as {"code":"ALREADY_LOGGED_IN","message":"you already logged in :)"}

Relevant log output
No response
Screenshots or Additional Context
No response
Application Version
4.13.0
Verification

[X] I have checked for existing closed issues and discussions.

It's not a problem, Api is single instance.

Please read another issue or discussion to prevent duplication. https://github.com/aldinokemal/go-whatsapp-web-multidevice/issues/108


Copy/Paste Roles (PostgreSQL) don't works

When I try to copy roles from postgres between differents connections, it does not work.
System information:

Ubuntu 19.04
DBeaver 6.0.4

Connection specification:

Database name and version
PostgreSQL

related to #8133

closed as duplicate of #8133


Use Non-Identity Field as Foreign Key

Hi,
I am newbie in Serenity and this is my first try out, Your help will be deeply appreciated.
I have the following 2 Tables,
Region:
Table("Region").WithColumn("c").AsInt32().Identity().NotNullable()
.WithColumn("Code").AsString(50).PrimaryKey().NotNullable()
.WithColumn("Name").AsString(100).NotNullable()
.WithColumn("Description").AsString(255).Nullable();
Country:
Create.Table("Country").WithColumn("CountryId").AsInt32().Identity().NotNullable()
.WithColumn("Code").AsString(50).PrimaryKey().NotNullable()
.WithColumn("Name").AsString(100).NotNullable();
Foreign Key:
Alter.Table("Country").AddColumn("RegionCode").AsString(50).Nullable().ForeignKey("FK_Country_RegionCode", "Region", "Code");
As you can see i am not using Identity Columns as Primary / Foreign Key. I want to use Region.Code as Foreign Key in Country. I have created the tables / Code using Serenity. Now when i create a Country and select a Region (It should show Region Name but it shows Region Code), it gives me SQL error which means it is trying to save the RegionId of Region in my RegionCode foreign key in Country table.
Thank You

I'm not an expert on Serenity, but I know something about databases.
This Region table have 2 keys, c and Code (an identity field is a key by itself). From an architectural point of view, you should have only one key in your table. I suppose you are migrating some functionality from another system? or why you want to keep both c and Code in Region?
You should use the foreign keys as simple as possible. A String of 50 is not a recommendable key.
Use c as the foreign key and you can keep Code as the primary key.
If you do this, then later you can play with the LookupEditor and LookupInclude to bring the description of the Region in the Country dialog.

Hi,
As i am trying to migrate from another system. My Idea was not to rely on Autogenerated Columns in SQL Server for Relationship. Your suggestions were valuable.  Can you please elaborate little with examples of LookupEditor and LookupInclude so that it helps me with understanding of flexibilities as well

You have many examples in the Northwind implementation.
My recommendation is the following:

Drop the c, you don't need it.  Also review the movie tutorial. It's really easy to follow and explains in details how to implement the lookup.
If you are going to add records in table Region with Serenity, review another piece of sample that will allow you to control de id creation. In the future I will implement this to create the id outside of my serenity app.

Hope this helps.

Thank you for your valuable suggestions.


Update default debug tags to not create a misleading understanding

The current default leads users to think the trailing .* is necessary to do prefix matching which is not the case. Moreover it encourages them to think that not having the trailing .* means prefix matching will not be done, which causes the appearance of incorrect behavior.

FreeBSD build successful! See https://ci.trafficserver.apache.org/job/Github-FreeBSD/1460/ for details.

Linux build successful! See https://ci.trafficserver.apache.org/job/Github-Linux/1353/ for details.

clang-analyzer build successful! See https://ci.trafficserver.apache.org/job/Github-Clang/25/ for details.


Possible CI-CD Pipeline

just thinking about post launch skulls and stuff and scoring and things
I need to get us an FTP and web service. Just for us to host files for the launcher when we do updates and be able to track downloads also I want to get a lot of our source content on there
help prime the pump for SFM and for people who want to import the models into MCC games
some of our content is the highest quality stuff out there

-- Masterz1337
From what I understood he is thinking of a way to deliver updates to players over FTP periodically. What do you say?

There's already a CI for the loader, which automatically compiles and uploads the binaries here: https://open.n2.network/spv3.cli/
As for the maps themselves, eh, probably storing them in S3 would end up more reliable and cheaper than on an FTP server.

and faster I presume. Any idea what pricing aws pricing model we should go for?

https://blog.cloudability.com/how-aws-s3-pricing-works/
Seems like the standard storage model should suffice. Can't say I'm currently an expert on this side of things, so don't take what I say as gospel. However, FTP is a no-no for this scenario. 😛
There's always the option of having the loader automatically run Syncthing to retrieve data.

I guess standard pricing is best suited for this.

https://calculator.s3.amazonaws.com/index.html

Indeed, it should keep things rather simple.

How's the self-update going? @SubhadeepJasu

Storage isn't the main cost issue. The downloads are. I did a check and not sure if its viable for us. I'll need you to take a second look at the s3 data transfer out rate.

What about the downloads is an issue? The bandwidth costs?

Speaking of update, the loader went from build 041 to 042. Great!

Excellent.

Yeah, if its the same region its free, any other region and it costs for every GB downloaded per month.

Ah, yeah, bandwidth is inevitably something you pay for. I can't think of any storage service that provides free bandwidth. Of course, there's the option of uploading to file sharing sites, and have the loader send people the link to the latest downloads.

How about azure? Just looking for options. These things are built with enterprise use in mind.

https://azure.microsoft.com/en-au/pricing/calculator/
https://azure.microsoft.com/en-us/pricing/details/bandwidth/

Yikes

Not sure I am able to understand it well, but considering our expected traffic. Its highly costly.

How about these? https://hostingfacts.com/cheap-web-hosting/

Eh, really up to Masterz to decide. As long as it offers HTTP downloads, I'm up for anything.


Defer task input discovery

We currently analyse task input annotations when a task is created, no matter if it will ever be used. We should see if we can defer this to task graph construction. The only user-visible difference would be that task.getInputs().getProperties() would not return the full picture during configuration time. That might be worth the performance improvement though.

This was implemented a while ago to support polymorphic nested inputs.


Migration of Staked Tokens Projects

Michael made a stake and transfer function to handle this.
Michael to check with dallas for proper tests for members who are voting to members who are not voting and all the new stake stuff is working as expected.

I have added tests for the staking from here https://github.com/eosdac/eosdac-contracts/blob/733a53828350a1bc45affc3842bb27384c7cb499/eosdactokens/eosdactokens.test.ts#L218 and tests here https://github.com/eosdac/eosdac-contracts/blob/733a53828350a1bc45affc3842bb27384c7cb499/daccustodian/daccustodian.test.ts#L1517-L1562 . Also since the staked candidates are needed repeatedly throughout the tests suite they are set up in the TestHelpers.ts common file here https://github.com/eosdac/eosdac-contracts/blob/733a53828350a1bc45affc3842bb27384c7cb499/TestHelpers.ts#L187-L191

can you add tests where staking is not enabled on the token contract?


cargo: failed to select a version for the requirement swc_ecma_transforms = "^0.226.37"

Describe the bug
I tried to bump the swc crate version in Parcel:
error: failed to select a version for the requirement `swc_ecma_transforms = "^0.226.37"`
candidate versions found which didn't match: 0.226.36, 0.226.35, 0.226.34, ...
location searched: crates.io index
required by package `swc_ecma_preset_env v0.203.38`
    ... which satisfies dependency `swc_ecma_preset_env = "^0.203.38"` of package `swc_core v0.86.52`
    ... which satisfies dependency `swc_core = "^0.86.52"` of package `parcel-js-swc-core v0.1.0
perhaps a crate was updated and forgotten to be re-vendored?

Input code
...

Config
...

Playground link (or link to the minimal reproduction)
https://play.swc.rs/
SWC Info output
swc_core = { version = "0.86.52", features = [
  "common",
  "common_ahash",
  "common_sourcemap",
  "ecma_ast",
  "ecma_codegen",
  "ecma_parser",
  "ecma_preset_env",
  "ecma_transforms",
  "ecma_transforms_compat",
  "ecma_transforms_optimization",
  "ecma_transforms_proposal",
  "ecma_transforms_react",
  "ecma_transforms_typescript",
  "ecma_visit",
] }

Expected behavior
...
Actual behavior
...
Version
...
Additional context
No response

Should be fixed now.
https://github.com/swc-project/bot/actions/runs/6825217583/job/18562616275 is the cause

I'm still having problems, even when completely removing my old lockfile:
error: failed to select a version for the requirement `swc_ecma_codegen = "^0.146.24"`
candidate versions found which didn't match: 0.146.23, 0.146.22, 0.146.21, ...
location searched: crates.io index
required by package `swc_core v0.86.53`
    ... which satisfies dependency `swc_core = "^0.86.53"` of package `parcel-js-swc-core v0.1.0`
perhaps a crate was updated and forgotten to be re-vendored?

with
swc_core = { version = "0.86.53", features = [
  "common",
  "common_ahash",
  "common_sourcemap",
  "ecma_ast",
  "ecma_codegen",
  "ecma_parser",
  "ecma_preset_env",
  "ecma_transforms",
  "ecma_transforms_compat",
  "ecma_transforms_optimization",
  "ecma_transforms_proposal",
  "ecma_transforms_react",
  "ecma_transforms_typescript",
  "ecma_visit",
] }

It should be really fixed now


Why are version 1 and version 2 so different?

I download the code, It's master branch, and the pom.xml's version is 1.0.0-beta-SNAPSHOT, then I checkout to branch 2.0.1-pubsub, I see the code is so different, even package!
So, is the branch 2.0.1-pubsub is RELEASED? Will the same big changes follow?

@exceting thanks for your attention, the master branch aims to provide Queue model interface and the topic_model branch aim to resolve the Topic(Pubsub) issues.
These two branches are for different messaging models, because we find it difficult to unify two completely different models. If you want to unify, one problem is that the interface you need to provide is the least common multiple of the two branches. Therefore, the community temporarily incubates a new topic model in the topic_model branch. After reaching production availability in the future, it may become an independent repo in GitHub. Welcome to participate and give more suggestions.

2.x.y version will be the final master in the latest release.


[WIP] support .net standard

this add .net standard 2..0 in parallel to existing (so less problem ihmo), and will merge netstandard2.0 built assembly in the usual package
@lefthandedgoat  some open questions:

atm doing build Build fails for me (Rebuild target not found)
dotnet build with .net core sdk crash fsc with stackoverflow, oops ( https://github.com/Microsoft/visualfsharp/issues/3696 )

crash is related to FSharp.Data usage, is really needed?

what's the best way to run all tests?
want a travis/appveyor to run test/create package?

NOTES

for screen info, use the same default like when running on mono

TODO

[ ] merge netstandard in currrent package
[ ] fix or workround dotnet build error

current status:

restore with dotnet restore
build is with msbuild tests\basictests.netcore\basictests.netcore.fsproj /t:Build (msbuild 15.3 => vs2017 15.3)
1 of tests/basictests.netcore tests fails

Interesting, I didn't think .netcore would work because canopy is a wrapper to selenium which does not have a .netcore version!
atm doing build Build fails for me (Rebuild target not found)
I use 'rake' command and run things from a rake task, there is a build fake script but I generally just use the 'Release' task which does a build and creates a nuget package
dotnet build with .net core sdk crash fsc with stackoverflow, oops
I dont know to be honest, I know so little about .netcore
crash is related to FSharp.Data usage, is really needed?
FSharp.Data is used for a feature to build an AST of Json and validate it.  Its a different project and technically I could pull the source into its own solution if its really a problem.
what's the best way to run all tests?
'rake' from command line if you have rake installed
want a travis/appveyor to run test/create package?
I do it manually now because I only do it like one per month or something, and often merge multiple things in before doing a build.  I am ok with doing it manually going forward also, just because I am weird.

with new Selenium.WebDriver v3.6.0 now netstandard2.0 is supported (9days ago)
@lefthandedgoat i tried to do this PR at openfsharp conf, but zero time :(

I use 'rake' command and run things from a rake task, there is a build fake script but I generally just use the 'Release' task which does a build and creates a nuget package

ok for rake, but the build.fsx specify old VS 11 (vs 2012), can i upgrade that? i have just 2013-2017 installed. anyone is ok

dotnet build with .net core sdk crash fsc with stackoverflow, oops
I dont know to be honest, I know so little about .netcore

np, already reported that in https://github.com/Microsoft/visualfsharp/issues/3696 . doesnt matter atm

crash is related to FSharp.Data usage, is really needed?
FSharp.Data is used for a feature to build an AST of Json and validate it. Its a different project and technically I could pull the source into its own solution if its really a problem.

I'll pull source so, as workaround for now.
ok rake, no appveyor/travis. np, less work :D

Didnt realize there was a nice version, nice!
Yes you can upgrade to a new version of VS, 2015 sounds good.
For Fsharp.Data I really don't have a problem creating a sub solution and remove it from the main canopy solution.  I am pretty confident the code is stand alone.  Its related to Integration testing, not UI testing, but I figured I would make it a part of the 'canopy brand'.

I've completed canopy 2.0 which has both .net standard 2.0 support and parallel support.
You can download it here: https://www.nuget.org/packages/canopy/2.0.0
You can read the upgrade documentation here: http://lefthandedgoat.github.io/canopy/upgrade1to2.html
Thanks for your work on this, I looked at your code for reference!


Fix date query unable to get data on Omset

Coverage increased (+0.02%) to 31.404% when pulling 87b4615707d03a64095b0a671f80b54a856f2bc7 on uat into 8b93bed9e0bc88ebaa3bacec3097346d505adeaf on master.


style(web/applications): changed wording on applicant phone number (BOAS-301)

Describe your changes
changed wording on applicant number

Issue ticket number and link
BOAS-301 https://pins-ds.atlassian.net/jira/software/projects/BOAS/boards/172?selectedIssue=BOAS-301
Type of change 🧩

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] Documentation update
[ ] Other (please explain in the description section above)

Checklist before requesting a review

[x] I have performed a self-review of my own code
[x] I have double checked this work does not include any hardcoded secrets or passwords
[x] I have made corresponding changes to the documentation
[x] I have provided details on how I have tested my code
[x] I have referenced the ticket number above
[x] I have provided a description of the ticket
[x] I have included unit tests to cover any testable code changes

:tada: This PR is included in version 1.2.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.2.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Attempt to fix UI freeze

Attempting to use ReadAction.nonBlocking and Disposable

ReadAction.nonBlocking<Unit> {
     TableAndAliasCollector(this).collect()
     DbReferenceResolver(this).resolve()
}.inSmartMode(project).expireWith(expressionDisposable).executeSynchronously()

It means that the actions inside ReadAction.nonBlocking block will be executed on the current thread, therefore tests and following actions during plugin execution will wait till the end of ReadAction.nonBlocking
The tests will be passed, but make sure that
TableAndAliasCollector(this).collect()
DbReferenceResolver(this).resolve()

is an idempotent operations block, because ReadAction.nonBlocking will be restarted on any UI actions (typing, etc.)

How did I mss .executeSynchronously()... 🙈

@ekvedaras Hi! The fact that this approach did not lead to the problem's fix means that you probably do not have enough cancellation points in the code (https://plugins.jetbrains.com/docs/intellij/general-threading-rules.html#read-action-cancellability). Please try to use ProgressManager.checkCanceled() between DB calls. For example, you could use it as a first command in every iteration of forEach-es in DbReferenceResolver.kt.


Add elasticsearch hook

Dear Airflow maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[X ] My PR addresses the following Airflow JIRA issues and references them in the PR title. For example, "[AIRFLOW-1202] Create Elasticsearch Hook"

https://issues.apache.org/jira/browse/AIRFLOW-1202

Description

[X] Added an Elasticsearch hook in contrib/hooks

Tests

[X] My PR adds the following unit tests:

tests/contrib/hooks/test_elasticsearch_hook.py

Commits

[ ] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Meh don't have that.

@hesenp please squash into a single commit.

Sure ... let me try to do that this weekend.

@hesenp are you still working on this?

Will this be in next release?

Hello @hesenp. I'm going to close this PR since it's been unchanged for a pretty long time, but would be glad to re-open it if you are still interested in contributing this!

Hi All,
Any update on that? Can I take the code and deploy into my airflow container?
Many Thanks


fix issue with deserializing arrays

Thanks again for all the help.  I really appreciate you taking the time to consider my issues and posts.  Once again, I want to praise how great and helpful this library is.
Thanks for already including my fix to the FSTIdentity2IdMap.  I've included here a slight improvement, correcting  a bad habit I have with loops.
Also, this pull request contains my attempt at fixing the array deserialization issue we were discussing, just for your reference.  I suspect your fix is already the similar, but I had a few questions/uncertainties.  I put in comments.  Please review and then proceed with fixing however you see best.
Note: with this fix in place, issue 112 (https://github.com/RuedigerMoeller/fast-serialization/issues/112) is fixed, even for the JSON streams.  I thought you'd find that interesting / worth thinking through.
Also, I was finally to understand how this array issue combined with the FSTIdentity2IdMap to create my deserialization crash:
Reference chain:
Object 1 -> Array 1-> Object 2 -> Object 1
When the FSTIdentity2IdMap was NOT encountered, this worked fine.
When the FSTIdentity2IdMap bug happened, when it came time to write out Object 1, the handle had been lost, so it wrote out ANOTHER copy.  This was obviously wrong, but I didn't understand until now why it led to the deserialization failure.
The reason is this:
When deserializing the new/extra Object 1 (call is Object 1a), Array 1 gets referenced, but wasn't registered yet (due to the array deserialization bug).  However, in the case where it works, Array 1 is never referenced again... so while self-referential arrays were broken in a general sense, in my working case, I didn't end up with a reference cycle.
I guess the only remaining mystery is why the code in issue 112 runs ok with the non-JSON streams. Any insight there?
Anyway, at this point, I'm satisfied that:
a) I've helped track down and correct 2 meaningful issues
b) I've understood my production failure case, and that the FSTIdentity2IdMap fix is a true fix
Thanks!

Hey, great analysis + fix. Thanks for your patience and coding competence :)

I guess the only remaining mystery is why the code in issue 112 runs ok with the non-JSON streams. Any insight there?

Not exactly, but I remember muddling around in case i cannot find an object by doing a lookup position + 4 or position -4 :) .. not sure if this is still in.

ah there is an optimization for small objectgraphs replacing a hash lookup by an array lookup of streamposition/16 or so. This way invalid positions still can yield the correct result sometimes ..


data: krshkun

I've just added my profile, that's it

You can just look at the file's history and find out who added it, if that sounds any simple. But ofcourse, will not be changing usernames again 😂 this is like the 4th time the file has been renamed in Link Free


[BUG] Poetry install commend raises error for h5py

Checklist

[x] I've updated to the latest version of floodlight
[x] I've checked if a similar issue exists

Describe the bug
when cloning the floodlight code locally and running poetry install,  the installation of packages fails (see screenshots below).
To Reproduce
Open a new project, clone the floodlight code, run poetry install with poetry version 1.3.2 and python version 3.10.10
Expected behavior
A CalledProcessError is raised when running poetry install. h5py can not be installed. See screenshots below for terminal output.
Screenshots

Platform (please complete the following information):

OS: MacOs (Ventura 13.1)
Python Version 3.10.10 (see screenshots)

Additional context
Possible solution: After running poetry update, updating the package dependencies, everything works fine. This would also make it possible to run the package using Python 3.11 (latest stable version).

Hi @Alek050,
this seems to be a poetry issue with fresh Python versions (see this: https://github.com/python-poetry/poetry/issues/2746 ). My only guess would be to downgrade your Python version. You state that you use Python 3.10.10, but on your screenshots it says Python 3.11.1 is used for creating the venv by poetry, so maybe you've not activated the older version?
Also thanks for the hint, we'll be updating our dependencies soon!

Hey @draabe ,
Thanks for your response. As far as I can tell it says The current Python version 3.11.1 is not supported by the... And than continues with Trying to find and use a compatible version, Using Python 3.10 (3.10.10), Creating virtualenv floodligth-bcwokx5m-3.10 in .... This seems to me that poetry is using Python 3.10 for creating the environment. Am I missing something?

My bad, I missed that. Another idea would be to delete the poetry cache which, on Windows, is at "...\AppData\Local\pypoetry\Cache...", but otherwise, I'm running out of ideas tbh.


Hook to modify additionalParameters of OAuth2AccessTokenAuthenticationToken

It would be useful to be able to modify the additionalParameters passed into OAuth2AccessTokenAuthenticationToken. This would allow you to use information from, for example, OAuth2Authorization to generate the final access token response.
As it stands, if you want to add info from OAuth2Authorization to access token response, you have to copy the entirety of OAuth2AuthorizationCodeAuthenticationProvider and add what you need to the additionalParameters. You can't use a custom access token response handler as you don't have access to the OAuth2Authorization in there.

@Sm0keySa1m0n I don't feel another lookup is a workaround, however, I agree a secondary call to OAuth2AuthorizationService is not ideal.
There is a related issue in gh-925. Can you please log your specific use case there and then we can consider a holistic solution to address both uses cases. Thanks.


Evaluate literal String comparison

See https://github.com/aristanetworks/purescript-backend-optimizer/pull/21#discussion_r968515091
const test4 = /* #__PURE__ */ (() => Data$dOrd.ordString.compare("h")("i"))();

What do you expect this to evaluate to?

Oh sorry, you mean when both are known strings. Yes, I think we could handle that.


gedis doc is out of date

https://github.com/threefoldtech/digitalmeX/tree/master/docs/Gedis
This doc needs to be updated

https://github.com/threefoldtech/home/issues/164#issuecomment-485363376

updated


fix: cloud as enterprise edition

Close TD-25016

Codecov Report

Merging #201 (f93c339) into main (127664f) will decrease coverage by 0.01%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main     #201      +/-   ##
==========================================
- Coverage   61.42%   61.42%   -0.01%
==========================================
  Files          99       99
  Lines       22587    22588       +1
==========================================
  Hits        13875    13875
- Misses       8712     8713       +1

Impacted Files
Coverage Δ

taos-ws/src/lib.rs
44.44% <0.00%> (-0.20%)
:arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Update version and screenshot in MS docs. MS docs about spring framework

Please check parent issue (#25581) to get more information.

working on this PR: https://github.com/MicrosoftDocs/azure-dev-docs-pr/pull/2487

Close in favor of #26307


cannot install the package

npm install bits-ui
npm ERR! code EBADENGINE
npm ERR! engine Unsupported engine
npm ERR! engine Not compatible with your version of node/npm<EMAIL_ADDRESS>npm ERR! notsup Not compatible with your version of node/npm<EMAIL_ADDRESS>npm ERR! notsup Required: {"node":"^18 || >=20"}
npm ERR! notsup Actual:   {"npm":"9.8.1","node":"v19.0.1"}

This isn't a bits-ui issue, rather a setting within nanoid's package.json:

You can raise an issue over there, but its not an issue with this library!

I realize this issue is closed, but I ran into this as well and wanted to add a note for any one else that happens on this issue.
It's actually melt-ui (v0.69) that requires nanoid v5. This effectively makes melt-ui and bits-ui require node v18+. It's a silent breaking change. :-)
Looking at the melt-ui usage of nanoid, it should still work with nanoid v4.x... so one possibility might be to use pnpm to override the nanoid version used.


systemd startup script; consider a fork() model

I've noticed that this script doesn't fork() and return like most daemon processes. A) would be to request this behavior and send logs to journal/syslog or /var/log/file.log  B) until then, if anyone wants, I made this systemd startup script.
Obviously, edit the paths so they make sense to you. I tested this with a kill -9 and 10 seconds later, systemctl restart it. Sweet!
root@gasgiant:/usr/src/poloniexlendingbot# cat /lib/systemd/system/lendingbot.service
[Unit]
Description=LendingBot service
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/python /usr/src/poloniexlendingbot/lendingbot.py
WorkingDirectory=/usr/src/poloniexlendingbot
RestartSec=10
Restart=on-failure

[Install]
WantedBy=multi-user.target

My cent: The bot is run on multiple different platforms and not necessarily as a demon,  therefore I wouldn't change the implementation.
I would however add documentation on running ways.


QA for Close Pull Request When Unassigned

Testing PR 400

/assign

/assign

Permit generation skipped because assignee is undefined.
If you enjoy the DevPool experience, please follow Ubiquity on GitHub and star this repo to show your support. It helps a lot!

We should consolidate the promotional comment into the permit generation comment.

/assign

/unassign

/assign

/assign

/assign

/help

/unasign

/unassign

/assign

/assign

/assign


Chat "is read" feature

(This was discussed during the technical hangout today.) It was agreed that having an "is read" chat feature for the sender to know when a chat message has been read. A CHAT message with the timestamp of the last read message would probably suffice.

Implemented


Is there a way to use object.put without copying the object first

I load an object from a server, everything plays nice. After modifying the object the values are changed but put sends the original version back to the server.
If i use Restangular.copy() and send the copied object everything is fine.
Is there a way to do a put or post without copying the object? so load, modify, save.
Could not find any hints till yet, any answer would help.
Thanks for the excellent Job!!

Striking similar problems in May 2016, but I think the problem with something like this:
      this.myObject.post().then(function(resp) {
            angular.extend(this.myObject, resp);
        });

is that the resp is itself Restangularized, and so angular.extend copies over the new definitions of angular methods (post() etc). So for that reason, subsequent calls to
this.myObject.post()

just keep posting back the first response.
Easy fix:
      this.myObject.post().then(function(resp) {
            angular.extend(this.myObject, resp.plain());
        });


new button style iphone

@peterpeterparker
Needed to add this :)
somehow I didn't realized it untill now

@peterpeterparker
Needed to add this :)
somehow I didn't realized it untill now

nice, did not knew!!!

nice, did not knew!!!


clearAll documentation is misleading

The documentation indicates that clearAll returns a promise that is always fulfilled with a boolean on whether the cookies were successfully cleared or not.  (This is not explicitly stated, but that's what you gather from CookieManager.clearAll().then((success) => ... with no catch clause.)
In reality, what is returned is:
iOS with useWebKit=false

Always resolves true

iOS with useWebKit=true

If on iOS 11.0 or greater: resolves true
On older iOS version:  rejects

Android:

Resolves to a boolean indicating whether any cookies were cleared or not (but all possibly existing cookies are removed in any case)

Thus, the promise may be resolved of rejected, and in no case does the resolved boolean indicate whether it was successful or not – the only case in which it resolves to false is to indicate that there were no cookies present in the first place.

Nice catch, which behavior should be the accepted one?

Personally I was confused with the success boolean, and in what case the operation could be unsuccessful and what to do then. (That's why I started digging into the code in the first place.) I also can't think of any use case for needing to know whether there were cookies that were cleared or not.
If designing it from scratch, I would probably return a promise that is fulfilled with no value, or rejected on iOS <11.  This of course would be a breaking change.
Whatever the design, the most important thing is to have the cases clearly documented. The iOS version limitation is especially important. After noticing it I increased my iOS version requirement to 11 because in my use case it's unacceptable for the cookies not to be cleared.

@plaa thanks for the feedback, I agree with the promise resolution should be consistent in all cases. I'll make a note for this issue to address that


Fix details

Wasn’t sure if you wanted the latest version open intentionally or not (I can remove the open attributes if you’d like), but I saw that sometimes you did and sometimes didn’t use details, and some stray closing tags
👋🌁🌉

Thanks! didn't catch that one yet.
👋🎓


CLOUD: Add new pages for Cloud: VDC, PSFS, PSN, & IAC

Add 4 new pages to cloud site:

VDC
PSFS
PSN
IAC

Content being finalized today, then to Zia, then to Kristine.
Will update the issue later on.

For now we are just going to link to wiki sections, so closing this.


ListView.builder controller listener not listening

Steps to Reproduce
import 'dart:developer';

import 'package:flutter/material.dart';

class Request extends StatefulWidget {
  @override
  _RequestState createState() => _RequestState();
}

class _RequestState extends State<Request> {
  final listController = ScrollController();
  @override
  void initState() {
    listController.addListener(()=> myListener());
    super.initState();
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ListView.builder(
        reverse: true,
        controller: listController,
        itemCount: 5,
        itemBuilder: (context, index){
          return Container(
            padding: EdgeInsets.all(20),
            margin: EdgeInsets.all(20),
            color: Colors.red,
          );

        },
      ),
    );
  }
  myListener(){
    log("this text will not be shown");
  }
}

Expected results:
listener should listen to any event like scrolling and so on. or not??? but it will listen when listview is full. if i set itemCount to 20 it will work. but not working if itemCount is 5 for example.
Actual results:
listener not listening to any event.

[√] Flutter (Channel stable, 1.20.2, on Microsoft Windows [Version 10.0.18363.1139], locale en-US)
• Flutter version 1.20.2 at C:\Users\xonted\flutter-sdk\flutter
• Framework revision bbfbf1770c (10 weeks ago), 2020-08-13 08:33:09 -0700
• Engine revision 9d5b21729f
• Dart version 2.9.1
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
• Android SDK at C:\Users\xonted\AppData\Local\Android\sdk
• Platform android-30, build-tools 30.0.2
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
• All Android licenses accepted.
[√] Android Studio (version 4.0)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 48.1.2
• Dart plugin version 193.7547
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
[!] VS Code (version 1.50.1)
• VS Code at C:\Users\xonted\AppData\Local\Programs\Microsoft VS Code
X Flutter extension not installed; install from
https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[√] Connected device (1 available)
• sdk gphone x86 arm (mobile) • emulator-5554 • android-x86 • Android 11 (API 30) (emulator)
! Doctor found issues in 1 category.

@evalsxonted
The listView need to be scrollable in order for the listener to listen to events. If you have 5 items in list, the listview won't be scrollable, hence you won't see anything in the logs. But if you have 8 items in the list, the listview becomes scrollable and will listen to the events.
I am going ahead and closing this as non-issue. If you disagree, write in comments and I'll reopen.
Thanks.


Keep positions of Boundary Events and edge waypoints when resizing a Sub-Process

The expected result would have been:

Closed via https://github.com/camunda/camunda-modeler/commit/79dc1a4e218ac9eabbfc3d1d585821fb12c7a297.


Experimental standby cluster

It was superseded by https://github.com/canonical/postgresql-operator/pull/452 and https://github.com/canonical/postgresql-operator/pull/453.


Allow to set LibRaw dataerror_handler.

I ran into the situation where I needed to read a bunch of raw images for analysis in Python. With the help of RawPy, that is usually a piece of cake. It turned out that a couple of the files could not be read, resulting in LibRaw reporting a data corruption to stderr. However, that is the only way that the error is detectable. There are no exceptions, no error codes as return values, and the raw_image is still accessible, albeit corrupted.
LibRaw allows to set a callback function for handling such errors, and this pull request exposes corresponding methods to Python.

Thanks! Looks quite useful. To understand better how to use it, can you add a test that triggers an error which then is checked?

Yes, I can do that. And I should add proper docstrings once I am at it.

Are you still working on this?


web: SecureSocket.connect() not supported?

I am trying to use a Dart IMAP library https://pub.dev/packages/enough_mail on a Flutter Web project. However, when calling SecureSocket.connect(host, port) Flutter throws the following exception:
Error: Unsupported operation: RawSocket constructor
    at Object.throw_ [as throw] (http://localhost:61478/dart_sdk.js:4463:11)
    at Function.connect (http://localhost:61478/dart_sdk.js:57606:17)
    at Function.connect (http://localhost:61478/dart_sdk.js:55742:27)
    at Function.connect (http://localhost:61478/dart_sdk.js:55607:33)
    at imap_client.ImapClient.new.connectToServer (http://localhost:61478/packages/enough_mail/message_builder.dart.lib.js:8558:67)

Needless to say that the same code runs fine on Android.
Steps to Reproduce

Create an app that connects to a server using a SecureSocket
Run the app on the web

Expected results:
The connection should be established.
Actual results:
Flutter fails with Error: Unsupported operation: RawSocket constructor.

Logs

Error: Unsupported operation: RawSocket constructor
    at Object.throw_ [as throw] (http://localhost:61478/dart_sdk.js:4463:11)
    at Function.connect (http://localhost:61478/dart_sdk.js:57606:17)
    at Function.connect (http://localhost:61478/dart_sdk.js:55742:27)
    at Function.connect (http://localhost:61478/dart_sdk.js:55607:33)
    at imap_client.ImapClient.new.connectToServer (http://localhost:61478/packages/enough_mail/message_builder.dart.lib.js:8558:67)

flutter doctor -v
[√] Flutter (Channel beta, 1.19.0-4.3.pre, on Microsoft Windows [Version 10.0.19041.388], locale de-DE)
    • Flutter version 1.19.0-4.3.pre at C:\Users\rober\Documents\Development\flutter
    • Framework revision 8fe7655ed2 (3 weeks ago), 2020-07-01 14:31:18 -0700
    • Engine revision 9a28c3bcf4
    • Dart version 2.9.0 (build 2.9.0-14.1.beta)

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at C:\Users\rober\AppData\Local\Android\sdk
    • Platform android-28, build-tools 28.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Android Studio (version 3.5)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 40.2.2
    • Dart plugin version 191.8423
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)

[√] VS Code, 64-bit edition (version 1.47.2)
    • VS Code at C:\Program Files\Microsoft VS Code
    • Flutter extension version 2.22.3

[√] Connected device (2 available)
    • Web Server • web-server • web-javascript • Flutter Tools
    • Chrome     • chrome     • web-javascript • Google Chrome 84.0.4147.89

• No issues found!

@robert-virkus yes it's not supported, you can't create Socket objects in a web browser

any updates on it?


Add Docker as a further installation option

Hi @povils,
I "dockerized" your tool and want to share this also with you and the community.
Best,
Tommy

Is there anything I can do here?

Hey @tommy-muehle , thanks for your input! Everything would be perfect except I dont like that on image build time composer is installing master version, which is not stable. I would prefer it would point to latest release :)


Books: VD/UX enhancements

Type

✨ Feature

This is to implement visual design and UX enhancements post-migration.
TODO

[x] Add 'Books' tag as per rest of site (black tag), to enable linking back to index page
[ ] Styling on subtitle and author
[ ] Styling for reviews
[ ] Rationalise contributor module: visual design, component header
[ ] Linking contributor(s) #2695
[ ] Sizing of featured image
[ ] Sizing of images on books index page
[x] Get bios and headshots for authors not already in the system from Content

Viz > VD?

Sizing of featured image

Not sure we have anything left on that?

Rationalise contributor module
Linking contributor(s) #2695

I've moved these over to #2828

@wellcometrust/experience-dev @Heesoomoon @GarethOrmerod
Books pages in Prismic allow quotes and reviews, but we don't currently display them. Could we discuss componentizing this template and getting the quote styles visible?

@wellcometrust/experience-dev
Hm, they've magically appeared!


Fix pointer cycle detection

The current detection mechanism is very naive and is returning false positives:
func TestCycle(t *testing.T) {
	type node struct {
		Next *node
	}
	c := &node{}
	b := &node{Next: c}
	a1 := &node{Next: b}
	a2 := &node{Next: b}
	coalescer := NewCoalescer(WithErrorOnCycle())
	got, err := coalescer(reflect.ValueOf(a1), reflect.ValueOf(a2))
	require.NoError(t, err)
	assert.Equal(t, a2, got.Interface())
}

The above object graphs have no cycles, and yet an error is being returned. The trick is that b is a node used in both object graphs a1 and a2.
I think we'd need to implement a proper cycle detection algorithm, probably Floyd's "tortoise and hare", or Brent's variant.

In fact the "cycle" detection mechanism simply detects whether a given address has been seen already or not. But an address can appear many times in an object graph without necessarily creating a cycle.

probably Floyd's "tortoise and hare"

This is the "two pointer" solution used to detect a cycle in a linked list isn't it? I was going to ask about that when I saw your original cycle detection approach, but I didn't want to clutter the conversation.
There are probably Go implementations of this that we can cut and paste (the best form of software engineering). I will look into this if you'd like.

We might actually go the opposite direction and simply acknowledge that the cycle detection feature is not a full-blown one, but just a naive heuristic. It's better than nothing. In this case it would be enough to simply introduce a feature to disable cycle detection completely.

We might actually go the opposite direction and simply acknowledge that the cycle detection feature is not a full-blown one, but just a naive heuristic. It's better than nothing. In this case it would be enough to simply introduce a feature to disable cycle detection completely.

I support this as a short term way to move forward. This flaw will not affect K8s APIs as far as I can tell, because cycles would rarely (never?) appear there.
Please leave this open and I'll do further work as I have time.


Follow up style fixes for StarSearch suggestion boxes

          I'm still getting some weird behaviours with things overlapping , but I think overall this is good to merge -- we can do follow up PRs for styling

Originally posted by @isabensusan in https://github.com/open-sauced/app/pull/3176#pullrequestreview-2015786692

Fixed and replaced with a carousel #3431


Failed installing

Installing<EMAIL_ADDRESS>failed.Show output…
Compiler tools not found
Packages that depend on modules that contain C/C++ code will fail to install.
Read here for instructions on installing Python and Visual Studio.
Run apm install --check after installing to test compiling a native module.

Emmet doesn’t depend on native packages, please try again, it’s Atom/apm error


[Trait] maven repo and service account encapsulation

Also, in that spirit of moving / "encapsulating" the configurability responsibility to the traits, it may be logical to:

Move the .spec.repositories field (Maven repositories) into the builder trait
Move the .spec.serviceAccountName field into the pod trait

Originally posted by @astefanutti in https://github.com/apache/camel-k/issues/2003#issuecomment-843983721

I think they are 2 different things. Whilst the whole maven configuration is something applicable at IntegrationPlatform level (basically influencing the operator), here the focus is on those fields that are configured on the Integration. I am not sure if, technically speaking, we can mix both aspects.

@squakez Alright. I see that maven settings are IntegrationPlatform level and thus should be kept in kamel install command parameters. Thanks for the clarification.

The .spec.repositories field from the IntegrationKit API should probably also be removed, as identified in #2328 by @johnpoth.


Ensure cache directory for CacheStoreDatabase exists.

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[ ] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew tests with your changes locally?

Hopefully fixes https://github.com/Homebrew/brew/issues/5083, which seems to be caused by an atomic_write inside a non-existent directory.

@reitermarkus Thanks for catching this one!


selenium.common.exceptions.SessionNotCreatedException

python3 multi-account.py
Traceback (most recent call last):
File "/root/All-In-One/venv/lib/python3.10/site-packages/seleniumbase/core/browser_launcher.py", line 3862, in get_local_driver
driver = webdriver.Chrome(options=chrome_options)
File "/root/All-In-One/venv/lib/python3.10/site-packages/selenium/webdriver/chrome/webdriver.py", line 45, in init
super().init(
File "/root/All-In-One/venv/lib/python3.10/site-packages/selenium/webdriver/chromium/webdriver.py", line 66, in init
super().init(command_executor=executor, options=options)
File "/root/All-In-One/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 208, in init
self.start_session(capabilities)
File "/root/All-In-One/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 292, in start_session
response = self.execute(Command.NEW_SESSION, caps)["value"]
File "/root/All-In-One/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 347, in execute
self.error_handler.check_response(response)
File "/root/All-In-One/venv/lib/python3.10/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome failed to start: exited normally.
(session not created: DevToolsActivePort file doesn't exist)
(The process started from chrome location /root/.cache/selenium/chrome/linux64/126.0.6478.61/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Stacktrace:
#0 0x55fc3da9b6aa
#1 0x55fc3d77e0dc
#2 0x55fc3d7b302a
#3 0x55fc3d7af43b
#4 0x55fc3d7f9ef9
#5 0x55fc3d7ed613
#6 0x55fc3d7bd4f7
#7 0x55fc3d7bde4e
#8 0x55fc3da6187b
#9 0x55fc3da65921
#10 0x55fc3da4d36e
#11 0x55fc3da66482
#12 0x55fc3da31ccf
#13 0x55fc3da8b0a8
#14 0x55fc3da8b280
#15 0x55fc3da9a7dc
#16 0x7f2cfb12aac3
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/root/All-In-One/multi-account.py", line 10, in
from scripts.bypass_js  import driver_instance
File "/root/All-In-One/scripts/bypass_js.py", line 66, in
driver_instance = SingletonDriver()
File "/root/All-In-One/scripts/bypass_js.py", line 13, in new
cls._instance.driver_context = DriverContext()
File "/root/All-In-One/venv/lib/python3.10/site-packages/seleniumbase/plugins/driver_manager.py", line 44, in init
self.driver = Driver(*args, **kwargs)
File "/root/All-In-One/venv/lib/python3.10/site-packages/seleniumbase/plugins/driver_manager.py", line 529, in Driver
driver = browser_launcher.get_driver(
File "/root/All-In-One/venv/lib/python3.10/site-packages/seleniumbase/core/browser_launcher.py", line 1657, in get_driver
return get_local_driver(
File "/root/All-In-One/venv/lib/python3.10/site-packages/seleniumbase/core/browser_launcher.py", line 3944, in get_local_driver
driver = webdriver.Chrome(
File "/root/All-In-One/venv/lib/python3.10/site-packages/selenium/webdriver/chrome/webdriver.py", line 45, in init
super().init(
File "/root/All-In-One/venv/lib/python3.10/site-packages/selenium/webdriver/chromium/webdriver.py", line 66, in init
super().init(command_executor=executor, options=options)
File "/root/All-In-One/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 208, in init
self.start_session(capabilities)
File "/root/All-In-One/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 292, in start_session
response = self.execute(Command.NEW_SESSION, caps)["value"]
File "/root/All-In-One/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 347, in execute
self.error_handler.check_response(response)
File "/root/All-In-One/venv/lib/python3.10/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome failed to start: exited normally.
(session not created: DevToolsActivePort file doesn't exist)
(The process started from chrome location /root/.cache/selenium/chrome/linux64/126.0.6478.61/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Stacktrace:
#0 0x5623287a46aa
#1 0x5623284870dc
#2 0x5623284bc02a
#3 0x5623284b843b
#4 0x562328502ef9
#5 0x5623284f6613
#6 0x5623284c64f7
#7 0x5623284c6e4e
#8 0x56232876a87b
#9 0x56232876e921
#10 0x56232875636e
#11 0x56232876f482
#12 0x56232873accf
#13 0x5623287940a8
#14 0x562328794280
#15 0x5623287a37dc
#16 0x7fbb41296ac3
Exception ignored in: <function SingletonDriver.del at 0x7f144dc71870>
Traceback (most recent call last):
File "/root/All-In-One/scripts/bypass_js.py", line 63, in del
AttributeError: 'SingletonDriver' object has no attribute 'driver_context'

Please update the code. 🔄


Update Devfile Registry Support Services to use Go 1.19

Which area/kind this issue is related to?

/area registry
Issue Description

To meet the objective of #1237, we need to ensure our registry support services is using Go 1.19 with updated dependencies.
Acceptance Criteria

[x] Update index/generator/go.mod to use Go 1.19
[x] Update index/server/go.mod to use Go 1.19
[x] Update registry-library/go.mod to use Go 1.19
[x] Update tests/integration/go.mod to use Go 1.19
[x] Update dependencies under index/generator/go.mod and index/generator/go.sum and migrate any changes
[x] Update dependencies under index/server/go.mod and index/server/go.sum and migrate any changes
[x] Update dependencies under registry-library/go.mod and registry-library/go.sum and migrate any changes
[x] Update dependencies under tests/integration/go.mod and tests/integration/go.sum and migrate any changes
[X] Refactor all library calls to io/ioutil since it is now deprecated
[x] Update workflows to use Go 1.19
[x] Update requirements under documentation

Update requirements under documentation

No prior documentation in registry-support on Go version requirements, added a Go version badge to the root README.

Go 1.19 changes are for ready for review: https://github.com/devfile/registry-support/pull/212

PR update: https://github.com/devfile/registry-support/pull/212#issuecomment-1985978987


Use GitBook to publish the handbook

This PR makes appropriate changes so that we may publish the handbook through GitBook, a utility to package Markdown files into several formats - most importantly, HTML.
Pros:

GitBook runs on Node and can be acquired via npm
GitBook is free, open source, and Apache 2.0
The default-generated site is really nice. It comes with

Search capabilities.
Different font style/size selection
Different reading modes (e.g. sepia, night mode)
Table of contents
Tracked sections for each table of contents.

Simple enough that I learned about it a few hours ago and managed to get it set up pretty quickly.

Cons:

The default-generated site says "Published with GitBook", but really not a big deal.
The syntax highlighting is a little busted.

Try it out
npm install -g gitbook-cli
gitbook serve pages

Now open a browser to localhost:4000.
Screenshots!
Let's be fair, this is really what you came to see.

Acknowledgements
Who else but @basarat with his typescript-book repository?

nice :) :rose:

Note that Gitbook 2.0.2 seems to be broken with this - it can be amended by running something like the following before serving.
gitbook versions:install 2.0.1
gitbook versions:uninstall 2.0.2

What about customization? can we change the style sheets? headers, add backgrounds.. etc.. i am thinking of hosting it in typescriptlang.org, what do we need to do to get that looking like the rest of the site?

There seem to be plugins we could use for this; probably depends on how easily we can integrate existing stylesheets.

Could you elaborate on what busted syntax highlighting means? That is an important feature for our docs :)


Allow file-loader (image and font) directories to be customised - resolves #1090

This change allows setting the output directories for assets processed by the the file-loader - at the moment only images and fonts:
mix.options({
  fileLoaderDirs: {
    images: 'img',
    fonts: 'web-fonts'
  }
});

Previously you'd have to remove the existing rules and add a modified version by listening to configReady and modifying webpackConfig directly - too much boilerplate, and not update-proof.
I think these options are especially necessary because the webpack.config.js file isn't left in the project root.
Resolves #1090.

Would love for this to land before the next tag.

This one is getting pretty popular @JeffreyWay, any indication if/when it'll be merged?

It would be great if the test would be able to be customized as well, currently my .svg images are saved in the /fonts/ directory.
I could of course just save them both to the /images  folder after this is merged, but it would be cleaner if I could just edit the test property.


Add option to ignore all notification messages from an extension

Since there is no way to ignore notifications from user-defined list of extensions and someone's decided to just close the issue with this request backing it up with do not disturb mode (which is not the matter of the request) here's another one.

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

Reopened #41767

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!


How to disable with dashboard-nvim?

I'm using dashboard-nvim and I haven't been able to figure out how to disable blankline while using it.
This is what what I have tried.
require("indent_blankline").setup {
  buftype_exclude = { "terminal", "[No Name]", "dashboard" },
....
}

Can anyone give me some pointers?
Thanks!

How do I find the name of the buftype for :LspInfo and the ui for nvim-lsp-installer?

You run :set buftype in the buffer. It will print what it is set to.
LspInfo is nofile

I'm trying to disable it for Packer but doesn't seem to work, this is my config:
require("indent_blankline").setup({
    indent_blankline_use_treesitter = true,
    indent_blankline_buftype_exclude = { "terminal", "prompt", "nofile", "help" },
    indent_blankline_filetype_exclude = { "packer", "lspinfo" },
    show_end_of_line = true,
    show_current_context = true,
    show_current_context_start = true,
    space_char_blankline = " ",
})

buftype of packer should be nofile and filetype should be packer, but I'm still seeing indentations and spaces.

I'm still seeing spaces and new line character (but no indentations)

Those characters are not from indent-blankline.nvim. They are a buildin feature, see :help 'listchars' and :help 'list'
To turn them off, use :set nolist.
To change the setting only for some buffers, like packer, you should use an ftplugin. You can read how this works in :help ftplugin


mod_http_upload not connecting to the put_url

I have followed your instruction but it is not working, on ejabberd log i see the request slot successfully but nothing uploaded to the destination http nginx server.
@mod_http_upload:create_slot/7:837 Got HTTP upload slot for<EMAIL_ADDRESS>(file: VOICE_896e8e90-01be-4f80-b966-835604bb7020.m4a, size: 14294)
Plz, help to advice.
Thanks.

nginx logs? error and access

No logs created on nginx server.. it seems the upload request is not trigger

gist of your configs? nginx and ejabberd

ejabberd.yml

mod_http_upload:
        docroot: /var/www/html/upload
        put_url: http://upload.domain.com
        external_secret: "it-is-secret"

/etc/nginx/site-available/upload.domain.com

server {
        listen 80;
        listen [::]:80;

        root /var/www/upload.domain.com/upload;
        index index.html index.htm index.nginx-debian.html;

        server_name upload www.upload.domain.com;

        location / {
                perl upload::handle;
                #try_files $uri $uri/ =404;
        }
        client_max_body_size 100m;
}

/etc/nginx/nginx.conf

http {
        perl_modules /usr/local/lib/perl; # Path to upload.pm.
        perl_require upload.pm;
       ........
}

Note :  ngx_http_perl_module.so already loaded by default.

Maybe the client (which one are you trying?) is insisting on using HTTPS?

I don't manage to use http(s) .. just for testing i think http should be fine... it has to be http(s) ?

As I said the client might insist on HTTPS, some (most/all?) standard clients do that.

As I said the client might insist on HTTPS, some (most/all?) standard clients do that.

Yes, you are right.. after setup http(s) now .. i can see the upload request from ejabberd now but having one error:
2022/07/22 16:31:49 [error] 59471#59471: *3 perl: Rejecting upload: No auth token provided, client: <IP_ADDRESS>, server: upload.domain.com, request: "PUT /109f3eb1f575476ec9402cdd8501d48de3c697b5/aecSXRWwGfmFba522nymaDsOEJ7EXGbXlHPiGiLs/VOICE_55bfd3eb-1064-411d-a524-83dae86e7cca.m4a HTTP/1.1", host: "upload.domain.com"

So what is wrong this time ? wrong external_secret ?

Rejecting upload: No auth token provided,

Your ejabberd.yml snippet included external_secret: "it-is-secret", but by staring at the code I really see no way to trigger this error message other than no external_secret being configured in the ejabberd.yml at all.  Maybe you didn't restart the server since adding that, or something.

Rejecting upload: No auth token provided,

Your ejabberd.yml snippet included external_secret: "it-is-secret", but by staring at the code I really see no way to trigger this error message other than no external_secret being configured in the ejabberd.yml at all. Maybe you didn't restart the server since adding that, or something.

I debugged upload.pm, but it seems the condition is not matched $r->args =~ /v=([[:xdigit:]]{64})/,
sub handle_put {
    my $r = shift;
    my $len = $r->header_in('Content-Length') or return HTTP_LENGTH_REQUIRED;
    my $uri = $r->uri =~ s|(?:/[^/]+){$uri_prefix_components}/||r;
    my $provided_hmac;

    if (defined($r->args) and $r->args =~ /v=([[:xdigit:]]{64})/) {
        $provided_hmac = $1;
    } else {
        $r->log_error(0, 'Rejecting upload: No auth token provided');
        return HTTP_FORBIDDEN;
    }

    my $expected_hmac = hmac_sha256_hex("$uri $len", $external_secret);

    if (not safe_eq(lc($provided_hmac), lc($expected_hmac))) {
        $r->log_error(0, 'Rejecting upload: Invalid auth token');
        return HTTP_FORBIDDEN;
    }
    if (not $r->has_request_body(\&handle_put_body)) {
        $r->log_error(0, 'Rejecting upload: No data provided');
        return HTTP_BAD_REQUEST;
    }
    return OK;
}

And here is the log of $r->args:

Rejecting upload: No auth token provided, client: <IP_ADDRESS>, server: upload.domain.com, request: "PUT /109f3eb1f575476ec9402cdd8501d48de3c697b5/AlKA0FvsT2aicNKvgMAjdbcmkCt2a6rdOEcbecEe/VOICE_242b8fac-59e0-4f3c-912c-a6b54588e235.m4a HTTP/1.1", host: "upload.domain.come"

It seems the auth token <<"?v=9decda3150c11bcc85b533843884a3d237f3c5158e40aa4fcb9d8abb98ea4648">> is not sent by ejabberd itself.

It seems the auth token […] is not sent by ejabberd itself.

Yes, that's precisely what I meant.  And I see no way this could happen except for mod_http_upload not seeing the external_secret option.
You could show me your entire ejabberd configuration (and the ejabberd version you're using) with any sensitive data stripped out, if you like.

It seems the auth token […] is not sent by ejabberd itself.

Yes, that's precisely what I meant. And I see no way this could happen except for mod_http_upload not seeing the external_secret option.
You could show me your entire ejabberd configuration (and the ejabberd version you're using) with any sensitive data stripped out, if you like.

ejabberd.yml
###
###              ejabberd configuration file
###
### The parameters used in this configuration file are explained at
###
###       https://docs.ejabberd.im/admin/configuration
###
### The configuration file is written in YAML.
### *******************************************************
### *******           !!! WARNING !!!               *******
### *******     YAML IS INDENTATION SENSITIVE       *******
### ******* MAKE SURE YOU INDENT SECTIONS CORRECTLY *******
### *******************************************************
### Refer to http://en.wikipedia.org/wiki/YAML for the brief description.
###

include_config_file: ../../../etc/ejabberd/domain.yml
hosts:
- "dev.domain.com"
    oauth_expire: 157784760 # 5 years
    # OAuth token generation is enabled for all server users
    oauth_access: all
    # Check that the client ID is registered
    oauth_client_id_check: db

listen:
-
    port: 3478
    transport: udp
    module: ejabberd_stun
    use_turn: true
    turn_min_port: 49152
    turn_max_port: 65535
    ## The server's public IPv4 address:
    turn_ipv4_address: xxx.xx.xx.xx
-
    port: 5349
    transport: tcp
    module: ejabberd_stun
    use_turn: true
    tls: true
    turn_min_port: 49152
    turn_max_port: 65535
    ip: xxx.xx.xx.xx
    turn_ipv4_address: xxx.xx.xx.xx
-
    port: 5222
    ip: "::"
    module: ejabberd_c2s
    max_stanza_size: 262144
    shaper: c2s_shaper
    access: c2s
    starttls_required: true
-
    port: 5269
    ip: "::"
    module: ejabberd_s2s_in
    max_stanza_size: 524288
-
    port: 3443
    ip: "::"
    module: ejabberd_http
    tls: true
    request_handlers:
    /admin: ejabberd_web_admin
    /api: mod_http_api
    /bosh: mod_bosh
    /captcha: ejabberd_captcha
    /upload: mod_http_upload
    /ws: ejabberd_http_ws
-
    port: 5445
    ip: "::"
    module: ejabberd_http
    tls: true
    request_handlers:
    /oauth: ejabberd_oauth
-
    port: 5280
    ip: "::"
    module: ejabberd_http
    request_handlers:
    /bosh: mod_bosh
    /ws: ejabberd_http_ws
    /admin: ejabberd_web_admin
    /oauth: ejabberd_oauth
    /api: mod_http_api
    /.well-known/acme-challenge: ejabberd_acme
    web_admin: false
    http_bind: true
    # register: true
    #captcha: true
    tls: true

s2s_use_starttls: optional

acl:
    local:
        user_regexp: ""
    loopback:
        ip:
        - <IP_ADDRESS>/8
        - ::1/128
    botuser:
        user:
        -<EMAIL_ADDRESS>
access_rules:

    local:
        allow: local
    c2s:
        deny: blocked
        allow: all
    announce:
        allow: admin
    configure:
        allow: admin
    muc_create:
        allow: local
    pubsub_createnode:
        allow: local
    trusted_network:
        allow: loopback

api_permissions:
    "bot api":
        who:
        access:
            allow:
            - acl: loopback
            - acl: botuser
        oauth:
            scope: ["get_roster","ejabberd:admin","sasl_auth"]
            access:
            allow:
                - acl: botuser
        what:
        - "*"
        - "!stop"
        - "!start"

"console commands":
    from:
    - ejabberd_ctl
    who: all
    what: "*"
"admin access":
    who:
    access:
        allow:
        - acl: loopback
        - acl: admin
    oauth:
        scope: "ejabberd:admin"
        access:
        allow:
            - acl: loopback
            - acl: admin
    what:
    - "*"
    - "!stop"
    - "!start"
"public commands":
    who:
    ip: <IP_ADDRESS>/8
    what:
    - status
    - connected_users_number

shaper:
    normal:
        rate: 3000
        burst_size: 20000
    fast: 100000

shaper_rules:
    max_user_sessions: 10
    max_user_offline_messages:
        5000: admin
        100: all
    c2s_shaper:
        none: admin
        normal: all
    s2s_shaper: fast

domain.yml
default_db: sql
sm_db_type: sql
auth_password_format: scram
auth_use_cache: false
# loglevel: Verbosity of log files generated by ejabberd.
## 0: No ejabberd log at all (not recommended)
## 1: Critical
## 2: Error
## 3: Warning
## 4: Info
## 5: Debug
loglevel: 4
imodiqdisc: 100
released: 0
appname:  "domain"
certfiles:
    - "/usr/local/trendsec/domain_ssl/domain.pem"

## By default the frequency of account registrations from the same IP
## is limited to 1 account every 10 minutes. To disable, specify: infinity
## registration_timeout: 600
registration_timeout: 1

host_config:
    "dev.domain.com":
        sql_type: pgsql
        sql_server: "localhost"
        sql_database: "chat"
        sql_username: "postgres"
        sql_password: "password"
        sql_port: 5432
        auth_method: [sql]

append_host_config:
    "dev.domain.com":
        modules:
            mod_admin_update_sql: {}
            mod_adhoc: {}
            mod_admin_extra: {}
            mod_announce:
                access: announce
            mod_avatar: {}
            mod_blocking: {}
            mod_bosh:
                ram_db_type: sql
                cache_life_time: 3600 ## 1 hour
            mod_caps: {}
            mod_carboncopy: {}
            mod_client_state: {}
            mod_configure: {}
            mod_disco: {}
            # mod_fail2ban: {}
            mod_http_api: {}
            mod_last: {}
            mod_mam:
                ## Mnesia is limited to 2GB, better to use an SQL backend
                ## For small servers SQLite is a good fit and is very easy
                ## to configure. Uncomment this when you have SQL configured:
                ## db_type: sql
                user_mucsub_from_muc_archive: true
                assume_mam_usage: true
                default: always
            mod_mqtt: {}
            mod_offline:
                access_max_user_messages: max_user_offline_messages
            mod_ping: {}
            mod_privacy: {}
            mod_private:
                use_cache: false
            mod_register:
                ## Only accept registration requests from the "trusted"
                ## network (see access_rules section above).
                ## Think twice before enabling registration from any
                ## address. See the Jabber SPAM Manifesto for details:
                ## https://github.com/ge0rg/jabber-spam-fighting-manifesto
                # ip_access: trusted_network
                ip_access: all
            mod_roster:
                use_cache: false
                versioning: true
            mod_s2s_dialback: {}
            mod_shared_roster: {}
            mod_stream_mgmt:
                max_resume_timeout: 1
                resume_timeout: 1
                resend_on_timeout: false
                # resend_on_timeout: if_offline
            mod_stun_disco:
                secret: secret
                credentials_lifetime: 12h
                services:
                    -
                    host: xxx.xx.xx.x
                    port: 3478
                    type: stun
                    transport: udp
                    restricted: false
                    -
                    host: xxx.xx.xx.x
                    port: 3478
                    type: turn
                    transport: udp
                    restricted: true
                    -
                    host: dev.domain.com
                    port: 5349
                    type: stuns
                    transport: tcp
                    restricted: false
                    -
                    host: dev.domain.com
                    port: 5349
                    type: turns
                    transport: tcp
                    restricted: true
            mod_time: {}
            mod_vcard: {}
            mod_vcard_xupdate: {}
            mod_version:
                show_os: false
            mod_http_upload:
                put_url: https://upload-dev.domain.com
                external_secret: "0P5D1chY8SdLtg3QTQJZnhxwbeMBMQfvzRaatnor3QTYaaaasfweyteywqerwyrew"
                thumbnail: true
                max_size:<PHONE_NUMBER>
            mod_pubsub:
                access_createnode: pubsub_createnode
                plugins:
                - flat
                - pep
                force_node_config:
                ## Avoid buggy clients to make their bookmarks public
                storage:bookmarks:
                    access_model: whitelist

            mod_mix: {}
            mod_muc:
                access:
                - allow
                access_admin:
                - allow: admin
                access_create: muc_create
                access_persistent: muc_create
                access_mam:
                - allow
                default_room_options:
                allow_subscription: true
                allow_change_subj: true
                allow_private_messages: true
                allow_query_users: true
                allow_user_invites: true
                allow_visitor_nickchange: true
                anonymous: false
                members_by_default: true
                members_only: true
                public: false
                mam: true
                max_users: 200
                persistent: false
                #mod_muc_log: {}
            mod_muc_admin: {}

Thanks.

It seems the auth token […] is not sent by ejabberd itself.

Yes, that's precisely what I meant. And I see no way this could happen except for mod_http_upload not seeing the external_secret option.
You could show me your entire ejabberd configuration (and the ejabberd version you're using) with any sensitive data stripped out, if you like.

Sorry it was my fault to modify mod_http_upload by excluding Query form the PutURL1
PutURL1 = <<(misc:url_encode(PutURL))/binary, Query/binary>>,
and now I can see the Auth token = %3Fv%3Dc1d65f130f65137ae2e40931d333a25583b3f684247524ea38899e0fb351ea8c passed to nginx server now but still it said:

2022/07/26 14:11:13 [error] 2151#2151: *157 perl: Rejecting upload: No auth token provided, client: <IP_ADDRESS>, server: upload.domain.com, request: "PUT /109f3eb1f575476ec9402cdd8501d48de3c697b5/c7E3wr4KgxxzFHmtHFDADHzWKvzdvwnpOqrqeum7/VOICE_e3927379-1cdb-410a-ae8c-f7875f8c7985.m4a%3Fv%3Dc1d65f130f65137ae2e40931d333a25583b3f684247524ea38899e0fb351ea8c HTTP/1.1", host: "upload.domain.com"

The URL is encoded v%3D, it should be  v= so that the condition is matched in upload.pm, or is there something  missing in my nginx configuration ?
Plz help to advice... i'm new to perl or nginx.

The URL is encoded v%3D

Maybe the client is doing that blindly?  Which one are you using?

The URL is encoded v%3D

Maybe the client is doing that blindly? Which one are you using?

Ah i see.. i will check with mobile developer.. thanks.

i will check with mobile developer

URLs are returned properly encoded by the server (as per the spec), so the client can just use them as-is.
I'll close this issue for the moment.  If something doesn't work using the unmodified ejabberd code with one of the (freely available) standard XMPP clients, just reopen a new issue.

i will check with mobile developer

URLs are returned properly encoded by the server (as per the spec), so the client can just use them as-is.
I'll close this issue for the moment. If something doesn't work using the unmodified ejabberd code with one of the (freely available) standard XMPP clients, just reopen a new issue.

Thanks for your kindness support. @weiss


fraud: Service interface and serialization

There was a discourse about the fraud.Service interface and about it being too abstracted. It seems like the main source of confusion was about these two methods, which pollute the Subscriber interface:
	// RegisterUnmarshaler registers unmarshaler for the given ProofType.
	// If there is no unmarshaler for `ProofType`, then `Subscribe` returns an error.
	RegisterUnmarshaler(ProofType, ProofUnmarshaler) error
	// UnregisterUnmarshaler removes unmarshaler for the given ProofType.
	// If there is no unmarshaler for `ProofType`, then it returns an error.
	UnregisterUnmarshaler(ProofType) error

Instead, the interface should be simple and have only Subscribe method. The long-term idea that @vgonkivs and I discussed was about generics that properly fix this. And while having this in my mind, we thought it would be fine to keep those for a release or two until generics become fully stable. However, @renaynay and @liamsi were a bit out of the loop and did not agree that those serialization methods are good to be kept(correct me if I am wrong) and raised a concern.
For us to be on the same page and alleviate the concern. I propose 3 ways on how we can proceed with this, besides keeping this as it is:

Remove those methods from the Subscriber, then register and keep them on the pkg level globally(this was the original idea in my head until I suggested @vgonkivs to make it runtime rather than build time). Basically, instead of those methods, we would have:package fraud

func RegisterProofUnmarshaller(ProofUnmarshaler))
func Unmarshal([]byte) Proof

and next to BEFP or any other FP, there would be an init func that would do RegisterProofUnmarshaller for the FP type.
Simply remove those methods from the Subscriber interface but keep those methods on the implementation. Nothing really changes from the current implementation, while we have a less polluted/cleaner interface + no global state.
Wait for generics

I prefer 2, as it keeps things cleaner with minimal changes. The long-term approach is still generics, but it is a completely different story.

The question is when are we going to update go to 1.18?

We haven set any rules about that. Maybe once 1.19 come in or we can do it before release.

I think is fixed now, and we settled on serialization for frauds, so closing.
Please reopen if I missed something


Fix duplicate labels

fixes https://github.com/rancher/local-path-provisioner/issues/392

LGTM. I will merge it after the CI is fixed.
The PR will be included in the upcoming v0.0.27 that will be released in the middle of May.


Question: Not all folders are visible

Hey,
I'm using a raspberry pi (64bit) and i love to have a webbased terminal so i can fix things on my phone if i'm on the road.
I need to go into the pi user '/home/pi' but in the webbased terminal there is no pi folder, is there something with rights?
Running docker:
docker run --rm -d -p 7681:7681 raonigabriel/web-terminal:latest
Webbased terminal
root@372a126598ad:/$ ls
bin    dev    etc    home   lib    media  mnt    opt    proc   root   run    sbin   srv    sys    tmp    usr    var
root@372a126598ad:/$ cd home/
root@372a126598ad:/home$ ls
root@372a126598ad:/home$

Normal terminal
pi@raspberrypi:/ $ ls
bin  boot  dev  etc  home  lib  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
pi@raspberrypi:/ $ cd home/
pi@raspberrypi:/home $ ls
pi
pi@raspberrypi:/home $

I guess this is probably a missunderstaing of the concepts. Let me try to help:
When you launch this image on your pi, it will be running inside docker, as a container. So the web based shell you see ia not actually from  your pi, but from the container instead.
The beauty of this thing is to isolate your pi os (maybe raspbian) from the internal container os  (alpine). So, if you want to access your pi's content from that container,  you need first to bind-mount it to the container. Take a look bellow, and search the web for the official docker docs regarding "volume mount ".
Original: # docker run --rm -d -p 7681:7681 raonigabriel/web-terminal:latest
Bind-mounting: # docker run --rm -d -v /home/pi:/home/pi -p 7681:7681 raonigabriel/web-terminal:latest
(See the -v there? That means "volume mount").
Note: keep in mind that this image comes with no security enforced nor password, so be carefull whenever exposing your pi over the internet like that).

He @raonigabriel
Thanks for your explanation! I'm a bit ashamed of myself because I have +25 docker containers running. Didn't think about the volume mount at all.
Security wise, I have a VPN with 2FA. Hopefully thats enough :-)
Thnx!


Improve set matcher

fixes #70

I'm working on the travis build. Just ruby version & loose gem requirement issues.


Bug in counter() and string-set

I created a simple print CSS to test the counter() functionality. It works fine with the Prince formatter, but has issues with asciidoctor-web-pdf.

The counter() function does not work as expected
The string-set directive leads to an exception

The output of the exception is pasted here:

I created a pull request for the problematic files which also includes the output PDF of the Prince formatter.
If you comment out line 97 of print.css, the exception will disappear.

I am using the following version on a Mac
Asciidoctor PDF 1.0.0-alpha.7 using Asciidoctor.js 2.2.0 (Asciidoctor 2.0.10) [https://asciidoctor.org]
Runtime Environment (node v14.0.0 on darwin)
CLI version 3.2.0

I think we should probably open an issue upstream: https://gitlab.pagedmedia.org/tools/pagedjs
Ideally, if you could produce a "simple" HTML page and replace the inline Paged.js script by the following that would be awesome:
<script src="https://unpkg.com/pagedjs/dist/paged.polyfill.js"></script>

For instance, you can take a look at the test.html I've recently submitted: https://gitlab.pagedmedia.org/tools/pagedjs/issues/215

I have created a test document named "test.html" which includes the polyfill as you suggested. In this scenario, the page is generated and it does not have any errors when opened in Chrome. The file is included in the pull-request.
However, the numbering is still incorrect and the settings for margin-inside and margin-outside (which are needed if you want facing-pages) are not evaluated.
So basically I think, we have an error in paged.js and another one in asciidoctor-web-pdf.

I have created a test document named "test.html" which includes the polyfill as you suggested. In this scenario, the page is generated and it does not have any errors when opened in Chrome. The file is included in the pull-request.

The polyfill is using the latest version available of Paged.js.
I've released a new version of Asciidoctor Web PDF based on Paged.js v0.1.41. So you in theory the error should also be gone in Asciidoctor Web PDF 1.0.0-apha.8.

So basically I think, we have an error in paged.js and another one in asciidoctor-web-pdf.

I don't think we have an issue in asciidoctor-web-pdf but you are free to prove me wrong 😄
Please test with the latest version of Asciidoctor Web PDF and let me know if you still have an exception.

BTW: Paged.js must have some means of figuring out the correct page number. If you look at the the source of the document in Chrome, you can see that the content-divs have an attribute "data-page-number" that contains the correct page number.
However, the numbering is still incorrect and the settings for margin-inside and margin-outside (which are needed if you want facing-pages) are not evaluated.

Is it possible to create a minimal example to reproduce the numbering issue and another one to reproduce the margin-inside/margin-outside issue?
I'm currently working on a few fixes for Paged.js that might be related.

Now I cannot generate a PDF at all.

arpablo@Big-Henni asciidoctor-web-pdf % asciidoctor-pdf examples/document/document.adoc
Unable to generate the PDF - Error: Error: Failed to launch the browser process! spawn /usr/local/lib/node_modules/asciidoctor-pdf/node_modules/puppeteer/.local-chromium/mac-756035/chrome-mac/Chromium.app/Contents/MacOS/Chromium ENOENT

TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/master/docs/troubleshooting.md

I am using the following asciidoctor-web-pdf version
arpablo@Big-Henni asciidoctor-web-pdf % asciidoctor-pdf --version
Asciidoctor PDF 1.0.0-alpha.8 using Asciidoctor.js 2.2.0 (Asciidoctor 2.0.10) [https://asciidoctor.org]
Runtime Environment (node v14.0.0 on darwin)
CLI version 3.4.0

cleaned the complete installation with
 rm -rf /usr/local/lib/node_modules/asciidoctor-pdf

but still get the same result.
I am running on a standard iMac

Changing node to the latest lts version also resulted in the same error.

I don't know whether that is of any relevance, but I have installed the latest Chrome version on this machine.

I cannot reproduce on my mac:
$ npm i --save-dev asciidoctor-pdf @asciidoctor/core
npm WARN deprecated<EMAIL_ADDRESS>core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.

><EMAIL_ADDRESS>install /Users/guillaumegrossetie/dev/temp/node_modules/puppeteer
> node install.js

Downloading Chromium r756035 - 124.1 Mb [====================] 100% 0.0s
Chromium (756035) downloaded to /Users/guillaumegrossetie/dev/temp/node_modules/puppeteer/.local-chromium/mac-756035

><EMAIL_ADDRESS>postinstall /Users/guillaumegrossetie/dev/temp/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"

Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!

The project needs your help! Please consider supporting of core-js on Open Collective or Patreon:
> https://opencollective.com/core-js
> https://www.patreon.com/zloirock

Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)

npm WARN<EMAIL_ADDRESS>No description
npm WARN<EMAIL_ADDRESS>No repository field.

+<EMAIL_ADDRESS>+<EMAIL_ADDRESS>added 130 packages from 184 contributors and audited 130 packages in 36.378s

5 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

$ asciidoctor-pdf test.adoc

$ node -v
v12.18.0

I'm using macOS Catalina v10.15.3.

I don't know whether that is of any relevance, but I have installed the latest Chrome version on this machine.

No, Puppeteer is using a specific version, downloaded and installed in /usr/local/lib/node_modules/asciidoctor-pdf/node_modules/puppeteer/.local-chromium/mac-756035/chrome-mac/Chromium.app/Contents/MacOS/Chromium.
Can you try to install locally and not globally and/or use nvm to install on your user space (i.e. in /Users/xxx and not in /usr/local/lib).
The EONENT error might indicate a permission issue. Did you get an error/warning during the installation?

Sorry! The problem was that I installed the last version with yarn global add asciidoctor-pdf and the latest version with npm i -g asciidoctor-pdf. And the yarn global directory was in the path before the npm global directory...
I was using yarn, because vue uses yarn as it's default package manager.
Now I have uninstalled yarn completely and will always use npm instead.

I cannot reproduce the issue with the latest version of asciidoctor-pdf. The issue can be closed. I will create two new issues with isolated testcases for the mentioned paged.js problems.

No worries!

I will create two new issues with isolated testcases for the mentioned paged.js problems.

Thanks :+1:


fix error of camera in Android 12

Hello @mgks ,
long time no see.
In Android 12, I fixed the error of Camera in File Chooser.
And I fixed some Pending Intent Error in Android 12.
Thank you.

@starman1108 yes its been a while now and I'm really disappointed by myself for not keeping up with the project. I've been busy with studies and work, and quite exhausted all the time. Thank you so much for taking your time to find a fix and contribute. Cheers!!