Giving characters

As Arcaea v6.0 now treats character "Insight" as a playable one, I think it's the time to change the server's code, to respond to the client's insight/me/complete/eden_append_1 request.
@bp.route('insight/me/complete/eden_append_1', methods=['POST'])
@auth_required(request)
@arc_try
def eden_complete(user_id):

    with Connect() as c:
        item = ItemCharacter(c)
        item.set_id('72')  # Insight
        item.user_claim_item(UserOnline(c, user_id))
        return success_return({})

This is how I changed the file /server/others.py.
I think this might work, or adding a bit of code related with insight_state will help.

`@bp.route('insight/me/complete/eden_append_1', methods=['POST'])
@auth_required(request)
@arc_try
def eden_complete(user_id):
with Connect() as c:
    user = UserOnline(c, user_id)
    user.select_user()

if user.insight_state == 1:
    raise ArcError('Cannot call this api.', 151, status=403)
item = ItemCharacter(c)
item.set_id('72')   # Insight
item.user_claim_item(user)
user.update_user_one_column("insight_state", 1)

return success_return({
"insight_state": user.insight_state
})`

I think this should work.

In addition, it seems that insight/me/complete/<pack_id?> has other endpoints. Do they have possible effects?

https://github.com/ariidesu/AriArcaeaServer/commit/d7c55aa1f8d9d980416ba59bbec1093c571a83f2
seems like there is also /lephon endpoint. idk the exact effects about it, try checking it out.


Matcher for variadic function support? Is it supported for variadic params for now?

Hi I have following code but don't know how to match the method called to mock the result.
 type Greet interface {
	  sayHello(welcomeMsg string, names ...string) string
  }

  type GreetService struct {
  }

  func (h *GreetService) sayHello(welcomeMsg string, names ...string) string {
	  result := welcomeMsg
	  for _, name := range names {
		  result += fmt.Sprintf(" %s", name)
	  }
	  return result
  }

  func TestSayHello(t *testing.T) {
	  SetUp(t)

	  greet := Mock[Greet]()
	  WhenSingle(greet.sayHello(Any[string]())).ThenReturn("hello James")

	  result := greet.sayHello("hello")
	  assert.Equal(t, result, "hello James")

	  WhenSingle(greet.sayHello(Any[string](), Any[WHAT_TO_PUT_HERE])).ThenReturn("hello James Jack")

	  result = greet.sayHello("hello", "James", "Jack")
	  assert.Equal(t, result, "hello James Jack")
}

The names params inside the sayHello is optional and can take in multiple string value.
Try with Any[string]() but not working.
Both above mocking is not working

Hi!
I think I completely forgot about variadic functions support.
I will check it and apply fix if needed.

Varargs are working now.
So in your example it should be smth like
 WhenSingle(greet.sayHello(Any[string](), Any[string](), Any[string]())).ThenReturn("hello James Jack")


Book support or command type

Tasks

[ ] Lets you customise a book that is shown to a player.

+1


[IOTDB-1529]Fix mlog recover idx bug and synchronize setStorageGroup

Description
MLog recover idx bug fix
In current version, when mmanager is recovering, the failure of operation on plans read from mlog should not afftect the increasement of log index and only the logReader.next concerns. The wrong log index will result in existing record being covered by new mlog record.
Synchronize setStorageGroup
Although this operation is infrequent, it can't be guaranteed that the user or tests won't use multi thread to set one storage group. The storage group node check and add should be synchronized.

This PR has:

[ ] been self-reviewed.

[ ] concurrent read
[ ] concurrent write
[ ] concurrent read and write

[ ] added documentation for new or modified features or behaviors.
[ ] added Javadocs for most classes and all non-trivial methods.
[ ] added or updated version, license, or notice information
[ ] added comments explaining the "why" and the intent of the code wherever would not be obvious
for an unfamiliar reader.
[ ] added unit tests or modified existing tests to cover new code paths, ensuring the threshold
for code coverage.
[ ] added integration tests.
[ ] been tested in a test IoTDB cluster.

Key changed/added classes (or packages if there are too many classes) in this PR

Coverage increased (+0.01%) to 68.081% when pulling 5696ee118536db599591e40a1c5540de29713aaa on zyk990424:jira_1529_for_master into 47fa594403d5bb0c79d8414886b5a9fe6a24b778 on apache:master.


Displays Incorrect Score Value in Quiz

I have noticed an issue with the score calculation and display on our quiz interface. Even when answers are correct, the score is displayed as 0/10.

It's expected that the score should display the number of correct answers out of 10.

Hello, I would like to work on this. Can I get this issue assigned?

@Emilio-PdeA Assigned!

If no one is working on this could you assign this issue to me?


Start specifying RDFLib version ceilings

The first commit's log message has the rationale for this PR.
I'm fine with this merging once CI passes.


Rename fork for npm and update dependency

I also removed the browser WASM stuff because I got this error message:
https://github.com/emscripten-core/emscripten/issues/11274
Adding `` to script/build-browser-version.sh didn't help. Anyway, we're only using it in Node for tree-sitter-node, not in the browser.


Web server integration example

Thanks for this project!
It would be great if there was an example for integration with a web framework (axum, for example).

Thank you very much!


author of this app is a Genius，thank god we have him in the community

good job

Just tried it，hey dude， I must say it，this is awesome！


SA1636 - Build 1.1.0-beta001 - Breaks Copyright / Header Validation

Upgrading to 1.1.0-beta001 from 1.0.0 causes SA1636 errors
warning SA1636: The file header copyright text must match the copyright text from the settings.

StyleCop Settings
The stylecop.json file remains unchanged:
{
  "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json",
  "settings": {
    "documentationRules": {
      "companyName": "automotiveMastermind and contributors",
      "copyrightText": "© automotiveMastermind and contributors. Licensed under MIT. See LICENSE and CREDITS for details.",
      "headerDecoration": "---------------------------------------------------------------------------------------------------------------------"
    }
  }
}

I was interested in the headerDecoration support. It does work just fine from VS 2017, but is broken with a dotnet build at the cli.
dotnet-cli Info
.NET Command Line Tools (1.0.1)

Product Information:
 Version:            1.0.1
 Commit SHA-1 hash:  005db40cd1

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  10.12
 OS Platform: Darwin
 RID:         osx.10.12-x64
 Base Path:   /Users/dmccaffery/.dotnet/sdk/1.0.1

@dmccaffery Is this a duplicate of Microsoft/msbuild#1925? In other words, does this new warning appear in all files, or just in the generated AssemblyInfo.cs files?

It was everything if memory serves me correctly. It seems to be resolved, since I closed the associated ticket. I will try to reproduce again later today and will report back.
I disable assembly info generation as condo (the build system I use) does it’s own, so it wasn’t just that.

@dmccaffery I'm trying to get 1.1.0-beta002 out the door since beta001 doesn't include the JSON parsing changes that we implemented for the 1.0.2 patch. Let me know the result of your test, and hopefully if anything isn't working the way you expect then it's just something small that the next release corrects.


NSM deployment is failing with K8s 1.15.2

Expected Behavior
NSM shoudl be deplyable and no errors int he logs
Current Behavior
We see the following errors:
xxxxx$ kubectl logs -n nsm-system nsmgr-xm7mx nsmd-k8s
time="2019-08-06T13:20:49Z" level=info msg="Starting nsmd-k8s..."
time="2019-08-06T13:20:49Z" level=info msg="Version: v0.0.0-974-g85019074"
2019/08/06 13:20:54 Initializing logging reporter
time="2019-08-06T13:20:54Z" level=info msg="Starting NSMD Kubernetes on <IP_ADDRESS>:5000 with NsmName kube-worker1"
time="2019-08-06T13:20:54Z" level=error msg="unable to list NSs for cache initialization: the server could not find the requested resource (get networkservices.networkservicemesh.io)"
time="2019-08-06T13:20:54Z" level=info msg="RegistryCache started"
time="2019-08-06T13:20:54Z" level=info msg="nsmd-k8s initialized and waiting for connection"
time="2019-08-06T13:20:54Z" level=info msg="ClusterConfiguration request"
time="2019-08-06T13:20:54Z" level=info msg="Received RegisterNSM(url:\"<IP_ADDRESS>:5001\" )"
2019/08/06 13:20:54 Reporting span 343ac06a73a04158:22e79e15bd943255:343ac06a73a04158:1

Failure Information (for bugs)

Steps to Reproduce
make k8s-install-nsm

Then check the logs as above
Context

Kubernetes Version: 1.15.2, 1.14.5
anything that includes this fix:
https://github.com/kubernetes/kubernetes/commit/9d3c8b36d992cdbea00040f2c31d39f46e4c4219

Failure Logs
See above.

The referred patch to Kubernetes changes the behaviour of CRDs. We currently have CLuster scoped CRDs and we send our requests with a Namespace as follows:
    l, err := cs.NetworkservicemeshV1alpha1().NetworkServices(namespace.GetNamespace()).List(v12.ListOptions{})

So we are hitting one of the newly introduced checks - NonNamespaced CRD with a Namespace request. This is specifically handled as 404 error.
The solution is to use Namesapced CRDs or remove the Namespace in the client request.


Setup for debug builds

I believe it would be beneficial to include automation for debug builds including automatic copy to Derail Valley Mods directory and some sample code that makes use of #if DEBUG.
I already have code for this but I have in python. Would there be interest in getting that code in or someone transpiling into powershell (I don't know powershell)

I found another way. Pls wait


I can't  disable SIP in 10.15.2

I can't use "csrutil disable" in Terminal.app.（I've already get into recovery mode.）
When I input  "csrutil disable" in Terminal.app，It display that I have already success and suggest me restart the machine，but it  without any effect.When I restart the machine and get into mac os,it display ：System Integrity Protection status: enabled.

Dup of #78 fixed in https://github.com/osy86/HaC-Mini/pull/123 but not released yet. You can download the artifact for that pull request if you wish to use the prerelease build.


Fix : RedisDB destroy on app cache flush

Fix Redis all DB drop (even other applications DB), by using the cache prefix, only clear the application cache.
Redis is not used like mysql and many server configuration use the same redis DB for many websites, so cache flush should clear only keys begining by the cache prefix, and don't drop the database.
Improvement : We can add a config option to choose between DB drop or only prefix drop.
It breaks nothing because all cache keys are stored with the prefix.

As discussed here: https://github.com/laravel/framework/issues/29349#issuecomment-516818861
This method is pretty inefficient, and will not work properly on large databases.
Tests also seem to fail.


./manage.py celeryd failed with django 1.10

since I can not reopen the issue not close by myself, so I create a new issue and reference the new problem I encountered here
https://github.com/celery/django-celery/issues/462#issuecomment-245531631

I have fixed it by myself and create a pull request #468, please have a look


FDR and track calculation error

In calculating the FDR tracks (and peaks), fibers lacking any FIRE elements were not included in the FDR or coverage calculations.
This is a substantial bug, and any analysis done with the FDR pipeline (Post Oct 15th 2023) should be repeated once I have a fix.
Apologies to all.

Am I right that Fire v0.0.3 lacks that bug? If so, we will redo our analysis using v0.0.3.

Oh, I see the word post. I got it; the last version also has a bug.

fixed in 0.0.4 by #14.


Add VS Code keys and improve keybinding documentation

Summary of the Pull Request
Add keybinding keys to be compatible with VS Code conventions: https://code.visualstudio.com/docs/getstarted/keybindings#_accepted-keys
Improve keybinding documentation because we desperately need it. :)
(Documentation will definitely be iterated on, just wanted to get this PR rolling.)

