needs to handle multi-file reports

My billing report for april ended up split into two files. reportKeys in the manifest has two values:
"reportKeys":["billing/report/20170401-20170501/f6deac7f-7f11-4dfe-a3d2-332fd6540cfd/report-1.csv.gz","billing/report/20170401-20170501/f6deac7f-7f11-4dfe-a3d2-332fd6540cfd/report-2.csv.gz"],
I'm not actually using this fork yet, but the code in get_latest_zip_filename looks the same (https://github.com/PriceBoardIn/aws-elk-billing/blob/master/tools/tools.py#L158)

What exactly you mean by multi-file reports?

The report is split in 2 files, which are both in the manifest. e.g.:
% aws s3 ls s3://bucket/billing/report/20170401-20170501/f6deac7f-7f11-4dfe-a3d2-332fd6540cfd/
2017-04-30 12:16:07     573942 report-1.csv.gz
2017-04-30 12:24:05  114164377 report-2.csv.gz
2017-04-30 12:24:14       7727 report-Manifest.json

@cg2v Thanks for pointing it out.
This seems to be an issue with bulk Billing Reports. I'm marking it as a bug and will release a patch ASAP.

Any progress on this issue?
Tks, - JB


Change minimum number of characters for 3

Endporint: /v1/adventurer/search
When searching for adventurers with 2 characters it is returning "false" due to the minimum quantity, it turns out that it is possible to create a family name with 2 digits
Examples:
Region: SA
FamilyName: L1
Region: SA
FamilyName: xR
if len(query[0]) < 3 || len(query[0]) > 16 {
return query[0], false
}
validators/ValidateAdventurerNameQueryParam.go

Thanks for bringing this to my attention, looks like different regions can have different limits, because there's no such family names on EU or NA. I will change the validator soon


DRAFT Proposal: Parallelism default based on cpus

Wondering if this should be based on cpus rather than constant value

Coverage remained the same when pulling 0f173584034204d5a8f0fdcfc89151e1d076c302 on ccarpita:patch-1 into e1c72dacc278f5bda91dbf107db34d17e0761007 on pereckerdal:master.


Setup CI (CPU)

Closes #4

Not sure why liblikwid can't be found. I used tmate and ssh'ed onto a runner to debug. After export LD_LIBRARY_PATH=/usr/local/lib (why is this necessary?) things worked in the session. Does the julia-runtests action run in a new session?

Further optimization of the setup + more tests can happen in separate commits / PRs.


Fix BackURL redirect with strict or lax session cookie security.

See #55 PR for more context.
This is merely a cherry pick / copy of that commit but for the 2 branch so in theory should work in SS 4.x

Testing this in a proper environment that has SAML oauth to see if this fixes missing cookies #nomnomnom.

Tested the RelayState and it works perfecto.
@satrun77 mind reviewing that this ok going into 2 and tagging accordingly please? 🥺

How urgent do you need this?

How urgent do you need this?

Not super urgent but will be finished on client project by Friday. But it can live on the dev branch for now i guess.


the content is blocked because it isn't signed by a valid security certificate

