allow array[] int to add and subtract elementwise an int or array[] int of the same size

With vectorized indexing I expected to be able to increment/decrement the array[] int but that is not allowed. For this special case I think it makes sense to allow adding and subtracting elementwise into Stan.

@spinkney:  Could you provide an example and ideally the signatures of operators or functions you'd like to add?    Given that we do allow increments and decrements of whole arrays, I'm guessing you're talking about adding two integer arrays together or maybe adding a scalar to an int array?   So I'm guessing you mean these three signatures or maybe just the first.
array[] int add(array[] int x, array[] int y);

array[] int add(int x, array[] int y);
array[] int add(array[] int x, int y);

Then presumably you also want the subtract forms?  What about other elementwise operations like multiplication and division?
I do not want to allow mixed operations of arrays of reals---you can use to_vector and matrix arithmetic when the result is a vector or matrix.
The goal in writing an issue is enough detail that someone can implement it without guesswork.  The problem with vague issues is that someone might take a guess at how to implement then get their PR rejected because it wasn't what the author of the issue intended.  Usually we encourage discussion on the forum if a discussion is needed to clarify an issue before posting it.

Yes, I'd like those 3 cases. For example, I had some code like below
    int length_x;
    array[length_x] int x = linspaced_int_array(length_x, L, U);
    int k;
    vector[k + 1] lsum;

    for(i in 1:length_x) {
      t[i] = -lsum[x[i] + 1] - lsum[mA - x[i] + 1] - lsum[n - x[i] + 1] - lsum[mB - n + x[i] + 1];
    }

I initially didn't have the loop thinking that the x + 1 would work but since x is an array of ints it errors out.

I think in this case, the easiest thing to do is just create utility UDFs and use them. With shadowing and overloading this is now pretty simple:
functions {
    array[] int add(array[] int x, array[] int y) {
        int x_size = size(x);
        array[x_size] int z;
        for (i in 1:x_size){
          z[i] = x[i] + y[i];
        }
        return z;
    }
    array[] int add(int x, array[] int y) {
        int y_size = size(y);
        array[y_size] int z;
        for (i in 1:y_size){
          z[i] = x + y[i];
        }
        return z;
    }
    array[] int add(array[] int x, int y) {
        int x_size = size(x);
        array[x_size] int z;
        for (i in 1:x_size){
          z[i] = x[i] + y;
        }
        return z;
    }
}
transformed data {
    array[5] int x;
    array[5] int y;
    array[5] int z1 = add(x, y);
    array[5] int z2 = add(x, 5);
    array[5] int z3 = add(3, y);
}

Given that add() is just the function call for the +operator this should probably work with the + as well, but it does not. I think if we were able to write the following with the above UDFs, that would be good enough.
    array[5] int z1 = x + y;
    array[5] int z2 = x + 5;
    array[5] int z3 = 3 + y;

There is no efficiency to be gained here with a Stan Math implementation, so not sure this is something worth a separate Math implementation. I can always be persuaded otherwise :) Incrementing arrays of indices might be something a lot of users do?

I believe I suggested to the contrary on slack recently, but I should note that the user defining functions called things like add, subtract, etc right now does not allow those to be used with +, -, etc. There's no technical constraint here, the typechecker just looks up specifically library functions when doing that typecheck.

I realize there's no efficiency gain. As a user, I just expected the vectorized indexing to work with addition/subtraction and array integers.

The only reason I'm OK with this for int is that we don't have the vector alternative.  Most of our users coming from Python and R expect arithmetic to work on real arrays, too.  My question is how much arithmetic do we need to implement so it's not confusing.  Presumably we don't implement addition without also implementing subtraction and negation.  We could also included elementwise multiplication or division.

If we only do this for array[] int for basic arithmetic, that would be fine. Also not a ton of work.

If we add a specialisation using apply_scalar_binary:
template <typename T1, typename T2,
          require_any_std_vector_t<T1, T2>* = nullptr>
inline auto add(const T1& a, const T2& b) {
  return apply_scalar_binary(
      a, b, [](const auto& c, const auto& d) { return add(c, d); });
}

This will handle all arrays/nested containers


Add Solidus to e-commerce category

Solidus is maintained by an open-source collective of for-profit companies. Do they qualify? If so, I'd love to see them on your list.

@jaggedbytes
Thanks for your suggestion! However, we add only COSS projects (commercial open-source software). So in this case Solidus does not qualify. Thanks for understanding


Official docker image for self-hosting

The only documented way to self-host Digger is via binary; which means that users who'd want to run it as a container will need to build their own docker image.
We need to provide an official public docker image for Digger, or perhaps even helm chart
Reported by user A.T.

Hello @ZIJ
For this issue are you suggesting one to create a Dockerfile for the whole project for the docker image and also create a helm chart.
I wanted to clarify first as i may be interested in this issue

The docker image is available since https://github.com/diggerhq/digger/releases/tag/v0.3.9 :-)

So what is this issue trying to address then 👀

It has been created before the release. I guess it can be closed now


Error sl/CameraOne.hpp: No such file or directory - Jetson docker container

Preliminary Checks

[X] This issue is not a duplicate. Before opening a new issue, please search existing issues.
[X] This issue is not a question, feature request, or anything other than a bug report directly related to this project.

Description
Hello, I have encountered the following problem when running the script ./jetson_build_dockerfile_from_sdk_and_l4T_version.sh:
In file included from /root/ros2_ws/src/zed_components/src/zed_camera/src/zed_camera_one_component.cpp:15:
/root/ros2_ws/src/zed_components/src/zed_camera/include/zed_camera_one_component.hpp:19:10: fatal error: sl/CameraOne.hpp: No such file or directory
   19 | #include <sl/CameraOne.hpp>
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.

Steps to Reproduce

git clone  --recursive https://github.com/stereolabs/zed-ros2-wrapper.git
./jetson_build_dockerfile_from_sdk_and_l4T_version.sh l4t-r35.4.1 zedsdk4.1.2

Expected Result
The compilation should be completed without any error
Actual Result
The error is the following:
In file included from /root/ros2_ws/src/zed_components/src/zed_camera/src/zed_camera_one_component.cpp:15:
/root/ros2_ws/src/zed_components/src/zed_camera/include/zed_camera_one_component.hpp:19:10: fatal error: sl/CameraOne.hpp: No such file or directory
   19 | #include <sl/CameraOne.hpp>
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.

ZED Camera model
ZED2i
Environment
OS: Ubuntu 20.04.6 LTS
GPU: Nvidia Jetson Xavier

Anything else?
No response

Zed SDK V4.2.2 is required

Zed SDK V4.2.2 is required

Thank you, error resolved.
Could be useful to update the readme of the example with the last version of the SDK.


Show diffs in log if force is set to true

After using force feature from #10 in my migrations I thought it would be nice to include plan diffs in log output so you can see what changes have been applied after applying migration with force true

@syndicut Thanks! Released in v0.2.2 🚀


'Go to Definition' not working

From @oleksandr17 on October 3, 2018 14:14
Issue Type: Bug
It's quite annoying problem 'Definition is not found'. I can't easily refer to third party packages and in some cases to my own files. I think because of sometimes autocompletion also doesn't work.
VS Code version: Code 1.27.2 (f46c4c469d6e6d8c46f268d1553c5dc4b475840f, 2018-09-12T07:04:11.329Z)
OS version: Darwin x64 18.0.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz (8 x 2900)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: enabledrasterization: enabledvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
2, 2, 2

Memory (System)
16.00GB (0.56GB free)

Process Argv
/Applications/Visual Studio Code.app/Contents/MacOS/Electron

Screen Reader
no

VM
0%

Extensions (8)

Extension
Author (truncated)
Version

githistory
don
0.4.3

dotenv
mik
1.0.1

prettify-json
moh
0.0.3

python
ms-
2018.8.0

vsliveshare
ms-
0.3.735

python
tht
0.2.3

vscodeintellicode
Vis
1.0.4

markdown-all-in-one
yzh
1.6.0

Copied from original issue: Microsoft/vscode#59901

@oleksandr17 Please could you:

Install the latest development version of the extension from here: https://github.com/Microsoft/vscode-python/blob/master/CONTRIBUTING.md#development-build
Go into your settings.json file and add the following setting:
""python.jediEnabled": false,

Once done, please let me know whether it resolves the issues you have encountered.

Problem is still left.
Here are some more details about my problem.
I have virtual environment in venv folder. VSC found it - I can see it in bottom blue status bar, path is correct.
I use django framework in my project.
I have custom model called MyModel. I also have the following line of code:
MyModel.objects.bulk_create(items)

If I use 'Go to definition' feature on the bulk_create method - nothing happens. VSC doesn't open source code file.

Closing in favor of https://github.com/Microsoft/vscode-python/issues/2271


feat: Update App Exit Handling

:tada: This PR is included in version 1.5.0-dev.7 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

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


memleak exceed int range when using heap-checker

when i use heap-checker, if memleak exceed int range, the result is 0
so i change the type bytes to size_t，please review this commit, thx ~
#1307

Thanks for the patch. Applied and closing.


encoding: add ScalarMarshaler and ScalarUnmarshaler

There are often types that are fundamentally opaque wrappers around a scalar type. One such example is atomic.Bool and friends. In order to get these types to operate well with serialization libraries, they would need to implement one of the Marshaler or Unmarshaler interfaces (see #54582).
The current interfaces in the "encoding" package fall short:

encoding.TextMarshaler and encoding.TextUnmarshaler only treat the type as if it were a string, and so can't natively represent a boolean or number.
json.Marshaler and json.Unmarshaler is specific to JSON, which means that only "encoding/json" benefits and not other encoding libraries (in stdlib such as "encoding/xml" or third-party packages).
The MarshalText or MarshalJSON always allocates, which is rather heavy-weight for something that is encoding a scalar.

To work around these detriments, I propose the addition of the following interface into the "encoding" package:
type ScalarMarshaler[T bool | int64 | uint64 | float64 | complex128] interface {
    MarshalScalar() (T, error)
}
type ScalarUnmarshaler[T bool | int64 | uint64 | float64 | complex128] interface {
    UnmarshalScalar(T) error
}

The type list specifies exactly 5 types, which matches the superset kind of all the scalar kinds in Go:

int8, int16, int32, int, etc. are not included since they can be represented as int64. When unmarshaling, the implementation can return an error if the provided int64 is out of range.
We do not declare the constraint as using the underlying kind (i.e., not ~bool | ~int64 | ~uint64 | ~float64 | ~complex128) to keep the possible set of concrete interfaces a finite set that encoding packages can actually check for.
string is not included because 1) a string is technically not a "scalar" type in that it can represent an infinite number of values, while scalar pertains to a finite set of possible values (i.e., following some scale), and 2) because we already provide TextMarshaler and TextUnmarshaler, which are more or less the same thing.

