[Feature Request]   Add ability to edit files i.e. with NVIM

I really like the look and remote capabilities.  It may not be possible for remote connections, but for local files the ability to browse and do quick edits would be amazing

This is coming! (eventually). I've had my eye on this feature for a while - that's why I recently refactored browsr to be more modular.
It wouldn't be NVIM - instead it's a textual (the underlying framework behind browsr) widget called TextArea.
It will improve the code viewing experience too as it supports things like text highlighting. It will even support (some) remote filesystems.
I'm specifically waiting on more languages to be supported by syntax highlighting for this (https://github.com/Textualize/textual/pull/4160).
As far as the UX is concerned I was thinking about an E keyboard shortcut that launches you into editing mode in a new window. It'll probably be more similar to nano than vim - since that's what I know and I'd like it to be pretty simple.

Sounds good.   However many people prefer their own editors   NVIM/EMACS
because they are set up like mine for language parsing    I would suggest
making that an option.
Regards,
Don
On Mon, Mar 4, 2024 at 4:20 PM Justin Flannery @.***>
wrote:

This is coming! (eventually). I've had my eye on this feature for a while

that's why I recently refactored browsr to be more modular.

It wouldn't be NVIM - instead it's a textual
https://github.com/textualize/textual/ (the underlying framework behind
browsr) widget called TextArea
https://textual.textualize.io/widget_gallery/#textarea.
It will improve the code viewing experience too as it supports things like
text highlighting. It will even support (some) remote filesystems.
I'm specifically waiting on more languages to be supported by syntax
highlighting for this (Textualize/textual#4160
https://github.com/Textualize/textual/pull/4160).
As far as the UX is concerned I was thinking about an E keyboard shortcut
that launches you into editing mode in a new window. It'll probably be more
similar to nano than vim - since that's what I know and I'd like it to be
pretty simple.
—
Reply to this email directly, view it on GitHub
https://github.com/juftin/browsr/issues/42#issuecomment-1977475774, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/A6Z4V6QYN5UXCBIY5M3K7Y3YWTQQVAVCNFSM6AAAAABEF34MGOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZXGQ3TKNZXGQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

Fair enough, but figuring out how to implement NVIM/EMACS inside a Python process run by textual will likely be prohibitively difficult. I typically have to work with existing "widgets" that are already in the textual ecosystem, like the built-in TextArea.
Invoking NVIM/EMACs via a shell plugin (https://github.com/juftin/browsr/issues/44) is probably a cleaner path for this.

Yeah this is what I was imagining. It would call $EDITOR and pass the
filename   Or via a settings option.    I was not expecting you to do
something within this framework.
On Mon, Mar 4, 2024 at 6:00 PM Justin Flannery @.***>
wrote:

Fair enough, but figuring out how to implement NVIM/EMACS inside a Python
process run by textual https://github.com/textualize/textual/ will
likely be prohibitively difficult. I typically have to work with existing
"widgets" that are already in the textual ecosystem, like the built-in
TextArea.
Invoking NVIM/EMACs via a shell plugin (#44
https://github.com/juftin/browsr/issues/44) is probably a cleaner path
for this.
—
Reply to this email directly, view it on GitHub
https://github.com/juftin/browsr/issues/42#issuecomment-1977617397, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/A6Z4V6R4MCTJYD32BYOEQNTYWT4JPAVCNFSM6AAAAABEF34MGOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZXGYYTOMZZG4
.
You are receiving this because you authored the thread.Message ID:
@.***>

Fair enough, but figuring out how to implement NVIM/EMACS inside a Python process run by textual will likely be prohibitively difficult.

@juftin Apologies for barging in, and perhaps I've misread this, but it should be pretty straightforward.

@juftin Apologies for barging in, and perhaps I've misread this, but it should be pretty straightforward.

Thank you Dave - no need to apologies! I love having your textual knowledge on stuff like this. I actually stumbled on the concept of suspending the context manager after looking into this - this is an awesome solution to this.  Ideally I'd be able to do this with the TextArea widget though so editing files would be supported on both local and remote filesystems (like editing an S3 file). Whether it's used for editing files or not, there is also a need to be able to run a local terminal session alongside browsr - I'm initially more inclined to use something like textual-terminal like this though.

Sure thing, I thought it worth a mention just in case. Should be useful for those who prefer $EDITOR support (and as I'm sure you know, most who would likely have their editor set to support remote editing, so that might be worth keeping in mind -- see tramp in Emacs as an example).


Improve time discretization

This PR aims to simplify and improve the handling of time discretization in nlmod.
To add time index to your model dataset use nlmod.time.set_ds_time()*.
*NOTE: this function replaces the old function with the same name, but works differently, so this is a minor breaking change. The old function can still be called through nlmod.time.set_ds_time_deprecated() for now.
The arguments to nlmod.time.set_ds_time() are:

time is an array-like with the timestamps at the end of each stress period (note that this does not include the starting time of the model)
start is the start datetime of the model
steady is an array-like indicating whether a stress period is steady-state (True or 1) or transient (False or 0). The default is steady-state for all timesteps.
nstp and tsmult are optional arguments to indicate the number of time steps per stress period and the timestep multiplier. These are used when writing the Modflow6 TDIS file.

# basic call signature
ds = nlmod.time.set_ds_time(ds, time, start, steady)

# set ds time with array of elapsed time periods
ds = nlmod.time.set_ds_time(ds, [100, 200], "2020-01-01", steady=[1, 0])

# set ds time with perlen
perlen = [100, 100]
ds = nlmod.time.set_ds_time(ds, np.cumsum(perlen), "2020-01-01", steady=[1, 0])  # note the cumsum

# set ds time with dates
ds = nlmod.time.set_ds_time(ds, ["2020-04-10", "2020-07-19"], "2020-01-01", steady=[1, 0])

A function has been added to convert flopy TDIS period data settings (perlen, nstp, tsmult) into a time index:
# for getting the time index for all time steps
ds = nlmod.time.ds_time_idx_from_tdis_settings(start, perlen, nstp, tsmult)

# for getting the time index at the end of each stress period, omit the nstp and tsmult keyword arguments
ds = nlmod.time.ds_time_idx_from_tdis_settings(start, perlen)

EDIT: Some additional comments on this PR after @OnnoEbbens review:
The variables steady, nstp and tsmult are now stored as data variables in the model dataset with dimension time. This should make them more visible and easier to modify for users as well.
A check is included whether the first entry of the time array (after conversion to a datetime object) is equal to or lies before the start datetime. This should help users figure out if they've made a mistake when assigning these variables.

I liked the original method because of the following default values:

the first period would be steady state, following periods would be transient
the first steady state period had a length of 3652 days (10 years)

Multiple steady state stress periods is probably only useful in transport calculations, so I think a transient run for multiple stress periods should be the default. With the above default values the starting conditions of the transient run are determined by a steady-state run of 10 years. To get the same behavior of the new method would require a few lines of code from the user.
Also, the method set_ds_time_deprecated is not that useful, as it does not store the time settings in the right way for the rest of nlmod anymore.
Therefore, I would be more in favor of fixing/improving the original method, in which we:

deprecate some input-parameters like perlen and transient_timesteps (with a deprecation message, or just an appropriate exception message)
keep 'steady_start' with a default value of True (like it is now)
replace steady_state by steady, with the same default value of False, and use the proposed method in this PR to store the steady_state stress periods in ds['steady'].

Thanks for the review! I'm a bit biased, but i find the old code almost unreadable, so I'd be in favor of modifying this PR further to modify the defaults to what you suggest.
I agree we most often want to default to one steady state period and then subsequent transient periods. That's something we can implement with an extra keyword argument? And then explicitly entering the 10 year period isn't that much effort on the part of the user, just subtract 10 years from time[0] or just entering a year. This has the added advantage of being much more explicit :)?
So to reproduce current behavior it would become something like this (with these values being default for the steady keyword args):
nlmod.time.set_ds_time([3650, 100, 100], start="2010", steady=False, steady_start=True)

The old code was complicated, because it needed to support perlen (which is mentioned as a positive in issue #124) and transient_timesteps. Let's forget the old code, and work on the lines in this PR.
It is a good idea to set the length of the steady-state start period more explicit. I can work with your proposed code:
time = pd.date_range("2020-01-01", "2025-01-01", "MS")
nlmod.time.set_ds_time(time, start="2010", steady_start=True)

Alright, sounds good!
As for perlen, its still supported but you have to take the cumulative sum in this new function.
# set ds time with perlen
perlen = [100, 100]
ds = nlmod.time.set_ds_time(ds, np.cumsum(perlen), start="2020")  # note the cumsum

I added perlen, also because it is requested in issue #124, and set a default value for start.
I would remove the log-message at the start of the method, as this will get annoying, I think.

Nice! My thoughts on these additions:

Adding a perlen option is nice! I do think it should be treated exactly the same as the time option (so type should always be array-like. Or we modify time to also support single values (but I'm more for option 1).
I'm not a big fan of the steady default change though. I wanted users to explicitly provide this value because it makes it very obvious what the time period you're modeling is going to be. I do like the option of allowing a number and interpreting that as a Timedelta relative to the first entry in time. This does add a layer of difficulty if time is passed as elapsed time, or if perlen is provided instead of time, in which case there is no reference point, but I saw you already included a check for that.

So in short, I'm for perlen always array-like, and getting rid of the steady defaults and forcing the user to pick something.
Perhaps we can get @OnnoEbbens to weigh in and help us pick a way to go :).

I fixed some bugs relating to previous changes and the new pandas version. They are not really related to this pull request, but were needed to test all the notebooks for the time-related changes. I think this PR is ready to be merged.


Consider adding contract-dependency ids to forc-run transaction automatically

We have [contract-dependencies] section in forc.toml which can be used to declare dependencies of type contract, to other contracts or scripts.
We currently need the contract-id to be specified by the user of forc-run,  this is because script transactions require the contracts (their ids more specifaclly) that they will be interacting with to be added to the transaction.  Since there is no way forc can understand which contract ids are needed to be added automatically, we require this input from the user.
We can look for scripts' [contract-dependencies] section for this automatic detection. This will enable forc to reason about contract ids that the script will interact with. So if you have a script_a with the following manifest file:
[contract-dependencies]
contract_a = { path = "../contract_a" }

Once you run forc-run for the script_a, forc can understand the relation and add the contract id of contract_a to the transaction without needing the user to specify it manually.
Thoughts cc @FuelLabs/tooling @Braqzen @lostman

I like this idea. But how would it work if a script had multiple contract dependencies?

I think it would be useful if every contract would be added in separate namespaces:
Let's say that we have this contract-dependency declaration in the forc.toml:
[contract-dependencies]
contract_a = { path = "../contract_a" }
contract_b = { path = "../contract_a" }

contract ids' for these contracts would be added in to separate namespaces which would enable them to be used like:
fn main() {
  let contract_a_abi = abi(Counter, contract_a::CONTRACT_ID)
  let contract_b_abi = abi(Counter, contract_b::CONTRACT_ID)
}

One thing to note here is what happens when contract_a has a contract-dependencies declared in its manifest file.
Meaning the following relation for the contract-dependencies:
  graph TD;
      contract_a-->contract_c;
      script_to_execute-->contract_a;
      script_to_execute-->contract_b;

If we have a relation like this, then the question becomes the following, do we need to include contract id of contract_c into the transaction that script is going to be creating? AFAIK the answer is no, the specs require us to list all the contract ids  that our script touches directly, but it is a good test to add while implementing.

If we have a relation like this, then the question becomes the following, do we need to include contract id of contract_c into the transaction that script is going to be creating? AFAIK the answer is no, the specs require us to list all the contract ids that our script touches directly, but it is a good test to add while implementing.

That is a good call out.
I'm still trying to wrap my head around this compares to the current usage with forc-run. For a user to specify two contracts, would they need to do something like forc run --contract <contract_a ID> --contract <contract_b ID>? Or does forc-run currently only support 1 contract?
A few other thoughts:

Automatically running dependencies

For this change, would forc-run automatically run all of the contract dependencies? Or just give an error if they haven't been run yet? What would be the implications of running all of the dependencies for them?

Dependencies in other repos

I see in the docs that we allow people to specify contract dependencies that are in another git repo with the git field.
[contract-dependencies]
contract_a = { git = "https://github.com/fuellabs/sway" }

Do we have the ability to fetch the contract ID from a contract that has not been run locally? Does the contract ID come from files in the build directory (which presumably would not be checked into a git repo)?
If we don't have a way to fetch the contract ID from git, perhaps a way around this would be to provide an id field in contract-dependencies. Users could enter in the deployed contract ID from an external dependency, like:
[contract-dependencies]
contract_a = { path = "../contract_a" }
contract_b = { id = "<contract ID>" }

Alternatively, we could clone the repo locally (in the forc build directory?) and run the contract for them to get the contract ID. Is that how it already works with the git field?


[#1947][#1949] Improvement(catalogs): abort using of non-static initializer

What changes were proposed in this pull request?

abort using of non-static initializer

Why are the changes needed?
Fix: #1947
Fix: #1949
Does this PR introduce any user-facing change?
N/A
How was this patch tested?
By hand

@YxAc Thank you for your contributions.


fix: unpin contentful

This enables minor.patch versions of contentful to be used, which allows better dependency duplication and makes it easier to patch security vulnerabilities such as GHSA-wf5p-g6vw-rhxx

@marcolink would be great if we could get this landed and released as its blocking security updates down stream...


Updated TeamViewer.TeamViewer from v15.19.3 to v15.19.5

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

You don't like me, I get it. But it's correct, I promise! 😅

t


Packaging for gard

I noticed that gard is not packaged with opal-utils and it found its way on to my cluster after a service engineer used the machine.  It is incredibly handy for a sanity check for servicing an OPAL machine.  Any discussion to include it with opal-utils?

What OS? I'm pretty sure we've been packaging opal-gard in opal-utils for a very long time, I'd be surprised if opal-gard wasn't there

Stewart - issue on my side.  The team I've been working with was installing their own executable ./gard wheres the opal-utils names it opal-gard.  Thank you.


parser: Syntax is trusted to have valid data

The fields of rinja_parser::Syntax are public and Ast::from_str() trusts that the input is valid, e.g. no field contains an empty string.
If a field does contain the an empty string, then in the best case the parser panics. In the worst case it could probably deadlock, in a loop advancing the input by null bytes until you kill the process.
Should the check if the syntax is sane be moved from rinja_derive::RawSyntax into rinja_parser::Syntax?

I think it'd be a good thing to check indeed.


Question:  Does it support transparency?

Hi.
I am using the "Paste" method to overlay an image (watermark) .png which has transparency but when looking at the result it is superimposed without its transparency.
dst := imaging.Paste(dst, watermark, image.Pt(xPos, yPos))
err = imaging.Save(dst, "img.png")
I have to do something else or is it not possible to superimpose an image with transparency?
Thanks in advance.

Hi,
There is a similar function called Overlay that takes the alpha channel into account when combining two images.
https://pkg.go.dev/github.com/disintegration/imaging?tab=doc#Overlay

Hi.
Thank you very much.


Inspiration: Another web features dashboard

I have built a dashboard with your data and BCD. However I have done it earlier and didn't know about this repository. So here it is:
https://web-features.lttr.cz/
Feel free to take any ideas. My goal was to create a tool for quick exploration - e.g. What features am I able to use in upcomming project? Or what is the name of a feature I have stumbled upon recently?
That's why it is a little bit more interactive and fuzzy-searchable.

This is awesome. Thank you for sharing.
Fuzzy search was definitely one of the things I wanted to add here too.
I'll take a better look at it later and comment here. But again, thanks!


Add possibility to use a custom build script like in boxcutter/ubuntu…

… and boxcutter/debian.
This is very helpful for customized automated builds.

@annawake, @rasa could you review and possible merge this and #43 please?


Discrepancy in performance compared to paper

Hi,
First of all, thanks for the code! I was looking for a PyTorch port of DeepLabv3+ that can use the official TensorFlow checkpoints. Your repo is the only one I could find! Great work!
There seems however to be some discrepancy compared to the TensorFlow version.
I tried the xception65_coco_voc_trainval checkpoint on the Pascal VOC test set with flipping and multi-scale ([0.5:0.25:1.75]) inference, and obtained mIoU = 85.93630 (by uploading to the evaluation server), which far inferior to the reported 87.80%.
In addition to the difference in BatchNorm's eps that you discovered previously, there should be some other details that affect the performance. Unfortunately I was unable to find them. I hope you or somebody can.

@netw0rkf10w were you able to improve the performance to get closer to the TF version?


MultiThreader error: unable to create a thread

When letting selx run multiple times (upto a few 1000 times in a for-loop), selx regularly crashes at a random number of iterations with a hint to look into the log-file, e.g. after successfully processing 766 of 1685 images (so far never reached the total of 2632 images without this problem):
   45.3% (764/1685) reg//001707_K2_0117_s00_05.tif 001708_K2_0117_s01_01.png 276.162473
   45.4% (765/1685) reg//001708_K2_0117_s01_01.tif 001709_K2_0117_s01_02.png 365.517457
   45.5% (766/1685) reg//001709_K2_0117_s01_02.tif 001710_K2_0117_s01_03.pngTraceback (most recent call last):
   File "../../../submodules//elastix/recRegStack.py", line 200, in <module>

    main()
  File "../../../submodules//elastix/recRegStack.py", line 100, in main
    register(FNs[start-1::-1], FNo, args, FNp)
  File "../../../submodules//elastix/recRegStack.py", line 180, in register
    selx.Execute()
  File "/opt/SimpleElastix/lib/python/SimpleITK-1.0.1rc1.dev347+g33a6b-py2.7-linux-x86_64.egg/SimpleITK/SimpleITK.py", line 10132, in Execute
    return _SimpleITK.ElastixImageFilter_Execute(self)
RuntimeError: Exception thrown in SimpleITK ElastixImageFilter_Execute: /opt/SimpleElastix/Code/Elastix/src/sitkElastixImageFilterImpl.cxx:259:
sitk::ERROR:
itk::ExceptionObject (0x555aed2503b0)
Location: "unknown"
File: /opt/SimpleElastix_build/Elastix/Core/Main/elxElastixFilter.hxx
Line: 253
Description: itk::ERROR: Self(0x555aed2910a0): Internal elastix error: See elastix log (use LogToConsoleOn() or LogToFileOn()).

The log-file then has an error such as:
749    301.785525    240.010000    0.123648    0.000012    0.9
Time spent in resolution 0 (ITK initialization and iterating): 1.263 s.
Stopping condition: Error in metric.
Settings of AdaptiveStochasticGradientDescent in resolution 0:
( SP_a 32.273438 )
( SP_A 20.000000 )
( SP_alpha 1.000000 )
( SigmoidMax 1.000000 )
( SigmoidMin -0.010000 )
( SigmoidScale 0.000000 )

itk::ExceptionObject (0x56114d3fc720)
Location: "ElastixTemplate - Run()"
File: /opt/SimpleElastix_build/ITK/Modules/Core/Common/src/itkMultiThreader.cxx
Line: 427
Description: itk::ERROR: MultiThreader(0x56114d23e1d0): Exception occurred during SingleMethodExecute
/opt/SimpleElastix_build/ITK/Modules/Core/Common/src/itkMultiThreaderPThreads.cxx:265:
itk::ERROR: MultiThreader(0x56114d23e1d0): Unable to create a thread.  pthread_create() returned 11

Error occurred during actual registration.

Even with a limited number of threads (e.g. SetNumberOfThreads(8)) or just 1 this problem occurs, but less frequently/likely.
I'm not sure whether the origin for this problem actually lies in ITK or selx, neither could I find a workaround from the OS/Linux side (though I did not try a custom compiled kernel where threading is disabled).
PS: Limiting the number of threads leads to a changed metric value, even if a grid sampler is used. This is expected though: https://groups.google.com/d/msg/elastix-imageregistration/FjkK5DE3Dvs/GbVKPfByAgAJ

I created a docker image with selx, in which the problem does not arise. So I guess it's a problem of the OS configuration/state (Debian 9.3). Any clues what could be the cause?

No idea, sorry.

Thanks for your reply. Seems to be one of these mysterious OS configuration problems. The solution with the docker image is sufficient for me.


feat: Rune.str, dbg/log cleanup, transaction sequence example

1) Rune.str, a tagged template fn for interpolating Runes in a string
const name = Rune.constant("Capi")
const message = Rune.str`Hello ${name}!`

2) runified valueRune.dbg and extrinsicStatusRune.logStatus
One can now specify a Rune as a prefix
3) rune.log
A duplicate of dbg (for now) –– I suppose we'll change this behavior upon resolution of #517
4) transaction sequence example

log initial Alice balance
sequentially do the following for Bob, Charlie and Dave

log initial balance
send funds from Alice to current address
log final balance

log final Alice balance

Fair enough. Breaking apart now.

Closing in favor of #586, #587 and another PR, to be filed shortly thereafter.


importing a geojson with relative url values detects them as dates

this one is funny
steps to reproduce

go to dashboard
import geojson from url

expected behaviour

values such relative urls (i.e. //images.contentful.com/xts27qnup0jr/47Yq6W7PgAKQKGQ4cSG6oa/7c8d8296ffa3481efd93b2bb2cefc86c/stamen.png) should import as strings

actual behaviour

ogr2ogr tries to import it as date, despite unchecking guess types

true: Fallback: Disabling autoguessing because there are wrong dates in the source file
...
true: ogr2ogr output:          ERROR 1: COPY statement failed.
ERROR:  date/time field value out of range: "2000/00/00"
HINT:  Perhaps you need a different "datestyle" setting.
CONTEXT:  COPY importer_511ec88ce77b11e592e30ef24382571b, line 1, column logo: "2000/00/00"

Thanks for reporting! <3

It seems a bug in the GeoJSON driver for ogr2ogr. I've reported it and I'm waiting for an answer https://trac.osgeo.org/gdal/ticket/6452#ticket

The issue was fixed in ogr2ogr, this should be fixed as soon as a new ogr2ogr binary is deployed

BOOM

do you have any file to test and confirm?

Here it is
untitled_table_1.geojson.zip

it is still failing :(

Have we updated the ogr2ogr to that version? AFAIK we deploy a version prior to that fixes

Nope, that fix is in 33956 and we're on r33718 :/

We have to release a new gdal-static-bin package. And I'd like someone else to be able to do so, so I added this issue to myself to be tackled in order to have this one fixed:
https://github.com/CartoDB/gdal/issues/1
Also releasing gdal-static-bin which is a pretty core package for the importer requires good testing.
Sorry but not top priority, unless it is a blocker for the new builder @matallo

I have a couple ogr2ogr more in mind -- still unreported to them, as I'm unable to use their tracker from any of my browsers, that would be nice to add if we do a new release. I'll try to report them at my windows computer at home to see if we can include them too.

FIxed in gdal2.1-static (2.1.1-precise1). We need to regression test it and deploy it: https://launchpad.net/~cartodb/+archive/ubuntu/gis-testing/+packages

We just released the new ogr2ogr version. This is fixed. :-)

:_)


JWT Authentification for ORO Api

Hi
I need to replace WSSE API Authentification and add JWT Authentification (with IdToken).
I created a new bundle and added a new JWT firewall
        api:
            pattern: ^/api
            provider: jwt
            stateless: true
            anonymous: false
            guard:
                authenticators:
                    - app.jwt_token_authenticator
                entry_point: app.jwt_token_authenticator
            context: main

It works fine with the API.
But API in ORO js files always need WSSE Authetification. (For exemple in TagBundle when you add a Tag to the Entity: API POST /api/rest/{version}/tags/{entity}/{entityId} )
I added the 2nd firewall for WSSE Api
        api_wsse_secured:
            pattern: ^/api/rest/latest/(tags|activities|relation)
            # @todo: should be enabled in scope of BAP-11128
            # stateless:  true
            wsse:
                lifetime: 3600
                realm:    "Secured API"
                profile:  "Use

Is this a good idea?  Did anyone have the same situation with double API authentification ?

Hi @Kshapova
Thank you for your comment!
I have recently installed and configured LexikJWTAuthenticationBundle on versions 1.10.14 and 2.0.1 using this manual and tried to add some tags to a user from the UI, after which I received the following response:
{"code":401,"message":"JWT Token not found"}

As this behavor is unusual, we will investigate the issue. As I understand, you are using 1.10 version, am I correct? Could you let me know if you had any customizations done for your instance?
For now, I suggest that you upgrade to version 2.0 as a lot of issues with API firewalls have been fixed.

Hi @mkudelya
Yes I am using 1.10 version and I'll upgrade to version 2.0.
We have SSO Gluu connection. This system generate JWT Token and we use it in the header API call, We don't use ORO API Key.
Exemple
GET /app_dev.php/api/rest/latest/services HTTP/1.1
Host: xxx-yyy.com
Authorization: Bearer <JWT TOKEN>
Accept: application/json

Hi @Kshapova
Thank you for reporting the issue! We greatly appreciate all contributions to Oro projects.


Launchpad Integration (FLP On-Premise)

Abap2UI5 is based on a single page index.html, therefore it is not compatible to FLP out of the box. But it is possible to encapsulate abap2UI5 in a UI5 standard app and call it from inside instead of showing the normal view.

Actual proof of concept
Documentation

Next steps:

build it more generic by passing the app id via FLP target mapping parameter
set the path of the http handler from outside or make it configurable

Open questions / Restrictions / Further Improvements:

the ui5 library is loaded two times (one time the normal ui5, second time with the iframe)
theme of the normal app is not used by abap2UI5, therefore it is also not configurable via launchpad (abap2UI5 in an iframe ignores launchpad configuration and theme)

Hi,
I adapted the coding in order to have a real generic wrapper.
The "appid" can be passed via parameter in the FLP target mapping.
Controller.js:
`sap.ui.define([
"sap/ui/core/mvc/Controller",
"sap/ui/core/HTML"
], function (Controller, HTML) {
"use strict";
return Controller.extend("ZAMOH_ABAP2UI5_TEST.ZAMOH_ABAP2UI5_TEST.controller.View1", {
	onInit: function () {
		//Get startup parameters from the FLP target mapping
		this.oStartupParameters = this.getView().getParent().getComponentData().startupParameters;
	},

	onAfterRendering: function () {
		//Get ABAP2UI5 app ID
		var sAppId;
		if (!this.oStartupParameters.appid) {
			var oMessageStrip = this.getView().byId("messageStripId");
			oMessageStrip.setVisible(true);
			return;
		} else {
			sAppId = this.oStartupParameters.appid[0];
		}

		//Get apphandler
		var oPage = this.getView().byId("page");
		var sIFrameId = "iFrameId1";

		var sUrl;
		sUrl =
			"/sap/bc/http/sap/zabap2ui5srv?sap-client=040&app=" + sAppId;

		//Set HTML "iFrame" content
		var sContent =
			'<iframe id="' + sIFrameId + '" height="98%" width="100%" frameborder="0" src="' + sUrl + '" ></iframe>';

		//Create new HTML page
		var oPageHtmliFrame = new HTML({
			preferDOM: true,
			content: sContent
		});

		//Add new iFrame to page
		oPage.addContent(oPageHtmliFrame);
	}
});

});`
view.xml:
<mvc:View controllerName="ZAMOH_ABAP2UI5_TEST.ZAMOH_ABAP2UI5_TEST.controller.View1" xmlns:mvc="sap.ui.core.mvc" xmlns:core="sap.ui.core" 	displayBlock="true" xmlns="sap.m" xmlns:html="http://www.w3.org/1999/xhtml"> 	<Shell id="shell"> 		<App id="app"> 			<pages> 				<Page id="page" showHeader="false"> 					<content> 						<MessageStrip id="messageStripId" text="{i18n>ErrorMessage}" type="Error" showIcon="true" showCloseButton="false" class="sapUiMediumMarginBottom" visible="false"></MessageStrip> 					</content> 				</Page> 			</pages> 		</App> 	</Shell> </mvc:View>
i18n.properties:
ErrorMessage=Please maintain a Application ID (appid) in your FLP target mapping

Kind regards
Axel

Hi,
nice, thank you a lot!
I updated the documentation.
Kind regards!

Hi,
I guess you missed some parts in your documentation for the controller.js and view.xml
controller.js
onInit: function () { 		//Get startup parameters from the FLP target mapping 		this.oStartupParameters = this.getView().getParent().getComponentData().startupParameters; 	},
view.xml
<content>  <MessageStrip id="messageStripId" text="{i18n>ErrorMessage}" type="Error" showIcon="true" showCloseButton="false" class="sapUiMediumMarginBottom" visible="false"> </MessageStrip>  </content>
thanks,
Axel

Thank you for double checking, copy&paste error, I adjusted this!
Is the attribute visible="false" correct?

created an updated approach, now abap2UI5 is loaded dynamically respecting the theme and library of the index.html of the parent app.
just copy & paste this snippet into the afterRendering method of your first view (View1 when using freestyle template in BAS):
              async function initabap2UI5() {
                   var url = "/sap/bc/http/sap/<your_http_handler>"
                    const response = await fetch(url);
                    const start = await response.text();
                    var code = '<script>' + start.split( '<script id="z2ui5">' )[1].split('</script>')[0] + '</script>';
                    sap.ui.controller("z2ui5_dummy_controller", { });
                    var xml = "<mvc:View controllerName='z2ui5_dummy_controller' xmlns='http://www.w3.org/1999/xhtml' xmlns:mvc='sap.ui.core.mvc' >" + code + "</mvc:View>";
                    var oView = new sap.ui.core.mvc.View.create({
                        type: 'XML',
                        definition: xml,
                      }).then(oView => {
                        oView.placeAt("content");
                        sap.z2ui5.oView = oView;
                        sap.z2ui5.oParent = oView;
                      });
                  }
                  sap.z2ui5 = {};
                  sap.z2ui5.oParent = this.oView.getParent();
                  initabap2UI5();
                  sap.z2ui5.startApp = this.oView.getComponentData().startupParameters.appid[0];

if someone has the time to give it a try, let me know it it works. the code snippet is not a beauty, it was created quickly to test if the approach works, corrections are welcome.

Hi Axel,
yes it is a while ago now since i created this snipped and some abap2UI5 variables changed.
Maybe you can make this snippet working or get more details where the problems are that i can give it another try in the future.
Best regards.

Hi,
i have a Problem in my controller.
`sap.ui.define([
"sap/ui/core/mvc/Controller",
"sap/ui/core/HTML"
],
/**
* @param {typeof sap.ui.core.mvc.Controller} Controller
*/
function (Controller, HTML) {
"use strict";
	return Controller.extend("ztmabap2ui5.controller.View", {
		onInit: function () {
			this.oStartupParameters = this.getView().getParent().getComponentData().startupParameters;
		},

		onAfterRendering: async function initabap2UI() {
			var url = "/sap/bc/http/sap/abap2ui5"
			const response = await fetch(url);
			const start = await response.text();
			var code = '<script>' + start.split( '<script id="z2ui5">' )[1].split('</script>')[0] + '</script>';
			sap.ui.controller("z2ui5_dummy_controller", { });
			var xml = "<mvc:View controllerName='z2ui5_dummy_controller' xmlns='http://www.w3.org/1999/xhtml' xmlns:mvc='sap.ui.core.mvc' >" + code + "</mvc:View>";
			var oView = new sap.ui.core.mvc.View.create({
				type: 'XML',
				definition: xml,
			  }).then(oView => {
				oView.placeAt("content");
				sap.z2ui5.oView = oView;
				sap.z2ui5.oParent = oView;
			  });
		  }
		  sap.z2ui5 = {};
		  sap.z2ui5.oParent = this.oView.getParent();
		  initabap2UI5();
		  sap.z2ui5.startApp = this.oView.getParent().getComponentData().startupParameters.appid[0];
		}
	});

Can i have the complete Code.
Best Regards
Thomas

Hi oblomov,
there is an encoding issue in the scripting part of the generated XML file.
The issue is the ampersand (&&) in the "AND" statement.

I tried to encode the ampersand, but didn't work.
xml = encodeURIComponent(xml);
Any idea?
Thanks,
Axel

Hi Axel,
i am sure there are more elegant solutions but my first quick guess is to replace the && with two if conditions.
I updated the main branch:
https://github.com/oblomov-dev/abap2UI5/blob/main/src/z2ui5_cl_http_handler.clas.abap#L163
Best regards.

Hi,
this work, but I'm running immediately in the next error:

Couldn't find out the cause, yet.

Unfortunately, its the same error like before.
I attached the content of the variable "XML" before we create the new XML view.
ABAP2UI5_XML_Rendering.txt
It runs into the "GlobalEval" method and fails:

Hi
I have a syntac error in the controller. Can someone tell me what's wrong there?

There are some brackets missing:

Hello together,
i made again some changes and updated the main branch. Additionally here is my controller:
sap.ui.define([
    "sap/ui/core/mvc/Controller"
],
    /**
     * @param {typeof sap.ui.core.mvc.Controller} Controller
     */
    function (Controller) {
        "use strict";

        return Controller.extend("project1.controller.View1", {
            onInit: function () {

            },

            onAfterRendering: function () {

                async function initabap2UI5() {
                    const response = await fetch(sap.z2ui5.pathname);
                    const start = await response.text();
                    var code = start.split('<abc/>')[1].split('<abc/>')[0];
                    sap.ui.controller("z2ui5_dummy_controller", {});
                    var xml = "<mvc:View controllerName='z2ui5_dummy_controller' xmlns='http://www.w3.org/1999/xhtml' xmlns:mvc='sap.ui.core.mvc' >" + code + "</mvc:View>";
                    var oView = new sap.ui.core.mvc.View.create({
                        type: 'XML',
                        definition: xml,
                    }).then(oView => {
                        sap.z2ui5.oParent.removeAllPages();
                        sap.z2ui5.oParent.insertPage( oView );
                        sap.z2ui5.oView = oView;
                    });
                }
                sap.z2ui5 = {};
                sap.z2ui5.pathname = "/sap/bc/http/sap/y2ui5_http_handler/";
                sap.z2ui5.oParent = this.oView.getParent();

                try {
                    var app = this.oView.getParent().getComponentData().startupParameters.appid[0];
                    if (app) {
                        sap.z2ui5.pathname += app;
                    }
                } catch (error) { }

                initabap2UI5();

            }
        });
    });

In the Business Application Studio testing with launchpad, it is working now:

But i can not test it on a real on-premise system.
Best regards!

unfortunately, it doesn't work.
The two methods doesn't exists. I tested it with different SAPUI5 versions.
sap.z2ui5.oParent.removeAllPages();
sap.z2ui5.oParent.insertPage( oView );

I tried to use destroy() and addContent(), but didn't work either.

The parent of oView is the "component".
I tried to retrieve the sap.m.app from "View1" like following:
//sap.z2ui5.oParent = this.oView.getParent();
sap.z2ui5.oParent = this.getView().byId(this.getView().getId() + "--app");

With this the two methods are working as expected...
sap.z2ui5.oParent.removeAllPages();
sap.z2ui5.oParent.insertPage(oView);

..., but I'm receiving again the same "&" error like before

Thank you for testing again! This is a great help!
Seems like the nested structure of XML in HTML etc. behaves different on an on-prem system. The letter & makes the html page invalid. Unfortunately i can not test it by myself, but I made now an adjustment based on your error. The html page of abap2UI5 does not contain any & letter anymore. I can not forsee if you will discover a new error but the actual one should be fixed with that.
You can try again!

Hi,
I would also like to test the integration with the launchpad. I created an application using BAS or VSC.

After generation I have two controllers and two views.
Which of the controllers and views do I need to customize?
Do I need to make any further adjustments? Or is my approach wrong?
Many thanks for your help.
Thomas

Hi Thomas,
your approach is right.
You have to add in controller View1.controller.js the method:
´´´javascript
onAfterRendering: function () {
            async function initabap2UI5() {
                const response = await fetch(sap.z2ui5.pathname);
                const start = await response.text();
                var code = start.split('<abc/>')[1].split('<abc/>')[0];
                sap.ui.controller("z2ui5_dummy_controller", {});
                var xml = "<mvc:View controllerName='z2ui5_dummy_controller' xmlns='http://www.w3.org/1999/xhtml' xmlns:mvc='sap.ui.core.mvc' >" + code + "</mvc:View>";
                var oView = new sap.ui.core.mvc.View.create({
                    type: 'XML',
                    definition: xml,
                }).then(oView => {
                    sap.z2ui5.oParent.removeAllPages();
                    sap.z2ui5.oParent.insertPage( oView );
                    sap.z2ui5.oView = oView;
                });
            }
            sap.z2ui5 = {};
            sap.z2ui5.pathname = "/sap/bc/http/sap/y2ui5_http_handler/";
            sap.z2ui5.oParent = this.oView.getParent();

            try {
                var app = this.oView.getParent().getComponentData().startupParameters.appid[0];
                if (app) {
                    sap.z2ui5.pathname += app;
                }
            } catch (error) { }

            initabap2UI5();

        }

Best regards!

Hi,
I first had to make all the necessary adjustments in the on-prem system so that I could deploy. I now get the following error with onInit when starting the app.

Do you even need OnInit? Do you also have to define the view as described, or is the controller enough? I also defined the view as described.
As always, thank you for your help.
Best Regards
Thomas

Hi Thomas,
(1) Let the view "View1" as it is. So no need to do extra changes. How it is generated it is fine and also do not delete it because is is needed as a dummy View to be loaded first.
(2) The OnInit method is not necessary and should be deleted or empty. Only the onAfterRendering method is needed.
Best regards

@axelmohnen this issue is very big and confusing now. I created a separated repository for the launchpad compatible app and a also separated issue:
https://github.com/oblomov-dev/abap2UI5_ext-launchpad_app/issues/1
Furthermore i updated the backend abap2UI5 HTML generation and adjusted the frontend launchpad app. Feel free to give this again a try and write your feedback in the new issue.
@thomasmarkert if you have further problems with the launchpad app, just create a new issue in the new repository:
https://github.com/oblomov-dev/abap2UI5_ext-launchpad_app/

https://github.com/oblomov-dev/abap2UI5_ext-launchpad_app


Create record for CrossSectionElement geometry input

All CrossSectionElement have geometric input:

OtsLine2d centerLine
Polygon contour
List<CrossSectionSlice> crossSectionSlices

By creating a record class, code can become less verbose. Furthermore, we can define a constructor that generates the geometric data based on a continuous line and the cross-section slices. Geometry can still be based on external sources (which is why geometry calculation was removed from the cross-section element constructors).

Record class CrossSectionGeometry has been created. It contains a static of(ContinuousLine, Flattener, List<CrossSectionSlice> method to generate the geometry based on this information. The of(...) method has allowed the removal of a lot of similar code where cross-section elements were created. CrossSectionGeometry is also used to contain data in data objects related to cross-section elements in the editor.


Update to latest

Need changes for MANIFEST

How often is gold/2021 updated? Should I just cherry-pick the MANIFEST changes and merge them to gold/2021?

@AndresGuzman-Ballen let us merge #1458 and the dependabot PR. I will then tag hopefully last RC tag (rc3) and then merge main into gold/2021.
Once we test and there are no issues: I will tag final 0.23.0 release and merge into gold/2021.

@diptorupd sounds like a plan!


Peter murray icla

A commit with no actual changes to initiate icla processing.

This was a PR so that I could provide a signature fro the CLA, as detailed here; https://github.com/finos/open-developer-platform/pull/214#issuecomment-865189615


Removed bad commit files

@madskristensen; I removed the files that was committed by mistake so that this is a clean pull request, to allow addition of the ToolWindows Toolbar and buttons to the custom-tool-windows.md file only.

@madskristensen; some of the files from the first commit would not let me remove them (all of the json files) give me 404 error on clicking delete in Github. You only want the custom-tool-windows.md file.

Thanks. Let me know when this is ready to merge

@madskristensen; It is ready but please only merge #22, It should only have the MD file.

@madskristensen; My forked main and yours should look alike now except for the MD file changes. It is ready to merge when you are.

@madskristensen  It would seem that some of my paid for VS Extensions (like TabStudio) create folders in the solution when the Doc's project was forked and then opened in VS.

Thanks


gsm_ppp.c: set AT+IFC if hw-flow-control is enabled

If hw-flow-control is set in the uart section of the device tree source it is read by gsm_ppp.c and AT+IFC=2,2 is sent to the modem.

@jeppenodgaard Could you update commit title to drivers: modem: gsm: set AT+IFC if hw-flow-control is enabled to match other commits in the same driver?
+1 to code changes!


Either chaining is broken, or documentation is wrong

In release 6.0.0, 2018-04-02 the following breaking change was made (according to the changelog): "Various browser methods, like focus, fill, etc now take a callback, or return a promise."
According to the documentation, the following syntax should work:
      browser
        .fill('email'<EMAIL_ADDRESS>        .fill('password', 'eat-the-living')
        .pressButton('Sign Me Up!', done);

It implies that fill will return a copy of browser, enabling chaining. However, since 6.0.0 this isn't the case- fill (and a number of similar methods) returns a promise. If you try to run the basic example above from the Zombie documentation (from both the README, and the website http://zombie.js.org/) it won't work. Either the documentation needs to be updated, or chaining needs to be fixed.

Yup, same issue.
From the source code If called without callback, returns a promise

Documentation was wrong and has been fixed. Code in README fixed in #1196.


The theme is not reflected when returning from the setting to the fixed theme to the system theme

Overview (Required)
Steps To Reproduce
https://user-images.githubusercontent.com/1386930/111092426-68293480-8579-11eb-93f9-2d760e2c3df6.mp4
Expected behavior
If it's clear
Screenshots
If applicable
Env:

Device: Pixel3
OS: 11.0
App Version or the branch main

Additional context
Any other notes

Working correctly for me. @takahirom

I think it was fixed with the Compose update. Thank you!


Adjust for SAP Cloud Platform PostgreSQL Hyperscaler Service

The credenentials format for the SAP Cloud Platform PostgreSQL Hyperscaler Service is different than the standard format. This are the needed adjustments.

Great!

What do we do about the build issues?

I'll have a look into this.


UI: separate "My uploads" from all user uploads for Moderators

Due to permissions set for moderators, the uploads page contains all the uploads, which is confusing in case of Moderator being a regular uploader in the same time.
We should keep "My uploads" dedicated to only user's content even if they are moderators/superusers

Duplicate of https://github.com/inveniosoftware/invenio-app-rdm/issues/1956 probably.

Fixed


readonly-date and show-spinner do not toggle dynamically

I'm trying to enable or disable datetimepicker functionality based on check-box.
but i found that readonly-date and show-spinner are not able to toggle dynamically.

that's true, these fields are static


🐞 Bug: Minor Bugs in Localizations.

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
Many words are not translated correctly.

This Translates to "For Contributors". It should be "Contributors"

Mispelt Language Translation

Hindi
"Gota" word can be replaced with more meaningful and common word

Steps To Reproduce

Select Marathi as the Language.
Select Hindi as the Language.

Expected Behavior
It should be translated correctly, for better experience for user using localized language.
Screenshots
No response
Device Information [optional]
- OS: Windows
- Browser: Chrome

Additional context
No response
Are you working on this issue?
No

I would like to work on this.

Hey @Kiran-pande-30 ,
I think I'll be able to work on this.Could you
please assign me to the task?
thanks.


Inheritance mapping issue with map-ids

Hi,
with version 5.3.2, inheritance mapping with map-ids is not always working correctly. The attached project demonstrates the issue. In my concrete usecase I have JAXB-generated classes, with a base-class that is not abstract and several classes extending this base-class. In my mapping files, I have a mapping for the common properties in the base-class plus additional mappings for class-specific extensions, as described in the docs (http://dozer.sourceforge.net/documentation/baseattributes.html). For the extending classes I am using map-ids. This setup was working nicely up until Dozer 5.3.1. With 5.3.2 the inheritance mapping was slightly changed:
The class in question is
org.dozer.classmap.ClassMappings
The following method was changed:
findInterfaceMapping
in 5.3.1:
if (destClass.isAssignableFrom(mappingDestClass) ||
(mappingDestClass.isInterface() && mappingDestClass.isAssignableFrom(destClass))) {
if (MappingUtils.getRealClass(srcClass).equals(mappingSrcClass)) {
return map;
}
}
in 5.3.2/5.4.0:
// Destination could be an abstract type. Picking up the best concrete type to use.
if ((destClass.isAssignableFrom(mappingDestClass) && isAbstract(destClass)) ||
(isInterfaceImplementation(destClass, mappingDestClass))) {
if (MappingUtils.getRealClass(srcClass).equals(mappingSrcClass)) {
return map;
}
}
I tracked the issue down to the "isAbstract(destClass)" method call, which in my case breaks the mapping. My base-class is not abstract and I cannot change this, since it was generated by JAXB. From my point of view the isAbstract() check should either be removed or appended in a separate OR clause.
Unfortunaltely github doesn't allow to attach archives (at least I don't know how)
but in the old issue tracker you can find a sample project.
http://sourceforge.net/p/dozer/bugs/355/
Can you please fix this for the next version?
Best regards,

@CuervoSodieh ; is this still an issue? if so, can you create a github repo, that includes a unit test showing this behaviour and link it here.

I'm using Dozer for a project, and when we bump from the version 5.3.1 to 5.3.2+, the mapping was broken  leading to a few problems, why the need to ensure that the class is abstract?
I checkout Dozer, and removed the abstract validation, and everything went OK, again.
Thanks


Table names not sanitized in frontend

Refer to https://github.com/GreptimeTeam/greptimedb/issues/1581
We should use double-quoted strings for table and column names. There may be some special character in them.

Should be fixed by #342


In the board the status metadata field are not present to create the vue for the board

What happened?
I have create a project from a folder, set these metadata :
tags:
aliases:
type:
category:
date: 2023-01-27 03:09:56
status:
  - process

In the table view I see all the metadata fields and the values in-it, but when I create and bord vue, the field status is not available, any idea ?
What did you expect to happen?
I have delete the value in the field and write another word
I do the same in the sandbox and the problem is still here

How can we reproduce it (as minimally and precisely as possible)?
Create a notes
put the status metadata
and check if the project's board show the status metadata
Anything else we need to know?
my config
SYSTEM INFO:
Obsidian version: v1.3.7
Installer version: v1.3.5
Operating system: Darwin Kernel Version 22.5.0: Thu Jun  8 22:22:19 PDT 2023; root:xnu-8796.121.3~7/RELEASE_ARM64_T8103 22.5.0
Login status: logged in
Catalyst license: none
Insider build toggle: off
Live preview: on
Legacy editor: off
Base theme: light
Community theme: AnuPpuccin v1.4.4
Snippets enabled: 10
Restricted mode: off
Plugins installed: 72
Plugins enabled: 59
1: Outliner v4.8.0
2: Dataview v0.5.56
3: Tag Wrangler v0.5.11
4: Kindle Highlights v1.9.2
5: Better File Link v1.1.3
6: Find orphaned files and broken links v1.9.0
7: Hover External Link Plugin v1.0.0
8: Natural Language Dates v0.6.1
9: Theme Picker v1.0.8
10: Timestamp Notes v1.0.8
11: URL Namer v1.0.1
12: Advanced Tables v0.19.1
13: Diagrams v1.5.0
14: TimeStamper v1.3.0
15: Note Refactor v1.7.1
16: Checklist v2.2.12
17: ReadItLater v0.3.1
18: Highlightr v1.2.2
19: YTranscript v0.8.2
20: Readwise Official v2.0.1
21: Excalidraw v1.9.17
22: Antidote Grammar Checker Integration v2.1.2
23: Hover Editor v0.11.13
24: Auto Link Title v1.4.1
25: Projects v1.16.3
26: Omnisearch v1.15.2
27: Multi-Column Markdown v0.8.3
28: Extract url content v0.12.1
29: Tracker v1.10.9
30: Style Settings v1.0.6
31: Icon Folder v2.1.2
32: Banners v1.3.3
33: Editing Toolbar v2.3.1
34: MySnippets v1.2.3
35: Quiet Outline v0.3.15
36: Advanced URI v1.37.0
37: Homepage v3.5.1
38: Callout Manager v1.0.1
39: Metadata Menu v0.5.1
40: Mind Map v1.1.0
41: Emoji Magic v0.2.2
42: Templater v1.16.0
43: Full Calendar v0.10.7
44: Day Planner v0.5.8
45: Calendar v1.5.10
46: Periodic Notes v0.0.17
47: Enhancing Mindmap v0.2.5
48: obsidian markmind v1.7.8
49: QuickAdd v1.2.1
50: Global Search and Replace v0.3.0
51: Obligator v1.2.0
52: Recent Files v1.3.7
53: Waypoint v1.4.0
54: Custom Frames v2.4.6
55: Text Generator v0.3.20
56: Smart Connections v1.6.34
57: Admonition v10.0.1
58: Kanban v1.5.3
59: DB Folder v3.4.0
Plugin version
1.16.3
Obsidian version
1.37
OS
macOS

Since the status field of the board view is used to categorize notes into board columns, and each note should only belong to one column, only single-value fields, but not arrays, are available for the feature. In your case, you can use below:
tags:
  - tag a
  - tag b
aliases:
type:
category:
date: 2023-01-27 03:09:56
status: process

Here's the preview:

Moving to discussions section since the array fields (or, list properties) are not intended to be recognized by the status option. You can try assigning predefined values to fields following the instructions in #661 . This requires a plaintext field for the status options.


confused about the results of the road reconstruction

I am confused about the results of the road reconstruction. The beginning looks good, but the end is really poor. And why is that? What caused  the error?

@zjtde1990  Hi. It may be caused by many reasons, such as wrong camera poses, wrong bev elevation. It seems to be a slope and you can use other supervisions like lidar depth.

I used kitti odometry gt poses, and reconstruct the sparse point clouds with colmap. Then I reconstruct the dense point clouds. I pre-trained the elevation mlp with the dense point clouds which is masked by semantic labels. I obtained the depth image by projecting dense point clouds to the image, and then I used the depth image as supervisions. I want to know if the problem is on the pre-training mlp or the depth of the dense point clouds are inaccurate.

@zjtde1990 At first dense point clouds obtained by MVS have many errors and you can see points on road are noisy. Second, when you project points, have you sorted depth by distance? It may cause error when distance points cover close points.

@DRosemei Thank you very much~ I really ignored that the projection points would overlap. However, from my understanding, RoMe's reconstruction results are based on high-precision poses and point clouds inputs.  It mainly plays the role of smoothing and rebuilding semantics, and can not correct the pose and elevation to a certain extent. I don't know if I understand correctly.

@zjtde1990 Yes, high-precision poses and point clouds inputs will make less reprojection errors. For correcting the pose and elevation, only vision supervision is not enough in autonomous driving because light/exposure conditions may change heavily in a short clip. So RoMe could correct poses and elevation under good light/exposure conditions. In wild data, you need to get high-precision poses first which makes it easier to learn the elevation.


Operator cannot be applied to operands of type 'System.Windows.Thickness' and 'double'

Tried with "+" and "/" operators... Probable the same problem exists for other operators.
Padding="{Binding SomePadding, ElementName=SomeElement, Converter={StaticResource MathConverter}, ConverterParameter=x/4;x/4;x/4;x/4}"
Padding="{Binding SomePadding, ElementName=SomeElement, Converter={StaticResource MathConverter}, ConverterParameter=x/4}"

Both variants do not work.

BTW: for CornerRadius I also have that problem.

I mean it makes sense that that operator doesn't work. There is no C# "/" operator between Thickness and double. This doesn't feel like a bug as much as it is a "You can't do this conversion this way."
Effectively, MathConverter is a very simplified C# compiler, which dynamically parses and evaluates your conversion string with reflection. The difference is that the compiler happens at runtime, so effectively, you're getting a Compiler error that there's no available operator, in the same way that this C# code would not compile:
Thickness x = SomeElement.Padding;
return x / 4; // Compiler error CS0019: Operator '/' cannot be applied to operands of type 'Thickness' and 'int'

What I would do is:
If you know that the Padding on SomeElement is guaranteed to be the same for LTRB:
You can simply bind to the Left (or Top, etc.) Padding instead of the full Padding object. Left property is a double, and there is a built-in "/" operator for double and double:
Padding="{Binding SomePadding.Left, ElementName=SomeElement, Converter={StaticResource MathConverter}, ConverterParameter=x/4}"

If you can't guarantee that, you can do it with a multibinding.
<WhateverControl>
    <WhateverControl.Padding>
        <MultiBinding ConverterParameter="x/4;y/4;z/4;[3]/4" Converter="{StaticResource MathConverter}">
            <Binding Path="SomePadding.Left" ElementName="SomeElement" />
            <Binding Path="SomePadding.Top" ElementName="SomeElement" />
            <Binding Path="SomePadding.Right" ElementName="SomeElement" />
            <Binding Path="SomePadding.Bottom" ElementName="SomeElement" />
        </MultiBinding>
    </WhateverControl.Padding>
</WhateverControl>

The same general principles would apply for CornerRadius (though property names are TopLeft, TopRight, etc.) and would work for +, -, and * operators.
Hopefully this helps 🙂


Iterator for Data

To allow this:
init:
    data = Data(10)
    for entry in data:
        print(entry)

and this:
struct Vector:
    x sig
    y sig
    z sig

init:
    dataLength = 100
    data = Data(dataLength, dataType=Vector)

    for entry in data:
        entry = Vector()

Added functionality for getting values... Setting them still requires normal looping

Implemented setter too #84 :
It's implemented in the typed parser itself.
This:
for entry in data:
   entry = Vector()

will be turned into
for index_1238123 in 0..data.len-1:
    data[index_1238123] = Vector()


Debug should use Cake.Tool instead of Cake.CoreCLR

When installing debug dependencies. Install Cake.Tool as global tool instead of Cake.CoreCLR locally.
https://github.com/cake-build/cake-vscode/blob/df630c4e1681b132bf5c3035c053b73a50877fb0/src/debug/cakeDebug.ts
We should also update package.config to use Cake.Tool:
https://github.com/cake-build/cake-vscode/blob/372b91f34fb5383ebddb37aa29f6237109638374/package.json

Final launch.json used during stream on 29th June 2020:
        {
            "name": "Cake: Debug Script (CoreCLR)",
            "type": "coreclr",
            "request": "launch",
            "program": "dotnet-cake.exe",
            "args": [
                "${workspaceRoot}/build.cake",
                "--debug",
                "--verbosity=diagnostic"
            ],
            "cwd": "${workspaceRoot}",
            "stopAtEntry": true,
            "externalConsole": false,
            "justMyCode": false,
            "symbolOptions": {
                "searchNuGetOrgSymbolServer": true
            }
        }

@mholo65 @devlead using the above example, this:
"program": "dotnet-cake.exe",

Would couple it directly to Windows, right?
What is the correct thing to put in here, so that it would work on both Windows and other operating systems?

Would this work:
{
            "name": "Cake: Debug Script (Tool)",
            "type": "coreclr",
            "request": "launch",
            "program": "dotnet",
            "args": [
                "cake",
                "${workspaceRoot}/build.cake",
                "--debug",
                "--verbosity=diagnostic"
            ],
            "cwd": "${workspaceRoot}",
            "stopAtEntry": true,
            "externalConsole": false,
            "justMyCode": false,
            "symbolOptions": {
                "searchNuGetOrgSymbolServer": true
            }
          }

In theory, it should and if it does then it would also mean we supported local tools that don't generate the executable stubs.

@devlead I tried this on the stream last night, and it didn't work, it only stepped into the debugger when using dotnet-cake.exe or dotnet-cake.  So unless there is something else that needs to be done to get it to work, i.e. passing arguments differently, then we won't be able to go down this route.

Problem is that dotnet is implicit when using type CoreCLR. So now debugger will launch with dotnet dotnet cake <args> and that doesn't work. I don't think cake as executable will work either, since that can't be find on path ☹

So this starts script and debugging for me...
        {
            "name": "Cake: Debug Script (Tool)",
            "type": "coreclr",
            "request": "launch",
            "program": "dotnet",
            "args": [
                "dotnet-cake",
                "${workspaceRoot}/build.cake",
                "--debug",
                "--verbosity=diagnostic"
            ],
            "cwd": "${workspaceRoot}",
            "stopAtEntry": true,
            "externalConsole": false,
            "justMyCode": false,
            "symbolOptions": {
                "searchNuGetOrgSymbolServer": true
            }
        },

Issue is that seems to start a child process so it gets stuck at
Attach debugger to process 61752 to continue...

Node has autoAttachChildProcesses, but .NET doesn't seem to have.

Above is short for
 {
            "name": "Cake: Debug Script (Tool)",
            "type": "coreclr",
            "request": "launch",
            "program": "dotnet",
            "args": [
                "tool",
                "run",
                "dotnet-cake",
                "--",
                "${workspaceRoot}/build.cake",
                "--debug",
                "--verbosity=diagnostic"
            ],
            "cwd": "${workspaceRoot}",
            "stopAtEntry": true,
            "externalConsole": false,
            "justMyCode": false,

            "symbolOptions": {
                "searchNuGetOrgSymbolServer": true
            }
        }

But still launches a child process.

I haven't tried it, but I "think" we should be able to do:
        {
            "name": "Cake: Debug Script (Tool)",
            "type": "coreclr",
            "request": "launch",
            "program": "dotnet-cake",
            "windows": {
                "program": "dotnet-cake.exe"
            }
            "args": [
                "${workspaceRoot}/build.cake",
                "--debug",
                "--verbosity=diagnostic"
            ],
            "cwd": "${workspaceRoot}",
            "stopAtEntry": true,
            "externalConsole": false,
            "justMyCode": false,
            "symbolOptions": {
                "searchNuGetOrgSymbolServer": true
            }
        }

This is based on this:
https://code.visualstudio.com/docs/editor/debugging#_platformspecific-properties

Yes, that would work, requirement then that the Cake tool is installed globally though, won't work for tool manifest installs.
Maybe we could create something in the extension for launch and attach to process if Attach debugger to process xxxxx to continue... appears in stdout.
i.e. this
dotnet tool run dotnet-cake -- build.cake --debug --verbosity=diagnostic
works with attach

configuration used:
 {
            "name": "Cake: Debug Script (Tool) Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command:pickProcess}",
            "justMyCode": false,
            "symbolOptions": {
                "searchNuGetOrgSymbolServer": true
            }
        }

@devlead said...
Yes, that would work, requirement then that the Cake tool is installed globally though, won't work for tool manifest installs.

I guess I am confused a little bit about this.
Am I right in saying that shim files are still created when installed via tool manifest?  If so, it would be a case of getting the launch.json to also look in there, right?
We can certainly add an attach into the launch.json as part of the extension.

shim files aren't created when installed using manifest, and that's the issue.

What we would need would be something like the serverReadyAction but for child processes or .NET supported auto attach child processes like node.
I.e. this will launch a browser with the process id, not very helpful but there's a way to launch a debugger in similar way that would sort things.
{
            "name": "Cake: Debug Script (Tool)",
            "type": "coreclr",
            "request": "launch",
            "program": "dotnet",
            "args": [
                "tool",
                "run",
                "dotnet-cake",
                "--",
                "${workspaceRoot}/build.cake",
                "--debug",
                "--verbosity=diagnostic"
            ],
            "cwd": "${workspaceRoot}",
            "stopAtEntry": true,
            "externalConsole": false,
            "justMyCode": false,

            "symbolOptions": {
                "searchNuGetOrgSymbolServer": true
            },
            "serverReadyAction": {
                "action": "openExternally",
                "pattern": "\\bAttach debugger to process\\s([0-9]+)\\b to continue\\.\\.\\.",
                "uriFormat": "http://localhost:%s"
            }
        }

Debugging the spawning of child processes is being tracked in this issue: https://github.com/dotnet/runtime/issues/43924


add callbackWaitsForEmptyEventLoop on handler wrappers

remove unnecessary await from returns

I think, since the wrappers are acting as bridges to the real handlers, it's safe to assume context.callbackWaitsForEmptyEventLoop = false, since the code will most likely be using async (event, context) => Promise<any> instead of (event, context, callback) => void
This has bitten me in the past (on unrelated projects), with lambda timing out, even though it had completed.
Some issues in the wild:
https://www.serverlesslife.com/AWS_Serverless_Common_Mistakes_Communication_with_Other_Systems.html#connections
https://github.com/awslabs/aws-serverless-express/issues/134
https://medium.com/@hichaelmart/reviewing-the-aws-lambda-nodejs10-x-runtime-84de1e500aac
https://www.jeremydaly.com/reuse-database-connections-aws-lambda/
https://stackoverflow.com/a/41623101/647380
I understand if the desired behavior should default to letting the consumer decide, feel free to disregard, but since the code does async things before eventually calling the underlaying handler, it might catch early cases of errors. gotta say, it's a weird behavior, for sure

If Promises are used to handle the request, then the event loop should always be empty when we return the result, right? Or do DB connections have issues?
Perhaps we should make this configurable on a per-function basis?

the issue I see is that when using variables that "hang around" outside of the handler, it might give varying results. on my test code, I'm trying to connect to mongodb atlas from the handler, and I also have external db connection 'cached variables' (as per documentation). this might be true for things that run longer than the handler itself, but databases are a prime example


History reporting with Eve app/Fakegato

Hi, thanks for the excellent plugin.
This is an enhancement request please:
Would you please consider implementing 'fake-gato' so that the history of each occupancy sensor can be viewed in the Eve app?
Why: I use this plugin to monitor the active status of a number of security devices by their local network presence/connection.
Fake-gato would allow me to see if there have been outages on my network, or if a device was offline for a period of time.
Thanks for your consideration!

I would also like that!


[Bug] [Seatunnel-Engine] Fix NEP when scheduling sub plan fails.

close #3908

Purpose of this pull request

Check list

[ ] Code changed are covered with tests, or it does not need tests for reason:
[ ] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/incubator-seatunnel/tree/dev/docs
[ ] If you are contributing the connector code, please check that the following files are updated:

Update change log that in connector document. For more details you can refer to connector-v2
Update plugin-mapping.properties and add new connector information in it
Update the pom file of seatunnel-dist

[ ] Update the release-note.

please fix ci error

@hailin0 @EricJoy2048 PTAL thanks.

Title: Fix NEP when scheduling sub plan fails

Title: Fix NEP when scheduling sub plan fails

Done.


Unable to switch to in-cluster kubeconfig when empty value is passed

I was trying to create an Istio kubernetes crd client using the NewClient
API from the Istio package and found that passing an empty kubeconfig value always returns an error instead of switching to in-cluster config.
  import (
    "fmt"

    "istio.io/istio/pilot/pkg/config/kube/crd"
    "istio.io/istio/pilot/pkg/model"
  )

  c, err := crd.NewClient("", model.ConfigDescriptor{model.RouteRule})
  if err != nil {
    fmt.Printf("NewClient returns error when empty string is passed: %s\n", err)
  }

Based on the comment above the API passing an empty value for kubeconfig should result in switching to in-cluster kubernetes config which is different than the behavior I'm observing.
Inspecting the code for the helper utility ResolveConfig in the serviceregistry kube package I think that the resolution logic might be incorrect.
The ResolveConfig function checks for existence of a empty string named kubeconfig file which will always fails and incorrectly assigns the default config (user's Home Dir + /.kube/config) file which will not exist for in-cluster configuration.
Below is the snippet from the ResolveConfig utility function which does the incorrect assignment:
	if kubeconfig == "" {
		usr, err := user.Current()
		if err == nil {
			defaultCfg := usr.HomeDir + "/.kube/config"
			_, err := os.Stat(kubeconfig)
			if err != nil {
				kubeconfig = defaultCfg
			}
		}
	}

Note the stat on kubeconfig instead of defaultCfg and the assignment to kubeconfig on non-nil error.
If going forward the only way to switch to an in-cluster client is to provide a kube config file with no data (which currently works) it would be helpful if the documentation is updated to reflect it.

fixed recently by @GregHanson .. Please try again and let us know if the issue persists


logs over query service + fix conns pessimization

I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en

Pull request type

Please check the type of change your PR introduces:

[b] Bugfix
[b] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

Issue Number: N/A
What is the new behavior?

Other information

Codecov Report
Attention: Patch coverage is 29.78723% with 33 lines in your changes are missing coverage. Please review.

Project coverage is 53.01%. Comparing base (76e07ce) to head (80557aa).

Files
Patch %
Lines

internal/query/session.go
13.79%
24 Missing and 1 partial :warning:

internal/conn/pool.go
62.50%
2 Missing and 1 partial :warning:

log/driver.go
25.00%
3 Missing :warning:

log/query.go
50.00%
2 Missing :warning:

Additional details and impacted files
@@             Coverage Diff             @@
##           master    #1133       +/-   ##
===========================================
- Coverage   67.49%   53.01%   -14.48%
===========================================
  Files         296      293        -3
  Lines       29652    28574     -1078
===========================================
- Hits        20014    15149     -4865
- Misses       8723    12350     +3627
- Partials      915     1075      +160

Flag
Coverage Δ

53.01% <29.78%> (-0.24%)
:arrow_down:

go-1.21.x
53.01% <29.78%> (-16.11%)
:arrow_down:

go-1.22.x
?

integration
53.01% <29.78%> (-0.24%)
:arrow_down:

macOS
?

ubuntu
?

unit
?

windows
?

ydb-23.3
?

ydb-24.1
53.01% <29.78%> (-0.21%)
:arrow_down:

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

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


Fix Graphite reporter documentation

Problem:
Incorrect default value for port was used, "transport" was missing when comparing with the actual configuration class.
Solution:
Changed default value for port, added "transport"
Result:
Doc now displays the correct configuration options for the Graphite reporter.

Thank you.


Branch 170584354

@gunan is there a way to trigger the CLA bot ?

I signed it!!

@sb2nov I think there is probably some configuration issue with your account re: CLAs? I don't have that issue when I submit changes -- the CLA bot accepts immediately without me asking.

It was fine for other PRs so I don't think that is the issue. Also it didn't ever post the message about asking for CLA on this PR so might be something else.

Jenkins, test this please.

Jenkins, test this please.

@martinwicke the CLA bot got stuck on this PR. Is it possible to merge this without that.

@sb2nov could you try commenting I signed it! with single exclamation mark.
What is curious is CLA bot never reported anything on this PR.

I signed it!

This is really curious. Let us wait for tomorrow, I can manually verify CLAs, and override CLAbot tomorrow morning if we cannot find a way to get it to work.

@gunan the CLA bot is timing out in the check which is causing this issue. I think we can manually merge this as all the commits are from Googlers.
A good future lesson to make merges smaller and resolving broken syncs faster.

Got manual approval on https://github.com/tensorflow/tensorflow/pull/13435 so closing this.


Include Paths

Hi,
Is there an --include-path parameter for the dotless.compiler.exe? It seems there is not and the path is default to the path of the input file. If so, how to specify include paths other than using variable with @import? Is is possible to add such parameter similar to lessc?
Thanks.

Might this be what you are looking for?
--root-path=PATH - Prepends every generated import and url in your output css with PATH

I'm not sure that is the same thing. What I need is an option to set the engine.CurrentDirectory, currently in Program.cs, it is set as the directory of the input file by default:
                var directoryPath = Path.GetDirectoryName(inputFilePath);
                ...
                engine.CurrentDirectory = directoryPath;

It would be nice to have a new parameter to set the CurrentDirectory, e.g.
--include-path="C:\My Folder"
(Path with spaces should be considered.)
In lessc (http://lesscss.org/usage/), it is like:
lessc --include-path=PATH1;PATH2

Sets available include paths. Separated by ':' or ';' on Windows.

If the file in an @import rule does not exist at that exact location, less will look for it at the location(s) passed to this option. You might use this for instance to specify a path to a library which you want to be referenced simply and relatively in the less files.

Thanks.


Control Plane object is updated

Control Plane object is formatted

@varadaprasanth can you briefly explain why this is the right change to make (why is “control plane” the wrong capitalization)?

@varadaprasanth can you briefly explain why this is the right change to make (why is “control plane” the wrong capitalization)?

@sftim   I have seen that Control Plane is defined in the Glossary section in below link
https://kubernetes.io/docs/reference/glossary/?all=true#term-control-plane
As per those standards, corrected this wrong capitalization.

/assign @sftim

I wrote about “control plane” vs  “Control Plane” in the conversation thread that starts at https://github.com/kubernetes/website/pull/20265#issuecomment-615279059
I prefer “control plane” here @varadaprasanth

I wrote about “control plane” vs “Control Plane” in the conversation thread that starts at #20265 (comment)
I prefer “control plane” here @varadaprasanth

@sftim thanks for posting the other thread for my reference to your conversation.
But actually I have some confusion here now, whether the "control plane" should be capitalized or should not be, as per the standards.

With my approver hat on, I recommend “control plane” in the main text of an article. It's rare to write the term capitalized in running text.

With my approver hat on, I recommend “control plane” in the main text of an article. It's rare to write the term capitalized in running text.

@sftim sure, got your point. Let it be with no change there, I will be closing this PR :)

No change is required, hence closing this PR.


[GIE] Introduce a pre-commit hook to prevent committing sensitive information

What do these changes do?
as titled.

Related issue number

Fixes

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.yihe.zxl seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


docs(enterprise): AI Alignment

The AI Alignment feature is closely related to Glossary, so it should also be mentioned there.

I agree. Let's mention AI Alignment in the Glossary article.
Regarding the rearranging of the Crowdin AI article:
The Pre-translation via AI section is already just a short mention with the links. Would you like to change it somehow?

Using AI in the Editor -> a separate page in the Online Editor section

A separate page in the Online Editor section and a short mention in the Crowdin AI article like for Pre-translation via AI?

AI Alignment -> Glossary

The separate AI Alignment section within the Glossary article and a short mention in the Crowdin AI article like for Pre-translation via AI?

For now, just let users (who landed on the Glossary article) know that the AI Alignment feature exists and link to the current description.


xml for items

Closes #39
What changes are introduced to solve this?

Does this introduce a breaking change?

[ ] Yes
[# ] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ]  Bugfix
[# ]  Feature
[ ]  Code style update
[ ]  Refactoring
[ ]  Documentation content changes
[ ]  Other… Please describe:

How to Test the Code?

Describe:

Please check if the PR fulfills these requirements

[ #] The commit message follows our guidelines
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

Other Information :

@BinduVerma123 Kindly make the changes asap.


Example gives an error

When using this line to batch get entities from datastore it generates this error:
datastore: keys and dst slices have different length
This should be changed to
var tasks []*Task
tasks := make([]*Task, len(taskKeys))
https://github.com/GoogleCloudPlatform/golang-samples/blob/fe6277fb1aa032d9fd61206138fd0fc9ce8fb4fc/datastore/snippets/snippet_test.go#L265

Thanks for the report!


Enforces order of transmitted messages

This involved an absolutely massive refactor that completely changed the
interface. Things should be much more robust now.
Fixes #8 and #9

@IvanMalison thank you for this contribution! I'll check it when I'll have some spare time.

A better solution to the problem that this is trying to solve might be to use channel buffering.
The question then is what to do when a receiver channel buffer is full

@grafov Any chance we can get this merged?

I just hit that. I can confirm it's happening. Either this should be fixed, or documentation need to be very clear about this fact.

this should be merged.

I agree with you but I forget about this project :( Sure, as it has stars and people try use it, let fix it.

@IvanMalison many thanks for making this code usable! :)


Package-audit command gives the following error: "TypeError: no implicit conversion of nil into String"

When I run the package-audit command, It keeps giving me this error for a specific project.
user@hostname project % package-audit
#<Thread:0x000000010e155d38 /Users/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/package-audit-0.4.0/lib/package/audit/npm/npm_meta_data.rb:16 run> terminated with exception (report_on_exception is true):
/Users/user/.rbenv/versions/3.2.2/lib/ruby/3.2.0/time.rb:380:in `_parse': no implicit conversion of nil into String (TypeError)

      d = Date._parse(date, comp)
                      ^^^^^^^^^^
        from /Users/user/.rbenv/versions/3.2.2/lib/ruby/3.2.0/time.rb:380:in `parse'
        from /Users/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/package-audit-0.4.0/lib/package/audit/npm/npm_meta_data.rb:34:in `update_meta_data'
        from /Users/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/package-audit-0.4.0/lib/package/audit/npm/npm_meta_data.rb:21:in `block (2 levels) in fetch'
TypeError: no implicit conversion of nil into String

I have checked that I am using the latest version(v0.4.0) of the gem and attached the package.json and yarn.lock
package.json + yarn.lock.zip

Looks like the previous version of the regex incorrectly looked for exact package names preceded by any character which resulted in false matches (e.g<EMAIL_ADDRESS>matched @types/react-dom@18.2.0). This resulted in a crash when assuming that npmjs.com API would contain the date for a non-existent version of the package. Now the regex requires that the package name be preceded by a space, a quote, or be placed at the very beginning of the line.
This issue is fixed in v0.4.1.


Inconsistent Behavior

Hello,
First off excellent tool. I’m having one issue that I can’t really find a pattern for. The majority of the time, once it hits a certain point in the SSL scans, it clears the console and the results of the prior tests. Occasionally, this behavior doesn’t occur and all results are left in the console. I haven’t found anywhere it’s writing those lost results are being saved to, so it essentially makes the first 3/4’s of the scan useless. Is there something I’m missing here, or is this intended behavior?
Thanks!

thanks for your issue you right some module can be useless for another people next version i will make it better this version
so are you have request for next version ?

I think maybe my tone made this sound like more of a complaint than I meant it to, your tool is incredibly useful and awesome. I was wondering if A) I was doing something wrong triggering the inconsistency (the majority of the time this occurs, wiping out the first 3/4's of the scans, but it doesn't always do it, and the results are left in the console), and if it wasn't something I was doing, B) the request would be being able to set a location for an output or log file for results so that even if this behavior occurs, theres a file written with all results. Thank you!


Add "Usage" to the README

Hi.
I think the README could benefit from a short "Usage" section below the "Installation" section.
It should show what you should actually require() in your code - require('request') OR require('request-promise-native').
Thanks.

@analog-nico any update on adding basic usage examples?

After a while figuring out this lib I can use this. Pretty bad docs.
    import * as request from 'request-promise-native'; // typescript import
    try {
      const res = await request
        .post('http://localhost:1001/register')
        .form({
          name: this.state.name,
          email: this.state.email,
          password: this.state.password,
        })
    } catch (e) {
      console.error(e);
    }

this repo does not appear to be actively maintained. :-(


Editing body is hard

When trying to edit a body is a bit hard. Is there an option that at least we can select al the content in order to replace it? Also being able to select all the content would be helpful (to copy and such).

You can try using the VIM key bindings
See more here: https://github.com/Julien-cpsn/ATAC/releases/tag/v0.14.0


Filter input doesn't act like a search input

Focus "filter" input and start typing to filter components
Press ESC to clear the search (default <input type="search" /> behavior)

See how sidebar is hidden instead of resetting input value.
Also, it would be great to have the standard appearance with "reset" button (×) on the right side for this input to keep the affordance.

sounds good, wanna take it @okonet?

I could try. It might conflict with #185 though.

It shouldn't if you do evt.stopPropagation()!

Since this is the built in feature, I'd opt-in for filtering the event handling out from the custom handler #185  has introduced as re-implementing this behavior on my own for the input.

👍