I have developed an addin for excel but i can't start then in my desktop excel, i get the error The content is blocked because it isn't signed by a valid security certificate.
I have my package.json with the following configuration because i have multiple development environments
{   "name": "rose-excel-addin",   "version": "4.0.3",   "scripts": {     "ng": "ng",     "startProd": "ng serve --ssl true --ssl-key /node_modules/browser-sync/certs/server.key --ssl-cert /node_modules/browser-sync/certs/server.crt --configuration=production",     "startQa": "ng serve --ssl true --ssl-key /node_modules/browser-sync/certs/server.key --ssl-cert /node_modules/browser-sync/certs/server.crt --configuration=qa",     "startLocal": "ng serve --ssl true --ssl-key /node_modules/browser-sync/certs/server.key --ssl-cert /node_modules/browser-sync/certs/server.crt",
i run this command npx office-addin-dev-certs install  as sugested where, but the error still hapend.
One note, everything works fine until a few months ago., but now I had to make a fix and it no longer works.

@Ssereno Sorry that you're hitting this issue. I'll transfer out of outlook repo since this seems related to Excel.
Thanks.


Provide access to USP DS repository

There's a great dataset repository that just came out, and it's entirely devoted to online learning. Here is the link. I've just contacted the authors to see if they provide a way to download each dataset individually. If so, we could write a class in the datasets module to provide a simple access. This would be very much like the fetch_openml that scikit-learn's provides for accessing datasets from OpenML.

Ok they got back to me. They've kindly created a directory located here. Should be easy enough to access.

First step: we need to implement a read_arff method in the stream module.

Done!


[SPARK-19846][SQL] Add a flag to disable constraint propagation

What changes were proposed in this pull request?
Constraint propagation can be computation expensive and block the driver execution for long time. For example, the below benchmark needs 30mins.
Compared with previous PRs #16998, #16785, this is a much simpler option: add a flag to disable constraint propagation.
Benchmark
Run the following codes locally.
import org.apache.spark.ml.{Pipeline, PipelineStage}
import org.apache.spark.ml.feature.{OneHotEncoder, StringIndexer, VectorAssembler}
import org.apache.spark.sql.internal.SQLConf

spark.conf.set(SQLConf.CONSTRAINT_PROPAGATION_ENABLED.key, false)

val df = (1 to 40).foldLeft(Seq((1, "foo"), (2, "bar"), (3, "baz")).toDF("id", "x0"))((df, i) => df.withColumn(s"x$i", $"x0"))

val indexers = df.columns.tail.map(c => new StringIndexer()
  .setInputCol(c)
  .setOutputCol(s"${c}_indexed")
  .setHandleInvalid("skip"))

val encoders = indexers.map(indexer => new OneHotEncoder()
  .setInputCol(indexer.getOutputCol)
  .setOutputCol(s"${indexer.getOutputCol}_encoded")
  .setDropLast(true))

val stages: Array[PipelineStage] = indexers ++ encoders
val pipeline = new Pipeline().setStages(stages)

val startTime = System.nanoTime
pipeline.fit(df).transform(df).show
val runningTime = System.nanoTime - startTime

Before this patch: 1786001 ms ~= 30 mins
After this patch: 26392 ms = less than half of a minute
Related PRs: #16998, #16785.
How was this patch tested?
Jenkins tests.
Please review http://spark.apache.org/contributing.html before opening a pull request.

Test build #74071 has started for PR 17186 at commit 44e494b.

cc @sameeragarwal @hvanhovell
This is a much simpler option: add a flag to disable constraint propagation, if we are ok for skipping optimizations relying on constraints (InferFiltersFromConstraints, PruneFilters, EliminateOuterJoin) when disabling this flag for the uncommon cases.

Test build #74071 has finished for PR 17186 at commit 44e494b.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class InferFiltersFromConstraints(conf: CatalystConf)
case class PruneFilters(conf: CatalystConf) extends Rule[LogicalPlan] with PredicateHelper
case class EliminateOuterJoin(conf: CatalystConf) extends Rule[LogicalPlan] with PredicateHelper

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/74071/
Test PASSed.

@viirya could you add a test?

@hvanhovell It is late in local time, I addressed the comments first. I will add test tomorrow.

Test build #74108 has started for PR 17186 at commit ae9f037.

Test build #74108 has finished for PR 17186 at commit ae9f037.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/74108/
Test PASSed.

@sameeragarwal To do that, we may need to change constraints to a method taking CatalystConf.  As constraints is public, is it good to do?

@sameeragarwal Btw, another point is, if we do that, we still need to transform the plan even the flag is disabled.

@sameeragarwal Rethink about it, I think let QueryPlan returns constraints depending on the flag is more easy to test. I will give it a try.

Test build #74171 has started for PR 17186 at commit 8318152.

Test build #74173 has started for PR 17186 at commit c863f67.

@hvanhovell @sameeragarwal Following @sameeragarwal's comment, now instead of disabling every optimization, a new method getConstraints in QueryPlan will return empty constraints if the flag is disabled, otherwise returning original propagated constraints.
Please take a look. Thanks.

Btw, test cases are added.

Test build #74174 has started for PR 17186 at commit 3eda726.

Test build #74171 has finished for PR 17186 at commit 8318152.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/74171/
Test PASSed.

Test build #74173 has finished for PR 17186 at commit c863f67.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/74173/
Test PASSed.

Test build #74174 has finished for PR 17186 at commit 3eda726.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/74174/
Test PASSed.

Test build #74248 has started for PR 17186 at commit eb200d6.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/74248/
Test FAILed.

retest this please.

Test build #74253 has started for PR 17186 at commit eb200d6.

Test build #74253 has finished for PR 17186 at commit eb200d6.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
 public static class LongWrapper
 public static class IntWrapper
case class CostBasedJoinReorder(conf: CatalystConf) extends Rule[LogicalPlan] with PredicateHelper
  case class JoinPlan(itemIds: Set[Int], plan: LogicalPlan, joinConds: Set[Expression], cost: Cost)
case class Cost(rows: BigInt, size: BigInt)
abstract class RepartitionOperation extends UnaryNode
case class FlatMapGroupsWithState(
class CSVOptions(
class UnivocityParser(
trait WatermarkSupport extends UnaryExecNode
case class FlatMapGroupsWithStateExec(

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/74253/
Test PASSed.

@hvanhovell @sameeragarwal Please let me know if you have more thoughts on the new change. Thanks.

Thanks @viirya, this approach makes sense to me. Can you please modify InferFiltersFromConstraints and I'll take a closer look.

Here's another instantiation of the underlying bug: https://issues.apache.org/jira/browse/SPARK-19875

Test build #74473 has started for PR 17186 at commit 0e204bc.

Test build #74473 has finished for PR 17186 at commit 0e204bc.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/74473/
Test PASSed.

@sameeragarwal Thanks for the comment. I've updated InferFiltersFromConstraints.

Test build #74581 has started for PR 17186 at commit d3b0a72.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/74581/
Test FAILed.

Test build #74588 has started for PR 17186 at commit d4c9a5e.

Test build #74588 has finished for PR 17186 at commit d4c9a5e.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
abstract class JsonDataSource extends Serializable

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/74588/
Test PASSed.

ping @sameeragarwal This is updated according to your previous comment. Can you help review this? Thanks.

ping @sameeragarwal Is it possible this goes in before code-freeze of 2.2? Please let me know that, thanks.

Test build #75043 has started for PR 17186 at commit da09d9f.

Test build #75043 has finished for PR 17186 at commit da09d9f.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/75043/
Test PASSed.

Sorry @viirya, I'll review this first thing tomorrow morning

@sameeragarwal Thanks a lot.

@sameeragarwal Thanks for review! I've addressed all the comments now. Please take a look if it is good for you.

Test build #75139 has started for PR 17186 at commit a02c8cb.

Test build #75139 has finished for PR 17186 at commit a02c8cb.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/75139/
Test PASSed.

LGTM, thanks! cc @hvanhovell

Merging in master.

May I ask how to solve this issue in spark2.3?
I see that this flag has been removed in PruneFilters and EliminateOuterJoin. @viirya @gatorsmile

@xyxiaoyou SQLConf.get ?

@xyxiaoyou SQLConf.get ?
What I want to express is that I wonder if this issue has been resolved in spark2.3/2.4,
Is there a more appropriate solution?
Because I found that more complex SQL would cause the excutor stuck.

Hi, @gatorsmile , when using 'create or replace view test_view as...', spark will first generate a 'select...'query job.  This causes the create view to be particularly slow. Is there a switch control so that spark does not do queries or create faster when creating a view?

@gatorsmile  This problem has been bothering our team for a long time, I hope you can give us some suggestions or help us solve it.Thanks a lot.

@xyxiaoyou : for your reference:  take a look at https://issues.apache.org/jira/browse/SPARK-33152
and corresponding PR ( though it has been closed, but solution is there)


Delete?

I have included these docker files in the simple tracker repository so I think we should remove this repository to avoid confusion.

guess we are not deleting this

Yeah sorry mate, that comment was made a very, very long time ago. I forgot it was there.


replace http status code with constants

Description
replace http status code with constants
For now replacing the status codes as they exist.
Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #2070
Checklist
Please make sure you've  completed the relevant tasks for this PR, out of the following list:

[x] Code compiles correctly
[x] Created/updated tests
[x] Unit tests passing
[ ] End-to-end tests passing
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Specification has been updated / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Provided sample for the feature / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

/ok-to-test

Some of the response statuses need to change. Will create a separate issue for discussing them.


The neural network initialization of Jax is different from Pytorch

Hi, the initialization is different
the default for jax is https://github.com/google/jax/blob/master/jax/experimental/stax.py#L47 glorot normal for weight and normal for bias
pytorch uses kaiming_uniform for weight and lecun uniform for bias
https://github.com/pytorch/pytorch/blob/master/torch/nn/modules/linear.py#L87-L91
Dense(n_actions, W_init=jax.nn.initializers.kaiming_uniform(), b_init= jax.nn.initializers.lecun_uniform() )

This failed for the bias initialization, because the shape of bias term is (d_out, ) and https://github.com/google/jax/blob/master/jax/_src/nn/initializers.py#L50-L55 reports the error in finding the fan-in.
Also, for the conv layers, their initialization is the same as dense layer
https://github.com/google/jax/blob/master/jax/experimental/stax.py#L61-L67 and https://github.com/pytorch/pytorch/blob/master/torch/nn/modules/conv.py#L110-L115
One more thing, for the kaiming initialization pytorch has computed the gain https://github.com/pytorch/pytorch/blob/780f854135c9aa65ffa834ea6c37b914ec774cf4/torch/nn/init.py#L380-L381 which is not present in the current jax.

Very interesting points and thanks for pointing out the differences between PyTorch and Stax. I've never checked those! I think of Stax as an experimental extension of JAX, so I'd consider checking Flax instead.
Flax (google/flax) is what I've been recommended to use for all things neural networks with JAX.
I did some quick digging and, by default, Flax appears to use LeCun Normal (jax.nn.initializers.lecun_normal()) for weights and zeros for bias: https://flax.readthedocs.io/en/latest/_modules/flax/nn/linear.html#Dense
default_kernel_init = initializers.lecun_normal()
...
class Dense(base.Module):
  ...
  def apply(self, ...kernel_init=default_kernel_init,bias_init=initializers.zeros):
  ...

class Conv(base.Module):
  ...
  def apply(self, ...kernel_init=default_kernel_init,bias_init=initializers.zeros):
  ...

And the docs also show that with Flax you can set the initializer in kernel_init (weights) and bias_init (bias) parameters to something other than the default value (at least in theory):

Dense: https://flax.readthedocs.io/en/latest/_autosummary/flax.nn.Dense.html
Convolutional: https://flax.readthedocs.io/en/latest/_autosummary/flax.nn.Conv.html

So, that probably means that you'd be able to choose any of the following initializers from the core JAX library's neural net initializer library jax.nn.initializers: https://jax.readthedocs.io/en/latest/jax.nn.initializers.html

jax.nn.initializers.zeros()
jax.nn.initializers.ones()
jax.nn.initializers.uniform()
jax.nn.initializers.normal()
jax.nn.initializers.variance_scaling()
jax.nn.initializers.glorot_uniform()
jax.nn.initializers.glorot_normal()
jax.nn.initializers.lecun_uniform()
jax.nn.initializers.lecun_normal()
jax.nn.initializers.he_uniform()
jax.nn.initializers.he_normal()

So many to choose from 👍 (is Xavier available though? https://www.deeplearning.ai/ai-notes/initialization/)
cc @dynamicwebpaige (DM UX)

Hi @8bitmp3 , thanks for your feedback!

Xavier is available here: https://github.com/google/jax/blob/master/jax/_src/nn/initializers.py#L72-L77

for the bias initialization, the API is not perfect. Please look at the colab: https://colab.research.google.com/drive/1I6X8_laXjtBq9y5Bri16Jje3npCg_ai6?usp=sharing

No worries @JiahaoYao

Xavier is available here: https://github.com/google/jax/blob/master/jax/_src/nn/initializers.py#L72-L77

Ah yes, thanks - I forgot about the different names.

for the bias initialization, the API is not perfect. Please look at the colab:

I think you're still using jax.experimental.stax. I'd recommend giving Flax a go: https://github.com/google/flax and docs https://flax.readthedocs.io/en/latest/

Cool, will do!

@JiahaoYao if flax isn't enough for you, check out the haiku library (also built on JAX) by DeepMind. For example, you can initialize params with truncated Normal hk.initializers.TruncatedNormal() (example) to mitigate the ☠ neuron issue.

Thanks, @8bitmp3 so much! I will close this issue and might open if I have further questions. Thank you again!


fix: self hosted windows nsis build error

https://github.com/Dhanus3133/screenpipe/actions/runs/12452753615/job/34762101342#step:29:1925
Fixes: #1018
/claim #1018

/approve

@louis030195 can you please test it out...

), ["file_associations", "1", "ext", "7"]) }], hash: {}
Debug [handlebars::render] Rendering helper: "each", params: [PathAndJson { relative_path: Some("deep_link_protocols"), value: Missing }], hash: {}
Debug [handlebars::render] Rendering helper: "each", params: [PathAndJson { relative_path: Some("resources_ancestors"), value: Context(Array [], ["resources_ancestors"]) }], hash: {}
Running [tauri_bundler::bundle::windows::nsis] makensis.exe to produce C:\actions-runner_work***-app-tauri\src-tauri\target\x86_64-pc-windows-msvc\release\bundle\nsis*_0.20.7_x64-setup.exe
Running [tauri_bundler::bundle::common] Command C:\Windows\system32\config\systemprofile\AppData\Local\tauri\NSIS\makensis.exe  -INPUTCHARSET UTF8 -OUTPUTCHARSET UTF8 -V4 C:\actions-runner\_work\***\***\***-app-tauri\src-tauri\target\x86_64-pc-windows-msvc\release\nsis\x64\installer.nsi
Unable to start child process, error 0x2
failed to bundle project: The system cannot find the file specified. (os error 2)
Error [tauri_cli_node] failed to bundle project: The system cannot find the file specified. (os error 2)
Error: Command "bunx ["tauri","-vvv","build","--target","x86_64-pc-windows-msvc"]" failed with exit code 1

https://github.com/mediar-ai/screenpipe/actions/runs/12454379955/job/34766627300
nope
@Dhanus3133 did not work

@louis030195 https://github.com/mediar-ai/screenpipe/actions/runs/12454379955/job/34767752644 Noticed your recent workflow triggered, and it seems to have resolved the issue! Not sure if my changes helped out here though.

@Dhanus3133 no your changed did not help, someone else did it
would appreciate you contribute to another issue if you can, since you got the bounty for free

@Dhanus3133 no your changed did not help, someone else did it
would appreciate you contribute to another issue if you can, since you got the bounty for free

Sure!


MacOS Sequoia Not Working

Prerequisites

[X] Have you reviewed the steps in the following link to see if they address your issue?

https://github.com/ganeshrvel/openmtp/issues/276

Describe the bug
I connect the device, and do File Transfer mode on my phone and it still doesn't connect to MacOS after I upgraded to Sequoia. Android and same cable works just fine on my linux box.
Attachments
Include if relevant,

Open your Terminal and run the following code:

zip -r -X ~/Desktop/OpenMTP-log.zip "$HOME/Library/Application Support/io.ganeshrvel.openmtp/logs/"

Attach the file OpenMTP-log.zip found in your Desktop folder here.
OpenMTP-log.zip

Or

Open the App,
Click on Help > Report Bugs.
Generate and send us the bugs report.

Screenshots
If applicable, add screenshots to help explain your problem.

This is also an issue on a Pixel 4a running Android 13. I'm guessing that Sequoia must have broken some important APIs?

I can confirm its working just fine on Mac OS Sequoia 15.1 (24B83)
tested with mi A3. If not done already see if upgrading to 15.1 helps with things. I came to know about openmtp just today so cant comment if the issue existed before in my setup.

is this issue fixed?

Im still having this issue, as soon as I updated to Macos 15.1.1, my Mac can no longer see my Samsung s22 it just comes up with an error message even though the cable is fine permissions are allowed and all the settings are right - its so frustrating that we even need 3rd party services to transfer files from an android to Mac via usb (it was so good when it worked) but now it doesn't work

is this issue fixed?

don't think so because same thing is happening to me

Re: Problem linking android phone to Mac after updating to Sequoia 15.1.1
I found the problem was not USB cable or phone system settings - rather, it was the Mac.  What corrected
things for me (allowing my phone to be "seen" by OpenMTP) was to do the following:

Remove the USB cable / phone from the Mac
Restart the Mac
Plug the USB cable / phone into the Mac
Launch OpenMTP on the Mac
The good news is that I only had to do this once. That is, on subsequent days I've been able to connect phone & Mac
without having to first reboot MacOS.
Hope this is helpful.


Autodata with recursive

I get "traversed object graph contains a circular reference" but since the data is from json a circ reference is not possible its just a tree of the same type.  There is some documentation on how to create a custom fixture but how to do this with Autodata  , its a bit ugly having my own AutoData impl attribute everywhere.
Personally i think this type of hard warning should be optional not default - it places a lot of assumption on how you use the data . Now if it could detect and actual reference on objects surebut  a Node with Children of Node is a very common structure with no circ reference even though its possible.

but since the data is from json a circ reference is not possible its just a tree of the same type.

It isn't quite clear how JSON is related to the AutoFixture. If you use JSON parsing utilities, AF should have nothing to do with such objects creation.
If that issue is still actual to you, could you please provide a code sample which demonstrates case where circular dependencies are finite? From my understanding this guard was added because that would lead to stackoverflow when AutoFixture tries to create such an object graph. If it already appeared that during creation of the ObjectA we leaded to creation of the ObjectB which, in its turn, requires ObjectA creation, it doesn't seem that this loop could be broken somehow..

@bklooste Could you please clarify whether this issue is still actual to you?

Sorry for the delay  but basically create an object that references itself  eg class Node  { Node[] Children; } .. Auto fixture    gives an error of "traversed object graph contains a circular reference"  .  Im saying the default behaviour should be to allow this .. since most of these objects come from service Apis which cant have a circc reference..  If  you want to check for this you should explicitly ask Autofixture to fail on these.

It seems that we have a bit different vision on the situation, so let me align that.
AutoFixture is the tool to generate a graph of objects. If fixture.OmitAutoProperties == false, after an object is created AutoFixture automatically populates all its writable public fields and properties. This process happens recursively, so it could happen that AutoFixture will fail with stack overflow if there is a cyclic reference.
The circular references is not something bad in the design of your architecture. It's absolutely legal to have references of the same type because you can point them to the existing objects and avoid infinity. However, AutoFixture generation algorithm always creates a new object to populate a particular field/property, so it could easily fail with stack overflow. This is a design of the AutoFixture and for such situations you should Customize the object creation graph.
The exception you noticed is thrown to indicate that a circular reference occurred and we are about to fail. I can't imagine situation when this is a false positive. We shouldn't disable the exception throw itself, rather we should configure AutoFixture to avoid such situations. To do that you can use Customizations and prevent the cyclic object creation from happening.
Let me know if you still see when this exception might be a false positive.

Closing this one as you can customize this behavior as described here. Also, you can use Customizations as it was mentioned above to work around the situation.
Let me know if you see a false positive in current mechanism, so we could investigate that.


Collect and print stdout output from command that builds downstream dependencies

This is the code that runs the command for building downstream dependencies:
https://github.com/ucr-riple/NullAwayAnnotator/blob/6740c7db40199fb7a57b831934f1d66629015af9/annotator-core/src/main/java/edu/ucr/cs/riple/core/util/Utility.java#L70-L85
It collects the stderr output from the command, but not the stdout.  It would be good to have a way to collect and print stdout as well, for diagnosing issues.  Also, the current logic looks a bit weird.  There is a while loop that spins collecting the stderr output.  I think this loop should run until the process terminates (otherwise you may miss some output).  But if it runs until the process terminates, then I think the p.waitFor() call is unnecessary?  We may just want to switch to code like this:
https://stackoverflow.com/a/12200361/1126796
With Redirect.INHERIT we will get the printing of stdout / stderr for free.  (Or possibly we want to redirect stderr of the child process to stdout, and then just send everything to our stdout.)

@msridhar Thank you very much for reporting the issue and the suggestion, will work on the PR now.


Team Meeting 2/9/24

Agenda:

Revision 0 Feb 16 1:00-1:20 PM

TODO:
Task Management: Mostly Completed, UI @HamidHarris @FardeenAfsar
Bill Management: Mostly Completed, UI @DangJustin @Lazarus-XD
Account: Profile Page, Add users to group @fadymorcos21
Scheduling: @fadymorcos21
CI/CD stuff if possible
Next Meeting Tues Feb 13 @ 7:00 PM


Add missing source handler reference to the context

This PR fixes the issue with the source handler reference being null in the context. The source handler is required when correlating the interactions of the client with the interactions with the upstream server.

Is there a reported issue?


Project Request on Pregnancy Risk Assessment

Is your feature request related to a problem? Please describe.
The problem is the need for an effective way to assess the risk level of a pregnancy. Pregnancy involves various factors and potential risks that can affect the health of both the mother and the baby. By developing a Pregnancy Risk Assessment feature, we aim to provide pregnant women with personalized risk assessments based on their medical history, age, lifestyle, and vital signs.
Describe the solution you'd like
The Pregnancy Risk Assessment project aims to develop a feature that assesses the risk level of a pregnancy based on user inputs such as medical history, age, lifestyle, and vital signs. By integrating machine learning, the feature provides personalized risk assessments, enabling pregnant women to track and monitor their pregnancy health effectively and take proactive steps towards a safer pregnancy.
Describe alternatives you've considered
No response
Additional context
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

@Nabanita29 - you can go ahead! We are assigning you 21 days for this project, after which it will be assigned to someone else if not completed. All the best!
Name the file as: algorithm_dataset.ipynb and link it in the readme of the labeled directory as algorithm - dataset.


Sync NSStringAPI.swift with swift-corelibs-foundation

Over time, NSStringAPI.swift has diverged between the overlay and swift-corelibs-foundation.
This PR updates the overlay so that the same file can be used in both projects. This should make future maintenance easier.

CC: @phausler

this looks good to me, @moiseev @airspeedswift y'all may also want to chime in here

@swift-ci Please test

@ianpartridge, @phausler thanks for the explanations. So how is it going to be 'synced' between the repos? I guess it's not a symlink... May I suggest a test that diffs the two files and fails if they are different?

I am not sure we can really enforce that; it just has to be hand rolled copy-pasta sadly...

Could we one day merge the Foundation overlay with swift-corelibs-foundation?

@slavapestov Almost certainly not - they are very different in many respects. The overlay assumes presence of ObjC, and the Darwin Foundation.framework. swift-corelibs-foundation is Foundation.framework itself.

Build failed
Swift Test Linux Platform
Git Sha - d1c000f3990a2ff2f81109d450c850cb58537f92

@parkera But if they share code, it might make sense to build both from the same source base/project, no?

The Swift runtime on Darwin is still fairly deeply intertwined with the Foundation overlay for bridging, so I don't think we could realistically separate them.

Any more thoughts on this PR, or can it be merged as-is?


Sonar Quebe server Crashed while installing AEM rule from Market place

Sonar Quebe server Crashed while installing AEM rule from Market place. please help.
Steps:
•	Search the plugin in Market place (AEM)
•	Click on install button.
Version:
Community EditionVersion 8.2 (build 32929)LGPL v3Community

Hi @antonyselvaraj , we're releasing v1.2, which should fix this. Sorry it took so long.
It should be posted in the Marketplace soon. In the meantime, you could have a try with the Jar file.
https://github.com/Cognifide/AEM-Rules-for-SonarQube/releases/tag/v1.2
I've tested this with a docker image of SonarQube Community 8.3.1 and it started up properly and registered the rules.


Missing fields

Describe the bug

Missing Laser in STIMULUS_DEVICES (rig.py)
Missing Fujinon in LENS_MANUFACTURERS (organizations.py)
Missing organization Midwest Optical Systems. Inc. in Organization (organizations.py)
Missing wavelength and wavelength_unit in LightEmittingDiodeConfig (session.py)

To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

The Laser should be specified in the light_source_config field in StimulusEpoch and not be listed as a stimulus_device

item 3 is a duplicate of #915

light_source_config

I hope to add the optogenetics lasers to the stimulus_devices. And the Laser is not included in the STIMULUS_DEVICES.

adding other missing fields
Missing wavelength and wavelength_unit in LightEmittingDiodeConfig (session.py)

Ah, sorry, I thought you were talking about the Session. The laser should be listed in the light_sources field for the rig.

Does the LED not have a fixed wavelength?

Ah, sorry, I thought you were talking about the Session. The laser should be listed in the light_sources field for the rig.

Yes, the laser is listed in the light_sources field. Just to confirm that lasers used for optogenetics should go to stimulus_devices instead of the light_sources ?  And the light_sources is usually used for lights used for imaging purpose. Do I understand it correctly?

Does the LED not have a fixed wavelength?

Typically, it is a normal distribution (shown below).

There are 3 parameters that are most useful. Wavelength , Peak wavelength range and the Spectrum half width. I think the last two could be optional.

No. This is understandably confusing and I'll try to add better documentation:
For the Rig, all lasers go in light_sources.
In the Session, lasers used for optogenetics are listed in the light_source_config of the StimulusEpoch. Lasers used in calcium imaging are listed in light_sources of the DataStream

The wavelength information is a fixed property of the LED. So that is documented in the Rig.

Okay, got it. I will delete the fourth point.

The wavelength information is a fixed property of the LED. So that is documented in the Rig.

One related question is the wavelength is required for LaserConfig but not for LightEmittingDiodeConfig in the session.py

The wavelength information is a fixed property of the LED. So that is documented in the Rig.

One related question is the wavelength is required for LaserConfig but not for LightEmittingDiodeConfig in the session.py

There are lasers where you can adjust the wavelength, so we need to be able to track what was the wavelength that was used.

No. This is understandably confusing and I'll try to add better documentation:
For the Rig, all lasers go in light_sources. In the Session, lasers used for optogenetics are listed in the light_source_config of the StimulusEpoch. Lasers used in calcium imaging are listed in light_sources of the DataStream

Thanks for making it clear. I will delete the first point.


[WIP] Example of web flutter driver

Description
This is a minimally functional example of flutter driver over webkit inspection protocol (WIP) instead of vmservice. With some restrictions, this can run driver tests in dart2js and dartdevc.

(PR review): @jonahwilliams Do you still have plans for this PR? It's getting old...

Going to close this for now to take it out of the queue


Update Go to v1.17

We can now move forward with this and update the source-controller packages to v0.20.0 which has Go 1.17 and controller-runtime 0.11.0


Safe code with BitConverter?

I'm thinking to use this in Unity, I may be misunderstanding but the WebPlayer disables unsafe code.
WebGL target seems like it can allow unsafe code so It may be fine if enabling that does not cause issues...
Looking around people suggest to define a preprocessor symbol for safe.
https://stackoverflow.com/questions/597083/is-there-a-preprocessor-symbol-corresponding-to-the-unsafe-flag?rq=1
Looks like it is doable in Unity,
https://docs.unity3d.com/Manual/UnityCloudBuildCustomScriptingDefineDirectives.html
        public virtual async Task<float> ReadSingleAsync(CancellationToken cancellationToken = default(CancellationToken))
        {
            await FillBufferAsync(4, cancellationToken).ConfigureAwait(false);
            #ifdef SAFE
            return System.BitConvert.ToSingle(_buffer, 0);
            #else
            uint tmpBuffer = (uint)(_buffer[0] | _buffer[1] << 8 | _buffer[2] << 16 | _buffer[3] << 24);

            unsafe
            {
                return *((float*)&tmpBuffer);
            }
            #endif
        }

Any thoughts?

Ah sorry Web Player is discontinued anyway shrugs...
Should be okay I guess.


Stats add verbose flag

Add verbose flag to stats subcommand. Display only 20 elements of each list unless the verbose flag is passed.

@Obsecurus Done!


receive only wallet for merchants

A use case that would be useful for merchants:
Typically today, if you go to a restaurant that have 5-10 employees, the only time a customer can pay with lightning is if the owner is here. The owner would typically not allow an employee to accept receive payment with their own wallet because he would not really know how much money was being received if employee was using their personal wallet.
The owner could share the wallet by letting some employees use their own phone number and sharing the code, but it would allow someone else have access to all the money in the wallet.
So the right solution is certainly to have a way for a receive only option for the wallet. This would typically be the way a payment terminal for credit card would work today. you can received, but not the balance of the account neither spend the money into it... with the exception of a reimbursement of a transaction that has just occurred.

link to: https://github.com/GaloyMoney/galoy/issues/313 (but different)

We solved this problem (at least partially) with lnpage. What feature do we not have there that we want to add?

maybe it's a documentation issue but
1/ not a lot of people know about this.
2/ the fact we can't set an amount (it's an invoiceless amount) make it not compatible with multiple wallet
3/ overall I think lnpage is good for not-in-person transaction, but for in person transaction using an app is so much better ux wise
4/ with lnpage we would never has a features like a refund option. this would be needed for the merchant. for instance is someone sent $100 instead of $10.

Also currently they don’t even know how much money they received with lnpage @krtk6160 if they don’t have the mobile wallet associated with the account

Hi, for example... maybe the app can have a send mail button, this can send all dayli transactions and the account balance to the restaurant owner for example. Actually i have your same idea, im trying to develop a special wallet for merchants using Galoy Infra. But i need your help to deploy it.

@bodymindarts I think this is related to this PR. do you have more context in your mind on the best way to handle this issue, and the dependencies with our authentication/authorization ongoing work?

We will need some kind of RBAC. Right now we have a naive self-made implementation that won't do long term. The PR was a POC to introduce Casbin which is one way we could go. Another option is ory/keto. We should revisit this decision when the ory integration work has progressed further (ie. Kratos + Hydra is complete).


Add support for libbpf API compatibility

@saxena-anurag

This is to expose literally the libbpf APIs, at least as .h file inline wrappers if not native.

libbpf APIs have a permissive license so some of the code may be usable, even if not the code that wraps bpf() syscall.

There are some issues currently in the libbpf code base, including:

Compiler specific, e.g., attribute in code
OS-specific, e.g., include <linux/...> in code
Deprecated APIs like strdup instead of _strdup
Files with ambiguous license (no header at top)

After much investigation, I've concluded that it would not currently make sense to try to use libbpf code directly, since libbpf hard-codes a list of prog types, helper func id names, etc., which lists can vary by platform.  So the current libbpf implementation is really Linux-specific even if the header file is platform agnostic.  At least in the short term, runtime implementations would be better off implementing their own platform-specific implementations of the common libbpf header.


Reading a provider inside extensions

Describe what scenario you think is uncovered by the existing examples/articles
It is a simple use case. I want to read a provider (basic provider which act as a singleton) inside an extension. I could inject ref through extension methods but that would be redundant and unnecessary as I might use it in places where I don't need ConsumerWidgets and also as this extension should rely only on context and it's used through the whole app.
final _responsiveService = mainContainer.read(responsiveServiceProvider);

extension ResponsiveExtension on num {
  double w(BuildContext context) =>
      _responsiveService.scaleWidth(context) * this;

  double h(BuildContext context) =>
      _responsiveService.scaleHeight(context) * this;

  double r(BuildContext context) =>
      _responsiveService.scaleRadius(context) * this;

  double sp(BuildContext context) =>
      _responsiveService.scaleText(context) * this;
}

final responsiveServiceProvider = Provider((ref) => ResponsiveService());

class ResponsiveService {
  ResponsiveService({MediaQueryData? flutterWindowMediaQuery}) {
    _flutterWindowMediaQuery =
        flutterWindowMediaQuery ?? MediaQueryData.fromWindow(window);
  }

  late MediaQueryData _flutterWindowMediaQuery;
  final Size designSize = const Size(428, 860);

  ...
}

Describe why existing examples/articles do not cover this case
I can make my ProviderContainer instance a global variable and use it as the code above but as said before it's not recommended to do that.
Alternatively, I could use patterns like Singletons or maybe another Service Locator package but as the docs say, Provider should be complete replacement for these patterns. so, I'm wondering if there's a better solution for scenarios like this.

You should pass a ref. It's not even a debate 😜
Don't randomly create ProviderContainers.

I agree we normally should pass a ref. but in this case, passing a ref will make almost every widget a ConsumerWidget and the ref to be used at every few lines of codes (as this is a text extension and text is everywhere).
While I'm sure the responsiveServiceProvider is created only once in the app, I'd go with another pattern/package for this instead of filling my app with unnecessary refs in all widgets.
I've a solution for this case or similar cases in my mind instead of using a global container but I don't know the ability to achieve it. It's to make a new Provider Type which is:

Similar to the basic Provider in usage but maybe called StaticProvider.
It can't be overridden by nested ProviderScopes so It'll always belong to the main ProviderScope.
It doesn't have the .autoDispose modifier.
It can be accessed directly without ref.
Maybe a caution should be documented to it that it should be avoided as possible and only used with providers that won't change.

I don't think what you're suggesting is reasonable
Instead I'd question your architecture.
As I said before, your class should most likely be hosted in a provider, so it would have a ref.

I'll try to elaborate more. This is how it'll be If I'm going to pass ref from widgets:
//This is my responsive service (single class)
final responsiveServiceProvider = Provider((ref) => ResponsiveService());

class ResponsiveService {
  ResponsiveService({MediaQueryData? flutterWindowMediaQuery}) {
    _flutterWindowMediaQuery =
        flutterWindowMediaQuery ?? MediaQueryData.fromWindow(window);
  }

  late MediaQueryData _flutterWindowMediaQuery;
  final Size designSize = const Size(428, 860);

  double scaleHeight(BuildContext context) => MediaQuery.of(context).size.height / designSize.height;
  double scaleWidth(BuildContext context) => MediaQuery.of(context).size.width / designSize.width;
}

//This is my extension that need to access (just read) that responsiveServiceProvider
extension ResponsiveExtension on num {
  double w(BuildContext context, WidgetRef ref) =>
      ref.read(responsiveServiceProvider).scaleWidth(context) * this;

  double h(BuildContext context, WidgetRef ref) =>
      ref.read(responsiveServiceProvider).scaleHeight(context) * this;
}

//This is how I'll use it in almost every widget, will need to pass ref which isn't necessary in this case
class SomeWidget extends ConsumerWidget {
  const SomeWidget({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context, ref) {
    return Column(
      children: [
        Container(
          height: 1.h(context, ref),
          width: 2.w(context, ref),
        ),
        Container(
          height: 1.h(context, ref),
          width: 2.w(context, ref),
        ),
        Container(
          height: 1.h(context, ref),
          width: 2.w(context, ref),
        ),
      ],
    );
  }
}

As said, the ResponsiveService is not going to overridden or disposed. It just work as a singleton. so passing ref from every place like above example will be redundant.

What I'm suggesting here is to provide a way to access provider without ref (Maybe new Type of provider).
In order to access them without ref, they can't have .autoDispose modifier or the ability to be listened to but that won't make an issue in this case.
This will solve the above unnecessary need to pass ref across many places for a long lived class that only acts as a singleton and no object will be interested to listen to it.
I've seen many using get_it with riverpod to solve cases like this while Provider should be a replacement for these patterns.

The thing about depending on a provider is that you need to make any widget that depends on a provider a ConsumerWidget & use a ref to get it. You say that you will need to "pass ref which isn't necessary in this case", but it is totally necessary - you are depending on a provider!
It really isn't as much overhead as you might think.
If you are going to be using something like this where the ResponsiveService has nothing to do with application state, maybe just go with a global singleton class, or an InheritedWidget.

Thanks @TimWhiting for your replay.
Exactly as you mentioned ResponsiveService has nothing to do with application state. So, I think I'll go with another pattern/package instead of defining global ProviderContainer, until an improvement for cases like this happens.
What do you think of defining ResponsiveService globally instead of making ProviderContainer instance as global variable:
class SingleServices {
  static late final ResponsiveService responsiveService;
}

void main() {
  final ProviderContainer mainContainer = ProviderContainer();
  SingleServices.responsiveService = mainContainer.read(responsiveServiceProvider);
  runApp(
    UncontrolledProviderScope(
      container: mainContainer,
      child: const MyApp(),
    ),
  );
}


TravisCI cdh builds are failing

Something is going on with TravisCI when reading requirements for hdfs version number. For some reason, it's trying to parse part of the in-line comment and then failing.
I'm not aware of why this is happening just now and not always.

It's because of tox 2.3.0 now existing on da internetz. http://tox.readthedocs.io/en/latest/changelog.html#id3
I'll submit a fix right now.

Oh, I forgot to say. Thanks for reporting this @dlstadther :)


[WIP] Add Sequence, NN Ops

Description
Large tensor support for - sequence_last, sequence_reverse, sequence_mask
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.

[x] The PR title starts with [MXNET-$JIRA_ID], where $JIRA_ID refers to the relevant JIRA issue created (except PRs with tiny changes)
[x] Changes are complete (i.e. I finished coding on this PR)
[x] All changes have test coverage:
[x] Code is well-documented:
[x] To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

@mxnet-label-bot add [work-in-progress]

Remove commented code if its not required ... rest LGTM


Fixing use of USDT with kraken

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

Bugfix

What is the current behavior? (You can also link to an open issue here)

getTicker doesn't respect the proper USDT pair type. Also it turn out that kraken accepts "USDTZUSD" and "USDTUSD" as the pair for the API query strings (always seems to return USDTZUSD though). Still an odd duck, but simplified the bug fix by letting me move it to a more global scope.

What is the new behavior (if this is a feature change)?

Fixed that stuff

Other information:

We'll still need to validate the return format of getPortfolio since the wallet pairs were again formatted differently from the input pairs, another fix may yet be required for that after testing in live.
Should fix #1350

Merging this because #1411 is currently pending.


TST/CI: Unskip hanging tests test_learn.py::test_fit and test_bag.py::test_from_url

In https://github.com/dask/dask/pull/2459 I unconditionally skip two tests

dask/array/tests/test_learn.py::test_fit
dask/bag/tests/test_bag.py::test_from_url

because they hang under certain conditions I don't fully understand. Running them by themselves doesn't cause any issues. The key components seem to be that you use pytest-xdist and run at least two of the main suites {dask.array, dask.dataframe, dask.bag}, for me it didn't hang when running just one of those.

test_learn.py is out.  URL testing is odd from time to time.  Closing.


Create a quickstart document for the Caravel project

There should be a quickstart telling how to get started with creating a user project. The document should be written in RST so it could be later incorporated into the Sphinx documentation.

@glatosinski: with #33 merged, this issue is resolved. Thank you very much for your PR!


Infineon (Cypress) LBEE5KL1DX / CYW4343W (other ?) also need special SCO routing configuration

We are using a Infineon (Cypress) LBEE5KL1DX module that is based on the CYW4343W chipset that is based itself on a BCM4343W from Broadcom.
So it's chip.manufacturer is BT_COMPID_CYPRESS  / 0x0131 not the BT_COMPID_BROADCOM / 0x000F one.
In sco.c, in sco_setup_connection_dispatcher() function the test to configure the SCO routing is only done with BT_COMPID_BROADCOM.
if (a->chip.manufacturer == BT_COMPID_BROADCOM) {
In our case we have a Broadcom chip, but it's manufacturer ID is BT_COMPID_CYPRESS but we still want to run the specific configuration.
I don't know whether to add the cypress ID in addition to the broadcom one ?

Yes, I've got a branch with change like that:
-       if (a->chip.manufacturer == BT_COMPID_BROADCOM) {
+       if (a->chip.manufacturer == BT_COMPID_BROADCOM ||
+                       a->chip.manufacturer == BT_COMPID_CYPRESS) {

But it's not in master because I'm not sure whether it will not "break" some other cypress BT chips. If you are sure that cypress does not manufactures BT chips on its own (Broadcom was acquired by Cypress some time ago) maybe we could add that change to master.


Conflicts with flow

Error trying to use jest-axe in a .test.js file using flow (// @flow)
This is the output:
$ xxx/xxx/xxx/node_modules/.bin/flow
Error ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ src/components/organisms/BlogCategoryLayout/BlogCategoryLayout.test.js:32:27

Cannot call expect(...).toHaveNoViolations because:
 • Either property toHaveNoViolations is missing in JestExpectType [1].
 • Or property toHaveNoViolations is missing in JestPromiseType [2].
 • Or property toHaveNoViolations is missing in EnzymeMatchersType [3].

           src/components/organisms/BlogCategoryLayout/BlogCategoryLayout.test.js
            29│                 const html = ReactDOMServer.renderToString(
            30│                         <BlogCategoryLayout title="Test Title" standardPosts={standardPosts} />
            31│                 )
            32│                 expect(await axe(html)).toHaveNoViolations()
            33│         })
            34│ })
            35│

           flow-typed/npm/jest_v22.x.x.js
 [1][2][3] 512│         (value: any): JestExpectType & JestPromiseType & EnzymeMatchersType,

Hey! Do you know how we can avoid this, I don't use flow so I'm not sure how to work around this.

Have you installed babel-jest?

@kpoeltler would that fix this issue? I had a Google, not sure if it's related to flow.
Looks like you can disable flow using https://flow.org/en/docs/config/options/#toc-suppress-comment-regex in the meantime.

Hmm looks to be connected to https://github.com/flowtype/flow-typed/pull/918

@diegolamanno happy to keep this open if it helps you track this, but will close for now.
Please re-open if you need :)


Ubuntu 20.04 Error on Installation

When running: go get -u github.com/odeke-em/drive/drive-google
Get the following errors:
# github.com/odeke-em/drive/src /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o: in function _start':
(.text+0x16): undefined reference to __libc_csu_fini' /usr/bin/ld: (.text+0x1d): undefined reference to __libc_csu_init'
collect2: error: ld returned 1 exit status'

Fixed by running: apt reinstall libc-dev


Add __wait method.

Lower abstraction than __return. Returns command state. E.g. can be used to get process exit status.

https://github.com/ImagicTheCat/lua-shapi/commit/809c621395ec6a5c109bd20a6c7d6d352386dd81


Replace util.serializedArrayToDictionary with object-path.set/insert()

We are problably duplicating functionality here as it can probably be rewritten using objectPath.insert().

ps sorry, @aldipower :(

@pierlo-upitup Good idea! No need to say sorry.. ?

Oops I meant Sorry @philipnrmn eheh! That's because we spent a couple hours of sound work on that function ;)

This ticket is obsolete due to the refactoring of the application modal and could be closed.


Download of GT fails partially

The script scripts/prepare.shdownloads GT for Reichsanzeiger, but fails to download the GT defined in data_srcs/default_data_sources.txt. Here is protocol of bash -x scripts/prepare.sh:
+ mkdir -p gt
+ echo 'Prepare OCR-D Ground Truth …'
Prepare OCR-D Ground Truth …
+ IFS=
+ read -r URL
++ echo https://github.com/tboenig/16_frak_simple
++ cut -d/ -f4
+ OWNER=tboenig
++ echo https://github.com/tboenig/16_frak_simple
++ cut -d/ -f5
+ REPO=16_frak_simple
+ [[ ! -f gt/16_frak_simple.zip ]]
+ echo 'Downloading 16_frak_simple …'
Downloading 16_frak_simple …
++ curl -L -H 'Accept: application/vnd.github+json' -H 'X-GitHub-Api-Version: 2022-11-28' https://api.github.com/repos/tboenig/16_frak_simple/releases/latest
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
^M  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0^M100  9963  100  9963    0     0  48600      0 --:--:-- --:--:-- --:--:-- 48600
+ RESULT='{
  "url": "https://api.github.com/repos/tboenig/16_frak_simple/releases/126253523",
  "assets_url": "https://api.github.com/repos/tboenig/16_frak_simple/releases/126253523/assets",
  "upload_url": "https://uploads.github.com/repos/tboenig/16_frak_simple/releases/126253523/assets{?name,label}",
  "html_url": "https://github.com/tboenig/16_frak_simple/releases/tag/v1.1.1",
  "id": 126253523,
  "author": {
    "login": "github-actions[bot]",
    "id": 41898282,
    "node_id": "MDM6Qm90NDE4OTgyODI=",
    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
    "html_url": "https://github.com/apps/github-actions",
    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
    "type": "Bot",
    "site_admin": false
  },
  "node_id": "RE_kwDOIFGkSM4HhnnT",
  "tag_name": "v1.1.1",
  "target_commitish": "main",
  "name": "Release 81_v1.1.1",
  "draft": false,
  "prerelease": false,
  "created_at": "2023-10-23T14:29:21Z",
  "published_at": "2023-10-23T14:30:58Z",
  "assets": [
    {
      "url": "https://api.github.com/repos/tboenig/16_frak_simple/releases/assets/131958447",
      "id": 131958447,
      "node_id": "RA_kwDOIFGkSM4H3Yav",
      "name": "kistler_kraeuter_1500.ocrd.zip",
      "label": "",
      "uploader": {
        "login": "github-actions[bot]",
        "id": 41898282,
        "node_id": "MDM6Qm90NDE4OTgyODI=",
        "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/github-actions%5Bbot%5D",
        "html_url": "https://github.com/apps/github-actions",
        "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
        "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
        "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
        "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
        "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
        "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
        "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
        "type": "Bot",
        "site_admin": false
      },
      "content_type": "application/zip",
      "state": "uploaded",
      "size": 19379136,
      "download_count": 14,
      "created_at": "2023-10-23T14:31:01Z",
      "updated_at": "2023-10-23T14:31:02Z",
      "browser_download_url": "https://github.com/tboenig/16_frak_simple/releases/download/v1.1.1/kistler_kraeuter_1500.ocrd.zip"
    },
    {
      "url": "https://api.github.com/repos/tboenig/16_frak_simple/releases/assets/131958445",
      "id": 131958445,
[...]
++ jq -r '.assets | .[].browser_download_url'
+ ZIP_URL='https://github.com/tboenig/16_frak_simple/releases/download/v1.1.1/kistler_kraeuter_1500.ocrd.zip
https://github.com/tboenig/16_frak_simple/releases/download/v1.1.1/luther_auszlegunge_1520.ocrd.zip
https://github.com/tboenig/16_frak_simple/releases/download/v1.1.1/metadata-v81.zip
https://github.com/tboenig/16_frak_simple/releases/download/v1.1.1/trota_mordtbrenner_1540.ocrd.zip'
+ curl -L -o gt/16_frak_simple.zip 'https://github.com/tboenig/16_frak_simple/releases/download/v1.1.1/kistler_kraeuter_1500.ocrd.zip
https://github.com/tboenig/16_frak_simple/releases/download/v1.1.1/luther_auszlegunge_1520.ocrd.zip
https://github.com/tboenig/16_frak_simple/releases/download/v1.1.1/metadata-v81.zip
https://github.com/tboenig/16_frak_simple/releases/download/v1.1.1/trota_mordtbrenner_1540.ocrd.zip'
curl: (3) URL using bad/illegal format or missing URL
[...]

So instead of calling curl with single URLs, it is called with all URLs combined in a single argument. That fails of course.

@tboenig, it looks like a change in the released GT causes the breakage: older releases contained a single zip file like for example bagitDump-v79.zip while the latest release contains several zip files. The download script is not prepared to handle that correctly.


Implement word 'delete'

Python semantics on arrays:
(* Pop the second entry in the current scale and shift subsequent entries back by one. *)
delete $[1]

Python/JS semantics on records:
const rec = {foo: 1, bar: 2}
delete rec['foo']
(* rec = {bar: 2} *)

Let's call it del instead.


put short license text in every file

So that we comply to licensing 'n stuff.

I have found a short version https://opensource.org/licenses/MIT, do you want to include this one?


Read node version from package.json

Perhaps I'm missing something, but why not use the package.json? why are we creating another meta file that duplicates a piece of information about node that can already be stored in the package.json?

https://docs.npmjs.com/files/package.json#engines
https://docs.npmjs.com/files/package.json#enginesStrict

That field is a) information-only, and b) identifies what something is supported with. That field can't be easily used to test a new version.

I'm open to the idea of using another field in package.json to specify the version. As @ljharb mentions, it shouldn't be the engines. But I would want to replace (deprecate) the use of the .node-version file to keep the tool simple and also make sure it easily supports all use cases.
Here are some use cases that come to mind:

A project/folder that doesn't actually use npm, simply uses node in some way.
Having a project where you want a .node-version file that isn't version controlled. While this probably isn't the majority use case, it still seems like a nice to have.
Writing a build/test script that changes the version being used by overwriting the .node-version file. This could be achieved instead by having that same script simply change the version used with the actual tool instead of using avn.
Writing a build/test script that needs to read the node version being used, but is written in a language (like bash) that doesn't easily read JSON files. This could easily be considered to be that script writer's problem.

Another argument against this would be keeping things similar to the ruby tools, but there's not really a strongly compelling reason to do that.
At this point, I think it makes sense to stick with the .node-version file, but I still have an open mind about it and would love to start a dialog with anyone who wants to discuss.

@ljharb, with regard to (a), isn't the engines property an actionable piece of information that allows platforms like Heroku to execute a series of processes that make the project associated with the package.json file usable?
Wouldn't the engines property allow a tool like avn to execute an action (such as nvm use x.y.z) to make the project associated with the package.json usable (such as actions, like building node modules, that require a supported version of Node).
As for (b), could you explain the deficiencies in the engines property that prevent it's use for testing? (For example, my impression is that once I'm in a folder that contains a package.json file with the Node version set to 0.10.x, that I'm not prevented from running nvm use 0.12 to test that it's compatible. I simply assume some risk that I may not have a good experience.)

If #17 is completed, this may be less likely to change. It would complicate the code base to support .nvmrc as well as package.json.

This would be handy. It's a little annoying having to keep the node version for our project up to date in 2 places. One simple pass would be to ignore it if an exact version is not specified.

@mockdeep the only concern now is that avn searches for files containing version information. That function would need to be updated to scan for package.json and only consider it to be a file for versioning info if it contains engines. The function must be fast as it's invoked for every directory change.
Also, we would need to handle the file differently when it's read.
I'm open to these changes, and would want to decide if engines was truly the right property to read from, but that should be an easy adjustment once the code is written. PR welcome! :smile:

I just wanted to chime in on this;
We already use "engines": { "node": "x.x.x" } to make heroku install the correct node version for all our apps. If platforms are already doing this - why can't you local machine do that (with this tool)? It just seems redundant and error prone to have to maintain two separate fields/files that will always be identical.

Other than that - love this - great work! :)