References
#3809

PR Checklist

[x] Closes #3140
[x] CLA signed. If not, go over here and sign the CLA
[ ] Tests added/passed
[ ] Requires documentation to be updated
[x] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

Detailed Description of the Pull Request / Additional comments

Validation Steps Performed
Tested the new keys

Format dat code!

THANK YOU for this merged PR!
I was the author of related #3140 - I am so excited to see this shipped! 😄
Thanks, all!


Fix python install and upgrade versions to allow 3.11 installation

Tested on a Mac M1. Should fix
pip install piper-tts, which already created several issues.
Upgraded several requirement versions.
Also fixed Readme formatting and changed
the teaser to reflect the python runnable command.

MacOS works, tested on M1. Windows is now also working (amd64). Linux will follow. If you want to run this, set
PIPER_PHONEMIZE_REPO and point it to this or your fork. Omit the .git in the URL.

Hi @jmfrank63,
Pls take into account the review of pytorch-lightning~=2.1.0 LINE. This needs a big change in the training code. It could be changed up to 1.9.x at the moment.

@rmcpantoja Yes, you might be right. I gave it a try, it compiles and installs on macOS and Windows. The basic example works on both. But then I tried a Russian example on Windows and the result is just rubbish. This could be either to the fact that I had to use hex code points for getting it to compile or some other reason. We definitely need more tests.
I don't know where to go from here exactly, so I wait until the maintainer @synesthesiam provides some guidance.

@rmcpantoja Yes, you might be right. I gave it a try, it compiles and installs on macOS and Windows. The basic example works on both. But then I tried a Russian example on Windows and the result is just rubbish. This could be either to the fact that I had to use hex code points for getting it to compile or some other reason. We definitely need more tests. I don't know where to go from here exactly, so I wait until the maintainer @synesthesiam provides some guidance.

No, pytorch lightning It has nothing to do with installing Python in piper_phonemice, since they are different packages. pytorch lightning is only used by the piper_train package. If you want to support pl >2, you need to update the piper_train training code, especially using LightningCli instead of argparse.

@synesthesiam thanks for all the hard work, but this is stopping me from using piper. Is this project unmaintained?

Hello, would this PR fix the problem here https://github.com/rhasspy/piper/issues/384, and if so how would i go about using this PR with a Python app using Piper?


Volume mount fails if file with special characters in filename exists in target folder

This issue looks similar as #515
I have a file with special characters in the filename in my Docker bind volume
On my filesystem, the filename is showed as K?ln_SOLL.xlsx.
stat command shows me the correct filename: K\366ln_SOLL.xlsx
The container creation fails as in #515 with
Error response from daemon: failed to copy xattrs: failed to list xattrs on /var/lib/docker/overlay2/c26516400183a8d6840c8c4c31a97883d6c282ee1e62381f00de6ec944296029/merged/data/www/uploads/K�ln_SOLL.xlsx: no such file or directory

After removing this file, the volume mounting works in SYSBOX.

Hi @gribok, thanks for using Sysbox and for reporting the issue.
Error response from daemon: failed to copy xattrs: failed to list xattrs on /var/lib/docker/overlay2/c26516400183a8d6840c8c4c31a97883d6c282ee1e62381f00de6ec944296029/merged/data/www/uploads/K�ln_SOLL.xlsx: no such file or directory

That error is actually coming from Docker / containerd, not from Sysbox (i.e., you should see the same behavior when running a container with Docker without Sysbox).
If possible, please file the issue on the containerd repo.
Closing it here; please re-open if you think otherwise. Thanks again.


[dnsrocks] add codecov and Go Report card badges

What:
Add codecov and Go Report to Readme

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@f25121d). Click here to learn what that means.
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #12   +/-   ##
=======================================
  Coverage        ?   61.28%
=======================================
  Files           ?       68
  Lines           ?     7420
  Branches        ?        0
=======================================
  Hits            ?     4547
  Misses          ?     2597
  Partials        ?      276

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


SCCM support for RemoveMSI

I'm creating O365 installs directly in SCCM, not using Office Deployment Tool. Is this functionality supported? Can I edit an existing xml or will the bits needed for RemoveMSI to function not be there? (assuming the other two requirements are met)

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8d5595cb-3513-fca5-be7c-ec7652c73115
Version Independent ID: 6f6f02e0-10a9-dbac-7747-a5dc5f395a35
Content: Remove existing MSI versions of Office when upgrading to Office 365 ProPlus
Content Source: DeployOffice/upgrade-from-msi-version.md
Service: o365-proplus-itpro
GitHub Login: @DHB-MSFT
Microsoft Alias: danbrown

Currently SCCM does not expose this new option but we are working on an update that will allow this.  In the meantime you can edit the XML manually once you have created the Application, adding the necessary XML to enable the new Remove MSI behavior.  As long as you have the latest version of the ODT and you are installing from the Monthly or Semi-Annual (Targeted) channels as referenced in the RemoveMSI requirements section this will work.

This did work pretty well (edited XML after application was created in SCCM). One thing I noticed is that the prompt to save your work says the open apps will be closed but they are not actually closed. After reboot they are gone but until reboot they stay open.
I also have a dilemma with Project Pro - some users have multiple versions. I want to remove all but 2013. If I add the line   I'm assuming it will leave multiple MSI versions. If I use  I can then reinstall Project Pro 2013 MSI but I'm concerned the next upgrade will remove it.

Never mind the bit about Project Pro. I let our MSI install of Pro 2013 be skipped but the MSI cleanup removed a SOAP component. I had to run a repair on 2013 MSI and restart. Given that, I'm going to try replacing with 2016 volume license and let RemoveMSI do all.

 uninstall anything and prompt me the error Couldn't install Error Code 0-1008 (0)
here is my xml

use office 2016 , it's good.
2016 does not have msi,  Latest version have Click 2 Run  edition.


More @pika/web -> snowpack updates

Updated a few more references. The repo is obviously still referred to under its current name in all documentation, but I'm totally down with renaming it to snowpack-init, for example.
As soon as you make that change I'll update the documentation / readme gif accordingly.

Perfect, lets do it. I'll publish the new package now


Add support for userUpdate per PHP implementation

Example:
realm.userUpdate('sid_xyzzz', { arbitrary_key: 'I did it!' }).then(function(user) {
    // user is response, though metadata lags behind (until you requery, the value you set actually shows up in the fields for the user, not the metadata)
  });

Thank you for the contribution!


User can update contracts fields and can add comments and finalize from their side.

Targets #3166

Description

Updated update_internal , update_internal_contract for user update.
Updated ProjectContractController store and Created in  Contract Service store_user for adding user in contract_internal_reviewer table.

Checklist:

[x] I have performed a self-review of my own code.

All changes are merged in this PR #3176.
So closing this PR.


ARROW-10570: [R] Use Converter API to convert SEXP to Array/ChunkedArray

Thanks @kszucs for the direct help. This is very far from done, but it's a start, and perhaps we can resume the conversation here.
AFAIK, There is no R equivalent to PyObject*, so I'm trying here to mimic that with this:
struct RObject {
  RVectorType rtype;
  void* data;
  bool null;
};

This will evolve (perhaps into some sort of hierarchy) I'm sure as other types join the implementation (for now this only handles going from an R integer vector (INTSXP) to an int32 Array.

library(arrow, warn.conflicts = FALSE)

arrow:::vec_to_arrow(1:2, int32())
#> Array
#> <int32>
#> [
#>   1,
#>   2
#> ]
arrow:::vec_to_arrow(c(1,2), float64())
#> Array
#> <double>
#> [
#>   1,
#>   2
#> ]

Created on 2020-11-13 by the reprex package (v<IP_ADDRESS>01)

cc @bkietz since we co-authored the python-side refactor

This is still quite wip, as I navigate how the various Converter work together.
It all feels a bit weird to operate in terms of single values, i.e. via the Append() methods, since R does not have such concept, this has to resort to many casting.
It feels particularly odd with the struct converter (converting from a data frame). As of right now, this is bypassing Append() and instead uses a Visit() method that appends several (column by column).
Would it make sense to have some sort of vectorised approach ?
Should this instead figure out a way to treat data frames that the struct array gets built row by row instead of column by column ?

ping @kszucs @bkietz I don't necessarily need a full review at this point, as this is far from done and will need further changes, but perhaps you can have a look and let me know if this goes in the right direction ? cc @nealrichardson

FYI Windows build failure is
r_to_arrow.cpp: In instantiation of 'arrow::Status arrow::r::VisitInt64Vector(SEXP, R_xlen_t, VisitorFunc&&) [with VisitorFunc = arrow::r::VisitVector(SEXP, R_xlen_t, T*) [with T = arrow::internal::Converter<arrow::r::RScalar*, arrow::r::RConversionOptions>; SEXP = SEXPREC*; R_xlen_t = int]::<lambda(arrow::r::RScalar*)>; SEXP = SEXPREC*; R_xlen_t = int]':
r_to_arrow.cpp:512:84:   required from 'arrow::Status arrow::r::VisitVector(SEXP, R_xlen_t, T*) [with T = arrow::internal::Converter<arrow::r::RScalar*, arrow::r::RConversionOptions>; SEXP = SEXPREC*; R_xlen_t = int]'
r_to_arrow.cpp:535:40:   required from 'arrow::Status arrow::r::Extend(T*, SEXP, R_xlen_t) [with T = arrow::internal::Converter<arrow::r::RScalar*, arrow::r::RConversionOptions>; SEXP = SEXPREC*; R_xlen_t = int]'
r_to_arrow.cpp:762:7:   required from here
r_to_arrow.cpp:451:66: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
     obj.null = is_NA<int64_t>(*reinterpret_cast<int64_t*>(&value));
                                                                  ^

It all feels a bit weird to operate in terms of single values, i.e. via the Append() methods, since R does not have such concept, this has to resort to many casting.

This converter API was designed to operate on list-like collections of generic objects one-by-one. We have different code paths for more efficient conversion from numpy/pandas, see here.

Would it make sense to have some sort of vectorised approach ?

I think so, yes. We could extend the converter API to consume columns instead of individual values.

It all feels a bit weird to operate in terms of single values, i.e. via the Append() methods, since R does not have such concept, this has to resort to many casting.

This converter API was designed to operate on list-like collections of generic objects one-by-one. We have different code paths for more efficient conversion from numpy/pandas, see here.

I'll observe that the PR that added the new converter API made only a cosmetic change to numpy_to_arrow.cc, so maybe it's not so relevant after all?
Row-based conversion might make sense when converting an R list-type object, but otherwise you'd expect something vectorized to be better. For better or worse, now that all of this row-based conversion has been implemented here, we can benchmark both ways and compare.

Row-based conversion might make sense when converting an R list-type object, but otherwise you'd expect something vectorized to be better. For better or worse, now that all of this row-based conversion has been implemented here, we can benchmark both ways and compare.