Many serialization formats have first-class support booleans and various numeric types, so this interface provides a way to express that fact.
It is a feature (not a bug) that the 5 possible representations of this interface all use the same method name. That is, for a given type, it can only choose to implement scalar representation for one of the scalar kinds. We do not need to worry what happens when a type implements both MarshalScalar() (int64, error) and MarshalScalar() (float64, error) at the same time.
If MarshalJSON and MarshalText and MarshalScalar are all present, it is the discretion of the encoding package to choose the precedence order. I recommend MarshalJSON taking precedence over MarshalText, taking precedence over MarshalScalar.
It is up to an encoding package to decide which of the scalar kinds it wants to support. For example, "encoding/json" would support scalar marshaling for bool, int64, uint64, and float64, but reject complex128 since JSON has no representation of complex numbers. This matches the existing "encoding/json" behavior where it can't serialize complex128.
\cc @johanbrandhorst @mvdan

A search through all public modules known by the module proxy showed no implementations of the MarshalScalar and UnmarshalScalar methods, so there should be no backwards compatibility concerns.

Overall the proposal sounds like a good idea to me. The only surprising aspect is that MarshalText would usually take precedence over MarshalScalar. If I have a type which could marshal itself as either an integer or a string, I don't think I could implement both methods correctly, as one would always win.
I guess I could instead implement MarshalJSON, but that is specific to a single encoding format.

The only surprising aspect is that MarshalText would usually take precedence over MarshalScalar.

I think that's up to the encoding package in question. The proposal seems to just be suggesting that precedence for the encoding/json package specifically.

Whichever way the precedence ends up between the two, I think implementing the case I mention above with MarshalText and MarshalScalar would not be possible. Maybe that limitation by design is fine - I am simply pointing it out.

In my original proposal I argued against the inclusion of sub-64-bit integers since the value can be represented by the larger bit-width kind. However, allowing smaller bit widths may be helpful for formats that encode smaller width integers differently and we should consider those cases.
Analysis:

Almost every text-based encoding in existence permits formatting numbers in decimal, where the exact bit-width is not directly expressed (i.e., you cannot distinguish between a 0 that came from an int8 versus a 0 from an int64).
Any binary encodings that use arbitrary precision integers (e.g., varints) are not affected.

Examples: protocol buffers, CBOR, MessagePack, Avro, ASN.1.

Any binary encodings that use fixed-width representation are affected.

Examples: BSON, Thrift, FlatBuffers, D-Bus.

Thus, there is some utility in supporting the smaller-width numeric kinds (e.g., int8, int16, int32, etc.). However, it is unclear whether the benefit is worth the complexity. Adding various bit widths will expand the set of scalar types by 8 (i.e., int8, int16, int32, uint8, uint16, uint32, float32, complex64). This will greatly increase the complexity of encoding libraries that need to check for these.
If we don't expose the width here, that information can always be exposed in a side-channel mechanism. For example:
type MyStruct struct {
    NumProcessed atomic.Int32 `bson:",int32"`
}

I'm still in favor of excluding the smaller width types, but wanted to call this caveat out.

This proposal has been added to the active column of the proposals project
and will now be reviewed at the weekly proposal review meetings.
— rsc for the proposal review group

I'm still in favor of excluding the smaller width types, but wanted to call this caveat out.

I wonder, can we decide to add sub-64-bit integer types later? It's not clear to me whether that would be considered a breaking change given the type parameter.

I think we should deliberately stay silent on the issue and leave it to each encoding package to decide what is best.

That sounds like the right choice to me. As an implementer, I want to offer the encoding methods which makes sense for my type. I don't want to dictate which one should always be used over another. An encoding package can inspect which methods I implement and make a reasonable decision about which one to use, like yous ay.

I wonder, can we decide to add sub-64-bit integer types later? It's not clear to me whether that would be considered a breaking change given the type parameter.

I'm not sure, but I think so?
\cc @ianlancetaylor

The only fashion by which constraints containing union elements are contravariant with their constituents is in the operation set. I.e., if adding a type to a union element creates a smaller operation set, then programs using that constraint can break. There are two reasons why this doesn't apply here:

The constraint isn't given an exported name, so no other code can actually vary with the union. Programs which want to be generic over all types implementing the proposed interfaces need to list the constraints again themselves, but adding to our list doesn't affect theirs.
Because bool is included, the operation set is already close to minimal. The only operation supported by both bool and any numeric type is comparison, which is supported by every numeric type. So, adding another numeric type can't change the operation set.

If we remove both of these properties, it is possible to write a program which fails to compile when adding another type to the union: https://go.dev/play/p/fbi6-RzzspL

I agree that in a case like this adding additional terms to the type union in the constraint should be fine.

@rsc Technically speaking adding them to the marshalers would be a backwards incompatible change, as types (not just in the stdlib) currently could have those methods and would then change how they are encoded.
Mayhaps something like json.Decoder.UseNumber? That would be strictly backwards compatible and allow to implement the interfaces for types in the stdlib.
Or we ignore the theoretical breakages in lieu of evidence of practical ones.

Also, is encoding/json really going to do 10 extra dynamic interface satisfaction checks on every value it marshals and unmarshals? Will we notice the expense?

I think encoding/json can do one check if a method of the name exists and only do the interface-satisfaction check in that case.

@Merovius, per https://github.com/golang/go/issues/56235#issuecomment-1279423011, there were no detected methods of the proposed name according to all code known by the module proxy.

I think encoding/json can do one check if a method of the name exists and only do the interface-satisfaction check in that case.