@eiriklv engines takes a semver range, so it can match any number of node versions, not necessarily just one.

@ljharb isn't that a good thing? :-)

My point is - when this works really well on Heroku - why shouldn't it work great anywhere else..?

Is the issue here shortcomings of the tool (that it only supports a specific version)?

@eiriklv no shortcomings with avn, but the way that it works is to look at the installed versions that are available on the machine rather than attempting to install the latest.
So if you specify >= 0.12 <5.0 in engines and one developer has 0.12 installed while another has 4.2.2, they'll be using different versions when developing.
I don't consider this a problem — that's just how it works at the moment. Currently avn should allow you to specify a semver range in the .node-version file (though it's not documented & I don't believe it's tested either). So arguably, avn already exposes the possibility of developers using different versions.
I don't see the problem with a semver range in engines — it's a choice that teams can make. We can default to reading .node-version for projects that need a semver range, but want devs to use the same version when working on the project. Also, I feel the issue of which version gets used can be addressed via documentation.

My main point here is - why add another (duplicate) reference to the node version when you already specify it in "engines". I don't want to have to keep things in sync :-)

The optimal solution would be that avn would tell n or nvm to install/use the latest available version in the specified semver range

@eiriklv that's more or less the intention, but without support from n and nvm, this tool won't be able to handle something like >= 0.12 <5.0. It can't just say n '<5.0', for instance.
It selects the lasted available version that's installed locally, not that's available out on the internet.
It could fetch a list of known node versions, but it would then require a network connection which has two issues:

That's really slow when you cd into a directory
This tool should work when you're not connected to a network (attempting to get a list of node versions, but fall back to using the best one installed feels like a bad/inconsistent user experience)

Note that nvm, while it does not support semver ranges, does support partial identifiers - ie, x or x.y or x.y.z. Also, most of the commands only look locally - just ls-remote and install talk to the network.

I'd be okay with choosing the most recent matching version that is installed. If people put a range, then they are responsible for dealing with the inconsistencies across versions themselves. Instead of installing it can just say "no compatible version of node installed" or the like. rvm does something along those lines:
ruby-1.8.7-head is not installed.
To install do: 'rvm install ruby-1.8.7-head'

What is the status of this?
I was going to open an issue related with setup a default version if node-version file is not present, but this solution is better to force you have a good package.json.

@Kikobeats this is still in the discussion phase — implementing this will require a decent number of changes. It also requires that we make decisions that are logical and appropriate for the community. Feel free to weigh in on the points discussed so far and continue the discussion.

I think that is the right way. Now node devs need to handle with different node versions and is horrible the current workflow.
less is more!

So what is the status of this issue now?
It's been a year since it was opened.

@sodatea still discussing, but I'm leaning toward it being a good idea.
I'm happy to accept a PR, but we still do need to figure out what key it should look for in package.json.

I'm using nodengine for this purpose, more simple :smile:

Is package.json still not supported?

I'm happy to accept a PR, but we still do need to figure out what key it should look for in package.json.

@wbyoung, what would be wrong with "engines"->"node". What are the other options?

That’s a range, not a single version.

I believe that’s typically a single version. nvmrc is a “version-ish” which can be a range, but is expected to resolve to a single version. npm install has the expectstion that it will select the latest available matching version; i don’t think nvm use` or similar necessarily would have the same intuition.

I don't get it. What do you mean by "typically a single version"? To me it has exactly the same meaning as "engines" fields in packages.json — it specifies node versions that are compatible with my project.
What other meaning it can have? What would be the case when you specify one version in .node-version and other in package.json?

The engines field is a semver range; it can describe >= 0.10 or < 11 or ^3 || ^4 || ^6 etc - when you type it, you’re explicitly including all versions that fit in that range; you’re not trying to point to a single one.
nvmrc is a specifier that points to a single version implicitly. When you type it, you’re referring to a range of possible versions, but your intention is that it resolves to a single one.
Conceptually, these are for two very different purposes, and the engines field isn’t a concept that directly maps to “a single node version to install”.

Maybe the problem is that we are talking about different stuff? I am not really familiar with nvmrc because I am using n, anv-n and .node-version.

The engines field is a semver range; it can describe >= 0.10 or < 11 or ^3 || ^4 || ^6 etc - when you type it, you’re explicitly including all versions that fit in that range; you’re not trying to point to a single one.

Sorry, I still don't get it. Wherever you use it, you'll end up with one resolved version of node, no?

https://docs.npmjs.com/files/package.json#engines
You can specify the version of node that your stuff works on

So I use it to specify version of node that my stuff works on. Then, for example, when my CI tries to build my stuff, it can look into this field and check wether version of node is ok and if not.
Now, I need to do the same thing, but for all developers who works on my stuff. I use .node-version. Because I want my CI to build the same stuff as we are working on, I will use the same range as I specified in package.json. Otherwise, it is possible, that succusessful local builds will become failed builds on CI.
What am I missing?

(nvmrc and node-version are the same, conceptually)

Yes, you certainly can take a range and end up with one resolved version - this isn’t a technical barrier, it’s a conceptual one. The mental model of “engines” is simply not appropriate to apply to “which node version should i be using with the project by default” because they are distinct concepts.
It’s certainly valid for you to chose to make them have identical texts (not that node-version of nvmrc should be semver; they’re a subset) - but that doesn’t mean that choice should be foisted on everyone else (iow, the things i put in the engines field for my packages should never be used to select which version to use, so this tool shouldn’t do that)

How are you using it? You are using narrower range or specific version in .node-version that is included in engines range?

The mental model of “engines” is simply not appropriate to apply to “which node version should i be using with the project by default” because they are distinct concepts.

I don't see what causes this conclusion. In official docs I see nothing about mental model of this field. It only says:

You can specify the version of node that your stuff works on

To me, it means:
"You can choose whatever version from this range, this app will work with it".

I mean, if I am specifying versions of the node which my app supports it would be strange that I am prohibiting some of them from using in development. No?

IMHO I never put a non-specific version neither in engines/node nor in package.json at any place. Idea to have patches or minor versions, which should automagically fix things is a really crap. You software just breaks because someone in transitive dependency "fixed" something. This is why you need crazy workarounds like package.lock and yarn.lock in the first place.

@Bessonov that’s both full of a bunch of false claims and also off topic for the thread; let’s not get into that.

@rusty-key nope. Babel 7 requires node 6+, for example, but i have packages using it that support back to node 0.10. I also have a repo where we have binary deps that require node 8 for dev, but the package works fine in production from 0.10 - 11.

Works fine and guaranteed to work fine are not the same.  It still can work with other versions, but I cannot be sure for some reasons.
Anyway, even if we decide that version file and engines field have different mental models (which I am still not convinced in 😄), I don't see how it prevents avn from using engines too. It could be a simple precedence rule: if there are no version files around, use any version that satisfies engines. Would that work?

I don’t think that would be correct, no - i think the engines field is to declare compatibility, and can’t ever be correctly used to determine version switching absent an additional signal.

Hey guys, are there any udpates on this?

@dmitriyaa I'm still at a point of not feeling convinced either way as to whether it's a good idea or a bad one.


bug: Long startuptime with treesitter

Did you check docs and existing issues?

[X] I have read all the lazy.nvim docs
[X] I have searched the existing issues of lazy.nvim
[X] I have searched the existing issues of plugins related to this issue

Neovim version (nvim -v)
v0.9.0-dev-1345+g371823d407
Operating system/version
Arch Linxux
Describe the bug
I recently switched from packer to lazy.nvim and my startup time more than doubled. Most of the time is spend on nvim-treesitter (nvim-treesitter.lua). This seems to be caused by treesitters ensure_installed = "all". If just one language is selected the startup time goes down by 100 ms.
In comparison packer did not have this problem and the startup time was similar between just one treesitter language and all of them.
Steps To Reproduce

Install nvim-treesitter with lazy.nvim
Select to use lots of nvim-treesitter parsers
Startup time explodes

Expected Behavior
Startup time should not explode when selecting lots of treesitter parsers.
Repro
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({
    "git",
    "clone",
    "--filter=blob:none",
    "https://github.com/folke/lazy.nvim.git",
    "--branch=stable", -- latest stable release
    lazypath,
  })
end
vim.opt.rtp:prepend(lazypath)

require("lazy").setup({
  {
    "nvim-treesitter/nvim-treesitter",
    config = function()
      pcall(require("nvim-treesitter.install").update({ with_sync = true }))
    end,
  },
}, {})

require("nvim-treesitter.configs").setup({
  ensure_installed = "all",
  highlight = {
    enable = true,
  },
})

Minimal packer repo
local install_path = vim.fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
local is_bootstrap = false
if vim.fn.empty(vim.fn.glob(install_path)) > 0 then
  is_bootstrap = true
  vim.fn.system({ "git", "clone", "--depth", "1", "https://github.com/wbthomason/packer.nvim", install_path })
  vim.cmd([[packadd packer.nvim]])
end

require("packer").startup({
  function(use)
    use("wbthomason/packer.nvim")
    use({
      "nvim-treesitter/nvim-treesitter",
      run = function()
        pcall(require("nvim-treesitter.install").update({ with_sync = true }))
      end,
    })
    if is_bootstrap then
      require("packer").sync()
    end
  end,
})

if is_bootstrap then
  print("Bootstrapping neovim - restart after packer installed plugins.")
  return
end

local packer_group = vim.api.nvim_create_augroup("Packer", { clear = true })
vim.api.nvim_create_autocmd(
  "BufWritePost",
  { command = "source <afile> | PackerCompile", group = packer_group, pattern = "plugins.lua" }
)

require("nvim-treesitter.configs").setup({
  ensure_installed = "all",
  highlight = {
    enable = true,
  },
})

there is a difference between packers run and the config key from lazy

Thank you, seems like using build instead of config fixes my problem.
I blindly copied this section from kickstart.nvim.


[Navigate to Main Body content of "Adaptive cards" tab]: Voice Access is not able to click 'Privacy & Cookies' and 'Storybook.js' from the footer section of Adaptive Cards

Target Platforms
Other
SDK Version
103.0.1255.0
Application Name
Adaptive Cards
Problem Description
https://microsoft.visualstudio.com/OS/_queries/edit/39920440/?triage=true
Test Environment:
OS: 22H2 (OS Build 25120.1000)
Browser: Edge Dev
Browser Version: Version 103.0.1255.0 (Official build) dev (64-bit)
URL: Adaptive Cards
Tool: Voice Access
Repro Steps:
Launch the above URL.
Command: "Voice access wake up"
Navigate to the footer section of the website.
Command: 'Click Privacy & Cookies' or 'Click Storybook.js' from 'Footer Section'
Observe the issue.
Actual Result:
Voice Access is not able to click 'Privacy & Cookies' and 'Storybook.js' from the footer section of Adaptive Cards.
However, we are able to click 'Privacy & Cookies' and 'Storybook.js' links using Grid view.
Expected Result:
Voice Access users should be able to click 'Privacy & Cookies' and 'Storybook.js' from the footer section of Adaptive Cards.
Observation: 'IsKeyboardFocusable' property is set as 'True' for both 'Privacy & Cookies' and'Storybook.js'.
User Experience:
People with limited mobility (cerebral palsy, quadriplegia) who use Voice Access to use OneNote may not be able edit or type they will find difficulty in accessing 'Canvas area' and 'Canvas Title' edit field. Voice access users will get impact and will not able to interact with controls with pre-defined Voice access commands.
MAS Reference:
No Disruption of Accessibility Features - Liquid (microsoft.com)
Have feedback to share on Bugs? Please help fill Trusted Tester Bug Feedback (office.com)"
To learn more about Voice Access and how an application can support its different modes, Refer: VoiceAccess Testing - OSGWiki
Screenshots
No response
Card JSON
NA

Sample Code Language
No response
Sample Code
No response

https://user-images.githubusercontent.com/96283152/173514607-a47bd663-f434-4f4d-851c-a8dc022663d8.mp4

Hi @Shireen2000! I believe this should be a bug on the Voice Access team because it should be able to recognize special characters.
The Voice Access documentation also recommends using a partial name when the name contains a special character (see this documentation). Following this recommendation, both items can be clicked using Voice Access.
For Privacy & Cookies specifically, we pull this content from the Universal Header and Footer service. The most recent update changed Privacy & Cookies to only say Privacy, so this is a non-issue altogether.
Let me know if you have any questions!


유용한 마크다운 문법 연습

연습

@hey210056
https://github.com/hey210056/testRepo/issues/2
https://github.com/hey210056/testRepo/issues/1
커밋링크 https://github.com/hey210056/testRepo/commit/c031f13abf4d9e8afda7dc8f35758b5b426a379f
https://github.com/hey210056/testRepo/commit/978bb92fffb06973f7e463697985015f6e00ba5c
코멘트 링크
https://github.com/hey210056/testRepo/issues/1#issuecomment-1271016129

https://github.com/hey210056/testRepo/commit/f128d6edc871ebf99a58fa23135471ce2dc14d04

이 저장소에만 있는 것들만 가능하니 기억해두자~


Bullets

A style protocol has to be initiated to use bullets the same way consistently. For example:
Mattermost empowers organizations to achieve their highest priorities through modern, enterprise-grade communication. Enjoy all the productivity benefits of workplace messaging across web, mobile and PC, with unlimited archiving, search and integrations in a single-tenant, private cloud solution under IT control.
Thousands of organizations use Mattermost around the world in 14 languages for its unmatched benefits:
Sec

urity - Keep vital communications, including access to mobile and desktop apps, behind your firewall. Deploy using dozens of security features vetted by top security researchers.
Configurability - Adapt your deployment to your needs, preferences, and existing systems. The open source Mattermost server enables advanced white labelling and customization with complete access to RESTful server APIs, drivers, webhooks and hundreds of 3rd party extensions.
Scalability - Grow from dozens of users to tens of thousands on the same server. Built on a high performance, single-tenant infrastructure, Mattermost E20 offers cluster-based high availability deployments with horizontal scaling and advanced performance monitoring.

These should just be paragraphs.
This problem persists throughout the documentation.

Hi @seenthattinker! Thanks for raising this issue. Could you provide a little more detail around the guidelines you're suggesting?
In the example you've given, I do see the benefit in using bullets as it's a list but there is definitely a case for not using them and having paragraphs instead because the information is still effectively conveyed.
We have a style guide but it doesn't dictate specifically when bullets should be used rather than paragraphs. If you have a style guide in mind for this please let me know as this type of feedback is extremely helpful!
Thank you!

I would use bullets when the description item is a term or a definition which does not need a complete sentenece but is a long phrase. Cocatenating them makes them creates clumsy complex-compound sentences which read like a Romanian encyclppdia entry. Long lists of single word items can be put in a sentence with commas. Using bullets for them creates too much white space on the page.

Thanks, @seenthattinker I understand your perspective and experience with our documentation.
We have not received any supporting comments or suggestions for this change and I was wondering if you'd be open to sharing the style guide recommendations for this suggestion?
There are stylistic recommendations around bullet lists and how to punctuate and capitalize them in guides such as The Chicago Manual of Style, but no set guidelines on what can/should be a bullet list.
We are very open to feedback on our documentation - the challenge is the amount of work involved in assessing the lists and bullet points throughout the documentation, their suitability and potential need to be rewritten. In addition, we're working on paring down our larger sections of content and introducing more bullet lists for better readability.
That said, the readability and structure of our documentation is important to us and so we would be happy to review a detailed proposal of these changes, with some examples based on our documentation. This will provide us with a framework within which to compare the suggestions against our plans, as well as assess the potential work involved.
We could also then share this with the wider community and obtain their feedback.

Sure, I can do that. I need a few days. I am working on a book right now.
point me to your style guide please.
_____________________________________________
Bruce MacDonald
<EMAIL_ADDRESS><EMAIL_ADDRESS>TextMe:<PHONE_NUMBER>
Skype Phone Number:<PHONE_NUMBER>
Skype: seenthattinker1
On Tue, Mar 3, 2020 at 1:41 PM Justine Geffen<EMAIL_ADDRESS>wrote:

Thanks, @seenthattinker https://github.com/seenthattinker I understand
your perspective and experience with our documentation.
We have not received any supporting comments or suggestions for this
change and I was wondering if you'd be open to sharing the style guide
recommendations for this suggestion?
There are stylistic recommendations around bullet lists and how to
punctuate and capitalize them in guides such as The Chicago Manual of
Style, but no set guidelines on what can/should be a bullet list.
We are very open to feedback on our documentation - the challenge is the
amount of work involved in assessing the lists and bullet points throughout
the documentation, their suitability and potential need to be rewritten. In
addition, we're working on paring down our larger sections of content and
introducing more bullet lists for better readability.
That said, the readability and structure of our documentation is important
to us and so we would be happy to review a detailed proposal of these
changes, with some examples based on our documentation. This will provide
us with a framework within which to compare the suggestions against our
plans, as well as assess the potential work involved.
We could also then share this with the wider community and obtain their
feedback.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mattermost/docs/issues/1589?email_source=notifications&email_token=AH47T4VL4CCZ4USM4MWZ77TRFVMPZA5CNFSM4EB4FOQKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENU3XRQ#issuecomment-594131910,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AH47T4QNG7C6JYXBODYG6E3RFVMPZANCNFSM4EB4FOQA
.

That's no problem at all! :)
Our style guide is located here and you can also read about our technical writing handbook for more details about processes.

This has been addressed by docs 2.0. Closing. :)


[DOC] Document new changes RPC API

UPDATE: I completely rewrote this description!
As of https://github.com/nearprotocol/nearcore/pull/2148 we have a brand new API for the changes endpoint. We expose new APIs with a prefix EXPERIMENTAL_, so currently one can run a local node and use EXPERIMENTAL_changes endpoint to get the changes that are happening on the network on a per-block basis.
UPDATE 2020/03/16: There is an upcoming update https://github.com/nearprotocol/nearcore/pull/2264, which will replace account_id in the request with account_ids expecting a list of account_id (I chose to make it a breaking change while we are at the experimental stage).
NOTE: There is an extended EXPERIMENTAL_changes_in_block API: https://github.com/nearprotocol/docs/issues/267
API
EXPERIMENTAL_changes RPC endpoint accepts the following types of requests:
{
    "block_id": /* block hash | block height | omit it if you want to use `finality` */,
    "finality": /* "latest" | "final" | "near-final" | omit it if you want to se `block_id` */,
    "changes_type": /* "account_changes" | "single_access_key_changes" | "all_access_key_changes" | "code_changes" | "data_changes" */,
    /* extra fields based on `changes_type` */
}

the extra fields based on changes_type are the following:

 "account_changes":

account_ids

"single_access_key_changes":

account_ids
access_key_pk (public key)

"all_access_key_changes":

account_ids

"code_changes:

account_ids

"data_changes":

account_ids
key_prefix_base64 (base64-encoded string of the key-prefix data saved from a smart contract)

Example of Account changes
When an account gets modified (created, updated, removed), we can query the block which contains the receipts for the transaction:
http post http://localhost:3030 jsonrpc=2.0 id=dontcare \
    method=EXPERIMENTAL_changes \
    'params:={
        "block_id": "DYHRzRbxUR1ANPdCQcgQE9g5zyYQoDZ1k8BJEQ3hDSgW"
        "changes_type": "account_changes",
        "account_ids": ["new-account"]
    }'

we observe the following:
{
    "block_hash": "DYHRzRbxUR1ANPdCQcgQE9g5zyYQoDZ1k8BJEQ3hDSgW",
    "changes": [
        {
            "cause": {
                "type": "receipt_processing",
                "receipt_hash": "8rPN9tHY9MtT23TqBvvBGBQzwskA5fuZDjmiLpTobgRv"
            },
            "type": "account_update",
            "change": {
                "account_id": "new-account",
                "amount": "0",
                "locked": "0",
                "code_hash": "11111111111111111111111111111111",
                "storage_usage": 100,
                "storage_paid_at": 9
            }
        }
    ]
}

If the account was deleted:
{
    "block_hash": "DYHRzRbxUR1ANPdCQcgQE9g5zyYQoDZ1k8BJEQ3hDSgW",
    "changes": [
        {
            "cause": {
                "type": "receipt_processing",
                "receipt_hash": "8rPN9tHY9MtT23TqBvvBGBQzwskA5fuZDjmiLpTobgRv"
            },
            "type": "account_deletion",
            "change": {
                "account_id": "new-account"
            }
        }
    ]
}

Example of Data changes
When some key gets modified (created, updated, removed), we can query the block which contains the receipts for the transaction:
http post http://localhost:3030 jsonrpc=2.0 id=dontcare \
    method=EXPERIMENTAL_changes \
    'params:={
        "block_id": "DYHRzRbxUR1ANPdCQcgQE9g5zyYQoDZ1k8BJEQ3hDSgW"
        "changes_type": "data_changes",
        "account_ids": ["new-account"],
        "key_prefix_base64": "bXlfa2V5"  /* base64-encoded "my_key" */
    }'

we observe the following (assume the key was modified twice in a single block, and then removed):
{
    "block_hash": "DYHRzRbxUR1ANPdCQcgQE9g5zyYQoDZ1k8BJEQ3hDSgW",
    "changes": [
        {
            "cause": {
                "type": "receipt_processing",
                "receipt_hash": "111N9tHY9MtT23TqBvvBGBQzwskA5fuZDjmiLpTob111",
            },
            "type": "data_update",
            "change": {
                "account_id": "new-account",
                "key_base64": "bXlfa2V5",  /* base64-encoded "my_key" */
                "value_base64":  "bXlfdmFsdWVfMQ==" /* base64-encoded "my_value_1" */,
            }
        },
        {
            "cause": {
                "type": "receipt_processing",
                "receipt_hash": "222N9tHY9MtT23TqBvvBGBQzwskA5fuZDjmiLpTob222"
            },
            "type": "data_update",
            "change": {
                "account_id": "new-account",
                "key_base64": "bXlfa2V5",  /* base64-encoded "my_key" */
                "value_base64": "bXlfdmFsdWVfMg==" /* base64-encoded "my_value_2" */
            }
        },
        {
            "cause": {
                "type": "receipt_processing",
                "receipt_hash": "333N9tHY9MtT23TqBvvBGBQzwskA5fuZDjmiLpTob333"
            },
            "type": "data_deletion",
            "change": {
                "account_id": "new-account",
                "key_base64": "bXlfa2V5"  /* base64-encoded "my_key" */
            }
        }
    ]
}

Notes

While the above examples seem to be accurate, there is a better source of truth -- the tests: https://github.com/nearprotocol/nearcore/blob/60bd4ab09880cbd0a8027dbaf713757cdb718aff/pytest/tests/sanity/rpc_key_value_changes.py
This API is yet to be exposed in nearlib: https://github.com/nearprotocol/nearlib/issues/196

@amgando I had updated the description to reflect the recent API redesign.
Just for the reference:

Initial implementation was here: https://github.com/nearprotocol/nearcore/pull/1910 (mosty irrelevant now)
New implementation is here: https://github.com/nearprotocol/nearcore/pull/2148
The issues that trigger the new implementation:

https://github.com/nearprotocol/nearcore/issues/2034
https://github.com/nearprotocol/nearcore/issues/2048

I had updated the issue to reflect the upcoming changes in https://github.com/nearprotocol/nearcore/pull/2264. account_id in the request is going to be renamed into account_ids and will expect a list of account_id (I chose to make a breaking change while we are at the experimental stage).