Sorry, it's not about row- vs. column-wise. Currently the converters have an Append method to convert and append values one-by-one. We can provide an AppendMultiple or something similar to extend the underlying arrays in batches so we can optimize for R's representation.

I believe AppendMultiple() is what I would be looking for. It would e.g. solve my dilemma about converting data frames to struct types ...
I had missed the more efficient python paths, having a look.

Since the latest commits aren't compiling, I did some benchmarking on https://github.com/apache/arrow/pull/8650/commits/bcb1be733697b0e7ca86534a6700b5816e0dad46. Summary of findings:

Character to string conversion is usually (but not always) faster with the new code, around 20-30% better. Because string conversion is generally slower than other types, a small percentage improvement can be significant.
Integer and integer64 conversion is slower by an order of magnitude or more in the new code
bench::mark didn't report results for numeric vectors because the results were not equal.

Not sure where things will stand with the latest changes, but I think this suggests that the (numpy-like) special handling for vector types that can be just copied/moved to Arrow are important where appropriate. Otherwise, the string results suggest that there is some performance gain to be had with this work, and if the new approach will handle chunking and parallelization, we can do even better.
Code:
download.file("https://ursa-qa.s3.amazonaws.com/fanniemae_loanperf/2016Q4.csv.gz", "fanniemae.csv.gz")
df <- read_delim_arrow("fanniemae.csv.gz", delim="|", col_names=FALSE)
dim(df)
## [1] 22180168       31
for (n in names(df)) {
  print(n)
  print(class(df[[n]])
  try(print(bench::mark(arrow:::Array__from_vector(df[[n]], NULL), arrow:::vec_to_arrow(df[[n]], NULL))))
}

There's also a NYC taxi CSV at https://ursa-qa.s3.amazonaws.com/nyctaxi/yellow_tripdata_2010-01.csv.gz you can test with (just read_csv_arrow(), it has colnames).

At the point now where I dropped the artificial Rscalar class and all goes through AppendRange() which is only slightly different from @kszucs take on #8886.
Mostly because AppendRange() takes start and size when IIUC Extend() assumes start = 0.
I could "easily" align to what #8886 does, because at the moment I'm only ever using start = 0 anyway, but the logic behind having a start was to facilitate one R vector contributing to two different chunks in the chunker ...

At the point now where I dropped the artificial Rscalar class and all goes through AppendRange() which is only slightly different from @kszucs take on #8886.
Mostly because AppendRange() takes start and size when IIUC Extend() assumes start = 0.
I could "easily" align to what #8886 does, because at the moment I'm only ever using start = 0 anyway, but the logic behind having a start was to facilitate one R vector contributing to two different chunks in the chunker ...

the logic behind having a start was to facilitate one R vector contributing to two different chunks in the chunker ...

Right, we want to be able to chunk the inputs--that's ARROW-9293

the logic behind having a start was to facilitate one R vector contributing to two different chunks in the chunker ...

Right, we want to be able to chunk the inputs--that's ARROW-9293

That last commit gets us back to parity-ish on character vector performance, though it's a bit noisy.

That last commit gets us back to parity-ish on character vector performance, though it's a bit noisy.

Running benchmarks on the character vectors, using 10 iterations the performance is basically the same as on master.
I haven't tested factors, but that file does test integer, numeric, integer64, and character, with variation in the number of NAs.
So, something with equivalent performance, but that allows chunking and parallelization by columns (which the old converter does not, IIRC), would in practice have significant benefits.

Running benchmarks on the character vectors, using 10 iterations the performance is basically the same as on master.
I haven't tested factors, but that file does test integer, numeric, integer64, and character, with variation in the number of NAs.
So, something with equivalent performance, but that allows chunking and parallelization by columns (which the old converter does not, IIRC), would in practice have significant benefits.

Now pulled in the commit from #8886 so that this uses Converter::Extend() instead of the R specific previous AppendRange().
I believe that for the chunker class to be useful in this case, we would need to act on that comment:
// we could get bit smarter here since the whole batch of appendable values
// will be rejected if a capacity error is raised

Now pulled in the commit from #8886 so that this uses Converter::Extend() instead of the R specific previous AppendRange().
I believe that for the chunker class to be useful in this case, we would need to act on that comment:
// we could get bit smarter here since the whole batch of appendable values
// will be rejected if a capacity error is raised

It now feels like vec_to_arrow is on parity with the older approach (via Array__from_vector). Now testing if Array__from_vector can be replaced throughout, before we can start deleting code related to Array__from_vector

For testing purposes can you use something like GetBoolOption("arrow.use_new_converter", false) inside Array__from_vector to toggle old vs new code? That way, we can run more benchmarks on this to confirm that the performance is ok the new way.

oops, I only see your message now @nealrichardson, after I essentially went ahead with migration/elimination of code. Can we envision to run the same code with this pull request vs master. Maybe by setting up continuous benchmarking, with https://github.com/r-lib/bench#continuous-benchmarking
I'm arriving at the end of this week's sprint soon, I'll mark this as ready for review and stay vigilant.
Otherwise I can roll back today's commits and add the option 😬.

e.g. dplyr has this action: https://github.com/tidyverse/dplyr/blob/master/.github/workflows/continuous-benchmarks.yaml
This might need to be adapted to arrow 's offering of many actions, but perhaps we can set it up, and then rebase. So that we don't have to deal with options etc ...

No worries, we've been working on some other continuous benchmarking tools and can test things out with them. Thanks for pushing this forward.

I've been helping out benchmark these changes against the 3.0 release and everything I'm seeing is in line: no performance regressions. I've used a handful of our real-world datasets along with some synthetic datasets made up of individual types and they are all in line with the 3.0 release performance wise, which is great. I've been adding the benchmarks to arrowbench and are currently in a PR there in case you're curious about them.
One thing I did notice is that simple feature columns are having issues that aren't there in the release.
Here's a test that exercises the issue (I dug a bit to see if I could find the bug but haven't yet). The structure of the list column is meant to be minimal but is based off of the failure I saw with a real sf tibble (see below)
test_that("sf-like list columns", {
  df <- tibble::tibble(col = list(structure(list(1), class = c("one"))))
  expect_array_roundtrip(df)
})

the error+traceback is:
<error/vctrs_error_scalar_type>
Input must be a vector, not a `one` object.
Backtrace:
    █
 1. ├─Table$create(df)
 2. │ └─arrow:::Table__from_dots(dots, schema)
 3. └─vctrs:::stop_scalar_type(...)
 4.   └─vctrs:::stop_vctrs(msg, "vctrs_error_scalar_type", actual = x)

A more naturalistic example of this is the following which works in 3.0, but not on this branch
df_simple <- sf::read_sf(system.file("shape/nc.shp", package = "sf"))
tab_simple <- Table$create(df_simple)

slightly simpler reprex:
arrow::Array$create(list(structure(list(1), class = c("one"))))
#> Error: Input must be a vector, not a `one` object.

Created on 2021-03-01 by the reprex package (v0.3.0)

Which essentially is:
vctrs::vec_size(structure(list(1), class = c("one")))
#> Error: Input must be a vector, not a `one` object.

Created on 2021-03-01 by the reprex package (v0.3.0)
as used in the ListConverter:
template <typename T>
class RListConverter : public ListConverter<T, RConverter, RConverterTrait> {
 public:
  Status Extend(SEXP x, int64_t size) override {
    RETURN_NOT_OK(this->Reserve(size));

    RVectorType rtype = GetVectorType(x);
    if (rtype != LIST) {
      return Status::Invalid("Cannot convert to list type");
    }

    auto append_value = [this](SEXP value) {
      auto n = vctrs::short_vec_size(value);
      RETURN_NOT_OK(this->list_builder_->ValidateOverflow(n));
      RETURN_NOT_OK(this->list_builder_->Append());
      return this->value_converter_.get()->Extend(value, n);
    };
    auto append_null = [this]() { return this->list_builder_->AppendNull(); };
    return RVectorVisitor<SEXP>::Visit(x, size, append_null, append_value);
  }
};

In terms of the sf example, I get:
df_simple <- sf::read_sf(system.file("shape/nc.shp", package = "sf"))
vctrs::vec_size(df_simple$geometry)
#> [1] 100
class(df_simple$geometry)
#> [1] "sfc_MULTIPOLYGON" "sfc"

vctrs::vec_size(df_simple$geometry[[1]])
#> Error: Input must be a vector, not a `XY/MULTIPOLYGON/sfg` object.
class(df_simple$geometry[[1]])
#> [1] "XY"           "MULTIPOLYGON" "sfg"

Created on 2021-03-01 by the reprex package (v0.3.0)
I'm not sure this is a vctrs or an sf issue. cc @lionel- @edzer

I've put a fix in place, at least momentarily

Ok, I've looked at this more, and my first reprex was a bit too minimal it looks like. Here is another example/test we could/should add to exercise this (I'm happy to push a commit including it to this branch if you would like):
test_that("sf-like list columns", {
  df <- structure(list(col = structure(list(structure(list(list(structure(1))), class = "inner")), class = "outer")), class = "data.frame")
  expect_array_roundtrip(df)
})

The fix that you made does fix an error on the inner "class", but I believe that https://github.com/apache/arrow/blob/fe1c774813e9ce7123f6bb02c43bca1664e8370b/r/src/r_to_arrow.cpp#L1014 is tripping on the outer "class".
This was extra-fun to debug (and explains why the sf example above worked) because it looks like sf registers some vctrs methods which mean that these will work so long as those have been registered (i.e. whenever sf is used).
I suspect that it would be very infrequent to have someone want to round-trip a parquet file including sf data without also having sf loaded (so in practice the current state would be fine), attempting to debug what's going on is super complicated (and any other non-standard vctrs that use that outer level style classing would similarly fail).

df above is not a valid data frame, so that's ok, however, it indeed looks like there is a follow up problem:
library(arrow, warn.conflicts = FALSE)

df <- structure(list(col = structure(list(structure(list(list(structure(1))), class = "inner")), class = "outer")), class = "data.frame")
nrow(df)
#> [1] 0
vctrs::vec_size(df)
#> Error: Corrupt data frame: row.names are missing
Array$create(df)
#> Error: Corrupt data frame: row.names are missing

df <- structure(list(col = structure(list(structure(list(list(structure(1))), class = "inner")), class = "outer")), class = "data.frame", row.names = c(NA, -1L))
nrow(df)
#> [1] 1
vctrs::vec_size(df)
#> [1] 1
Array$create(df)
#> Error: Input must be a vector, not a <outer> object.

Created on 2021-04-06 by the reprex package (v0.3.0)