That's my plan for implementing this. The marshal path for "json" already has a sync.Map that keys from reflect.Type to encoder functions. There's an open issue to do the equivalent for unmarshal (#16212).

@dsnet Fair enough (Next time I chide someone for not reading the entire discussion before commenting, feel free to remind me of this 🤦)

No worries at all. The throughput of comments on golang/go issues and discussions is astonishing and unreasonable to expect every person to be at the same level of state.

Moving this to likely accept, but it seems like we should wait for Go 1.21 to make sure we land the encoder updates and the new implementations of these methods together.

we should wait for Go 1.21 to make sure we land the encoder updates and the new implementations of these methods together.

Agreed.
To be clear, acceptance of this proposal implies concurrent support within relevant "encoding/..." packages?
This would include the following packages:

"encoding/json"
"encoding/xml"
"encoding/gob"

It is unclear whether to add support in "encoding/asn1" since that package currently does not support encoding.BinaryMarshaler or encoding.TextMarshaler even though there are clear use-cases for it. It seems odd to partial support for some encoding interfaces rather than others.

Based on the discussion above, this proposal seems like a likely accept.
— rsc for the proposal review group

No change in consensus, so accepted. 🎉
This issue now tracks the work of implementing the proposal.
— rsc for the proposal review group

I find this proposal valuable and didn't see any open CLs mentioned here, so I sent in CL 553175 defining the interfaces and CL 553176 implementing their use in encoding/json. I can do the same for encoding/xml and encoding/gob soon.


WebException: Unable to complete handshake with the server due to an error: Handshake was canceled

Hello,
We are currently using .Netcore.SignalR version 1.1.0 both on our external server and in our Unity game on client side.
We have everything working on PC platform with scripting backend IL2CPP, however when we build for PS4 after 15 seconds of connecting we are getting an error stating that handshake with our server was canceled:
"HubException: Unable to complete handshake with the server due to an error: Handshake was canceled."
That's really weird situation, because regular build with IL2CPP scripting backend on PC works fine, so we think that it is something platform specific that is stopping us from connecting with our server.
I didn't find any information about using real-time communication using SignalR on PS4. Are there any limitations of this solution we are not aware of?
If anyone knows how to fix this issue we would be very grateful.
Thanks very much

This is not a scenario we have ever tried so you're more of an expert in it than we are.
The best we can offer is tips on debugging the issue.
Try to get a network trace and client + server logs. The handshake canceled error you're seeing is from the server, saying that the client didn't send a handshake response within 15 seconds. So you should check to see if the client has sent the handshake, and if it has, was it the correct payload or did it send the incorrect payload. And did the server receive the handshake if the client did send it?

Our docs have some information about how to collect logs and diagnostic info. I'm not sure how well they will transfer to running on PS4 :).
https://docs.microsoft.com/en-us/aspnet/core/signalr/diagnostics?view=aspnetcore-2.2

Hello,
Thank You for your help, we've finally managed to resolve our issue. After analysing Wireshark capture it turned out that the handshake packets are send to server, however it takes about 21 seconds on Playstation4 to fully connect with the Hub. By default in .Netcore SignalR handshake timeout is set to 15 seconds. After setting timeout time to a little bit bigger value everything works as it should.
Regards,
Marcin

That's good to know! Thanks for the update :). I'll close this for now. I don't think we want to update our default timeout right now, but it's good to know that updating that config works for you! If you run in to anything that we could do to make things work better, let us know!


Groups photo icon fails to update

Description of the bug
When uploading a photo to be the icon of a group, the upload it possible but the changes are not reflected when the changes are saved.
Steps to reproduce the bug:

Go to [https://www.hydroshare.org/group/250]
Click on 'Owner settings
Scroll down to add a photo
attempt upload, see failure

Expected behavior
should upload the photo and display it on the landing page.
Additional information
Bug noticed by Dan Ames

Tested locally, works as expected

Looking into explanation...

From what I can tell, group images (along with community images) were broken when we upgraded our STATIC settings in 2.0 release
https://github.com/hydroshare/hydroshare/issues/4738

scratch that, this is an undocumented issue with sorl-thumbnail due to Pillow version.
Dropping Pillow back to 9.3.0
https://github.com/hydroshare/hs_docker_base/commit/7a6c5814f1117bb935b3c2569b93167470ec140b


Issue#719: Updated var to const/let

Updated var declarations to use const or let instead.
Added strict mode to file.

@ael-mas how is this coming?  Any update?

@ael-mas did you want this PR closed in favour of the new one you opened?

The new one should have the correct variable declarations using const instead of let. Apologies if I didn't modify my original changes properly on github.

OK, no problem.  Closing in favour of #741.  In future, you can just make more commits and push to your same branch, and it will add to/update an existing PR vs. making a new one.


PyBoard. @mantonelli do you need help?

Hi @mantonelli,
We noticed that you started working on PyBoard.
But you seem you to have stopped.
Send us and email on<EMAIL_ADDRESS>We will be glad to help you.
Thanks.

According https://micropython.org/ https://github.com/micropython/micropython/ and https://github.com/micropython/pyboard
it's working on Python 3 so we should probably first need to have a Python 2/3 support.


chore: refactor build script and automate release

Summary

Adding a release workflow to GitHub Actions to publish the built artifacts to Maven Central.

Checklist

[ ] Documentation (if necessary)
[ ] Tests (if necessary)
[ ] Ready to be merged

@faustbrian We need to setup a few secrets that are required for publishing (basically the mvn central credentails)

[ ] Set secrets before merging


UploadFile  Error 501 - Qualifier Too Long

FTP OS: IBM z/OS
FTP Server: IBM z/OS
Computer OS: Windows 8
<write details about your bug report / feature request here>
Server requires that I upload a zip file named specifically 'MFO900.MKTPPDT.CCR.BUY8483.IZCCRTXN(+1)', including the ticks.  Filezilla saves the file with a unique name (replacing the (+1).  But my app gets an error 501 (Qualifier too long.)
Logs :
# Connect()
Status:   Connecting to <IP_ADDRESS>:990
Status:   FTPS Authentication Successful
Status:   Time to activate encryption: 0h 0m 0s.  Total Seconds: 0.213011.
Response: 220-FTPD1 IBM FTP CS V2R3 at nccsysb.nitc.usda.gov, 16:51:54 on 2019-12-12.
Response: 220 Connection will close if idle for more than 10 minutes.
Command:  USER CW0091
Response: 331 Send password please.
Command:  PASS ***
Response: 230 CW0091 is logged on.  Working directory is "CW0091.".
Command:  PBSZ 0
Response: 200 Protection buffer size accepted
Command:  PROT P
Response: 200 Data connection protection set to private
Command:  FEAT
Response: 211- Extensions supported
Response: AUTH TLS
Response: PBSZ
Response: PROT
Response: 211 End
Status:   Text encoding: System.Text.ASCIIEncoding
Command:  SYST
Response: 215 MVS is the operating system of this server. FTP Server is running on z/OS.
Warning:  Cannot auto-detect listing parser for system 'Unknown', using Unix parser

# GetWorkingDirectory()
Command:  PWD
Response: 257 "'CW0091.'" is working directory.

# UploadFile("C:\Users\David\Documents\BSLOCALCOPS.zip", "'MFO900.MKTPPDT.CCR.BUY8483.IZCCRTXN(+1)'", Overwrite, False, None)

# FileExists("'MFO900.MKTPPDT.CCR.BUY8483.IZCCRTXN(+1)'")

# GetWorkingDirectory()
Command:  PWD
Response: 257 "'CW0091.'" is working directory.

# GetNameListing("'CW0091.'")

# GetWorkingDirectory()
Command:  PWD
Response: 257 "'CW0091.'" is working directory.
Command:  TYPE I
Response: 200 Representation type is Image

# OpenPassiveDataStream(EPSV, "NLST 'CW0091.'/'CW0091.'", 0)
Command:  EPSV
Response: 229 Entering Extended Passive Mode (|||50020|)
Status:   Connecting to <IP_ADDRESS>:50020
Command:  NLST 'CW0091.'/'CW0091.'

# Dispose()
Status:   Disposing FtpClient object...
Status:   Disposing FtpSocketStream...
Response: 501 Qualifier too long.  Use MVS naming conventions.
Status:   Disposing FtpSocketStream...

# CloseDataStream()
Exception thrown: 'FluentFTP.FtpException' in FluentFTP.dll
Command:  QUIT
Response: 221 Quit command received. Goodbye.
Status:   Disposing FtpSocketStream...

I'm sure you don't need the ticks.

Similar : https://github.com/robinrodricks/FluentFTP/issues/423

Hi @robinrodricks , Does this fixed. Because i'm facing same problem as @3RiversCotton .
@3RiversCotton did you have any solution mate?

'MFO900.MKTPPDT.CCR.BUY8483.IZCCRTXN(+1)'

This is GDG Filename (Generation Data Group). The +1 increments a file counter automatically. Quite useful but a little esoteric.
With the z/OS server changes made this year, this should work.


Add xms-ids for quantum

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog
Add a changelog entry for this PR by answering the following questions:

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[ ] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[x] Other, please clarify

About this Change
APIs will need to start indicating item uniqueness in arrays. By default, uniqueness is the string property called "id" of items in an array. When that property does not exist, the x-ms-identifiers extension property must be used to specify the identifying property(s) or lack thereof. This pull request is my best guess effort to ease resource providers into the new requirement before it becomes enforced. Compliance and accuracy will need to be owned and maintained by the resource provider going forward.
See https://github.com/Azure/autorest/tree/main/docs/extensions#x-ms-identifiers.
You can also make changes after this PR is checked in. At this point, this annotation is only used by Change Analysis for change computation, so making changes afterwards shouldn’t be a breaking change.

When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month.
When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
If updating an existing version, please select the specific language SDKs and CLIs that must be refreshed after the swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[x] No refresh required for updates in this PR

Contribution checklist:

[x] I commit to follow the Breaking Change Policy of "no breaking changes"
[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

Applicability: :warning:
If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.

Change to data plane APIs
Adding new properties
All removals

Otherwise your PR may be subject to ARM review requirements. Complete the following:

[ ] Check this box if any of the following apply to the PR so that label "WaitForARMFeedback" will be added automatically to begin ARM API Review. Failure to comply may result in delays to the manifest.

Adding a new service
Adding new API(s)
Adding a new API version
-[ ] To review changes efficiently, ensure you are using OpenAPIHub to initialize the PR for adding a new version. More details, refer to the wiki.

[ ] Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If any of the following scenarios apply to the PR, request approval from the Breaking Change Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in a stable version
[ ] Removing properties in a stable version
[ ] Removing API version(s) in a stable version
[ ] Updating API in a stable or public preview version with Breaking Change Validation errors
[ ] Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

Hi @lirenhe, there is only a couple lines change in this file and both of identifiers are fairly intuitive. I wonder if you could help with a code review and merging the PR. This change should not break anything and very low risk as I can see. Please let me know if you have any questions. Thanks!

Hi @LinglingTong, Your PR has some issues. Please fix the CI sequentially by following the order of Avocado, semantic validation, model validation, breaking change, lintDiff. If you have any questions, please post your questions in this channel https://aka.ms/swaggersupport.
Task	How to fix	Priority
Avocado	Fix-Avocado	High
Semantic validation	Fix-SemanticValidation-Error	High
Model validation	Fix-ModelValidation-Error	High
LintDiff	Fix-LintDiff	high
If you need further help, please feedback via swagger feedback.

Looked at the Swagger ModelValidation failure and it is irrelated to my change.


Ctrl-Shift-6 opens a new terminal tab. Instead, I expected this key combination to be sent to the remote Cisco switch I was connected to via WSL/ssh client

Windows Terminal version
latest preview
Windows build number
latest 10
Other Software
WSL1
Steps to reproduce
have more than 5 profiles defined
ctrl-shift-N is by default assigned to start a new tab for the Nth profile
Expected Behavior
I need ctrl-shift-6 to be passed to terminal instead, since this is the key combination that stops the current comand, such a long running ping on a cisco switch
Actual Behavior
opens a new tab with the 6th defined profile

I've been scrolling through all 7 pages of 154 results for "ctrl shift" but haven't been able to identify a duplicate

You can just unbind the key in your settings.


Dissimilar URLs

When tunneling gitea:3000 through SSH port forwarding, some URLs will contain the ROOT_URL. For example, to "bypass" a firewall I ssh to the gitea server itself (ssh port is open but all other ports are blocked).  I add the following to my .ssh/config:
LocalForward 3000 <IP_ADDRESS>:3000

This works for most links presented by gitea but some, such as Issues and Pull Requests, the link contains the ROOT_URL as its base. This results in the browser hanging until timeout, after which I replace the FQDN with localhost, press enter, and continue.
As to asking the firewall group to open port 3000, the answer was no.
Can this be addressed in a future version of gitea?
I did notice this at home when I changed ROOT_URL to a FQDN. Using the short name (as permitted by search in resolv.conf) also exhibited this same problem.
Would you recommend using gitea behind a nginx reverse proxy instead?

It's impossible. See

https://github.com/go-gitea/gitea/pull/18971

I opened a new issue for the root problem.

https://github.com/go-gitea/gitea/issues/19345


refactor(esl-event-listener): internal API and structure cleanup for esl-event-listener module

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Sidebar nav - toggle context menus for each app / profile view

Changed menu style, no longer need this


AllowAdditionalProperties does not produce json schema accordingly

Hi,
I'm trying to validate a complex json and I want to allow additional properties, so:
var schema = await JsonSchema4.FromTypeAsync<T>(new JsonSchemaGeneratorSettings { FlattenInheritanceHierarchy = true });
schema.AllowAdditionalProperties = true;
var schemaData = schema.ToJson();

I still got "additionalProperties": false in the generated json. Now I've hacked it like this in order to make it work:
schemaData.Replace("\"additionalProperties\": false", "\"additionalProperties\": true");

schema.AllowAdditionalProperties = true;
only sets the property on the root schema not on all schemas, did you consider that?

I didn't know that, is there a way to set this property in order to be applied in the whole hierarchy?

Are you looking for this new setting?
https://github.com/RicoSuter/NJsonSchema/pull/981

I'm using 9.13.37, not sure if can upgrade to 10.x. Is that something you could backport to 9.x?

Are you using it with nswag?

Nope, just validating some json strings mapped to DTO classes

Whats holding you back to use v10?

Since I'm on .net 4.6.2 I didn't want to add the dependency on Namotion.Reflection. For now I'll just use the replace trick. I'm closing this issue since it seems not present in the new version 10.x

You can implement this recusively with a custom JsonReferenceVisitor


Failed to deloy Porter chart on KubeSphere

How to reproduce:

Import an App repo:  https://charts.kubesphere.io/test

Deploy Porter from App Template in a demo project.

Inspect the app status, it shows pending.

The related resources are empty.

I have tried for two times, at first I modified the default namespace porter-system to demo, then I just leave it as porter-system, both are pending.

@zheng1 Any updates on this issue?

@FeynmanZhou  Please try this package https://charts.kubesphere.io/test/porter-0.1.2.tgz

@FeynmanZhou Please try this package https://charts.kubesphere.io/test/porter-0.1.2.tgz

okay, let me test it and give feedback later

verified


Create report with non-intersection volume per extraction site

Need this format:

extraction_site_id
total_intersection_percentage
number_of_AS_collisions
non_intersection_volume

IRI for extraction site
sum of percentages with all collision items
unique UBERON IDs/FMA IDs in mesh collisions
1-total_intersection_percentage

Shared report via https://github.com/cns-iu/hra-cell-type-populations-supporting-information/blob/main/validations/rui_ctann/rui_ctann_validation.ipynb, see end


Add new Japanese translations

This PR/Translation is about #161.
files translated:

[ ] def/ja/menu_darwin.cson
[ ] def/ja/menu_linux.cson
[x] def/ja/menu_win32.cson
[ ] def/template/menu_darwin.cson
[ ] def/template/menu_linux.cson
[x] def/template/menu_win32.cson

validation

[x] I've validated my translation locally by running

npm run validation -- --locale ja

@Umoxfo thanks for your great contribution 🙇
Added translation is currently in Atom beta version 1.25.
May take a while to get merged...
Currently in travis test, keys of cson files should be consistent among all locales.
Would like to help with me by adding changes of template/menu_win32.cson
to all locales (def/*/menu_win32.cson)?


feat(deps): Move some deps to devDeps

Since babel package is not used by production.

@Saviio

Thanks @bjmin.

Doing this just because babel mess up some dep tree, lol 😃

Works for me. :tada:


Nativescript Page Issue

Hi. I am using  Nativescript 6 and angular for my project. The issue is My project contains 2 pages fron radsidedrawer one is Newsfeed Page and browse. Page.,
In newsfeed page I am getting the documents from firebase firestore in ngOnInit() function.whenever i go to the browse page and return back to the newsfeed page it again getting the documents from firebase which increase documents read value.
Is there a way to save last page state so that the view will be constant whenever i visit the page.

Hi, @Vinaykummar,
I've checked your case in a sample project and the ngOnInit event should be triggered only when you've navigated to the Newsfeed page. When you are making back navigation, the event will not be fired. On that matter, perhaps the second document download is triggered by something else. I am not aware of the implementation of the firebase download functionality in your project. However, you can try adding a flag in your code that ensures that files will be downloaded only on the first load of the page. The state of the page should be restored automatically when you navigate back to the page.


Add a script to automatically generate the snippet files

I used this to generate the snippet updates in #1.
It uses npm to install lodash-cli, because I couldn't figure out a simpler way to gather lodash's collections and functions, then runs a bash script to generate the snippet files.
I love this package. Thank you for making it.

same as what i told you before :( my bad.
i used a script in JS, that for some reason only now i've added after updated it to support v4.
anyway, i'm adding you as a contributor.

i'm meant Collaborator


Question: Where to download polymod haxelib?

What is your question?
I'm trying to compile the mod so I can play it on Linux, but when I use $ lime test linux -debug, I get this output:
Error: Could not find haxelib "polymod", does it need to be installed?

I tried $ haxelib install polymod, but it says Error: Failed with error: No such Project : polymod. Where could I get polymod or how could I compile without having to get it?

Apparently I have to download it through git, resolved!


Configure Azure Pipelines

This pipeline configuration builds the application and produces a build for the Release configuration.

 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.:x: dvankleef sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


Hotfix 0.1.14

@ndr-brt You're right - My fault, sorry. Closing this as the cherry-pick also was faulty somehow...
Would you mind creating a hotfix branch (starting from the main branch called hotfix/0.1.4) covering your three commits of multiple-bpn-constraint?


MPR rendering "black line"

Hi there,
I noticed a but with the MPR mode.
In the MPR there is a single voxel line that apear in each view, it maybe be partial or full lenght.
See in the attached capture, taken from the OHIF demo server, I took the capture during volume loading and it is more visible (see the vertical line in the middle image). This line stays visible after full volume loaded.
Best regards,
Salim

We've seen this one as well and don't have a good answer for it yet. It seems intermittent and maybe depends on browser zoom scale and the exact rotation of the volume.

Souds like the bug is gone in the last version isn't it ?
By the way, is there any plan to add Zoom / Pan to this MPR view ?
Salim

Oh. That's interesting. I don't see it anymore either. Likely a side effect of one of @JamesAPetts recent changes?

No idea, since we didn't know what caused it in the first place. Maybe the issue isn't present in the new parallel projection routes the shader takes 🤔 . Lets see if it pops up again. Did you have an easy way to reproduce the problem which is now fixed previously @dannyrb ?

I'll close this for now. It may be present when we get to volume rendering as we'll be using the perspective camera again for that, we'll see. 👍


Fix ActiveStorageLoader example

Hi guys!
Unless I'm missing something (which I might be) this comment is inconsistent with the class name
@leighhalliday
@dylanahsmith

@letiesperon thanks for the fix. You'll need to Sign the CLA to have your PR reviewed and merged.

@swalkinshaw thanks! done


FilterMusic has false positives in documents with tables

Environment

Tesseract Version: v4 commit number ebbfc3ae8df85c351002000a76900e3086375e7b
Platform: Darwin 17.3.0 Darwin Kernel Version 17.3.0: Thu Nov  9 18:09:22 PST 2017; root:xnu-4570.31.3~1/RELEASE_X86_64 x86_64

Current Behavior:
The table header and parts of the cell contents are not recognized due to the binarized version of the document having critical parts of the table removed.

Expected Behavior:
If you disable FilterMusic, it works fine.

Suggested Fix:
It's not clear to me what the motivation was for trying to find and identify sheet music. Is it possibly for the table detector? If so, given that the table detection is fairly poor anyways and the extraction isn't complete, I'd suggest just removing this music filter code. Alternately, maybe expose an option to disable it?

Now it is possible to use pageseg_apply_music_mask e.g. with -c pageseg_apply_music_mask=0

I wonder whether the current default is reasonable. If most documents give better results when this parameter is false, then that should be the default.

IMO it will need more investigations:

regarding tables - PR 2732 seems to be still just part solution (some lines are removed in tables)
maybe current setup helps in other kind of documents - it should be tested on wider range of documents (unfortunately we do not have such test base at the moment). I have internal info from developer that use tesseract in thousands of docs and their experience is that if you "fix" page segmentation on one type of document - you break it on other types. So they suggest to be very careful when playing with page segmentation. BTW: they recognize tesseract page segmentation as best available opensouce general page segmentation library...

I've just come across this through a lot of painful debugging of table-rich images. I had never heard of pageseg_apply_music_mask until I found it in the code – it kind of smiled back at me and said "I'm all here!".
@stweil @zdenop IMO tables are much more important/prevalent than music sheets, and for the latter you'd probably need better/specialized software anyway. So I would argue the default should be changed. In the very least, this should be well documented and made more visible (perhaps by shipping a config file for it).
BTW, the other problem with line detection (there's more of course) seems to be the proximity between separators and text in low-density images – this is even harder than the music/not-music decision, because you can easily get false positive horizontal or vertical lines in normal text. (Pragmatically you can upsample such images as a workaround, therefore perhaps the code can be made more robust by using additional filters or optimise some parameters...)
Here's an example that also shows how naive the music sheet detection is:

So I would argue the default should be changed. In the very least, this should be well documented and made more visible (perhaps by shipping a config file for it).

Also, I don't think simply suppressing the staves is the correct thing to do. They should (also) be polygonalized and used as partitions during layout analysis, to be presented as (special) regions (perhaps even with text lines in between). But I guess that is a separate issue already.

@bertsky Interesting. The false positive glyphs in the mask are all connected to the horizontal separators. This does not look like a binarisation problem or "overinking". Looks more like caused by morphological transformation that connects glyphs horizontal and vertical too much. Maybe an internal parameter.
See the rectangular shape of the connections:

So I would argue the default should be changed.

I agree, see the comment above which I wrote two years ago. We could not do that for Tesseract 4 for compatibility reasons, but we are free to do it now for Tesseract 5.

I agree, see the comment above which I wrote two years ago. We could not do that for Tesseract 4 for compatibility reasons, but we are free to do it now for Tesseract 5.

Splendid. Let's do it then! Is there any documentation regarding staff detection which would neet to be changed?
(Also, the additional aspects of how to provide a useful API for the music regions, and fix the above seen false positives, should be tracked in a separate issue...)


ProofNet Autoformalization (Eval Task)

I'll take this one 👍

Some examples with pythia-1.4b-deduped:
Informalization:

Formalization:

A couple notes:

We are using randomly sampled examples in the few-shot prompt (standard in the LM harness), instead of a fixed prompt like in the paper. In terms of the prompt content, one difference is that the name of each theorem is exercise_{X}_{Y}_{Z} in the examples, versus a 'more semantic' name in the paper's prompt (e.g. linear_independent_of_is_Ortho).
It's computing BLEU score on tokenized sequences, using the galactica tokenizer. Of course, there is still no guarantee of a correlation with correctness, but perhaps it is less noisy than computing BLEU on whitespace-tokenized sequences. We could also take this out. I'll see if BLEU score at least shows the ordering that we expect with increased scale.

I am currently working on a Lean 4 version of ProofNet. Because there now exist Python bindings for Lean 4, we will be able to automatically evaluate typechecking from our harness fork.
Correctness will still have to be checked manually.

For informalization, added an experimental gpt-based correctness evaluation (https://github.com/wellecks/lm-evaluation-harness/pull/4).

Solved by wellecks/lm-evaluation-harness#4


FR button on date and time select - "Abandonner"

Discrepancy on https://staging.covid-hcportal.cdssandbox.xyz/fr/outbreaks/98b6369c-18fa-42fd-b789-90bac001edd5/datetime
Détails de l'exposition
Figma: https://www.figma.com/file/znPqLTQQDcUkaNjdDcShiz/Exposure-Notification-Health-Portal?node-id=9627%3A3
Abandonner

Pull Request for this issue has been created - https://github.com/cds-snc/covid-alert-portal/pull/733

Merged in stage and production.


Ruby 3

Goal
Confirm support of the latest versions of Ruby by testing against them.
Approach

Added latest versions of Ruby 2.7, 3.0.
Updated copyright.
Ran rubocop -a.

Notes
Keeping this open until we're ready to bump versions.

Coverage remained the same at 100.0% when pulling 53c45dedb7643cbf68437032a4b4bc7e893fd1ad on ruby-3 into b26fd4297f6de8cabd901263c8f431faef127f80 on master.

Obviated by https://github.com/ivanoblomov/google_maps_geocoder/pull/25.

Obviated by https://github.com/ivanoblomov/google_maps_geocoder/pull/25.


python38Packages.pymatgen: 2022.0.12 -> 2022.0.14

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python38Packages.pymatgen is: "A robust materials analysis code that defines core object representations for structures and molecules"
meta.homepage for python38Packages.pymatgen is: "https://pymatgen.org/"
meta.changelog for python38Packages.pymatgen is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

Warning: no invocation of /nix/store/jc1p76n49v4pl4hz2qd7yhjxr4008xwx-python3.8-pymatgen-2022.0.14/bin/feff_plot_cross_section had a zero exit code or showed the expected version

/nix/store/jc1p76n49v4pl4hz2qd7yhjxr4008xwx-python3.8-pymatgen-2022.0.14/bin/feff_plot_dos passed the binary check.

/nix/store/jc1p76n49v4pl4hz2qd7yhjxr4008xwx-python3.8-pymatgen-2022.0.14/bin/gaussian_analyzer passed the binary check.

/nix/store/jc1p76n49v4pl4hz2qd7yhjxr4008xwx-python3.8-pymatgen-2022.0.14/bin/get_environment passed the binary check.

/nix/store/jc1p76n49v4pl4hz2qd7yhjxr4008xwx-python3.8-pymatgen-2022.0.14/bin/pmg passed the binary check.

Warning: no invocation of /nix/store/jc1p76n49v4pl4hz2qd7yhjxr4008xwx-python3.8-pymatgen-2022.0.14/bin/.feff_plot_cross_section-wrapped had a zero exit code or showed the expected version

/nix/store/jc1p76n49v4pl4hz2qd7yhjxr4008xwx-python3.8-pymatgen-2022.0.14/bin/.feff_plot_dos-wrapped passed the binary check.

/nix/store/jc1p76n49v4pl4hz2qd7yhjxr4008xwx-python3.8-pymatgen-2022.0.14/bin/.gaussian_analyzer-wrapped passed the binary check.

/nix/store/jc1p76n49v4pl4hz2qd7yhjxr4008xwx-python3.8-pymatgen-2022.0.14/bin/.get_environment-wrapped passed the binary check.

/nix/store/jc1p76n49v4pl4hz2qd7yhjxr4008xwx-python3.8-pymatgen-2022.0.14/bin/.pmg-wrapped passed the binary check.

6 of 10 passed binary check by having a zero exit code.

4 of 10 passed binary check by having the new version present in output.

found 2022.0.14 with grep in /nix/store/jc1p76n49v4pl4hz2qd7yhjxr4008xwx-python3.8-pymatgen-2022.0.14

found 2022.0.14 in filename of file in /nix/store/jc1p76n49v4pl4hz2qd7yhjxr4008xwx-python3.8-pymatgen-2022.0.14

directory tree listing: https://gist.github.com/efaad1f0b2d8cf4f2ebb10f9588bcea2

du listing: https://gist.github.com/d9fb0103532358ac6531d33361b08aea

Rebuild report (if merged into master) (click to expand)

32 total rebuild path(s)

8 package rebuild(s)

8 x86_64-linux rebuild(s)
8 i686-linux rebuild(s)
8 x86_64-darwin rebuild(s)
8 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
python38Packages.castepxbin
python38Packages.pymatgen
python38Packages.pymatgen-lammps
python38Packages.sumo
python39Packages.castepxbin
python39Packages.pymatgen
python39Packages.pymatgen-lammps
python39Packages.sumo

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/jc1p76n49v4pl4hz2qd7yhjxr4008xwx-python3.8-pymatgen-2022.0.14 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python38Packages.pymatgen https://github.com/r-ryantm/nixpkgs/archive/d2ae043202c50efbe8ecca61f2e1b308e846a813.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/jc1p76n49v4pl4hz2qd7yhjxr4008xwx-python3.8-pymatgen-2022.0.14
ls -la /nix/store/jc1p76n49v4pl4hz2qd7yhjxr4008xwx-python3.8-pymatgen-2022.0.14/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages marked as broken and skipped:

python38Packages.pymatgen-lammps
python39Packages.pymatgen-lammps

6 packages built:

python38Packages.castepxbin
python38Packages.pymatgen
python38Packages.sumo
python39Packages.castepxbin
python39Packages.pymatgen
python39Packages.sumo

Maintainer pings
cc @PsyanticY for testing.

Result of nixpkgs-review pr 139229 at d2ae0432 run on aarch64-linux 1

2 packages failed to build:

python38Packages.pymatgen-lammps
python39Packages.pymatgen-lammps

2 packages skipped due to time constraints:

python38Packages.sumo
python39Packages.sumo

4 packages built successfully:

python38Packages.castepxbin
python38Packages.pymatgen
python39Packages.castepxbin
python39Packages.pymatgen

Note that build failures may predate this PR, and could be nondeterministic or hardware dependent.
Please exercise your independent judgement. Does something look off? Please file an issue or reach out on IRC.


Merge pull request #1 from EddieHubCommunity/main

pull

Fixes Issue

Changes proposed

Check List (Check all the applicable boxes)

[ ] My code follows the code style of this project.
[ ] My change requires changes to the documentation.
[ ] I have updated the documentation accordingly.
[ ] All new and existing tests passed.
[ ] This PR does not contain plagiarized content.
[ ] The title of my pull request is a short description of the requested changes.

Screenshots

Note to reviewers

There are no files changed in this PR so I will be closing this.  Please raise a new PR with any changes you need.


azure: Switch to Azure Resource Manager from classic manager

Tian could you rebase? This conflicts with master at the moment

Also the commit message seems not to be word wrapped.  Should be wrapped to 70 characters.

And, don't put issue numbers in the commit messages


Use node 16.5 for frontend testing instead of node:16

Jest does not appear to work on the latest node 16.6.0 and fails with an inscrutable
message.
I have been unable to work out what the problem is. This PR forcibly uses node 16.5 everywhere instead of node 16
Signed-off-by: Andrew Thornton<EMAIL_ADDRESS>

Ah it might be something to do with webpack

npx webpack
[webpack-cli] Failed to load '/home/andrew/src/go/gitea/webpack.config.js' config
[webpack-cli] TypeError: String.prototype.startsWith called on null or undefined
    at startsWith (<anonymous>)
    at node:internal/errors:811:19
    at Array.filter (<anonymous>)
    at node:internal/errors:809:16
    at prepareStackTrace (node:internal/errors:96:12)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1138:38)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (/home/andrew/src/go/gitea/node_modules/v8-compile-cache/v8-compile-cache.js:159:20)
make: *** [Makefile:710: public/js/index.js] Error 2

Codecov Report

Merging #16591 (a4f3c70) into main (72738f0) will decrease coverage by 0.00%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main   #16591      +/-   ##
==========================================
- Coverage   45.35%   45.35%   -0.01%
==========================================
  Files         750      750
  Lines       85096    85096
==========================================
- Hits        38599    38594       -5
- Misses      40252    40255       +3
- Partials     6245     6247       +2

Impacted Files
Coverage Δ

modules/notification/mail/mail.go
35.29% <0.00%> (-2.95%)
:arrow_down:

models/unit.go
41.09% <0.00%> (-2.74%)
:arrow_down:

modules/process/manager.go
72.83% <0.00%> (-2.47%)
:arrow_down:

modules/notification/ui/ui.go
60.86% <0.00%> (-1.45%)
:arrow_down:

models/notification.go
64.97% <0.00%> (-0.89%)
:arrow_down:

models/repo_list.go
76.86% <0.00%> (-0.79%)
:arrow_down:

models/error.go
39.07% <0.00%> (-0.47%)
:arrow_down:

services/pull/pull.go
42.13% <0.00%> (+0.40%)
:arrow_up:

services/pull/check.go
26.20% <0.00%> (+0.68%)
:arrow_up:

services/pull/patch.go
55.93% <0.00%> (+1.69%)
:arrow_up:

... and 2 more

Continue to review full report at Codecov.

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

OK there's a fix in node already regarding this: https://github.com/nodejs/node/pull/39593
But node 16.7.0 has not been released as yet and is unlikely it appears to be released for a little while yet.
I'm not certain what is the best thing to do:

This PR uses 16.5.0 which has a known sec issue - albeit one that doesn't affect us.
#16592 switches us to use node:14 which is the LTS, which does not suffer this problem and should be more stable
Or we leave things and wait for the node release.

In the meantime however we can't release, merge or build until this is sorted out.
Personally I vote for merging this and paying attention to node when it releases 16.7 but if another issue like this occurs we should seriously consider if we want to be running the latest version of node instead of the LTS. I think leaving our CI as broken is not a tolerable situation.

agree - get this in and if something similar pop up use LTS :)


[FEATURE] Database Pojo

Describe the solution you'd like
Create Database Pojos - an implementation of MappedPojo that can be used for a database table, that makes it easy to update info, create the table, etc.
Is your feature request related to a problem? Please describe.
No
Describe alternatives you've considered
None
Additional context
N/A
Changes TODO

[x] Create DatabasePojo interface

[x] String getTableName() - for the name of the database table
[x] String getIDColumnName() - for the name of the ID column in the database
[x] Map<String, ColumnDefinition> getColumnDefs() - for a map of ColumnDefinitions by name for the database
[x] List<ForeignKeyConstraint> getForeignKeys() - default to return an empty List - used if there are foreign keys to be put in the database table
[x] List<String> getSubPojoKeys() - default to return an empty List - used if there are pojos stored in this pojo class
[x] Map<String, String> getSubPojoIDCols() - defaults to return an empty Map - used if there are pojos stored in this pojo class, this maps the subPojoKeys to subPojoIDColumns (if there's a foreign key stored in the main pojo for the sub pojo)
[x] Map<String, Class<? extends DatabasePojo>> getSubPojoTypes() - used if there are pojos stored in this pojo class, this maps the subPojoKeys to the Class the sub pojo is using (for use if we would have to construct a new one)
[x] void addSubPojo(String, DatabasePojo, String, Class<? extends DatabasePojo>, ForeignKeyConstraint) - used if there are pojos stored in this pojo class, will add the given info to the other subPojo items (the subPojoKeys list, setItem for the given pojo, the subPojoIDColumns, the subPojoTypes, and the foreignKeys)
[x] void addColumnDef(ColumnDefinition) - adds the given ColumnDefinition to the Map and sets the columnName item to null
[x] void addColumnDef(ColumnDefinition, Object) - adds the given ColumnDefinition to the Map and sets the columnName item to the given value
[x] void setColumnDefs() - should be called in a pojo class's constructor to set ColumnDefinitions for the pojo
[x] Set<String> getColumnDefKeys() - returns the keys for the columnDefinition Map
[x] ColumnDefinition getColumnDefByKey(String) - returns the ColumnDefinition for the given String columnName
[x] void createTable(Database) - used to create the table in the database for the pojo class
[x] void retrieveValues(Database, boolean) - retrieves values from the database into the pojo using the set ID value based on the IDColumnName - the boolean is used to specify whether to retrieve subpojos or not
[x] void retrieveValues(Database, Object, boolean) - retrieves values from the database into the pojo using the given ID value - the boolean is used to specify whether to retrieve subpojos or not
[x] void storeValues(Database, boolean) - stores values from the pojo into the database based on the ColumnDefinitions - the boolean is used to specify whether to store subpojos or not
[x] List<P> doSearch(Class<P>, boolean) - performs a search using the values in the pojo, the boolean is whether to use values from all subPojos or none
[x] List<P> doSearch(Class<P>, Collection<String>) - performs a search using the values in the pojo, the Strings provided are for subPojoKeys for which subPojos to use values from

[x] Create AbstractDatabasePojo abstract class

Done - please note that the checklist in the description does not 100% match with the actual implementation, as changes were made to the design during development


Implimenting Translation.io

Starting a fresh PR here because I've been wrangling with Github actions with the old one.
Changes made:
replace set_gettext_locale -> set_locale
replace FastGetText -> I18n
add en-CA and fr-CA locales
Fix issues with seeding the database caused by new locale files and checking tables in initializer
Sync with translation.io for latest translations rails translation:sync_readonly DOMAIN=app

Just adding a note here that I've reverted the webdriver to the older version we used for Travis compatibility as I cannot get this new capybara headless one to not run sandboxed and thus it keeps failing locally.
@briri If you had a good reason to swap (you'd made the change with the maDMP work), just let me know and I'll make this configurable w/ a Docker env-variable to swap between the two

ok. I think it's fine to revert to the older version for now.


Improve validate_type_mayadt decorator

In my opinion not only the Python object API has to be sane for humans but also (and maybe even more) the error messages.
There is this validate_type_mayadt decorator which throws a ValueError exception if the given arguments are not of type MayaDT with a somehow insufficient error message. It'd be great if it would actually tell us which operation failed because of the type mismatch.
Which operation failed?
assert (dt1 == dt2) >= 1

I see multiple solutions here:

pass a decorator argument describing the operation: @validate('less than')
get the function name from the func object within the decorator: func.__name__
...

However, point 2 leads to an unhumanized error message because __lt__ would be printed - yes we could argue this exception only occurs due to programming error - It'd favor the first one though.
What do you think?
And the resulting exception should be of type TypeError

A decorated function is slower than the undecorated version, not just because of the extra work it performs, but also because you get an extra level of function call every time you call the decorated function. And that's going to be be really noticeable with comparison functions when you try to perform a sort.
IMHO,  we should remove this decorator and make explicit check within the each comparison.

Explicit checks? Won't we be writing same logic in each function call?

For this case, Performance takes precedence, since we often need to call comparison methods in loops, so they should be as optimized as we can make them.

It'd probably be more efficient to assume the objects being compared are of compatible types, and use try: ... except to deal with incompatible objects.
Python's try: ... except is very fast when the exception isn't actually raised, much faster than the equivalent if-based code. It is even better to use try:...except here.
Will be raising a PR in a while.

Thanks!


An error related to dao appears in the console after logging in

Description
An error appears in the console after logging in to any account.
Untitled_ Jul 26, 2023 4_38 PM.webm
Failed to get proposal: TypeError: Cannot read properties of undefined (reading 'dao')
    at d (dao.ts:43:34)
    at v.getProposal (actions.ts:72:31)
    at Array.<anonymous> (vuex.esm.js:851:23)
    at v.dispatch (vuex.esm.js:516:13)
    at v.dispatch (vuex.esm.js:406:21)
    at a.mounted (VotePopup.vue:15:23)
    at Zt (vue.runtime.esm.js:3017:61)
    at Lr (vue.runtime.esm.js:4031:13)
    at Object.insert (vue.runtime.esm.js:4423:13)
    at T (vue.runtime.esm.js:6942:38)

Steps to reproduce

Navigate to https://dashboard.dev.grid.tf/
Login with your account.
Check the console.

Environment

Network: devnet
Dashboard Version: 2.1.0-rc3

as mentioned in https://github.com/threefoldtech/tfgrid-sdk-ts/issues/838#issuecomment-1647491401 We need to handle it on the client; this is not related to the dashboard, as I understood.


Add github pull request template

Motivation and Context
Having a PR template may help us write better pull requests so they are more informative and easier to review.
What has changed
Added markdown file .github/PULL_REQUEST_TEMPLATE.md for github to generate PR template
How to test?
Open a PR after this change has been merged
Screenshots (if appropriate):
N/A

Good shout @dcdarrell9. Done


Filters in sync_example_bib_app not working - please correct

Hi @AMontagu and @legau ,
I also created a sync version of the bibliography app and tried to add filters as it is described in the new documentation,
but it is not working.
I created a testing notebook to demonstrate the filters:
sync_testing_notebook
Could you please add the correct lines that it is working ? Thanks

Hi @AMontagu,
I updated the sync example according to your hint in the Issue 199:
sync_testing_notebook,
But throws the error:
ValueError: metadata was invalid: ('FILTERS', '{"name_last": "Doe"}')
Do you see, why ?

Hello @markdoerr
Yes metadata is a tuple of tuple. Look here for example: https://github.com/socotecio/django-socio-grpc/blob/master/django_socio_grpc/tests/test_filtering.py#L35

Thanks @AMontagu
for looking into that - it would be nice to understand, what is going wrong there - since I think, I did everything like in the test, I am puzzled, why this error appears.

Hello @markdoerr
I can't launch you jupyter notebook. I am not familiar with it. When launching in the web interface i got:
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
Cell In[1], line 3
      1 import grpc
      2 import json
----> 3 from sync_example_bib_app.grpc import sync_example_bib_app_pb2_grpc, sync_example_bib_app_pb2
      5 from datetime import datetime

ModuleNotFoundError: No module named 'sync_example_bib_app'

Do you know what I need to fo to have the relative import working ? I tried launching the jupyter notebook command in root directory, in backend_sync dir and in backend_sync/jupyter dir without success

@AMontagu,
sorry for the notebook (I thought it is a good way, to document interacting with the code - quite common in academia and data science ;) - for your convenience, I made a simple filter client, showing the same error on my setup.
To run that client, one needs to have the sync_example_bib_app package installed: in a venv install the package with poetry, as described in the repo README. You might need to run pip install -e .  in the sync_example_bib_app aswell, if the "*sync_example_bib_app" is still not on the list of installed packages of pip list. Then I would start a django testserver (after setting the superuser password) and add a view Authors with some similar last names - I used "Doe1", "Doe2", ..., "Hugo". The filter client should only display the authors with a last name starting with "Doe". I hope that helps to reproduce the error.

Jupyter notebook is a good way. I am just not familiar with it so don't know how to make relative import work on it.
Will use the simple filter client.
To info https://github.com/socotecio/django-socio-grpc-example/blob/feature/sync_example_bibliography/README.md#run-the-gprc-client is empty

So @markdoerr,
The issue is that grpc metadata key should be lowercase.
This is a hudge mistake from the doc and the test because we, internally in our api client, make sur that this is always the case and then in the DSG code we make sure it's full uppercase. The tests are passing because we fake the all gRPC network layer and this is the one that need lowercase. Will fix it.
Here is the line that does that: https://github.com/socotecio/django-socio-grpc/blob/master/django_socio_grpc/request_transformer/socio_internal_request.py#L79
Even if I found the issue there is an other issue just after in my side saying:
status = StatusCode.UNIMPLEMENTED
        details = "Method not found!"
        debug_error_string = "UNKNOWN:Error received from peer  {created_time:"2023-10-10T13:17:36.57079005+02:00", grpc_status:12, grpc_message:"Method not found!"}"

But it may come from my docker compose config or any. So I encourage you to test writing the metadata like this and tell me:
metadata = (("filters", (json.dumps(filter_as_dict))),)

I encourage you to stop working on the sync client and focus on the async one for the next example as we really want user to use the async one to avoid production really big issues.

Dear @AMontagu,
I removed the sync branch and moved everything in the async branch, as you proposed.
In there I re-created the filter example, with the new lower spelling "filter", as you suggested, but the filter client just returns all authors, not applying any filter :(   (filter client still talks sync, but I will change it to async as soon as the filter is working - this should be independent of the communication mode). Do you see, why the filter is still not working ? At least there is no Error thrown. (As an example, I created 3 Authors: Doe1, Doe2, ..., "Hugo" as name_last and I want to get all authors, starting with Doe)

@AMontagu,
I just also tested filterset_fields and there I can filter for exact matches. So the problem is the filter_class - or the right syntax to provide the filter via gRPC ?

@markdoerr Yeah not luck on this one for you. you mixed docs I thinks.
You made a typo. It's filterset_class and not filter_class.
https://django-filter.readthedocs.io/en/stable/guide/rest_framework.html#adding-a-filterset-with-filterset-class
I pushed correction that is working with the contains

@AMontagu,
sorry for being blind ... now everything is working nicely.
Very cool, thanks a lot !


Add hooks folder

As we have a dedicated folder for decorators, we could have another folder at the same level for hooks.
In a project, for example, we created the following files:

src/hooks/preHandler.js for pre-handler hooks
src/hooks/preValidation.js for pre-validation hooks

It seems a good idea to me. @calairoh what do you think?


Adding new Favorites to large Favorites list hangs the Grabber process temporarily

Bug description
With a large favorites list ~4000 entries, adding additional favorites hangs the process temporarily for 6-7 seconds.
If the Favorites sidebar is open (View->Favorites) then this extends to 10-15 seconds.
Steps to reproduce

View->Favorites to bring up sidebar
Go to Search, add any tag when you have a long Favorites list
(Not Responding)

Expected behavior
Being able to add/remove favorites without any delays
Context
My current favorites.json is about 520kb and 3900 entries
Sorry can't provide it out of shame
Screenshots

System information

OS: Windows 10
Grabber version: Nightly b2452be3
Running from an SSD

Opening any favorite page causes hanging(Not Responding) and eventually crashing. Even tried this after removing some favorites.
Any other workarounds?


Terraform CloudWatch Dashboard

Creates a nice dashboard with a bunch of relevant BinaryAlert metrics:

Resolves: #6
Tested
Deploy, look at dashboard, deploy again with downloader, look at dashboard
Reviewers
to: @chunyong-lin
cc: @airbnb/binaryalert-maintainers

Coverage remained the same at 89.456% when pulling d44d5ed25b719c89dccab76444ee33f720d9b9b7 on abb--dashboard into 510f94a75f1633d87bdd34c3c8522e3771d71e0e on master.

Super cool idea, nice work

Coverage remained the same at 89.456% when pulling d44d5ed25b719c89dccab76444ee33f720d9b9b7 on abb--dashboard into 510f94a75f1633d87bdd34c3c8522e3771d71e0e on master.

This is awesome - we definitely need to get all projects up to TF 0.1.0+

@chunyong-lin what component do you see turning into a re-usable module? The variables are just configuring each widget to look how we want them to for the BinaryAlert metrics. I don't think there's anything generically re-usable for other dashboards other than Terraform's existing aws_cloudwatch_dashboard resource, which is what we are using here.

Coverage remained the same at 95.52% when pulling c8202a11fd1dc412e4f7d8fa0868b67fa4ebe534 on abb--dashboard into 54b0589deea1249cb481a081ca8a975ac49bae20 on master.


Simplify FirstNRunes

Do not use utf8 package.

Benchmark and its result:
https://gist.github.com/methane/e8e01afeeb1fae8b13b4353724d2131d


Bugs with indented code

Indented with 4 spaces code is displayed without an indent when seen in the Edit mode.
In admin panel such a code is displayed in one line.
If the comment has been edited from admin panel, it is no more possible for commenter to remove it from the page: Failed to load resource: the server responded with a status of 403 () embed.min.js:18 Not authorized to remove this comment!. Not sure what the default behavior should be in this case.

I made a gif to illustrate these bugs. I find the most important that in the admin panel there is no line breaks, any comment displayed in one line.

It seems that it can be solved by applying a css property white-space: pre-wrap to div.textarea or to div.text div for the admin panel.

I encountered this today: one comment was not formatted properly on site and I wanted to edit it in the admin. But in the admin, no line breaks are respected in the display and worst they are lost on save.
I gave your solution a try and it fixes display, which is nice. But if I edit the comment, add line breaks and saves, the line breaks are lost. From what I understand, it comes from the fact that we rely on a div with editableContent set to true. So, if I originally have:

Test 1

I'll get after the edit:

Test 1

Test 2

The display is correct (because by default div are displayed as block elements) but when we extract the text with textContent, we loose the line breaks that are visually conveyed by the div.
I worked on a fast workaround for the admin: use textarea instead of editable divs. By default it is disabled so the user can't edit it. If you click on Edit it becomes editable. It seems to fix both the display and edit issues. It's not very pretty but it works. You can see it here: https://github.com/Jenselme/isso/commit/e5a1b2ac3b6692e7f1aabb8a1a21b8f028acd28c
To fix this in the "standard edit" on the website, I think you could do something similar: when the user is editing, we rely on a textarea. When not (comment saved or in preview), we display the rendered HTML. We could also apply this method to the admin to view rendered comments by default and still be able to edit them correctly.
Let me know what you think. If it sounds like a good idea to you, I should be able to complete the fix for the admin and the standard edit page.

Any thoughts on that?

I thoroughly agree with @Jenselme - the way the whole editing is implemented as contentEditable is bound to cause pain. I converted the admin to use textarea a while back, see https://github.com/posativ/isso/pull/793
This is currently the "solution" for converting between HTML and plaintext:
https://github.com/posativ/isso/blob/668882f6c551c0cb979139ad62b2a97a0c968914/isso/js/app/utils.js#L29-L42
@Jenselme if you could re-upload your work again (repo seems deleted), I believe you might have some better approaches than my spaghetti code.

I wonder if maybe it would be nicer to replace the admin page with instead being able to log in as an admin on the comment section.

That'd be nice as an addition, but keeping the "traditional" admin still makes sense to me.

Should I make an issue to track that?

Feel free.

The whole part about the indentation not being preserved when editing seems to be fixed if you just add white-space: pre-wrap to .isso-textarea. However it still inserts and removes random newlines in weird places, I guess there must be some mistake in the ugly HTML <-> plaintext solution that you sent above.
Editing anything on the admin page seems to work fine currently..? However there are drawbacks to replacing the postbox with a <textarea>. Commenters don't want to manually resize the text box, and trying to use math and JS to auto resize the textarea seems to be a bit janky and unreliable.
However, I looked at a few other examples (Commento, Remark42, Talkyard, Flarum, Discourse, even the box I'm typing in right now on GitHub) and they all use a <textarea> for their post input text (note all of them except Commento and Remark have a fixed size). So I think using a textarea must clearly be the way to go for inputting plaintext.
Maybe if we can style the <textarea> to be large enough by default, and/or try and get some working JS code to auto-resize the box height, we can avoid having to do crazy workarounds just to get a contenteditable
 working.
In summary, I think @Jenselme's solution is probably best, so I'll try and do this on the main Isso post box, based on what seems to already work on the admin dashboard.


floodsub compatibility with go-ipfs

When connecting with go-ipfs daemon --enable-pubsub-experiment (0.4.23 at least) both processes will start consuming a lot of cpu time, and looking at logs at go-ipfs at log all=debug,mdns=error,bootstrap=error:
18:19:30.046 DEBUG     swarm2: [QmbLzuAXTG1yLt3ghR6RbvbZUBaJtDqPpcV2hVSESKYAej] opening stream to peer [QmbxRPux7zZmSkMUMF8aHuQdV8gQCXNExvwg7Vgx9qLjQf] swarm.go:280
18:19:30.049 WARNI     pubsub: peer declared dead but still connected; respawning writer:  QmbxRPux7zZmSkMUMF8aHuQdV8gQCXNExvwg7Vgx9qLjQf pubsub.go:326

With rust-ipfs the logs are similar, mostly about yamux and multistream_select opening and closing a substream. I suspect that the issue is that go-ipfs side wants to have a long running substream and the rust-ipfs side wants to have a substream only when there is something to send.

Ok, I managed to reproduce this and investigate a little. Still not sure where connections gets closed on the rust side.
I think you are correct, the logic in go implementation to always reconnect on EOF.
This is the log line and logic, for dead peers the connections state is checked, if it is still connected then pubsub RPC is done again:
https://github.com/libp2p/go-libp2p-pubsub/blob/ea5d2e6d6dcddf8daca51e8e742dd03571047fbf/pubsub.go#L463
Here the peer is marked as dead, so when EOF is reached (eg. stream is closed on the rust side):
https://github.com/libp2p/go-libp2p-pubsub/blob/1f147c24576a60c9b718456c98de964032e3b38e/comm.go#L94
Not sure what is the correct behavior, so this has to be clarified first.

I came across a potentially related issue, using the following code:
use async_std::task;
use futures::StreamExt;
use ipfs::{IpfsOptions, Types, UninitializedIpfs};

fn main() {
    env_logger::init();
    let options = IpfsOptions::<Types>::default();

    task::block_on(async move {
        println!("IPFS options: {:?}", options);
        let (ipfs, future) = UninitializedIpfs::new(options).await.start().await.unwrap();
        task::spawn(future);

        // Subscribe
        let topic = "test1234".to_owned();
        let mut subscription = ipfs.pubsub_subscribe(topic.clone()).await.unwrap();

        ipfs.pubsub_publish(topic.clone(), vec![41, 41]).await.unwrap();
        while let Some(message) = subscription.next().await {
            println!("Got message: {:?}", message)
        }

        // Exit
        ipfs.exit_daemon().await;
    })
}

This will not connect with itself (i.e. running this twice), or with the go-ipfs client.
Rust Client A
IPFS options: IpfsOptions { ipfs_path: PathBuf { inner: "/Users/nicktaylor/.rust-ipfs" }, bootstrap: [("/ip4/<IP_ADDRESS>/tcp/4001", PeerId("QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ")), ("/ip4/<IP_ADDRESS>/tcp/4001", PeerId("QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM")), ("/ip4/<IP_ADDRESS>/tcp/4001", PeerId("QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64")), ("/ip4/<IP_ADDRESS>/tcp/4001", PeerId("QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu")), ("/ip4/<IP_ADDRESS>/tcp/4001", PeerId("QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd")), ("/ip6/2400:6180:0:d0::151:6001/tcp/4001", PeerId("QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu")), ("/ip6/2604:a880:1:20::203:d001/tcp/4001", PeerId("QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM")), ("/ip6/2604:a880:800:10::4a:5001/tcp/4001", PeerId("QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64")), ("/ip6/2a03:b0c0:0:1010::23:1001/tcp/4001", PeerId("QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd"))], keypair: Keypair::Ed25519, mdns: true }
Got message: PubsubMessage { source: PeerId("12D3KooWJXVxo6wY8T1CHuou3Nct4JrnYojRpnTnqKygv8tiymTp"), data: [41, 41], sequence_number: [176, 19, 137, 113, 220, 129, 183, 152, 104, 245, 121, 8, 46, 107, 141, 152, 255, 248, 3, 160], topics: ["test1234"] }

Rust Client B
IPFS options: IpfsOptions { ipfs_path: PathBuf { inner: "/Users/nicktaylor/.rust-ipfs" }, bootstrap: [("/ip4/<IP_ADDRESS>/tcp/4001", PeerId("QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ")), ("/ip4/<IP_ADDRESS>/tcp/4001", PeerId("QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM")), ("/ip4/<IP_ADDRESS>/tcp/4001", PeerId("QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64")), ("/ip4/<IP_ADDRESS>/tcp/4001", PeerId("QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu")), ("/ip4/<IP_ADDRESS>/tcp/4001", PeerId("QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd")), ("/ip6/2400:6180:0:d0::151:6001/tcp/4001", PeerId("QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu")), ("/ip6/2604:a880:1:20::203:d001/tcp/4001", PeerId("QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM")), ("/ip6/2604:a880:800:10::4a:5001/tcp/4001", PeerId("QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64")), ("/ip6/2a03:b0c0:0:1010::23:1001/tcp/4001", PeerId("QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd"))], keypair: Keypair::Ed25519, mdns: true }
Got message: PubsubMessage { source: PeerId("12D3KooWJXVxo6wY8T1CHuou3Nct4JrnYojRpnTnqKygv8tiymTp"), data: [41, 41], sequence_number: [194, 9, 29, 179, 181, 171, 142, 16, 229, 4, 162, 118, 44, 19, 7, 248, 3, 186, 49, 231], topics: ["test1234"] }

go-ipfs
nicktaylor@Nicks-MBP ~ % ipfs pubsub pub test1234 "test"
nicktaylor@Nicks-MBP ~ % ipfs pubsub pub test1234 "test"
nicktaylor@Nicks-MBP ~ % ipfs pubsub pub test1234 "test"
nicktaylor@Nicks-MBP ~ % ipfs pubsub pub test1234 "test"

There is a lot of logging in the daemon with INFO level, so not sure what other logs might be helpful.

The real solution this is to upgrade to gossipsub.

The real solution this is to upgrade to gossipsub.

in #186 you mentioned:

The current build has an equivalent of --enable-pubsub-experiment always on, and in fact, it cannot be turned off via configuration. The inability to configure it off with the #132 makes it so that you cannot connect to go-ipfs 0.5 which is running with --enable-pubsub-experiment.

Is this also the case for go-ipfs 0.6? And js-ipfs? Does this mean the pubsub functionality is currently only working among rs-ipfs nodes?

Does this mean the pubsub functionality is currently only working among rs-ipfs nodes?

As far as I know yes but haven't looked into this for a while! While it is possible that the floodsub has been changed in the meanwhile (if so, I have missed those PRs), the gossipsub is as far I remember still on track to support both gossipsub and floodsub.


Implement animation and transition utility classes

Describe the feature in detail (code, mocks, or screenshots encouraged)
Problem
Currently, animations like hover effects for cards and shrinking effects for buttons are tied to specific component classes in Skeleton. This limits our ability to apply these animations to other elements or customize them without introducing unwanted styles from the associated classes.
Proposed Solution
I propose introducing a collection of standalone animation classes that can be applied to any element, independent of component classes. This separation of animations from specific components would provide more flexibility and control over the desired effects.
Benefits

Animation Flexibility: Users can apply a wide range of animations to any element, regardless of its class or structure.
Customization: By decoupling animations from component classes, we can avoid unnecessary styles and layout disruptions, resulting in cleaner and more coherent designs.
Expanded Use Cases: The ability to apply animations to various elements opens up new creative possibilities and extends the utility of the Skeleton framework.

Example Usage

Considerations

Opt-In Approach: The animation classes should be optional, allowing users to choose which animations to apply based on their specific needs.
Backward Compatibility: Introducing these new animation classes as opt-in options ensures that existing Skeleton users are not affected by any breaking changes.  Other classes like btn should remain their default animations, with optional ability to disable them.

What type of pull request would this be?
New Feature
Provide relevant links or additional information.
No response

Duplicate: https://github.com/skeletonlabs/skeleton/issues/1738

See also: https://github.com/skeletonlabs/skeleton/issues/1738

I'm going to fold this under a more widespread issue here:

https://github.com/skeletonlabs/skeleton/issues/2449


tooltip bug

I'm having a problem where a tooltip takes about 2-3 seconds before the tooltip appears on first hover so a user who hovers for the first time isn't aware that hovering will actually do something. After the first tooltip appears, then the rest appear within half a second which is nice.
Is this intended? Can I change this? I use kibana 6.2.4

Hey @seanziee
Seems like it's the same issue as #61, am I mistaken ?

@ogdabou No it's a little different. I'm using the treemap visual, and it seems to have no problem appearing, but it just takes a couple seconds to first appear. I'll attach a screencast


Used key value pairs to allow period separated methods such as image.Uploaded

used key value pairs to allow 'SEP' methods where ember is expecting 'EQUAL'.
this should also resolve anyone having issues with methods such as image.Uploaded. I intend on making another pull request updating the documentation.

Hi @artsmc! Thanks for the PR. I believe it would be better to change the way this was implemented initially so that when we add new events the plugin doesn't have to be update. A better approach would be the way this is done in froala-reactive: https://github.com/froala/froala-reactive#options-and-events.
Could you please make this change? Thank you.

@stefanneculai Yes using _on<event.name> makes sense. But ember is strict about using period separator in property names, I believe it is reserved for property values such as
{{each event in event.name}} or {{table eventName=event.name}}
This seems to be part of a greater issue with handlebars and being able to use splat operations.
https://github.com/wycats/handlebars.js/issues/1050
Currently the only way I see to make it work dynamically is reverse action and event.
{{event.name="actionName"}} will become {{actionName="on event.name"}}
Thoughts?

Could use underscore _on_event_name and then replace event_name with event.name?

Of course, it's not as pretty as camelCase but it is dynamic. Heck if there was a regex to work on every Froala event I would keep it but the underscore can definitely be dynamic with the exception of the events with arrays such as pop up hide [id] that I'll take just little more tweaking

That's great. Thanks!

I'll make the changes and update the readMe, you can see I already added the saveButon concept as well

:+1:

its feeling a little lighter and faster

Nice work. Thanks.


"reinstallation" issues on mptcp.service and mptcpd.conf

mptcpd.conf and mptcpd.service contain the dirname of libmtcpd.so. This can create a "reinstallation conflict", as reported by rpmdelint CI:
Undeclared file conflicts:
mptcpd-0.7-1.el9.i686 provides /etc/mptcpd/mptcpd.conf which is also provided by mptcpd-0.7-1.el9.x86_64
mptcpd-0.7-1.el9.i686 provides /usr/lib/systemd/system/mptcp.service which is also provided by mptcpd-0.7-1.el9.x86_64
mptcpd-0.7-1.el9.x86_64 provides /etc/mptcpd/mptcpd.conf which is also provided by mptcpd-0.7-1.el9.i686
mptcpd-0.7-1.el9.x86_64 provides /usr/lib/systemd/system/mptcp.service which is also provided by mptcpd-0.7-1.el9.i686

To Reproduce
$ rpmdeplint  check-conflicts  mptcpd-0.7-1.el9.i686.rpm mptcpd-0.7-1.el9.x86_64.rpm

a) for the configuration file, maybe we can cook a fix that "guesses"  the value of plugin_dir as$(libdir)/mptcpd when it's not specified in the configuration file, and ship a configuration file with empty plugin_dir on fedora
b) for the systemd untfile, we probably don't need to specify LD_LIBRARY_PATH, at least on Fedora, because we are installling libmptcpd.so in /lib64.
(changes to systemd unitfile and to the configuration file can be fixed  directly in the specfile, in case the problem is specific to RPM - based distros)


Named parameter generator

Faker provides the ability to create a random object instance for a specific type, and to override the generation of the object's fields by type as described in this example from the documentation:
class Baz(val id: Int, val uuid: UUID)

val baz: Baz = faker.randomProvider.randomClassInstance {
    typeGenerator<UUID> { UUID.fromString("00000000-0000-0000-0000-000000000000") }
}

This is great, but sometimes the objects we generate are required to be related in a way that makes overriding by type not granular enough. For example, if an object of one class must hold an ID of an object of another class, generation by type would not allow us to form a valid relationship.
class Foo(val id: Int, val bazId: Int)

val foo: Foo = faker.randomProvider.randomClassInstance {
    typeGenerator<Int> { 42 }
}

Here bazId should be set equal to baz.id, but instead both id and bazId will be 42 and (unless I'm mistaken) a mechanism doesn't exist to assign a specific yet different value to fields of the same type.
One way to solve this problem would be to provide a way to override field generation not by type but by constructor parameter name, as in this example:
val foo: Foo = faker.randomProvider.randomClassInstance {
    namedParameterGenerator("bazId") { baz.id }
}

This is what is implemented in this PR. Looking forward to hearing your thoughts on whether this is a worthwhile addition, or if there is a better way to achieve my aims.

Hi @humblehacker ,
This sounds like a great addition, thanks! I'll review the code later this week.

Thanks for the quick review!

Any plans to release these changes soon? Would be super useful. :-)

Hi, sorry, have been pretty swamped at work lately with zero time left to spend on OSS stuff :(
I'll take a look at the issues marked for 1.10.0 this weekend, and hopefully will make the next release then. For the time being consider using the latest snapshot if you have that possibility.

Thanks for the quick response - lemme know if you need any help with any open tasks, happy to chip in.

I'm always happy for receiving contributions @garry-jeromson if you're interested in doing so :) A good place to start would be 'good first issue' labeled issues - https://github.com/serpro69/kotlin-faker/issues?q=is%3Aopen+label%3A"good+first+issue+%3Ahammer%3A"+sort%3Aupdated-desc , and for 1.10.0 particularly - https://github.com/serpro69/kotlin-faker/milestone/7

@garry-jeromson , FYI, the version 1.10.0 is available on maven central now and includes among other things changes from this PR


Add device selector

Ok so this is my first ever PR, so please tell me if I did something wrong :)
This PR implements a device selection drop-down menu.
It also adds a small popup window which displays v4l errors.
Here is a screenshot:

I don't know why it shows my cameras two times, but only one of them works. This seems to be a v4l problem, because it happens in other programs too.
Oh, and my editor automatically runs rustfmt, so it also indented the code I didn't edit, sorry for that.

Thanks @rednaz1337. I made some further changes to check if devices work on startup. This removes the need for the error window and storing device and stream in Options. Let me know if the new version works for your setup. (I only have one webcam).

Yeah, it makes more sense to check it first :) The selected_device is actually the index in the list, not the v4l device index. It was a tiny fix, I'll make a new PR :)


Book covers look misaligned in the bookshelves pages

When displaying shelves on the site the covers are aligned below the expected location

Is this using Moondeer’s plugin or just the built in option?

The built-in “Include books on page” option, no plug-ins

Thanks, that should be straightforward to fix depending how the html elements are setup.

This is fixed, it will be included in the next update!


Replace /bin/bash with /bin/sh

This also addresses idiosyncrasies with echo versus printf (see StackExchange answer about this).
Since bash is a more fully-featured shell and sh (in Ubuntu, this is aliased to /bin/dash) is lighter weight, it makes more sense to use sh to run the realpath script in ./bin/crystal. I've benchmarked it on my system and there's a very slight increase in performance. It also, in part, reduces dependencies to run crystal.
Changes were made to the escape sequence coloring to support more shells, also per StackExchange.

Some bash vs sh vs [etc] comments are noted at: http://stackoverflow.com/questions/5725296/difference-between-sh-and-bash

I'm all for using sh vs bash, which would drop a dependency on some platforms, e.g. Alpine, FreeBSD, OpenBSD.

One thing to note is that it is still required to run ./bin/ci. I found it difficult to test since it checked for Travis-CI specific values and I didn't want to mutate the script too much for my purposes.
Since there were assumptions made that it was on MacOS and running an Ubuntu docker container, should we be concerned by the following lines?
  on_linux docker run \
    --rm \
    -u $(id -u) \
    -v $(pwd):/mnt \
    -w /mnt \
    -e LIBRARY_PATH="/opt/crystal/embedded/lib/" \
    -e CRYSTAL_CACHE_DIR="/tmp/crystal" \
    "jhass/crystal-build-$ARCH" \
    "$ARCH_CMD" /bin/bash -c "'$command'"

  on_osx PATH="/usr/local/opt/llvm/bin:\$PATH" \
    CRYSTAL_CACHE_DIR="/tmp/crystal" \
    /bin/bash -c "'$command'"

bin/ci is, as the name implies, tied to the CI solution we use. You may directly call make spec, make std_spec or bin/crystal spec [path/to/spec] instead when developing locally.

Let me clarify. I had concerns with us calling bash on the lines mentioned earlier if we're moving forward assuming bash isn't available on the target platform (linux, darwin, etc.). Should these be changed, or are we making the assumption that bash will always installed in the CI environment?

We'll rework bin/ci when we leave Travis for another platform, where maybe we'll like to avoid bash... or not. It's one thing to require users to have bash installed to hack on Crystal (if we can avoid it, we should) it's another thing to have bash installed in the VMs running our automated test suite.

I thought similarly, but also considered that the build environment containing bash might open us up for testing removal of the dependency entirely. If we say it's not required and some deeply nested script calls it, we won't know in the CI tests but users who don't have it installed will see things explode.
Personally, I view this as an acceptable risk. I just wanted to confirm that others viewed it similarly.

#codetriage
We appear to have left this conversation in agreement that sh is acceptable a replacement for bash in all modified scripts, leaving the CI-related bashisms in place for now.
Recommend for Merge, per 👍  in comments.

Is there anything blocking this merge? I've reviewed this PR and it LGTM.

Nothing blocking it! Thanks everyone, especially @TheLonelyGhost for crafting the PR, @ysbaddaden for providing feedback and @RX14 for reviewing and nudging it ❤