Ring 83 (Šter's counterexample showing "clean" is not Morita invariant) description

https://github.com/rschwiebert/dart_data/blob/785b8987539e1a37eb8da2c64bd4e7729ffd163b/db/ringapp/ring/RING_000083/data.yaml#L3
Description needs to be written or an expanded details page developed.

Description
Let $[F':F]=n$ be a field extension, $S \supset S'$ the full $F$- and $F'$-linear rings of the countable-dimensional $F'$-vector space $V$, and their ideals $I \supset I'$ of transformations with finite-dimensional range. Then the sum $T = S' + I$ is a subring in $S$.
The idempotent $e = E_{11}$ of $S'$ is primitive in $S'$ and is a sum of $n$ primitive orthogonal idempotents $e_1, \ldots, e_n$ in $S$ and $T$. Let $C$ be the corner ring $(e_n + 1 - e) T (e_n + 1 - e)$. Then the ring $R_{83}$ is defined as the set of all countable-sized column-finite matrices $M$ over $C$ with the following property: there exists an integer $N = N(M)$ such that the row $M_{N,*} = [m_{N1}, m_{N2},\ldots]$ has all $m_{Ni} \in F = F1 \subset C$, and all the next rows are shifts of $M_{N,*}$, namely, $M_{N + k, *} = [0, \ldots, 0, m_{N1}, m_{N2},\ldots]$ ($k$ zeros) for every positive integer $k$.
Cf. $R_{67}$ and $R_{70}$.
Explanation
The difference with $R_{70}$ is in that the top rows (ones that are above the "Toeplitz" part of the infinite matrix) are now allowed to lie in a fixed $F$-algebra, rather than just $F$ (see p22). On p33, the algebra is chosen to be the ring $R_1$ from p20 (the symbol $R$ denotes a different ring in Section 3 from what is taken as $R$ in Section 6). I renamed $R$ to $T$ and $R_1$ to $C$.
Ster defines $V$ just as infinite-dimensional, not necessarily countable-dimensional. On the expanded details page for $R_{70}$, it is written "infinite" but probably meant "countable".
In $R_{67}$ the Bergman's Toeplitz-like ring appears in the "scalars" of a matrix ring direct limit. Here the construction is done vice versa: the "scalars" are subrings of a $\Bbb{CF}_{\Bbb N}(F')$, but the "large structure" is Toeplitz-like.
Properties
Each property in my first #21 comment translates to this situation directly, except IBN and vNr:

:x: Abelian. $E_{11}$ (the identity infinite matrix from $R_{70}$ on the (1,1) position in $R$) is not central.
:x: Dedekind finite. The classical example put into $E_{11}$ with other diagonal elements being the identity transformations works fine.
:x: IC. Same technique as in other known examples should work: take the zero right ideal and the first row for $B$.
:x: NI. $E_{12}$, $E_{21}$.
:x: countable. The first few rows in the construction can be completely arbitrary.
:x: orthogonally finite. ${E_{ii}}$.
:x: reversible. $E_{11} E_{21} = 0 \not = E_{21} E_{11}$.
:x: semicommutative. $E_{12}E_{11} = 0 \not = E_{12}E_{21}E_{11}$.
:x: symmetric. $E_{11}E_{21}E_{12} = 0 \not = E_{11}E_{12}E_{21}$.

Maybe someday I'll try to adapt Goodearl p47 to vNr here...

My head must be on wrong:

The idempotent $e = E_{11}$ of $S'$ is primitive in $S'$ and is a sum of $n$ primitive orthogonal idempotents $e_1, \ldots, e_n$ in $S$ and $T$.

Isn't this $e$ even an irreducible idempotent in all three rings already, so that it's not a sum of nontrivial primitive orthogonal idempotents?

The confusion again stems from my poor wording, but I do not know how to reexpress that idea in a clear and concise manner.
For a finitary version, if one fixes a basis $w_1, \ldots, w_n$ of $F'$ over $F$, one obtains an injective $F$-linear map $\phi: F' \to M_n(F)$.
Then a $k \times k$-matrix over $F'$ corresponds to an $nk\times nk$-matrix over $F$, i.e. there is an injective map $\phi_k: M_k(F') \to M_{nk}(F)$.
Now the $E_{11}$ in the cited fragment refers to $E_{11}$ of $M_k(F')$. But its image would be an $n$-dimensional identity submatrix of $M_{nk}(F)$.
In $R_{83}$, $k$ is just $\omega$ rather than a finite number.

Thanks for explaining: yeah this is just me forgetting what the obvious embedding $S'\subseteq S$ should look like.   That makes sense...

Oops, I read only the first version of your comment and completely missed the edited one!

Does the first paragraph sound like a reasonable way to misunderstand things?

$F'$ is the larger field, otherwise everything seems fine. We can specialize $F = \Bbb R$, $F' = \Bbb C$. Then $V = \Bbb C^\infty$, $S = End_{\Bbb R} V \supset End_{\Bbb C} V = S'$. If we fix $F' \hookrightarrow M_2(F)$, $a + bi \mapsto$ , then the matrices of $S'$ in $S$ are block-2x2 with blocks of this form.

Splitting out the properties for later review.


Debug does not work most of the time for python and python-django components

/kind bug

What versions of software are you using?
Operating System: Linux
Output of odo version: 2.0.0
How did you run odo exactly?

create component using any of python devfile component types
push to cluster
run odo debug
try to connect debugger

Actual behavior

sometimes, 1 out 30 , debuggers connects successfully.
Expected behavior
Debugger always connects successfully.
Any logs, error output, etc?

@kadel checked pod log and it is exactly the same as in gif. It there a way to make it print stacktrace for the error?

/remove-lifecycle stale
/lifecycle frozen

@kadel works for me now. I do not know is something was changed though in python images since I have problems with it. Feel free to close this issue.


Use webhook.PortFromEnv

Signed-off-by: Francesco Guardiani<EMAIL_ADDRESS>Found out while investigating #1554

Proposed Changes

Use webhook.PortFromEnv like in eventing-webhook

/lgtm
/approve


bsh-2.0b4.jar hangs

When i try to run jar by double clicking jar it hangs with just start logo on screen. Same thing happens when i run java -jar bsh-2.0b4.jar bsh.Interpreter. My operating system is Windows XP, my java version is 1.6.0 (jdk).
Reported by: *anonymous
Original Ticket: "beanshell/bugs/296":https://sourceforge.net/p/beanshell/bugs/296

I have tested and we can compile BeanShell and all the unit tests pass, on Win 10
Didn't have the urge to double click the jar though so will need to have confirmation.

Double clicking on the jar file will start up the BeanShell Desktop with a Bsh Workspace window.


Build Apple Silicon packages

it would be nice to remove windows and linux jobs until this is ready to review

it would be nice to remove windows and linux jobs until this is ready to review

You're right, I'll disable them if I need more fixes.


Add support for DTLS 1.2 Connection IDs

Updates pion/dtls dependency to bring in support for DTLS 1.2 Connection IDs.
Fixes #467
Wireshark capture of provided example:

I also ran with pion/dtls trace logging enabled, which demonstrates the continuation of the connection.
server
🥽 (go-coap) go run ./examples/dtls/cid/server/main.go
dtls TRACE: 10:04:23.285196 handshaker.go:177: [handshake:server] Flight 0: Preparing
dtls TRACE: 10:04:23.285239 handshaker.go:177: [handshake:server] Flight 0: Sending
dtls TRACE: 10:04:23.285241 handshaker.go:177: [handshake:server] Flight 0: Waiting
dtls TRACE: 10:04:23.285308 handshaker.go:291: [handshake:server] Flight 0 -> Flight 2
dtls TRACE: 10:04:23.285311 handshaker.go:177: [handshake:server] Flight 2: Preparing
dtls TRACE: 10:04:23.285314 handshaker.go:177: [handshake:server] Flight 2: Sending
dtls TRACE: 10:04:23.285317 conn.go:420: [handshake:server] -> HelloVerifyRequest (epoch: 0, seq: 0)
dtls TRACE: 10:04:23.285342 handshaker.go:177: [handshake:server] Flight 2: Waiting
dtls TRACE: 10:04:23.285458 handshaker.go:291: [handshake:server] Flight 2 -> Flight 4
dtls TRACE: 10:04:23.285466 handshaker.go:177: [handshake:server] Flight 4: Preparing
dtls TRACE: 10:04:23.285472 handshaker.go:177: [handshake:server] Flight 4: Sending
dtls TRACE: 10:04:23.285477 conn.go:420: [handshake:server] -> ServerHello (epoch: 0, seq: 1)
dtls TRACE: 10:04:23.285481 conn.go:420: [handshake:server] -> ServerKeyExchange (epoch: 0, seq: 2)
dtls TRACE: 10:04:23.285484 conn.go:420: [handshake:server] -> ServerHelloDone (epoch: 0, seq: 3)
dtls TRACE: 10:04:23.285505 handshaker.go:177: [handshake:server] Flight 4: Waiting
dtls DEBUG: 10:04:23.285738 conn.go:886: CipherSuite not initialized, queuing packet
dtls DEBUG: 10:04:23.285751 conn.go:764: received packet of next epoch, queuing packet
Client's hint: Pion DTLS Client
dtls TRACE: 10:04:23.285783 conn.go:892: server: <- ChangeCipherSpec (epoch: 1)
dtls TRACE: 10:04:23.285795 handshaker.go:291: [handshake:server] Flight 4 -> Flight 6
dtls TRACE: 10:04:23.285797 handshaker.go:177: [handshake:server] Flight 6: Preparing
dtls TRACE: 10:04:23.285804 handshaker.go:245: [handshake:server] -> changeCipherSpec (epoch: 1)
dtls TRACE: 10:04:23.285807 handshaker.go:177: [handshake:server] Flight 6: Sending
dtls TRACE: 10:04:23.285809 conn.go:420: [handshake:server] -> Finished (epoch: 1, seq: 4)
dtls TRACE: 10:04:23.285829 handshaker.go:177: [handshake:server] Flight 6: Finished
dtls TRACE: 10:04:23.285833 conn.go:243: Handshake Completed
2023/08/28 10:04:23 got message in handleA:  Code: GET, Token: f272b2d832504b59, Path: /a, Type: Confirmable, MessageID: 49963 from <IP_ADDRESS>:34105
2023/08/28 10:04:23 got message in handleB:  Code: GET, Token: fa7147ece5362a99, Path: /b, Type: Confirmable, MessageID: 49964 from <IP_ADDRESS>:34105
2023/08/28 10:04:23 got message in handleA:  Code: GET, Token:<PHONE_NUMBER>626bc8, Path: /a, Type: Confirmable, MessageID: 49967 from <IP_ADDRESS>:43229
2023/08/28 10:04:23 got message in handleB:  Code: GET, Token: e14c0144a32444dc, Path: /b, Type: Confirmable, MessageID: 49968 from <IP_ADDRESS>:43229

client
🥽 (go-coap) go run ./examples/dtls/cid/client/main.go
dtls TRACE: 10:04:23.284858 handshaker.go:177: [handshake:client] Flight 1: Preparing
dtls TRACE: 10:04:23.284887 handshaker.go:177: [handshake:client] Flight 1: Sending
dtls TRACE: 10:04:23.284893 conn.go:420: [handshake:client] -> ClientHello (epoch: 0, seq: 0)
dtls TRACE: 10:04:23.284945 handshaker.go:177: [handshake:client] Flight 1: Waiting
dtls TRACE: 10:04:23.285360 handshaker.go:291: [handshake:client] Flight 1 -> Flight 3
dtls TRACE: 10:04:23.285366 handshaker.go:177: [handshake:client] Flight 3: Preparing
dtls TRACE: 10:04:23.285370 handshaker.go:177: [handshake:client] Flight 3: Sending
dtls TRACE: 10:04:23.285378 conn.go:420: [handshake:client] -> ClientHello (epoch: 0, seq: 1)
dtls TRACE: 10:04:23.285393 handshaker.go:177: [handshake:client] Flight 3: Waiting
dtls TRACE: 10:04:23.285585 flight3handler.go:102: [handshake] use cipher suite: TLS_PSK_WITH_AES_128_CCM_8
Server's hint: Pion DTLS Server
dtls TRACE: 10:04:23.285595 handshaker.go:291: [handshake:client] Flight 3 -> Flight 5
dtls TRACE: 10:04:23.285598 handshaker.go:177: [handshake:client] Flight 5: Preparing
dtls TRACE: 10:04:23.285625 handshaker.go:245: [handshake:client] -> changeCipherSpec (epoch: 1)
dtls TRACE: 10:04:23.285627 handshaker.go:177: [handshake:client] Flight 5: Sending
dtls TRACE: 10:04:23.285630 conn.go:420: [handshake:client] -> ClientKeyExchange (epoch: 0, seq: 2)
dtls TRACE: 10:04:23.285633 conn.go:420: [handshake:client] -> Finished (epoch: 1, seq: 3)
dtls TRACE: 10:04:23.285654 handshaker.go:177: [handshake:client] Flight 5: Waiting
dtls TRACE: 10:04:23.285903 conn.go:892: client: <- ChangeCipherSpec (epoch: 1)
dtls TRACE: 10:04:23.285937 handshaker.go:291: [handshake:client] Flight 5 -> Flight 5
dtls TRACE: 10:04:23.285940 handshaker.go:177: [handshake:client] Flight 5: Finished
dtls TRACE: 10:04:23.285944 conn.go:243: Handshake Completed
2023/08/28 10:04:23 Response payload: Code: GET, Token: f272b2d832504b59, ContentFormat: text/plain;charset=utf-8, Type: Acknowledgement, MessageID: 49963, PayloadLen: 13
2023/08/28 10:04:23 Response payload: Code: Content, Token: fa7147ece5362a99, ContentFormat: text/plain;charset=utf-8, Type: Confirmable, MessageID: 55126, PayloadLen: 13
dtls TRACE: 10:04:23.286554 handshaker.go:177: [handshake:client] Flight 5: Finished
dtls TRACE: 10:04:23.286563 conn.go:243: Handshake Completed
2023/08/28 10:04:23 Response payload: Code: GET, Token:<PHONE_NUMBER>626bc8, ContentFormat: text/plain;charset=utf-8, Type: Acknowledgement, MessageID: 49967, PayloadLen: 13
2023/08/28 10:04:23 Response payload: Code: Content, Token: e14c0144a32444dc, ContentFormat: text/plain;charset=utf-8, Type: Confirmable, MessageID: 55130, PayloadLen: 13

Nice. Is it possible to extend the example by resuming the connection?

Thx for contribution :).

resolves #472

@jkralik your last comment mark #472 as resolved but the issue is still opened. Is serializing and deserializing a UDP DTLS connection functional?


Updated GettingStarted.md to use new endpoint commands

Decided against bash substitution in favor of copy-pasting endpoint id


Implement navigation with 'tab' between controls

This can help: https://github.com/flutter/flutter/issues/32778


TxMaker and transactions while having cache

Hello all,
I got confused while experimenting with MapDB (2.0) transaction system. TxMaker underlying engine could not have any cache, therefore my initial intention was having DB with some cache for fast data reading while using transaction system on engine of this store for writing (to be able to discover/solve concurrent conflicts). So I tried to open regular DB and then instantiate TxMaker with its engine, this of course won't work, because snapshots of this engine are read only, so this is not the right approach. I've tried several other methods (which are not worth to be mentioned here :)), again without success, so I think I miss something or this is just how things work and nothing could be done about it - either DB with cache or cacheless TxMaker over one store/engine. Well, I hope that the description of my intention is clear and needs no source attachments.
I will be glad for any informations regarding this case.
Thanks in advance and have a nice day.
Zeno

TxMaker does not work with instance cache. This bug was fixed recently in 2.0-beta8


XML::Error.errors leaks memory

XML::Error has a class variable @@errors which accumulates error messages from calls into libxml2.
It's accessible via the class method XML::Error.errors which returns the current items and resets the instance variable.
 Its use is deprecated. It was replaced by a more localized variant in #12663.
Still, we're keeping the old API around for backwards compatibility.
But when you don't use the deprecated API - as recommended - that means .errors never resets @@errors and the array with error messages only grows and wastes memory.
Example:
require "xml"

class XML::Error
  XML::Reader.new("</foo>").read
  @@errors # => [#<XML::Error:StartTag: invalid element name>]

  XML::Reader.new("<bar").read
  @@errors # => [#<XML::Error:StartTag: invalid element name>, #<XML::Error:Couldn't find end of Start Tag bar>]
end

This bug is a bit of a dilemma: We keep supporting an old API but not using it causes it to malfunction.
Maybe we could try to come up with some clever mechanism to clear the errors array every now and then or cap its size to keep extend in check. But I don't think that's going to work sufficiently well. For users of the new API it would still be wasteful. And we cannot guarantee stability for users of the old API.
So IMO our only option is to cut off the global error collection.
We could keep the deprecated method XML::Error.errors and have it always return nil. But at that point it has no meaningful function anymore and we could just drop it entirely. That'll at least mean a hard break for any code that still uses the deprecated API.
If necessary, it could be possible to provide the previous behaviour as an opt-in.

Maybe an opt-in flag, and raise an error to specify the flag when trying to access XML::Errors.errors, since we can't access global errors anymore?

I don't like the idea of breaking the existing code. An opt-in means that. I was playing with the idea of using a macro hook to detect the usage of XML::Error.errors and only then build the necessary setup, but method_missing doesn't work on class methods 😩

Suppose we could somehow detect whether XML::Error.errors is ever used and implicitly activate global error collection. That would basically preserve the current behaviour. Existing code using XML::Error.errors continues to build. But that also means we implicitly preserve the memory leak!
Just because a call to XML::Error.errors exists somewhere in the program doesn't tell anything about whether or when it's actually going to happen. A stray call somewhere deep down an unlikely codepath path could mean the method is technically reachable, but it probably won't actually ever run.
I don't think we should do that. If you really want to use XML::Error.errors despite its shortcomings, it should require to explicitly acknowledge the inherent memory issue.
Considering this, I don't see any good reason to continue using XML::Error.errors at all. It was a bad idea in the first place and is inherently broken. It cannot be fixed, so we might as well break it to make this explicit.

Playing devils advocate, if it's really not used anywhere and is already deprecated, do we really need to do anything at all and just save the break until 2.0? Like sure it's leaking memory but is it actually a significant amount to make going thru all this effort of discussion/implementation worth it?

Yes, this is immensely relevant. This leak was discovered in a production application.
An app that parses large numbers of XML documents will occasionally encounter some parsing errors. All these errors get collected in XML::Error.@@errors. With no clearing, it just piles up.

Actually seems there's still a usage of it in the stdlib in arm context: https://github.com/search?q="XML%3A%3AError.errors"+language%3Acrystal&type=code. The previous search link was not 100% correct.

This leak was discovered in a production application.

But isn't the solution for them to just stop using this deprecated API and tada problem solved?

The problem is that the memory exists even when you don't use the deprecated API. There's no opt-in for XML::Error.errors so it always collects all errors.
The example in the OP does not use XML::Error.errors. The references to @@errors are only there to observe the state. And they show that error messages accumulate, without ever using the deprecated API.

Actually seems there's still a usage of it in the stdlib in arm context

The search results are from outdated copies of the standard library. That usage was removed in #13038.

💡 Idea: how about changing the backing storage of these errors to a single integer? Then the legacy method would return N times a fake error message

Sorry, I realized these both just before you replied :see_no_evil:. Thanks for the confirmation tho.

@oprypin That's an interesting thought. But I think it might be better to introduce a hard break and alert of the situation instead of putting the old API on some sort of minimal life-support.

Sure, personally I'm not against this breakage. The entrenched policy is clearly against it though 😬

No, I believe this is within the limits of the compatibility policy: https://crystal-lang.org/reference/1.13/project/release-policy.html#reservations

Bugs: if an API has undesired behaviour, a program that depends on the buggy behaviour may break if the bug is fixed. We reserve the right to fix such bugs.

XML::Error.errors cannot operate in a meaningful way without leaking memory. Fixing the memory leak requires breaking the method.
We can chose in which way to do that.

Remove it entirely. Any program using it will fail to build and notify about the issue.
Reduce storage to only the number of errors. Programs will continue to build. There won't be informative error messages. But it preserves the behaviour that the result is Nil if no error occured since the last access, and otherwise it's an Array(String) whose size tells the number of errors since last access.

I suppose another option could be to generalize the error messages (i.e. remove quotes of the input document such as element names) and put them in a string pool. That could restrict overall memory usage to a tolerable amount. But it requires a bit of effort just to keep supporting a deprecated API that is not very useful anyway.

After further considerations after #14966 's comments, I'm now convinced that this is a breakage we need to do. It's impact in the ecosystem should be very limited, and the attempts at having a backwards-compatible version that doesn't leak and still works is challenging at best. So I'm now in favor of simply blocking its usage. #14934 is nice in that it doesn't remove the methods, but instead shows a nice explanatory message of why using it is not allowed.


chore(main): release react 0.0.15-experimental

:robot: I have created a release beep boop
0.0.15-experimental (2024-11-07)
🐛 Bug Fixes

trial release -- attempt 1 (f06a554)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/open-socket/js-sdk/releases/tag/react-v0.0.15-experimental :sunflower:


Draft : PoC Unify repo

Pull request title should be MF-XXX - description or NOISSUE - description where XXX is ID of issue that this PR relate to.
Please review the CONTRIBUTING.md file for detailed contributing guidelines.
What does this do?
Which issue(s) does this PR fix/relate to?
Put here Resolves #XXX to auto-close the issue that your PR fixes (if such)
List any changes that modify/break current functionality
Have you included tests for your changes?
Did you document any new/modified functionality?
Notes

Codecov Report

Merging #1691 (1b39fce) into master (a48fb94) will decrease coverage by 0.05%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1691      +/-   ##
==========================================
- Coverage   68.87%   68.82%   -0.06%
==========================================
  Files         147      143       -4
  Lines       11823    11235     -588
==========================================
- Hits         8143     7732     -411
+ Misses       2959     2828     -131
+ Partials      721      675      -46

Impacted Files
Coverage Δ

auth/repo/groups/db/postgres/init.go

auth/repo/groups/groups.go

auth/repo/key/key.go

internal/db/sqlxt/tracing.go

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

This PR is a PoC to unify the repo,
But this approach seems not a good way,
It add more layers and it will be difficult maintain


[AI Agent] Create Interesting Harry Potter Fact.md

📝 Description
Add a brief description.
💣 Is this a breaking change (Yes/No):

[ ] Yes
[x] No

🚧 How to migrate?
Don't need.
📝 Additional Information
lol

@AruSeito, raised a new PR as you asked because the first PR had a lot of changes in it

@biswabaibhab007
Hey there:
Could you please change the branch from main to beta? so we can get this one merged soon.

@biswabaibhab007 Hey there: Could you please change the branch from main to beta? so we can get this one merged soon.

@donqu1xotechina, changed the branch from main to beta


English class names

Dear Kintrix,
I happen to be an attendant at your institution and know certain things about how it works. The naming of the "angol1" and "angol2" classes are confusing, as they are using numbers which can lead to problems in people comprehending them (usually in the under-10-IQ community). Therefore I suggest using the "Angolóra, amire Boldi nem jár" and "Angolóra, amire Isti nem jár" names instead.
In this comment, I would also like to show respect towards your choice as a profile picture for this bot. I adore Mr. Ferenc Németh!
Thank You in advance for considering this
Wishing you Happy Holidays
Steve the Great

@Humm1ngb1rd,
I appreciate your suggestion, but sadly I have to turn it down due to it not solving the issue.
Naming those as Angolóra, amire Boldi nem jár might also be confusing.
After all, this applies to both angol1 and angol2.

Thank you for contacting me with an answer (even if it contains pretty bad news) so fast! I understand your choice and I wish you a nice career in programming. Maybe, you could also invite your classmate, Isti to the school buffet for some free food more often(?) Nope, I don't know him!
Farewell!


new task for copying dependencies of a project to build/dependencies folder

👍 don't think this is needed by HT

👍 don't think this is needed by HT

Not required anymore.

Not required anymore.


[MeshModel] Add new relationship definitions

Notes for Reviewers
This PR adds Controller and Configurational peer relationship definitions.
Signed commits

[x] Yes, I signed my commits.

🚀 Preview for commit ccaae662d83e878dc5fb4a3e0e7b515be42c1103 at: https://64bfa57719325c520c6195c4--meshery-docs-preview.netlify.app

@Boombag0607  Let's discuss this on the Meshery Dev call. Please add this as an agenda item in the meeting minutes if you would. :)

merge conflict

Closing this.


Trading UI bid/ask cancellation doesn't work

for test
I tried on the latest workbench not customizing anything.
Orders history update
Orders Book update
Chart update
update update
my open orders not update
When refreshing the orders page, the order is canceled, but it does not update directly.
i will update video soon.

https://streamable.com/7cf9v
video testing
Mine orders not working
my orders not delete rows when orders are complete

The 1.8-stable version has the same bug

This is a bug related to Model events
Because the trading engines runs raw sql quries update events are never published so
what we have to do is to publish Pusher events on update.
I have fixed this by adding
after_commit :trigger_pusher_event, on: [:create, :update]
def trigger_pusher_event
    Member.trigger_pusher_event member_id, :account, currency.id => {
        currency: currency.id,
        balance: balance,
        locked: locked,
        margin: margin
        }
  end
  def trigger_pusher_event
    Member.trigger_pusher_event member_id, :order, \
      id:            id,
      at:            at,
      market:        market_id,
      kind:          kind,
      price:         price&.to_s('F'),
      state:         state,
      volume:        volume.to_s('F'),
      origin_volume: origin_volume.to_s('F'),
      stop:          stop.to_s('F'),
      type:          ord_type
  end

to Account and Order models.

@martianatwork were did you put that because thats my problem too

@laugh26 in executor.rb and order.rb I will push some code on Sunday which will fix most of issues like this

@martianatwork thats great my friend

I am also facing same problem. I am using v 1-9-stable. How to fix this problem.


FT: Add support for Backblaze b2 Backend

Description
Enable CloudServer to write to Backblaze B2 buckets with the S3 API
Motivation and context
Following the 42 Paris hackathon, we were encouraged by both Scality and Backblaze to pursue this feature. We hope this enables even more MultiCloud Data Control for people who create value with data.
Checklist

[x] Added tests to cover changes
[x] Code conform with the style guide (Ran linter)
[ ] Sign your work (will decide which contributor signs which commit during review)

Authors

@smoreno-v2
@jjourdai
@VinceMaestro

All commits are atomic, we could split this PR into smaller ones if needed.

@VinceMaestro - I'm having trouble getting this project to build and run.
I created a new Ubuntu 16.04 server. On that server, I installed git, build tools, node v.8.9.4, npm-run-all. I've checked out the S3 source and applied the pull request, built it and configured B2. I then attempted to test it with s3cmd, where I receive permission errors (see below.)
Question: Is there a way to configure S3 to use HTTPS? Many integrations seem to assume HTTPS when talking with an S3 endpoint.
Steps I followed to install:

install latest LTS version of nodejs

$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install nodejs

Install build tools for both S3 and s3cmd

$ sudo apt-get install build-essential git
$ sudo apt-get install python-dev python-pip

install npm-run-all

$ npm install npm-run-all --safe-dev

Clone S3, apply backblazeb2 pull request and built it.

$ git clone https://github.com/scality/S3.git
$ cd S3
$ git fetch origin pull/1125/head:b2integration
$ git checkout b2integration
$ npm install

I get the the following warning message.
Question: Can I safely ignore these? The scality/cdmiclient repo doesn’t seem to exist on GitHub?
$ npm install
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: cdmiclient@github:scality/cdmiclient (node_modules/cdmiclient):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Error while executing:
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: /usr/bin/git ls-remote -h -t<EMAIL_ADDRESS>npm WARN optional SKIPPING OPTIONAL DEPENDENCY:
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Permission denied (publickey).
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fatal: Could not read from remote repository.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY:
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Please make sure you have the correct access rights
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: and the repository exists.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY:
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: exited with error code: 128
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.

I then added the following to my locationConfig.json file.
"b2-sac": {
		"type": "b2",
		"legacyAwsBehavior": false,
		"details": {
			"b2StorageEndpoint": "api.backblazeb2.com",
			"b2AccountId": "<my_account_id>",
			"b2ApplicationKey": "<my_app_key>",
			"b2ContainerName": "<my bucket name>"
		}
	}

And I started S3. I know something is working because a bucket is created in my B2 account using the “B2ContainerName” attribute’s value above. (That should be called “B2BucketName”.)
$ S3DATA=multiple npm start

Using the following s3cmd command, I get permission errors:
$ s3cmd --host=zenko.backblaze.corp:8000 --access_key=accessKey1 --secret_key=verySecretKey1 --region=b2-sac put /etc/hosts s3://zenko-tests/testput
upload: '/etc/hosts' -> 's3://zenko-tests/testput'  [1 of 1]
 206 of 206   100% in    0s   329.36 B/s  done
upload: '/etc/hosts' -> 's3://zenko-tests/testput'  [1 of 1]
 206 of 206   100% in    0s   499.96 B/s  done
ERROR: S3 error: 403 (InvalidAccessKeyId): The AWS Access Key Id you provided does not exist in our records.

$ s3cmd --host=zenko.backblaze.corp:8000 --access_key=accessKey1 --secret_key=verySecretKey1 --region=b2-sac ls s3://zenko-tests
ERROR: S3 error: 403 (InvalidAccessKeyId): The AWS Access Key Id you provided does not exist in our records.

Hi @nilayp ,
I made the same manipulations as you today on AWS EC2 Server :

For your first question, i can't answer you and probably, you should ask this at a cloudserver
official contributors.

For warning problems, I had always these warning and it was never a problem for our b2 backend development.

For your permissions problem, I made the same manipulations as you but I had to modify the file config.json and add:

"restEndpoints": {
        "localhost": "us-east-1",
        "<IP_ADDRESS>": "us-east-1",
        "cloudserver-front": "us-east-1",
        "s3.docker.test": "us-east-1",
        "<IP_ADDRESS>": "us-east-1",
        "ec2-34-204-240-164.compute-1.amazonaws.com": "us-east-1" <<<---------------
    },

Before you use
s3cmd --host=zenko.backblaze.corp:8000 --access_key=accessKey1 --secret_key=verySecretKey1 --region=b2-sac put /etc/hosts s3://zenko-tests/testput

have you already create the local bucket with something like this:
s3cmd --host=zenko.backblaze.corp:8000 --access_key=accessKey1 --secret_key=verySecretKey1 mb --region=b2-sac s3://MYLOCALBUCKETTESTNAME

I have met no other problem, you can join me directly on slack zenko-io.

@nilayp

Question: Is there a way to configure S3 to use HTTPS? Many integrations seem to assume HTTPS when talking with an S3 endpoint.

We usually recommend disabling HTTPS for testing. For s3cmd you can set the parameter use_https = False in your config. Here's a sample config for your reference
http://s3-server.readthedocs.io/en/latest/CLIENTS/#s3cmd

Hello @RachedBenMustapha, thanks for your feedback.

b2_lib is not an outsider, we wrote the functions witch request b2 backend and group them in one place: b2_lib. So if further modifications needs to be done it is easily manageable. Doing so add some clarity.
As you can see the use of async await is also for clarity: structure never change: try {} catch (e) {} finally {} doing so let further additions &| modifications fast and simple and avoid having callback inside callback inside callback (witch believe me doesn't help for understanding ;) ). We had asked Rahul about it but he seemed pretty confident that this wouldn't be a problem. Almost all of  lib/api.js functions (S3 official repo) use async for waterfall, and all tests do so there shouldn't be any compatibility issue. (Also has i understand it, the async module should work properly since ES7?)

@VinceMaestro Sorry for the confusion, I wanted to use the async module, just not async/await yet. It would be odd to have two styles of code in the project, our plan is to move to async/await after assessing its performance. You can get around callback hell easily with methods from the async module like waterfall, series, parallel etc. I can point you to some relevant parts of the project like api/ for async usage.

Hi @rahulreddy, i get your point that having two style of code would be odd but is it a good in half reason not to try to do every new piece of code "clean"? During our one week hackathon we spent 4 days reading code, not being able to type a single line of code. We didn't found the code easy to read, to understand and to change, and I think the high number of callback and waterfall play a big role in it. We're not working for scality so it can be difficult to have an idea of the big picture, it doesn't mean we don't wan't to do as best as possible. Thing is, right now i fell a lake of communication on the why. It would really help us to have your technical expertise on why things should be differents, we worked quite some time on this project and more technical and detailed explanations would feel great :)
Maybe you could tell us more about the assessment of async/await performance?

We've dealt with doc modifications @DavidPineauScality && changed “B2ContainerName” to “B2BucketName” @nilayp.

I believe async/await is not natively supported until Node v7.6+
http://node.green/#ES2017-features-async-functions
In order to support async/await, we'd have to use a transpiler like Babel. That said, I'm not fully aware of the benefits or implications of allowing the feature via use of a transpiler, but it would seem that the transpile step might be a bit overboard.
I also agree with what @RachedBenMustapha said and believe keeping uniformity through the code is best, and when we have to ability to transition to a newer version of Node, reflect any beneficial changes that the new LTS offers.


new cop: Single Line Complexity

A new type of Metric cop.
This uses the existing ABC complexity logic but applies it per line instead of per method.
This is a novel check, as there is currently no way to check the 'density' of complexity within the analyzed source. We have checks like ABC that verify that no method contains ABC > 17, but what if that method is just one line? In that case, the code is likely difficult to read, with too much logic crammed into a small space.
This check ensures that the maximum ABC of any given line is at max 10, by default.
I'd love to hear any feedback from the team about what would be helpful in terms of getting this cop or one like it included in future versions of rubocop.

Before submitting the PR make sure the following are checked:

[X] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[X] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[X] Feature branch is up-to-date with master (if not - rebase it).
[X] Squashed related commits together.
[X] Added tests.
[X] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[X] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

@dvandersluis , sure I'll take a look at that. I'm trying to get the changelog test to pass right now. Does this need to have an associated issue? it seems the changelog spec requires a link in it.

Instead of creating the changelog file manually, try running bundle exec rake changelog:new. The changelog entry needs a link to the github issue (or PR if there is no associated issue).

@dvandersluis , in your example, the node corresponding by quux spans multiple lines, and so would not be considered by the current cop at present.
I think in this case, I think you could make a case either way: Either ignore it, as the quux block actually spans multiple lines, or consider just the call to quxx, but nothing in it's body as part of the calculation.
Would you be ok if I documented the expectation to ignore it with a spec? I'm not sure there is much value in adding a +1 to the branch score of this line.

I am not sure about this cop as of yet. We'd need to figure out a reasonable default, and the max of 2 you used in your tests is incredibly strict to the point that basically no real code would be able to be written. A lot of users end up disabling metrics rather than refactor to meet strict maximums.
If we were to adopt it, I think Metrics/SingleLineAbcSize would make more sense as a name to be inline with the existing AbcSize cop since it's using the same calculation.
I'm not sure I'm sold that a complex line is harder to read than a complex method. It seems like a combination of Metrics/LineLength with the existing AbcSize could have the same effect. @rubocop/rubocop-core what do you all think?

thanks for the feedback @dvandersluis ,
The max of 2 in the test is just for testing, as I noticed many other tests do the same thing (ABC uses 0 actually). I set the default to 10, which I think is fairly forgiving for a single line. Try running it on another codebase and see what you think.
We found this valuable for our substial legacy Rails app, after a discussion of whether there was 'too much' complexity on a single line with an expression something like
(a + b ) > 2 ? d.f.e.collect(&:g) : j(h + i)

it wouldn't fail any other checks, but is 'too much logic for one line', and we wanted a way to identify such cases.

I get that the 2 is just for testing and I'm okay with that. I'm just saying that if we're not careful with adding new metrics it'll result in more complaints than value IMO.
Your example is interesting to me because this small rewriting would not trigger any issues with this cop, but would still be overly complex / unreadable:
if (a + b) > 2
  d.f.e.collect(&:g)
else
  j(h + i)
end

Factoring out the ternary might be marginally better but ultimately I'd want to rewrite the condition and true/false cases to private methods in order to make it readable, at which point the ternary wouldn't be an issue for your cop either.

BTW, I ran it on an established codebase and got a lot of offenses like this:
Metrics/SingleLineComplexity: Assignment Branch Condition size too high for line 45. [10/10]

It seems like [10/10] should not be an offense.

@dvandersluis , changed default to 15

I get that the 2 is just for testing and I'm okay with that. I'm just saying that if we're not careful with adding new metrics it'll result in more complaints than value IMO.
Your example is interesting to me because I think it proves the point I'm trying to make -- this small rewriting would not trigger any issues with this cop, but would still be overly complex / unreadable:
if (a + b) > 2
  d.f.e.collect(&:g)
else
  j(h + i)
end

Factoring out the ternary might be marginally better but ultimately I'd want to rewrite the condition and true/false cases to private methods in order to make it readable, at which point the ternary wouldn't be an issue for your cop either.

I would hope that when confronted with the (contrived) example I provided, this cop would indeed prompt the user to go a little bit further than splitting it up; introducing variables/methods for expressions like a+b and d.f.e.collect(&:g) etc. would be prudent, but that's beyond the scope of this cop I think. We wanted a way to highlight when there is 'too much logic on a line', just as the existing ABC complexity highlights 'too much logic in a method'. Surfacing those instances and preventing new ones from occurring has value, I think.

The cop is not handling multiline heredocs properly. This test fails:
it 'does not register an offense for a multiline heredoc' do
  expect_no_offenses(<<~'RUBY')
    <<~STRING
      #{foo}
      #{bar}
      #{baz}
      #{quux}
    STRING
  RUBY
end

This test also fails, because it also adds on offense on the heredoc delimiter:
it 'registers an offense for a complex line within a heredoc' do
  expect_offense(<<~'RUBY')
    <<~STRING
      Heredoc with multiple lines
      #{foo.bar.baz.quux}
      ^^^^^^^^^^^^^^^^^^^ Assignment Branch Condition size too high for line 3. [4/2]
    STRING
  RUBY
end

The cop is not handling multiline heredocs properly. This test fails:
it 'does not register an offense for a multiline heredoc' do
  expect_no_offenses(<<~'RUBY')
    <<~STRING
      #{foo}
      #{bar}
      #{baz}
      #{quux}
    STRING
  RUBY
end

This test also fails, because it also adds on offense on the heredoc delimiter:
it 'registers an offense for a complex line within a heredoc' do
  expect_offense(<<~'RUBY')
    <<~STRING
      Heredoc with multiple lines
      #{foo.bar.baz.quux}
      ^^^^^^^^^^^^^^^^^^^ Assignment Branch Condition size too high for line 3. [4/2]
    STRING
  RUBY
end

@dvandersluis thanks for checking that; I'll investigate.

Here's an example of a false positive test where the score == max (currently offends with Assignment Branch Condition size too high for line 1. [10/10]):
context 'false positive' do
  let(:cop_config) { { 'Max' => 10 } }

  it 'does not register an offense' do
    expect_no_offenses(<<~RUBY)
      redirect_to login_path if !Rails.env.development? && (!user_signed_in? || !current_user.permitted?)
    RUBY
  end
end

Sure the code can be refactored, but if the calculation is the same as the max score, it shouldn't register an offense (ie. the max score should be still allowed).

Sure the code can be refactored, but if the calculation is the same as the max score, it shouldn't register an offense (ie. the max score should be still allowed).

oh I see, thanks I'll take a look at that too. Strange, as the condition to check against the score seems straightforward: next unless abc_score > max_score_allowed.

Here's a simpler false positive with Max: 2:
expect_no_offenses(<<~RUBY)
  a = b if c
RUBY

Looks like you're actually getting a float and then truncating it in the offense message (your cop actually calculates 2.45 for this code, not 2). Use %.4g instead of %.4g, like Metrics/AbcSize. You should probably include the vector in the message like AbcSize does too.
The calculation is something you'll need to look into too because the vector for that line is <1, 2, 1> which means ABC size should be 2 (sqrt(A² + B² +C²) => sqrt(4) => 2).

I'm not sure I'm sold that a complex line is harder to read than a complex method. It seems like a combination of Metrics/LineLength with the existing AbcSize could have the same effect. @rubocop/rubocop-core what do you all think?

I align with this perspective. Practical cases should already be covered by Layout/LineLength and Metrics/AbcSize. While it is an interesting way to measure as a metric, I honestly have yet to be convinced of its practicality as a cop, as it seems more likely to add complexity to rule and parameter for most users.

In our case, a 10+-year-old Rails app with many cops disabled (including Metrics/AbcSize), this per-line check was useful as it highlighted about 30 lines that were in definite need of refactoring. Enabling the per-method cop would have been too overwhelming, with hundreds of offences.
If there's no interest from the team here, I can package it up as a separate gem and share it with the community that way.
The concept of 'complexity density' is interesting and worth consider IMO, as there is nothing quite like it that I've seen.
As mentioned earlier, a line like
(a + b ) > 2 ? d.f.e.collect(&:g) : j(h + i)

would not raise a line-length offense, and would probably not result in a per-method ABC failure depending on how it was configured/enabled at all.
IMO it's more helpful than the per-method check, as you can have a very easy to understand method with a high ABC count, as long as it's long enough, with clear variable names, etc., but it's hard to imagine a situation in which this per-line check raises an offense and you wouldn't want to clean it up.


Enhancement | Enable ALB access logs for EKS clusters

Describe the Feature
Implement the required resources to store the logs and enable ALB access logs for apps-prd EKS clusters by default and optionally apps-devstg.
Expected Behavior
n/a
Use Case
n/a
Describe Ideal Solution
n/a
Alternatives Considered
Probably a good implementation would entail using the terraform-aws-s3-log-storage module to deploy the storage resources and configure the load balancer via this annotation in this ingress resource.
Additional Context
n/a

@Franr I'm leaving here the link to the slack thread we're we've reviewed some specifics of this issue as reference.


typo 'visibiilty' becomes 'visibility' in .get_settings_entries()

In the method definition of SettingsDefinitions.get_settings_entries() and in the only place it is called, SettingsMenuView(), a typo of "visibiilty" has existed in an argument name since 0.5.0.  This was NOT causing any errors, because this typo was consistent in:

the prototype line of the method definition,
as well as its usage in the body of that method,
as well as its only caller from the view class.

IT WAS HARMLESS.
However, because it:

has caught my eye and compelled me to deep-grep and verify that this typo does NOT break anything,
and because not fixing it might compel future developers to repeat the same distraction/unnecessary verification,
and/or worse, to correct only half of it, turning a harmless typo into a real bug in the Settings Menu,
...I have resolved the typo to "visibility"

In testing this change, I have:

fixed just half of it, to make sure that doing so would indeed create an exception bug upon entering the Settings Menu,
and fixed all of it, then retested to verify that I am NOT getting an exception upon entering the Settings Menu.

This was first mentioned in https://github.com/SeedSigner/seedsigner/issues/296

ACK in both the "yes, I agree with this change" sense of the term and in the "Ack!" I'm embarrassed that I had a typo sense of the term.

utACK

Tested, LGTM.


yak shave -- can visit paths with .

I think this is only necessary because our dev environment is not routing correctly. See the --pushstate option in budo

for posterity, I had to pass the --pushstate option like this:
--pushstate [ --disallow \"\\.ed25519\" ]

This is part of package.json
{
    "serve": "env $(cat .env | grep -v \"#\" | xargs) budo src/index.js:bundle.js --cors --pushstate [ --disallow \"\\.ed25519\" ] --dir=public --live --open -- -t envify -p esmify --debug",
}

it takes a disallow option + a regex for the pattern not to treat as a literal file name


API: provide a way for the client to specify the influx server with an url.

It is now very convenient to configure a Influx client with a server url.  Most Influx client libraries support that.
At the moment, the client API is that:
    def __init__(self,
                 host='localhost',
                 port=8086,
                 username='root',
                 password='root',
                 database=None,
                 ssl=False,
                 verify_ssl=False,
                 timeout=None,
                 retries=3,
                 use_udp=False,
                 udp_port=4444,
                 proxies=None,
                 pool_size=10,
                 path='',
                 cert=None,
                 gzip=False,
                 session=None,
                 headers=None,
                 ):

Since internally, you are essentially building a URL:
https://github.com/influxdata/influxdb-python/blob/c3903dda515d4f7efcb8c55250fd8b75c8446034/influxdb/client.py#L166
You should provide an url argument, that would take precedence over host, port, ...
To not break API compatibility, you could do it this way:
    def __init__(self,
                 url=None,
                 host='localhost',
                 port=8086,
                 username='root',
                 password='root',
                 …
       if url:
           self.__baseurl = url
       else:
            # current logic
            self.__baseurl = "{0}://{1}:{2}{3}".format(
                     self._scheme,
                     self._host,
                     self._port,
                     self._path)

I think InfluxDBClient.from_dsn() meets your needs: https://github.com/influxdata/influxdb-python/blob/2c3d49cb51fd37db494a7785fe645e24f277854c/influxdb/client.py#L221-L259


Shelly blinds keep changing state in Domoticz

Hi Alexander,
Don't know where to start but since I think the issue is being caused by MQTT I start my search here.
Since today I stand out that in Domoticz the Shelly Blinds keep changing their state from open to close en from close to open without actually really going up or down. This only happens at the blinds other devices don't show this behaviour.
Any idea what this could be?
I reran Shellyteacher4Domo (updated) Windows version and rebooted all devices but no changes were detected in Domoticz.
Nothing has changed.
I wanted to rerun ShellyTeacher4Domo with my Rpi but after upgrade I get this error:
pi@raspberrypi:~/shellyteacher4domo $ sudo ./run.sh Mosquitto conf found. persistence ENABLED TKInter init failed no display name and no $DISPLAY environment variable Ini file exists /home/pi/shellyteacher4domo/shellyteacher4domo.py:481: DeprecationWarning: Callback API version 1 is deprecated, update                                      to latest version   mqttclient1 = MQTTClient(mqttcompatibility) #gen1 Connecting to MQTT server... /home/pi/shellyteacher4domo/shellyteacher4domo.py:497: DeprecationWarning: Callback API version 1 is deprecated, update                                      to latest version   mqttclient2 = MQTTClient(mqttcompatibility) #gen2 Connecting to MQTT server... /home/pi/shellyteacher4domo/shellyteacher4domo.py:512: DeprecationWarning: Callback API version 1 is deprecated, update                                      to latest version   mqttclient3 = MQTTClientOnlineCheck(mqttcompatibility) #gen2 online Connecting to MQTT server... /home/pi/shellyteacher4domo/shellyteacher4domo.py:524: DeprecationWarning: Callback API version 1 is deprecated, update                                      to latest version   mqttclient4 = MQTTClientOnlineCheck(mqttcompatibility) #gen2 online Traceback (most recent call last):   File "/home/pi/shellyteacher4domo/shellyteacher4domo.py", line 552, in <module>     loopok2 = connect_mqtt()   File "/home/pi/shellyteacher4domo/shellyteacher4domo.py", line 525, in connect_mqtt     mqttclient4.subscribechannel = settings.data['trigger_topic4'] KeyError: 'trigger_topic4'

I wanted to rerun ShellyTeacher4Domo with my Rpi but after upgrade I get this error: "/home/pi/shellyteacher4domo/shellyteacher4domo.py", line 525, in connect_mqtt mqttclient4.subscribechannel = settings.data['trigger_topic4'] KeyError: 'trigger_topic4'`

Please erase full directory and download shellyteacher again. This error message caues as the settings.py structure changed 2 month ago.
Or you can use the windows version, which does not use external settings.py.

Hi,
since the python version didn't worked I used the windows version.
But still the problem exists in Domoticz? The status keeps flipping from open to closed multiple times in a minute.
Any idea why this happens?

Hi,
since the python version didn't worked I used the windows version. But still the problem exists in Domoticz? The status keeps flipping from open to closed multiple times in a minute. Any idea why this happens?

I does not have any kind of blinds, so i have no idea. MQTT realtime debugging may help you.


could not find implicit value for parameter marshaller:

Hi,
I tried to use this portion of code slightly modified for my project but it always gives me the error of could not find implicit value for parameter marshaller:
case question: Question =>
requestContext.complete(StatusCodes.OK, question)
killYourself
[error] C:\Projects\Bayer\DashboardReporting\app\services\RestInterface.scala
[error]     customers.map(c => requestContext.complete(StatusCodes.OK, c))
[error]                                               ^
[error] one error found
[error] (compile:compileIncremental) Compilation failed
[error] Total time: 277 s, completed Aug 31, 2016 3:07:57 PM
could not find implicit value for parameter marshaller: spray.httpx.marshalling.ToResponseMarshaller[(spray.http.StatusCodes.Success, customer)]

Hi vijaykumargundavarapu,
the error indicates that spray does not know how to convert your customer class into a json.
For the Question entity in this example, have a look at QuizProtocol.scala and how we have defined how to convert the entity into a json (line 34), you should do something similar for your definition of customer.
Note that this is just one way of doing things. You can also achieve the same using other libraries. For example see this article on how to achieve this using json4s.
I hope this helps!
Cheers,
Daniela


Fix of updating and invalidating metadata cache

What changes are proposed in this pull request?
Use Nano time for timestamp. This will be more accurate for metadata invalidation.
Fix issue of cache invalidation of metadata stored.
Why are the changes needed?
For better cache invalidation control and correctness.
Does this PR introduce any user facing changes?
N/A

alluxio-bot, merge this please


Is polymaps dead ?

With new browser adoption, computer and phone getting more powerfull, google maps that is expensive, openstreetmap getting better, is there not a path for polymaps ?

hmm just found this project it is interesting.  lighter then the rest


Readiness Checklist step 6 update proposal

With a reference to Issue camaraproject/WorkingGroups#139 (https://github.com/camaraproject/WorkingGroups/issues/139).
I suggest to discuss about step 6 of the Readiness Check List (https://github.com/camaraproject/WorkingGroups/blob/main/Commonalities/documentation/API-Readiness-Checklist.md)
The discussion is driven by the goal of not slowing dawn the possibility for an Operator to promote or sell an API in its marketplace. Step 6 requires two Operators to have implemented and tested an API. Because of this step, it can happen that a stable API can not be marked as v1.0.0 because a second Operator has not yet implemented it.
A proposal could be a modification of step 6 having just one Operator as mandatory and a second Operator or a CAMARA member as recommended.
We could also evaluate the possibility for an API to be promoted and published on a marketplace even if in Beta version. A Beta version is expected to have possible improvements with minor releases while a "full version" (e.g. v1.0.0) is expected to be more stable.
The idea is to gather, in this discussion, the opinion from the group and to present a possible solution to the Governance WG. this because it is a marketing decision rather than a technical one.

Dear all,
This is a long-standing discussion. I see pros (as raised by @FabrizioMoggio) and cons (as noted by @hdamker, probably also shared by GSMA in their goal to increase operator adoption).
GSMA has drafted a WoW between Product WS and CAMARA, with the aim to agree on an agile interaction model for collaboration between both tracks. Among other things, this WoW proposes how both tracks can work together to ensure release cadence of for APIs (important to manage expectations of developers and operator with regards to when new API releases will be available, and with which scope). I think this proposal is closely related to the versioning topic proposed in this issue.
GSMA Open Gateway Product WS will be presenting this WoW in next TSC meeting (7th Sept), in order to get feedback from TSC and finalise on details (e.g. periodicity of API releases). My suggestion is to escalate this issue to the TSC, leaving them to use i) this issue and ii) WoW, as input to decide way forward

@jordonezlucena I agree with you, if we can't find a solution we can escalate to the TSC. Anyway, just to verify if we are all on the same page, my proposal is to follow @hdamker suggestion to have V1.0.0 according to the current step six (two Operators, I see the value for GSMA) and to add to step six a note regarding the Beta version: if an API has completed all the required steps from the checklist but it is just implemented by one Operator, it can be anyway published on the market as Beta version.

@FabrizioMoggio @hdamker: we should steer all the discussion regarding when/how to achieve 1.0 through one single issue - otherwise, it is verify difficult to keep track of progress. I say this because I've just come up with a quite similar issue in Governance, see #85. I guess it falls within the scope of TSC.

@shilpa-padgaonkar how can we bring this discussion to TSC? I mean, what I need to do :-)

@FabrizioMoggio In the last TSC call it was agreed that I would label all issues in commonalities which are somehow relevant for release mgmt concept, under the label release mgmt so that they can be addressed once the topic of release mgmt (E2E) gets started/discussed within TSC in the next/upcoming TSC calls.
The TSC will reach out to you as soon as your point is on the agenda.


Dependabot alert: NumPy vulnerability in Omics Integrator 1

https://github.com/Reed-CompBio/spras/security/dependabot/1 reported a vulnerability in the version of NumPy used by Omics Integrator 1.  However, we cannot update NumPy to the version that fixes this.  Omics Integrator 1 requires the older version https://github.com/fraenkel-lab/OmicsIntegrator/pull/29.

https://github.com/Reed-CompBio/spras/security/dependabot/2 reports a second vulnerability in the version of NumPy used by Omics Integrator 1.

This will be a recurring problem. I'll continue listing them here:

https://github.com/Reed-CompBio/spras/security/dependabot/3
https://github.com/Reed-CompBio/spras/security/dependabot/4
https://github.com/Reed-CompBio/spras/security/dependabot/5


Drop obsolete legacy Send method from Session type

As mentioned in the review of PR #2.

Thanks for the fix!


Duckdb, Clickhouse, MySQL need to support new error message pattern

@digadeesh to delete this and create separate enhancement(s) for it.


Console problems when using Git Bash to ssh into IBM PASE Environment

SSH-ing into the PASE environment on an IBM i Series creates several unusual problems.
Most significantly, attempting to use the backspace key to correct a typographical error seems to perform a destructive backspace, but the previously-typed text is not removed from view. Instead, another character is appended to the line:

The last two commands show the result of entering three and one backspaces, respectively. The terminal is working correctly in that "executing" the 2nd-from-last command (  $ ls ⌂⌂⌂ ) has no effect (all three characters, ls , have been erased).
There are problems related to the terminal type (cygwin) when using vi:

None of these errors occur if I ssh in using the Git Bash program on its own (instead of Git Bash inside of Terminus).

Terminus Version: 1.0.139 (Windows, 64 bit)
Steps to reproduce:

Open a new tab in the git bash profile
ssh into an IBM PASE environment
Note problems with entering commands on the console

System information:
Windows 10 (19041.985)
Git Bash (launched outside of Terminus) is using mintty 2.9.1 (x86_64-pc-msys)

Thanks for the detailed report. Can you compare the behaviour with the Terminus' own SSH client?

Using Terminus's own SSH client creates different (undesired) behavior.
Backspaces no longer show a character, but do? seem to have an effect. See the last command where I typed ls and then several backspaces, and the result was  not found.

Okay, I think I've figured it out. PASE is defaulting to bourne shell, and wants ctrl+h for backspaces.
The following stackoverflow thread (discussing AIX, which is very similar to PASE) explained the fix: https://unix.stackexchange.com/questions/16700/what-is-the-default-shell-for-sh-in-aix
Running ssty sane; tset -Q and then stty erase '^?' fixed problems with backspaces in the Terminus Git Bash profile. However, it does not fix backspaces in a session created in Terminus's SSH client.

Vi is opening vi in open mode, which is intended for terminals that display one active line at a time. vim launches vim properly in a fullscreen view. Since the problems didn't actually have anything to do with Terminus, I'm closing the issue.


[3.x] Add deselect() to RichTextLabel

https://github.com/godotengine/godot/pull/59874 for 3.x branch

Thanks!