text:
Contain protobuf

Google agreed to publish Protobuf 2.5.0 https://github.com/google/protobuf/issues/2147
This removes the requirement of people having to install an old version of Protobuf on their machine (which might not work with other things they're doing). It also removes the dependency from wherever it's being built whether that's in a container or a server that needs 2.5.0 installed.

@mesosphere-ci: retest this please

authors: aaronjwood gabrielhartmann

repo: mesosphere/dcos-cassandra-service


text:
feat(ansible): minimize roles

What problem does this PR solve?:
This is a followup to #211:

Splits roles and minimizes the function of each to improve reusability.
Sets up role dependencies instead of relying solely on playbook ordering.

With the roles specifying their own dependencies, the list-images playbook now only needs to specify the version role, and ansible will determine the order in which to run the roles to satisfy the dependency tree.
Which issue(s) does this PR fix?:

https://jira.d2iq.com/browse/D2IQ-NUMBER

Special notes for your reviewer:

Does this PR introduce a user-facing change?:

I'll rebase this once #217 gets merged.

Please hold off on merging this, these changes will diverge us further from upstream image-builder, lets have a discussion about that.

Sprint: lets discuss it and finalize this offline

@jkoelker since there are a lot of changes, I would recommend that we test the AMI with e2e airgapped test before merging this PR. we can trigger build AMI RHEL 8.4 teamcity job for your branch and feed the AMI to the konvoy2's e2e air gapped  fips RHEL 8.4 tests.

@jkoelker since there are a lot of changes, I would recommend that we test the AMI with e2e airgapped test before merging this PR. we can trigger build AMI RHEL 8.4 teamcity job for your branch and feed the AMI to the konvoy2's e2e air gapped fips RHEL 8.4 tests.

Sounds good, I'll do that and report back with the outcome.

The tests passed but the delete of the cluster failed due to a bug in the delete command: https://teamcity.mesosphere.io/buildConfiguration/Konvoy2_E2eTestsAWSAirGappedFIPSRhel82/3353170?buildTab=log&focusLine=5177&linesState=2502. There is a PR to fix this in konvoy2 already.

source: gharchive/pull-request

authors: dkoshkin jkoelker supershal

repo: mesosphere/konvoy-image-builder

license_type: permissive

license_source: github-api


text:
Suse initial support

Added Suse support and tests:

[x]  do central decision which task file to use instead of deciding on every resource
[x] add suse repositories
[x] add suse package installation
[x] add suse version lock
[x] add suse cloud tools install
[x] add nvidia support

took the DC/OS gpu module (https://github.com/dcos/dcos-ansible/tree/master/molecule/ec2_gpu) and added suse to it.
Also changed gpu.type fact to gpu.types so a user could potentially install more than just nvidia drivers.
GPU support:

[x] unify version variables for cuda and cuda driver

fatal: [default]: FAILED! => {"msg": "The conditional check ''nvidia' in gpu.types' failed. The error was: error while evaluating conditional ('nvidia' in gpu.types):

centos7-nvidia build is failing

I found another thing. I forgot the container runtime.
I'll see if i can add a test for that

about GPU
i realized that we're statically set config when nvidia is set. That means users must have different images for gpu and non gpu support.
We should probably find a way to do this on boot time instead. This would allow users using a single image for gpu and non-gpu instances

I'm merging this. I haven't found any problems in testing, and it appears to work no worse than previously for Flatcar. https://github.com/mesosphere/konvoy-image-builder/pull/39 improves Flatcar support.

authors: fatz jongiddy mhrabovcin


text:
Use healthy status in dependencies between applications

When dependencies are set between applications/groups, dependencies are satisfied since the container is started, but do not care about contained application status.
It could be interesting to take the "healthy" status into account (when health-checks are defined) so that we can set dependencies on a "completely functional" application.
It should be a new json key so that we can choose the dependency type we need, and we can mix them for a single application.

It should already take the health into account. Do you have a group definition where this is not working?

Great !
And are health-checks used in case of scaling ? I mean, if I start 2 instances of an application which have some HCs defined, does the second one wait for the first one to be healthy ?

No, it doesn't wait. Imagine you want to start 100 instances of your app and it takes 1 minute to fully start.  In this case the full deployment would take 100 minutes. It may make sense to in the future add something like "deploy 1 instance to see if everything works as expected and scale to N instances afterwards", but it's currently not planned.

I see.
In fact the "deploy first task, then start remaining tasks in parallel" is my current use case and would be helpful ...

I will close this ticket, could you please create a new one for that?

source: gharchive/issue

authors: Kabhal drexin

repo: mesosphere/marathon


text:
Marathon 0.8.1 - API - /v2/tasks

I just found a bug that /v2/tasks response is TSV,
with and without the header Content-Type application/json.
It should be Content-Type header instead Accept header.

+1 #1647

Should be fixed by #1647

authors: BrickXu aquamatthias guytish


text:
degenerate GROUP_BY behavior when one host is nearly out of resources

Using a ["hostname","GROUP_BY"] constraint on an app with many instances one expects for the instances to be distributed evenly across available agents (subject to all of the complex baggage associated with what "evenly" means to Marathon at any given point in time).
It seems like the list of hostname values that are subject to the spreading logic in GROUP_BY is chosen without regard to the other resource fit parameters.  For example:

Two agents, for exaggeration purposes one is a much smaller agent compared to the other in terms of total cpu/mem resources.
The smaller agent is nearly maxed out, but is still emitting offers with values like mem=1G, cpus=0.  If the agent was totally out of ALL resource types then I suppose there wouldn't be an offer at all and this problem would go away, but it's not and there is an offer.
The larger agent is totally vacant.
Someone tries to deploy an app with 16 instances with [["hostname","GROUP_BY"]].

I would expect that because there is only one agent that can match the resource requests (the larger one) then the GROUP_BY will just spread over the one remaining agent (putting 16 instances on the same agent).
What actually happens is that somehow those stray Offers from the smaller agent disrupts this logic and causes the deploy to stall out at around 3/16 instances deployed.
Reproducible scenario using docker-compose: https://github.com/rboyer/marathon-groupby-issue-reproduction

The marathon logs during the stall:
#################################################################
### correctly failing to match the smaller agent (10.10.2.15) ###
[2016-08-31 19:50:01,719] INFO Offer [110679d4-9a6a-4198-9db8-b913d1bb6a5b-O11]. Considering unreserved resources with roles {*}. Not all basic resources satisfied: cpus NOT SATISFIED (0.01 > 0.0), mem SATISFIED (16.0 <= 16.0) (mesosphere.mesos.ResourceMatcher$:marathon-akka.actor.default-dispatcher-5)
[2016-08-31 19:50:01,720] INFO Offer [110679d4-9a6a-4198-9db8-b913d1bb6a5b-O11]. Insufficient resources for [/sleep] (need cpus=0.01, mem=16.0, disk=0.0, ports=(1 dynamic), available in offer: [id { value: "110679d4-9a6a-4198-9db8-b913d1bb6a5b-O11" } framework_id { value: "110679d4-9a6a-4198-9db8-b913d1bb6a5b-0000" } slave_id { value: "110679d4-9a6a-4198-9db8-b913d1bb6a5b-S1" } hostname: "10.10.2.15" resources { name: "ports" type: RANGES ranges { range { begin: 31000 end: 31755 } range { begin: 31757 end: 32000 } } role: "*" } resources { name: "mem" type: SCALAR scalar { value: 1008.0 } role: "*" } resources { name: "disk" type: SCALAR scalar { value: 3988.0 } role: "*" } url { scheme: "http" address { hostname: "10.10.2.15" ip: "10.10.2.15" port: 5051 } path: "/slave(1)" }] (mesosphere.mesos.TaskBuilder:marathon-akka.actor.default-dispatcher-5)
[2016-08-31 19:50:01,721] INFO Offer [110679d4-9a6a-4198-9db8-b913d1bb6a5b-O10]. Constraints for app [/sleep] not satisfied.
The conflicting constraints are: [field: "hostname"
operator: GROUP_BY
] (mesosphere.mesos.ResourceMatcher$:marathon-akka.actor.default-dispatcher-5)
###########################################################
### errantly failing to match larger agent (10.10.2.14) ###
[2016-08-31 19:50:01,721] INFO Offer [110679d4-9a6a-4198-9db8-b913d1bb6a5b-O10]. Insufficient resources for [/sleep] (need cpus=0.01, mem=16.0, disk=0.0, ports=(1 dynamic), available in offer: [id { value: "110679d4-9a6a-4198-9db8-b913d1bb6a5b-O10" } framework_id { value: "110679d4-9a6a-4198-9db8-b913d1bb6a5b-0000" } slave_id { value: "110679d4-9a6a-4198-9db8-b913d1bb6a5b-S0" } hostname: "10.10.2.14" resources { name: "cpus" type: SCALAR scalar { value: 0.98 } role: "*" } resources { name: "mem" type: SCALAR scalar { value: 992.0 } role: "*" } resources { name: "disk" type: SCALAR scalar { value: 3988.0 } role: "*" } resources { name: "ports" type: RANGES ranges { range { begin: 31000 end: 31295 } range { begin: 31297 end: 31903 } range { begin: 31905 end: 32000 } } role: "*" } url { scheme: "http" address { hostname: "10.10.2.14" ip: "10.10.2.14" port: 5051 } path: "/slave(1)" }] (mesosphere.mesos.TaskBuilder:marathon-akka.actor.default-dispatcher-5)

I think it's related to #3220

We've hit this as well. Different racks have different number of Mesos machines and one full rack can easily kill the deployment.

If nobody at mesosphere has the bandwidth to fix this, is there anyone who could spare some time to guide me into figuring out what fixing this would entail?

Can you share your idea for the solution with some examples how it will work?
For implementation reference you can take a look at https://github.com/mesosphere/marathon/pull/3885 it touches all places that need to be changed to add new constraint.

I'm suggesting changing the behavior of GROUP_BY to only synthesize the "how many hosts exist" metric it uses from offers that match all of the other resources and attributes, instead of apparently considering those as valid machines. I'm not proposing a new constraint.

I'm suggesting changing the behavior of GROUP_BY
I'm not proposing a new constraint.

If it is not backward compatible change (and it looks like it isn't) we should create new constrain for it.
Can you describe how it's going to work? Please provide examples when it works the same as GROUP_BY and when it takes different actions. We'll use it as a unit test. You can follow the notation  introduced in https://github.com/mesosphere/marathon/issues/3220#issuecomment-183067176

could we make it a configuration parameter? ie - graceful degredation of GROUP_BY
--groupby_consideration_timeout
Set to the number of minutes to wait for a host to have resources before removing it from group_by consideration. If the host regains resources during a deployment, it can be put back into rotation in which this timer would restart

If you are considering a patch for this, please consider using a feature flag (e.g. available features/enabled features) instead of adding a new command line parameter.

Note: This issue has been migrated to https://jira.mesosphere.com/browse/MARATHON-2067. For more information see https://groups.google.com/forum/#!topic/marathon-framework/khtvf-ifnp8.

authors: andrewortman bobrik janisz jasongilanfarr meichstedt rboyer


text:
[WIP] Refactor integration tests and add Pod tests

This refactors the current integration tests to support tests using the Mesos containerizer and adds a (simple) test for pods. Currently this can be tested only locally because it doesn't work inside of a Docker container -- the Mesos agent needs certain things not available there. Next step would be to update the Velocity infrastructure to support running these tests.

retest this please

Can one of the admins verify this patch?

A Velocity task to run integration tests that use Mesos with the Mesos containerizer is now there. I'll be triggering more test runs to make sure that it works correctly.

restest this please

retest this please

retest this please

retest this please

retest this please

retest this please

retest this please

Yes, the tagging no longer makes sense, because the functionality that used them has been removed with the latest change. I'll remove them.

Maybe my memory is wrong (and probably is) but I could swear we just have
our classpath in the docker image or something like that. We already have a
working classes directory that can execute app mock (and it's already been
built) so I really don't see a need for another mock. Plus, I'd rather see
it do something (if the above statement isn't true) stupid like use alpine
Linux + netcat or something.

retest this please

retest this please

retest this please

retest this please

While I'd prefer a new tag for these special tests (with a new sbt test target), the enviornment variables will do. Can you look into the test failures?
What do we need to do to have the mesos integration tests in the phabricator jenkins jobs too?

Using tags would let us specifically run only those test cases in the jenkins jobs too.

authors: jasongilanfarr mesosphere-ci nfnt


text:
[INFINITY-2196] Set the hello-world minDcosReleaseVersion to 1.8

The minDcosReleaseVersion for hello-world was incorrectly set to 1.9 causing problems with deploying on 1.8 clusters. This PR corrects that.

The source value should also be updated: https://github.com/mesosphere/dcos-commons/blob/master/frameworks/helloworld/universe/package.json#L3

@nickbp the change to the source was done as part of mesosphere/dcos-commons#1398

authors: elezar nickbp

repo: mesosphere/universe

license_source: bigquery


text:
Persistant Menu

How to add a persistant menu to messenger4j-spring-boot-quickstart , i need some help please

Please have a look at the messenger4j readme

license: MIT


text:
Improve doctests handling

Note: I don't expect this to be easily doable in this project. It would either belong into pytest or maturin. This is just where this issue arose for me.
This issue arose while implementing https://github.com/messense/nh3/pull/72
By adding
[tool.pytest.ini_options]
addopts = '--doctest-glob="*.rst"'

to pyproject.toml, one can run the docstrings in docs/index.rst using pytest.  See here.
Unfortunately, this doesn't run the doctests in src/lib.rs.
Question: Can one adopt the tooling to also run these?

Maybe we can run doctests using https://github.com/twmr/pytest-sphinx?

authors: HelgeKrueger messense


text:
Duplicated symbols between loaders when using global scope still does not work

🐛 Bug Report
This bug (https://github.com/metacall/core/issues/65) has been solved, creating a breaking change in the C API semantics which led to v0.4.0. But still there is problems when loading duplicated symbols in different loaders in their global scope.
Here's the TODO: https://github.com/metacall/core/blob/9957043581f97315921286586c3e848d1737b5e0/source/loader/source/loader_impl.c#L616
Expected Behavior
This should give an error when trying to load:
a.py:
def a():
  return 9

b.js:
module.exports = { a: () => 3 };

main.c:
metacall_load_from_file("py", a_script_list, sizeof(a_script_list) / sizeof(a_script_list[0]), NULL); // 0
metacall_load_from_file("node", b_script_list, sizeof(b_script_list) / sizeof(b_script_list[0]), NULL); // 1

Current Behavior
In the current behavior (not tested), it will load both, and when calling the a function...:
metacall("a");

It will execute the first in the loaders list.
Possible Solution
The solution is to have a global context for all loaders, and pass all functions into this context, which we can pass by arguments to loader_impl module from loader module.

Solved here:
https://github.com/metacall/core/commit/9586750fe1231c30c54b1d936751ee5df763aaee#diff-a86cc89c01bb9dd9653e9efcf86e7a33d1732b362e96ee1714a49d7c427b00b9R619-R643

repo: metacall/core


text:
Changes to split up Ironic container

Allows Ironic container to be split between ironic, dnsmasq, and httpd
containers using this same image.

Build FAILURE, see build http://10.8.144.11:8080/job/dev-tools/348/

Build FAILURE, see build http://10.8.144.11:8080/job/dev-tools/354/

Build FAILURE, see build http://10.8.144.11:8080/job/dev-tools/371/

Doesn't appear to be working - the http request fails downloading the image with Failed connect to 172.22.0.1:80; Connection refused ?

Doesn't appear to be working - the http request fails downloading the image with Failed connect to 172.22.0.1:80; Connection refused ?

Did you include the dev-scripts changes at the same time (https://github.com/openshift-metalkube/dev-scripts/pull/204/)?  The dev-scripts change is needed to start the httpd container, which sounds like its not happening.

authors: bfournie derekhiggins hardys

repo: metalkube/metalkube-ironic


text:
CI Improvements

The CI / build pipeline could benefit from some improvements:

[ ] Having a periodic job that checks new versions of metallb and files PRs against the relevant operator branch for the bump up
[ ] When an operator tag is made, having automation that files a PR against community operators to push a new version
[ ] Extending CI to ensure that the version we are committing is consistent with the version of the branch
[ ] Extending CI to ensure that we are bumping versions up and not down

assign me it, please

authors: fedepaol liornoy

repo: metallb/metallb-operator


text:
Fixate node version to 8.x

https://github.com/metanorma/metanorma/issues/46

Why do we do this?

@opoudjis  Because this gem require puppeteer, and previously we had errors in travis-ci like this https://travis-ci.org/metanorma/metanorma-csd/jobs/516878858#L2156
IDK why build was success regardless these errors

So the failure here is real:
       @@ -1,2 +1,2 @@
       -{:accesseddate=>"XXX", :authors=>["Fred Flintstone", "Barney Rubble"], :authors_affiliations=>{""=>["Fred Flintstone"], "Bedrock Inc."=>["Barney Rubble"]}, :confirmeddate=>"XXX", :createddate=>"XXX", :docnumber=>"CC/WD 1000:2001", :doctitle=>"Main Title", :doctype=>"Standard", :docyear=>"2001", :draft=>"3.4", :draftinfo=>" (draft 3.4, 2000-01-01)", :edition=>"2", :editorialgroup=>[], :ics=>"XXX", :implementeddate=>"XXX", :issueddate=>"XXX", :obsoleteddate=>"XXX", :obsoletes=>nil, :obsoletes_part=>nil, :publisheddate=>"XXX", :receiveddate=>"XXX", :revdate=>"2000-01-01", :roles_authors_affiliations=>{"author"=>{"Bedrock Inc."=>["Barney Rubble"]}, "editor"=>{""=>["Fred Flintstone"]}}, :sc=>"XXXX", :secretariat=>"XXXX", :status=>"Working Draft", :tc=>"TC", :unpublished=>true, :updateddate=>"XXX", :wg=>"XXXX"}
       +{:accesseddate=>"XXX", :authors=>["Fred Flintstone", "Barney Rubble"], :authors_affiliations=>{""=>["Fred Flintstone", "Barney Rubble"]}, :confirmeddate=>"XXX", :createddate=>"XXX", :docnumber=>"CC/WD 1000:2001", :doctitle=>"Main Title", :doctype=>"Standard", :docyear=>"2001", :draft=>"3.4", :draftinfo=>" (draft 3.4, 2000-01-01)", :edition=>"2", :editorialgroup=>[], :ics=>"XXX", :implementeddate=>"XXX", :issueddate=>"XXX", :obsoleteddate=>"XXX", :obsoletes=>nil, :obsoletes_part=>nil, :publisheddate=>"XXX", :receiveddate=>"XXX", :revdate=>"2000-01-01", :roles_authors_affiliations=>{"author"=>{""=>["Barney Rubble"]}, "editor"=>{""=>["Fred Flintstone"]}}, :sc=>"XXXX", :secretariat=>"XXXX", :status=>"Working Draft", :tc=>"TC", :unpublished=>true, :updateddate=>"XXX", :wg=>"XXXX"}

@ronaldtse I 99% sure that this will be fixed once isodoc will be updated, because of latest isodoc handle organization instead org https://github.com/metanorma/isodoc/blob/master/lib/isodoc/metadata.rb#L51
So, in my opinion, it's safe to merge this PR, but of course last work for @opoudjis

Yes, org > organization was an error in isodoc, and has now been fixed. I will do a release once I have worked through the backlog of the last few days.

authors: CAMOBAP795 opoudjis ronaldtse

repo: metanorma/metanorma-csd


text:
Rearrange global namestpaces

Put timers to api.timers, console.* to api.con.* and other global libraries.
Deprecate require at all.
Move JSON.* to api.json.*
Move Math.* to api.math.*
Move RegExp to api.regexp.*
Make global just following namespaces: application, process, api.
Module local namespaces: module
Handler local namespaces: connection or client

Something strange, after moving JSON to api.json it works, but after deleting it from global, it disappears from api.json
global.api = {};
global.api.json = global.JSON;
delete global.JSON;
console.dir(typeof(global.api.json));
console.dir(Object.keys(global.api.json));

@aqrln how?

@tshemsedinov even more strange that it works well in Chrome. What about Node, it doesn't disappear from api.json, neither do methods of api.json, but trying to invoke them or even retrieve typeof of api.json results in ReferenceError, as though it tries to resolve JSON object with its name hardcoded somewhere in V8 sources. I'll investigate the source code.

@tshemsedinov and it actually is. Compare:
src/api.cc in V8, line 2718:
PREPARE_FOR_EXECUTION_WITH_ISOLATE(isolate, JSON, Parse, Value);

deps/v8/src/api.cc in Node.js, line 2653:
PREPARE_FOR_EXECUTION_WITH_ISOLATE(isolate, "JSON::Parse", Value);

authors: aqrln tshemsedinov

repo: metarhia/Impress


text:
请问压缩包里能否提供windows第三方库的dll和lib

目前windows压缩包里bin目录只提供了库的debug的dll，希望能提供下已经编译好的windows库的，一个完整的bin目录。感谢！

release的都有
https://github.com/metartc/metaRTC/releases/tag/4.0.023

看到了，因为是在thirdparty目录下，所以没有发现

authors: apzy yangrtc

repo: metartc/metaRTC


text:
Can't rotate any of the nodes...

I can't seem to rotate any of the nodes in the Scene view. Also it's not possible to set the rotation / position values in the Inspector. Unity 2017.3.1
Thanks!

Rotation and scales of the nodes are not used at all in SplineMesh. Each node is only a position, and the direction is given by a direction node. See https://en.wikipedia.org/wiki/Bézier_curve
That said, I understand the need of using rotation to roll the mesh around the curve. This is possible only programatically at the moment. Help is welcome.
The issue about the value changing via inspector is known and reported in #2.

authors: methusalah rossstyants

repo: methusalah/SplineMesh


text:
Connect slr impacts fina lfinal

This is now based on current FRIDA mainline. Had to reimplement everything because merging failed, so please check again Ben B, but I think I included all connections:

Loss of safe assets from coastal flooding and storm surges
Increased owner consumption to pay for retreat from the coast
Increased government expenditure to pay for flood protection
Reduced worker productivity from being flooded
Increased mortality from storm surges

looks good to go from my end. Lennart have a look at my new switch and see if I got all the impacts

authors: BenjaminBlanz lnnrtrmm

repo: metno/WorldTransFRIDA


text:
introduction comments

I added a short expression for each paragraph. Everything looked good to me, I just changed one or two sentences.
I added Sharma paper as one of the references for epigenetic alterations in the first paragraph, but couldn't find the pmid for it to cite, and couldn't find the references.

Please let me know if you want me to add a paragraph or elaborate on some part in the introduction @aarmey.

repo: meyer-lab/lineage-growth


text:
Fix issue with zero-padding

When the last block contains only 1 character, it is not zero-unpadded properly. In that case you get None as result. This PR fixes this edge case and adds tests for the edge cases.

Coverage increased (+0.02%) to 99.469% when pulling edcbf1306d324676d7ae22a53cf72fd325f669ed on Cito:fix-zero-padding-issue into 7e7975fd814b2f7e6ac94b45be928d64386c470d on meyt:master.

@meyt Thanks for publishing a new version with this fix!

@Cito YW, But actually thank you!

authors: Cito coveralls meyt


text:
Several warning when turn on -Wshadow

Hi,
There are several warnings when using -Wshadow for mpic++. I know this is not a big issue, while it will be much clean if they can be fixed.
PS, I copy the flags from kokkos:
-Wall -Wunused-parameter -Wshadow -pedantic
-Werror -Wsign-compare -Wtype-limits
-Wignored-qualifiers -Wempty-body
-Wclobbered -Wuninitialized
Best,
Adam

Thanks for reporting this @adam-sim-dev.
I took a quick look and none of the warnings I saw appeared to be a problem, but we should take a careful look and resolve them if possible.
Could be a good project for #DocumentationDay.
Tzanio

None of the -Wshadow warnings really needs "fixing" in my opinion -- e.g. I don't see a good reason to disallow function parameters to be called out just because we have a global object called mfem::out.
Another warning that we do not enforce is -Wunused-parameter -- we have a lot of unused parameters in the code.
What we enforce is -pedantic -Wall -Werror as tested by the github actions, see here: https://github.com/mfem/github-actions/blob/ff5143d4ef55622afdacc945960b097ab790ef8c/build-mfem/action.yml#L89-L92
Personally, I typically use: -Werror -pedantic -Wall -Wextra -Wno-unused-parameter (with apple-clang) which currently does not produce any warnings on master.
Regarding the other warnings you listed above (except -Wclobbered which is not supported by clang) -- none of them trigger any warnings on master with apple-clang.

As I said before, I know it's not a problem. I have no preference, just post it here if it could be useful. Personally, I will follow Veselin's advice on my side. Feel free to close this issue.

I run some test and here is what I see:

I did not get any warning from -Wall -pedantic -Wsign-compare -Wtype-limits -Wempty-body -Wclobbered -Wignored-qualifiers -Wuninitialized

There are many warnings (over 2000) from -Wunused-parameter, some of which are in external headers (e.g. from hypre). I don't think we can enforce this strongly.

There are  many warnings (over 2000) from -Wshadow. It will be a significant effort to enforce this, and I personally don't think it is worth it.

I tend to find such warnings annoying so I do sympathize. I'll take a stab at resolving at least some of them.

This is now being addressed in the PRs listed above. See the follow-on discussions there.

authors: adam-sim-dev mlstowell tzanio v-dobrev

repo: mfem/mfem


text:
SpMV with CuSPARSE

This PR uses CuSparse in place of MFEM's native kernel for SpMV multiplication when using Mult in MFEM's sparse matrix class (In Cuda mode).

PR
Author
Editor
Reviewers
Assignment
Approval
Merge

#1489
@artv3
@tzanio
@YohannDudouit + @acfisher + @dylan-copeland
06/07/20
07/23/20
⌛due 07/30/20

Using the spMv.cpp driver, I was able to generate the following table comparing CuSparse SpMV vs MFEM's. The driver assembles the convection + trace term of example 9 and applies the action to a vector 10 times. These are preliminary results as I think performance will vary across matrices.

Order
Refinement
CuSparse
MFEM
MFEM/CuSparse speedup

1
4
0.07775819
0.11898429
1.530183459

2
3
0.10321924
0.23349605
2.262136885

3
3
0.51160311
1.4642181
2.862019545

4
2
0.25306966
0.70391684
2.781514149

@YohannDudouit, @acfisher and @dylan-copeland reminder that the reviews for this PR are due this week

Just out of curiosity, @artv3 have you tested other features of cuSPARSE besides SpMV, e.g. solvers, and do you plan to add those to MFEM in future PR's? It would be nice to have GPU solvers as an alternative to umfpack, etc., although I suppose they would work only for very small matrices (e.g. multigrid coarse matrices) due to GPU memory constraints.

Just out of curiosity, @artv3 have you tested other features of cuSPARSE besides SpMV, e.g. solvers, and do you plan to add those to MFEM in future PR's? It would be nice to have GPU solvers as an alternative to umfpack, etc., although I suppose they would work only for very small matrices (e.g. multigrid coarse matrices) due to GPU memory constraints.

By solvers do you mean direct solvers in particular? In general I am interested in GPU direct solvers, but it hasn't come up in my work. If does I could contribute through PRs. The closest thing right now is PR #1386 which adds an interface for Nvidia's multigrid library. We have a basic interface for Hypre matrices and I'm hosting a summer student (@theolerbear) who is working on adding features and applying it to problems of interest.

@YohannDudouit, you are still planning to take a look at this, correct?

Add a few more days for final fixes/adjustments...

Folks, we seem to be having trouble with metis and AppVeyor...
Start-FileDownload 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz'
Start-FileDownloadInternal : Error downloading remote file: One or more errors occurred.
Inner Exception: Unable to connect to the remote server

Yes, see https://github.com/mfem/mfem/issues/1631 and https://github.com/mfem/mfem/pull/1635

@YohannDudouit , to consolidate the conversation on the two different threads. It sounds like you are looking for the allocation of the buffer to be shared between sparse matrix objects? and allocation should happen at the construction of a sparse matrix object? Is this right?

@artv3 Yes I think this would be better.

Merged in next for testing...

@tzanio I have a couple of updates to push, will get them in the next hour.

@YohannDudouit with regards to moving the buffer allocation to the init function, interestingly enough it requires parameters only known at addMult:       // Y = alpha A * X + beta * Y
In particular alpha and beta:
      cusparseSpMV_bufferSize(handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &alpha,
                              matA_descr,
                              vecX_descr, &beta, vecY_descr, CUDA_R_64F,
                              CUSPARSE_CSRMV_ALG1, &new_bufferSize);

The other methods such as cusparseCreateCsr require knowing the size of the sparse matrix, but if a user creates an empty sparse matrix we wouldn't have that information. Additionally, if the matrix gets resized we would have to regenerate the descriptors. There must be a way to account for resizing?

@artv3 okay, just fix the destructor, and I'll retest and approve.

Is it causing any issues to move the CuSparse initialization in the constructor?

For the case of the empty matrix yes.... perhaps should kick off the initialization using the Finalize() method to ensure we indeed have a sparse matrix in CSR format.

@YohannDudouit I believe I was able to guard against resizing of the matrix. Looks like when Destroy() or SetEmpty() are triggered then we can expect resizing of the matrix. In the case of resizing we do have to do re-allocations of the matrix descriptors.

Trying this out in my application, might need a few adjustments...

Trying this out in my application, might need a few adjustments...

Worked for me.

Merged in next for testing...

Please update CHANGELOG

It will be good to test this with CMake too.

good point @v-dobrev , I could use some help with the CMAKE build. All we need to do use is add -lcusparse, but I'm not sure where that should go.  CMAKE has a way to include it if FindCuda is used (using target_link_libraries( target ${CUDA_cusparse_LIBRARY} )) but I didn't see MFEM using FindCuda so CUDA_cusparse_LIBRARY doesn't get defined.

Extending merge deadline to allow time for updating the CMake build...

Re-merged in next for testing...

Re-merged in next.

@artv3, I updated the CMake build system -- give it a try and let me know if you run into any issues.

@v-dobrev worked for me! Thanks!

authors: YohannDudouit artv3 dylan-copeland tzanio v-dobrev


text:
error: undefined variable "package"

Fresh install in Elixir (1.15.5)
error: undefined variable "package"
  /home/bjorn/r/shopex/deps/elixilorem/mix.exs:9: Elixilorem.Mixfile.project/0

warning: function package/0 is unused
  /home/bjorn/r/shopex/deps/elixilorem/mix.exs:22: Elixilorem.Mixfile (module)

Error while loading project :elixilorem at /home/bjorn/r/shopex/deps/elixilorem
** (CompileError) deps/elixilorem/mix.exs: cannot compile module Elixilorem.Mixfile (errors have been logged)

I tried for fun to change package in mix to package()
then I get new errors like
error: undefined variable "paragraphs"
  lib/elixilorem.ex:4: Elixilorem.paragraph/0

Looking at the code that looks indeed like wrong function definitions that try to return undefined variables

repo: mgamini/elixilorem

license: mit


text:
Multi-NUMA support

Struct Changes
To have possibility to monitor NUMA nodes that involved into
the multi-NUMA alignment of the memory, I introduce additional
fields under the machine state type.
We need number of assignments, to know if we already allocated memory
for the container from this NUMA node, after it the code will check if
the node has some nodes under the Nodes, if it does not have any nodes,
it means that the current node used for the single NUMA node allocation,
otherwise it used for the multi-NUMA allocation.
Method Changes
Now the GetTopologyHints method will return also multi-NUMA
hints, with some restrictions:

preferred hints will be only single NUMA hints, with nodes that
not included under the multi-NUMA node kubelet flag and multi-NUMA
hints with nodes included under the flag
if the node already has single NUMA node assignment, it can not be used for
multi-NUMA assignment and vice versa
node can not be used for multi-NUMA assignment, if it already has assignment,
within different group

Memory calculation
In cases when the multi-NUMA requested, the code will firstly check the first node, if it has enough memory, we will use the memory from it and update only one node information, otherwise it will allocate as much as possible updated the state of the node, and will move to the next node.
TODO

[x] adapt Allocate method
[x] adapt RemoveContainer method

@cezaryzukowski @bg-chun The PR is ready for review, I lack unittests for new functionality, but I will create it under the separate PR, because this one already too big.

@k-wiatrzyk I Fixed small comments and dropped the multi NUMA node parameter, I will merge this one, just to finish all coding work in case if the KEP will get the approval.

repo: mgjeong/kubernetes


text:
Add PHP8 testing to the matrix

Unblocks #150

This failed harder than I expected
1) PHPStan\Drupal\DrupalIntegrationTest::testExtensionTestSuiteAutoloading
Reflection error: Prophecy\PhpUnit\ProphecyTrait not found.
Class Prophecy\PhpUnit\ProphecyTrait not found.
Failed asserting that actual size 2 matches expected size 0.

Due to
<?php

namespace Drupal\TestTools\PhpUnitCompatibility\PhpUnit9;

use Prophecy\PhpUnit\ProphecyTrait;

/**
 * Drupal's forward compatibility layer with multiple versions of PHPUnit.
 */
trait TestCompatibilityTrait {

  use ProphecyTrait;

}

But the trait comes from phpspec/prophecy-phpunit and doesn't seem to be required.

This is blocked until the next 9.1 release: https://www.drupal.org/project/drupal/issues/3182653

repo: mglaman/phpstan-drupal


text:
🛑 Channel APP (Version API) is down

In d4841a7, Channel APP (Version API) (https://gateway.wavemoney.io/v2/wc-api/url-version/entity/wc) was down:

HTTP code: 404
Response time: 250 ms

Resolved: Channel APP (Version API) is back up in d43e8c0 after 17 minutes.

repo: mgmgpyaesonewin/strapi-upptime


text:
🛑 Traffic Dashboard Mediahuis Nederland is down

In 1e99a52, Traffic Dashboard Mediahuis Nederland (https://traffic-tmg.mediahuis.nl/api/system/status) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Traffic Dashboard Mediahuis Nederland is back up in 8ccd3ba.

repo: mh-data-science/upptime


text:
🛑 Traffic Dashboard Mediahuis Nederland is down

In eb5e039, Traffic Dashboard Mediahuis Nederland (https://traffic-tmg.mediahuis.nl/api/system/status) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Traffic Dashboard Mediahuis Nederland is back up in a3a7980.


text:
Tearsheet Statistics needs time-scale

Hi,
The tearsheet should have an axis label and ticks (years) for the "Cumulative Returns" and "Drawdown %" charts.
That would make reading the charts much easier.
Thanks in advance!
Dirk

Thanks - maybe I should have said this differently:
In the top 2 charts, I don't see the days/dates/months.
Example: The drawdown starts in which month according to the 2nd chart from the top?
Or am I looking at this all wrong?

You're right @DirkFR , those two charts should have it.

authors: DirkFR femtotrader ryankennedyio

repo: mhallsmoore/qstrader


text:
feat: hint bar

This currently is misrendering the viewport outside of the panel, and
renders text in the bottom bar.
I'm not sure where the bug is at, will need to investigate.

repo: mhanberg/lazyasdf


text:
toThrowError fails the spec when string is passed

Trying to test the examples of Jasmine fails the last spec "Player #resume should throw an exception if song is already playing", when trying to catch the error.
Throwing class (Player.js):
Player.prototype.resume = function() {
if (this.isPlaying) {
throw new Error("song is already playing");
}
Catching spec:
describe("#resume", function() {
it("should throw an exception if song is already playing", function() {
player.play(song);
  expect(function() {
    player.resume();
  }).toThrowError("song is already playing");
});

});
Changing "toThrowError" to "toThrow" fixes the problem:
describe("#resume", function() {
it("should throw an exception if song is already playing", function() {
player.play(song);
  expect(function() {
    player.resume();
  }).toThrow(new Error("song is already playing"));
});

});

It's because jasmine-node currently uses Jasmine v1.3.1 and toThrowError isn't available until v2.0.0

repo: mhevery/jasmine-node


text:
Check if savevars exists

My apologies, I made a bug in #341 :)

My apologies as well. I didn't test it properly. :)

authors: mhinz noscript

repo: mhinz/vim-startify


text:
Use path.Join when setting zip.FileHeader.Name.

zip.FileHeader.Name is documented to be a /-separated path,
rather than an os.PathSeparator-separated file system path:
// Name is the name of the file.
// It must be a relative path: it must not start with a drive
// letter (e.g. C:) or leading slash, and only forward slashes
// are allowed.

Source: https://godoc.org/archive/zip#FileHeader.Name
Therefore, it's correct to use path.Join rather than filepath.Join
when setting its value. Package path manipulates and produces
slash-separated paths, while package filepath manipulates and
produces os.PathSeparator-separated file system paths.
Updates https://github.com/mholt/archiver/pull/9#issuecomment-241184865.

Thanks Dmitri!

authors: mholt shurcooL

repo: mholt/archiver


text:
TLS CAUrl Option

Currently the ACME CA URL is configured via the -ca command line argument. This means changing the value involves restarting the process and that all domains must use the same ACME CA.  I think this option would be better suited for the tls directive, e.g.:
staging.mydomain.com {
  tls {
    ca https://acme-staging.api.letsencrypt.org/directory
  }
  ...
}

other.mydomain.com {
  tls {
    ca https://acme-v01.api.letsencrypt.org/directory
  }
  ...
}

I think I can whip up a PR for this idea if it has value.

Definitely has value for the caddy-ingress-controller.

I think this is reasonable, and should be fairly easy to do. Any newcomers to the project or Go who would like to take this, feel free!

authors: kminehart mholt zikes

repo: mholt/caddy


text:
feat: drawer footer standard props

Description
This PR follows the Drawer component introduction PR and introduces the following changes:
Drawer component
New features:

Drawer footer can now be a custom node or can leverage standard properties (button, extra) for a predefined look.
Drawer now has a closeIcon

Improvements:

Drawer types have been moved to a separate file
Drawer stories and mocks have been refactored to be more meaningful and usable; Drawer stories now correctly show the drawer props in the Show Code tab
Drawer styles are now imported from a CSS module

Checklist

[x] commit message and branch name follow conventions
[x] tests are included
[x] changes are accessible and documented from components stories
[ ] typings are updated or integrated accordingly with your changes
[ ] all added components are exported from index file (if necessary)
[ ] all added files include Apache 2.0 license
[x] you are not committing extraneous files or sensitive data
[x] the browser console does not have any logged errors
[x] necessary labels have been applied to this pull request (enhancement, bug, ecc.)

Can we consider adding a docLink prop to show the doc icon in the title like in the Modal?

Can we consider adding a docLink prop to show the doc icon in the title like in the Modal?

This makes sense, do other components have a standard prop definition for this? If so let's do this following the same prop-defnition, if not I'd open a PR to define such standard prop and then open another PR

Can we consider adding a docLink prop to show the doc icon in the title like in the Modal?

Can we consider adding a docLink prop to show the doc icon in the title like in the Modal?

This makes sense, do other components have a standard prop definition for this? If so let's do this following the same prop-defnition, if not I'd open a PR to define such standard prop and then open another PR

yes, the Modal has it. I can add it

authors: GiovannaMonti epessina fredmaggiowski

repo: mia-platform/design-system


text:
Make KafkaJS client configuration configurable

The feature or bug you are proposing
Make the entire configuration of the KafkaJS client configurable (at the moment only the following fields are configurable clientId, brokers, authMechanism, username, password, connectionTimeout, authenticationTimeout), in particular add the retry object: https://kafka.js.org/docs/configuration#default-retry
The description of the bug or the rationale of your proposal
Due to the current implementation of the function that handles the consumer status and the limited number of retries (default = 5), our services that use the flow-manager-client go from the STOP, to the DISCONNECT and end in the CRASH event with healthy: true. If the reconnection fails 5 times, the service remains active but it can't process new requests ({ healthy: true, ready: false }) and we have to manually restart the pod.

A snippet of code for replicating the issue or showing the proposal usage if applicable
Add the retry object to the prepareConfig function or, even better, make the entire KafkaJS configuration configurable.
function prepareConfig({
  clientId,
  brokers,
  authMechanism,
  username,
  password,
  connectionTimeout,
  authenticationTimeout,
  retry
}) {
  const brokersList = commaStringToList(brokers)

  const kafkaConfig = {
    clientId,
    brokers: brokersList,
    logLevel: logLevel.WARN,
    logCreator: PinoLogCreator,
    connectionTimeout,
    authenticationTimeout,
    retry
  }

  if (!username || !password) {
    return kafkaConfig
  }

  /* istanbul ignore next */
  return {
    ...kafkaConfig,
    ssl: true,
    sasl: {
      mechanism: authMechanism || 'PLAIN',
      username,
      password,
    },
  }
}

The expected result for your bug
The KafkaJS client is more configurable and our services that use the flow-manager-client library can try to reconnect until they reach a new connection.
Your environment
node: v16.16.0
custom-plugin-lib: v5.1.1
os: Ubuntu 20.04.4 LTS

I would close this issue for the moment, since #119 has solved the problem related to the retries property.

repo: mia-platform/flow-manager-client


text:
SIGNATURE VERIFICATION FAILED!

Has anyone found a fix for this? This happened after I updated TOR. :(

the same here, Pls update :)

I have the exact same problem.
SIGNATURE VERIFICATION FAILED!
Error Code: 110775B5D101FB36BC6C911BEB774491D9FF06E2: Key expired
You might be under attack, there might be a network problem, or you may be missing a recently added Tor Browser verificatic
A copy of the Tor Browser files you downloaded have been saved here:
/home/parallels/.cache/torbrowser/download/tor-browser-linux64-10.0_en-US.tar.xz.verification_failed
/home/parallels/.cache/torbrowser/download/tor-browser-linux64-10.0_en-US.tar.xz.asc.verification_failed
Click Start to refresh the keyring and try again. If the message persists report the above error code here:
https://github.com/micahflee/torbrowser-launcher/issues

yes same problem for me today.
My workaround is to download it from another site:
tor-browser-linux64-10.0_en-US.tar.xz
https://dist.torproject.org/torbrowser/10.0/tor-browser-linux64-10.0_en-US.tar.xz
and unxz and run the "/start-tor-browser.desktop" from there.

Yesterday morning I had the same problem.
I'm using Ubuntu 18.04.05.
After several tries and getting no results, I've search alternatives and found this one:
https://www.wikihow.com/Install-Tor-on-Linux
Actually is the same solution told by tthtlc.
It functions perfectly, but do not try to use your old onion button.
Instead go to the path where is the file start-tor-browser.desktop and try to open that file. It will appear that is not trustable or something like that, ignore it and open it and close the tor browser.
As soon as you close the tor browser you will see the onion icon in that folder.
Just copy that to your main desktop.
Run tor from there anytime you want.

Same for me with Ubuntu 20.04.1.

Hi, I see you closed my ticket and I am pretty new to Linux. Can you tell
me what I need to type in to fix this issue?
On Tue, Oct 6, 2020 at 6:30 PM Micah Lee notifications@github.com wrote:

Closed #515 https://github.com/micahflee/torbrowser-launcher/issues/515.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/micahflee/torbrowser-launcher/issues/515#event-3847950442,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARE6MWFHSJXEC5GHHGNAGG3SJOSA3ANCNFSM4R3HPS6A
.

This issue was fixed in torbrowser-launcher 0.3.3. To get the new version, first uninstall it from the package repositories:
sudo apt remove torbrowser-launcher -y

And then install it from flathub instead, there are instructions to do that here: https://flathub.org/apps/details/com.github.micahflee.torbrowser-launcher

authors: JuliusGM anarcho70 ethpi helozjisky micahflee slproxy tthtlc

repo: micahflee/torbrowser-launcher


text:
MATLAB/Octave support?

Does this already support MATLAB/Octave? I am forced to use MATLAB in a recent project, and was looking for a suitable neovim REPL plugin.
Support Level to achieve
line-level support

Hey!
No, it doesn't... Yet
But given the little time I have right now, matlab being a pain, and the scale of the project sniprun is most relevant for (small ones), I think you may not want to wait for full-featured matlab support.
It may be possible (and simple) to do a basic 'bloc-level' interpreter yourself, but REPL has more chances than not (especially since matlab ) to be difficult...

Sigh. This was sort of expected. MATLAB is a genuine pain, a dinosaur in the modern era, with its proprietary and often outdated tooling.
That said, there's a lot of legacy code, and the automotive industry continues to rely on MATLAB, with its proprietary toolboxes. And support will be appreciated.
A MATLAB interpreter session can be real REPL (i.e. no need of faking a REPL). The last time I used MATLAB was about 5 years ago, and there was a vimscript plugin (https://github.com/daeyun/vim-matlab) that worked reasonably well to provide a REPL with even ability to execute cells etc.

repo: michaelb/sniprun


text:
Define engine key at load() time rather than createEngine()?

I'm running into a situation where I need to define the engine's save key after creating the redux store. I have a web app which serves different content for different 'shortcodes', i.e. example.com/<shortcode>, and I'm persisting only shortcode-specific state slices via redux-storage. In order to prevent different shortcodes' persistent state from conflicting, I'd like to use a different engine key for each shortcode.
For example, if I have /shortcodeA and /shortcodeB, and each shortcode has its own unique state.widgets slice, I want to be able to load & save shortcodeA's state.widgets using an engine key 'shortcodeA' so it doesn't conflict with shortcodeB's state under a 'shortcodeB' engine key.
Is this something that could be supported by redux-storage? Maybe the API could look something like
const load = storage.createLoader(engine);
// ...
load({
  key: 'my-save-key',
  // ... more engine options
}, store);

I'm going to play around with a few options and make a PR; anyone have any thoughts on how this should work?

redux-storage is heavily built towards redux and it's sematics / behaviour. So how do you switch the redux between those shortcodes? Is there a default case (e.g. no data loaded) and how is it handled? Or let me go through this in a few steps:

IMHO it's a good practice to have a sane redux default state for all your reducers and I'm assuming this is the case, right?
So the next thing I assume is that you app works well behaved if there is no data to be loaded besides the initial state, right?
And after all that is set you want to load the right shortcode data for the given page, right?

So why can't you use the right shortcode while creating the initial redux-storage engine?

My original reasoning for this change was that, while I can easily access the shortcode via window.location when constructing the store, I wanted to read URL params only via react-router (to be consistent about how I read URL params). My original root render call rendered something like this:

  <Provider store={store}>

      <Router history={history}>
        <Route path="/">
          <IndexRoute component={NoShortcodeError} />
          <Route
            path=":shortcode"
            component={StorageLoaderContainer}
            loadStorage={loadStorage}
          >
            {/* ... */}
          </Route>
        </Route>
      </Router>

  </Provider>

However I realized that I don't actually need to construct the store up front; I can instead just create it in a component once react-router determines the shortcode. So now I have this:
<Router history={history}>
  <Route path="/">
    <IndexRoute component={NoShortcodeError} />
    <Route
      path=":shortcode"
      component={AppContainer}
    >
      {/* ... */}
    </Route>
  </Route>
</Router>

AppContainer constructs the store in componentWillMount (with access to shortcode to use as the engine key), then calls this.setState({ store, loadStorage }) and renders
<Provider store={store}>
  <StorageLoaderContainer loadStorage={loadStorage}>
    {children}
  </StorageLoaderContainer>
</Provider>

Long story short: I no longer need to define the engine key at load() time, so I think this can be closed 😄

authors: elliottsj michaelcontento

repo: michaelcontento/redux-storage


text:
Error: goog is not defined

I am trying to use you directive in my project but I got this error
Uncaught ReferenceError: goog is not defined
in metadatalite.js?

I solved it.


text:
Bug in Windows Forms Apps (.Net 6)

To demonstrate this error, I created a new Windows Forms App with a text box and a button.   After pressing the button the text in the text box is sent using InputSimulatorEx after a 5 Second delay like this:
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void btn_send_Click(object sender, EventArgs e)
    {
        Thread.Sleep(5000);
        var text = tb_text.Text;
        InputSimulator sim = new();
        sim.Keyboard.TextEntry(text);
    }
}

Start the app and open a notepad.exe Window to display the text.   Press the button and make notepad the active window.
Single characters work fine, but if my text is longer , only the first few characters of the text appear.   If I start typing in the notepad window the rest of the text shows up.  (Sometimes if I wait long enough it appears too.)
The text appears to be stuck inside a buffer, which somehow needs to be nudged to start pushing out letters again.
Is there a way to do this?   I tried calling SendKeys.Flush() after the TextEntry, but it didn't help.

Answering my own question...
It seems to work if you put a small sleep in between characters.  Like this:
private void btn_send_Click(object sender, EventArgs e)
{
    Thread.Sleep(5000);
    var text = tb_text.Text;
    InputSimulator sim = new();
    foreach (var c in text)
    {
        sim.Keyboard.TextEntry(c);
        sim.Keyboard.Sleep(1);
    }
}

repo: michaelnoonan/inputsimulator


text:
Should be able to add multiple tags to project

Should be able to add several tags to a project and be able to search by them as well.

Projects can already have several tags (even if usually one one tag is assigned).
But from the left sidebar, you can only select one tag, so you cannot filter projects using several tags, that is true.
We could add a kind of search module, with a "autocomplete" field to add / remove tags.
Now the search engine (in the top bar) is quite basic: it filters projects using repository, title and description fields, from what the user entered, using RegExp.
Maybe a new "advanced search" page could be nice, with at least 2 fields:

a text field with autocomplete feature to add / remove tags
a text field to enter any keyword that appears in the project title, description or repository name (equivalent to the current search feature).

What do you think @ragamufin, do you have other ideas in mind about the UI ?

I was thinking the search box could be something like what is shown on the "Multiple Search Selection" of http://semantic-ui.com/modules/dropdown.html#search-selection

The example from semantic-ui is basically a "select multiple" component enhanced with an "autocomplete" feature.
So yes it could be used to filter by one or several tags, that is a nice UI.
But what to do with the search by keywords (the current search feature in the top bar) ?
Do we need 2 text fields ? Or can the 2 features be merged in one UI component ?

I have seen uis that allow you to do both, search by tag and free text. So as you're typing a dropdown shows up with tag recommendations and you can click on them and the tag goes into the search box, however if you don't click it then the text remains free text. Clicking multiple tags and having the free text results in the tags being listed first with a different style and the free text after. I guess semantic doesn't have a ui for that, I haven't checked. I can't think of where I've seen it but I know I have seen it on more than one occasion. If it's not out there it would actually be a useful discrete component to build.
Or, you could build a search interface with two fields, one like the link above for adding tags to the search and one with text. Then on submit check with both.

it is now possible to search projects by entering tag names in the search box (like "test", "static", "svg"...), since the release 0.3.2

Closing for now, as search algorithm improved as mentioned in the previous comment.
Current search is far from being perfect, an "auto-complete" component could be nice, or something more sophisticated like the search feature from Algolia, as can see on React documentation site or on ES Lint site.

authors: michaelrambeau ragamufin

repo: michaelrambeau/bestofjs-webui


text:
Add support for server configuration files

Currently printer applications don't offer persistent configuration options for the server, just persistent state. The lprint and hp-printer-app snaps expose configuration settings but that doesn't help non-snapped deployments.
Add support for finding configuration files (and options) in /etc, /usr/local/etc. /Library/Application Support (macOS), $XDG_CONFIG_HOME (Linux), $HOME/Library/Application Support (macOS), $USERPROFILE/AppData/Local (Windows), $SNAP_COMMON (snaps), and $HOME/.config (others). The config filename is "PRINTERAPP.conf" (where "PRINTERAPP" is the base name of the printer application) and the format is basically:
# comment
option=value
option2=value option3=value
option4=value

The order of precedence for options is:

Options set on command-line
Options set in per-user directory
Options set in system/snap directory

[master 872f8b7] Add support for server configuration files that set default option values (Issue #279)

repo: michaelrsweet/pappl


text:
Quote marks inside string breaking columns

Hi! I'm just starting out with this library and running into an issue when parsing the following line when utilising cp.readSDfile()
2,,9.5,OFF,,,"After ""Bring out your dead""",,,,,
I would expect it to output as:
2 |  | 9.5 | OFF |  |  | After "Bring out your dead" |  |  |  |  |
Instead it is parsing as:
2 |  | 9.5 | OFF |  |  | After  | Bring out your dead |  |  |  |
This then breaks the remainder of the operation on later rows, offsetting columns.
For context, this file is saved from Excel, and is expected to be end-user-edited in excel before exporting to CSV to load on the ESP32. It is reasonable to assume the user will replicate this issue when writing spoken quotes in a cell.
The row in Excel shows as:

Hello, would it be possible to post here the exact file you used? And possibly the code?
I tried the following example and it worked as expected:
#include <CSV_Parser.h>

void setup() {
  Serial.begin(115200);
  delay(5000);

  char * csv_str = "to_ignore,my_strings,my_numbers\n"
                   ",hello,5\n"
                   ",world,10\n"
                   ",\"After \"\"Bring out your dead\"\"\",15\n";

  CSV_Parser cp(csv_str, /*format*/ "-sL");

  cp.print();
}

void loop() {
}

It printed:
CSV_Parser content:
rows_count = 3, cols_count = 3
   Header:
       -  | my_strings | my_numbers
   Types:
      - | char* | int32_t
   Values:
      - | hello | 5
      - | world | 10
      - | After "Bring out your dead" | 15
Memory occupied by values themselves = 46
sizeof(CSV_Parser) = 44

Thanks for taking a look at this! Using the example reading_from_sd_card sketch and this file:
spamalotv5.csv

What format string did you use? I'm just trying to use the same scenario to recreate the issue.

What format string did you use? I'm just trying to use the same scenario to recreate the issue.

I just set them all to strings to test:
CSV_Parser cp(/col formats/ "ssssssssssss", /has_header/ true, /delimiter/ ',');

Sorry about it but there is a bug when supplying text character by character, I will try to fix it.

I just created the 1.3.0 release where this issue should be fixed. It may take some time before it's available through Arduino library manager, but you could copy CSV_Parser.cpp directly from this repository and put it in the Arduino libraries "CSV_Parser" folder.
Btw this part was introduced in the CSV_Parser.cpp to address the issue:
    if (!whole_csv_supplied && !strpbrk(next_quote + 1, delim_chars)) {
      s = next_quote + 1;
      continue;
    }
    ending_quote_found = true;

Before that change, the code assumed the ending quote was found even if it wasn't followed by delimiter or "\n" or "\r". This check makes sure that's not the case.
Thank you for reporting this. I hope this change does not break anything else.

Btw that csv file appears to be large, if you run out of memory, you may consider parsing it row by row:
https://github.com/michalmonday/CSV-Parser-for-Arduino/blob/master/examples/parsing_row_by_row_sd_card/parsing_row_by_row_sd_card.ino

Thanks so much! I've just tested it and it is working perfectly for me now.

authors: michalmonday millab

repo: michalmonday/CSV-Parser-for-Arduino


text:
notebook不能自动补全

创建新文件后，在notebook后输入笔记本名称，中文与英文名称都没有提示

http://monkey.yoryor.me/#/zh-Hans/

repo: michalyao/evermonkey


text:
Error when starting web server: listen tcp 127.0.0.1:9393: bind: address already in use

gitrob -no-expand-orgs paypal
_ __           __
___ () /________  / /
/ _ `/ / / / _ / _
_, //_/_/  _/_./
/___/ by @michenriksen
gitrob v2.0.0-beta started at 2020-02-25T07:07:36-05:00
Loaded 91 signatures
Web interface available at http://127.0.0.1:9393
Gathering targets...
Error when starting web server: listen tcp 127.0.0.1:9393: bind: address already in use
What is the solution for this?

@intruderketo  Check to see what else is running? Do you have another web server or process running on that port? Typically this means something else is running on the port and you can't bind a second process to it.

authors: intruderketo mattyjones

repo: michenriksen/gitrob


text:
[BUG] Some json output data field got different (hump naming) from proto files

Describe the bug

What are you trying to do?
request through micro tool or http
What did you expect to happen?
get correct field name defined in the proto file
What happens instead?
in the json style output, some fields got transformed into hump naming

How to reproduce the bug:
Just call a service by http, it will happen. Besides, In the v2.1.0 of micro, this bug happens, while not found in old version.
If possible, please include a minimal code snippet here.
Here is my proto file:
message Model {
	int32 id = 1;
	string key = 2;
	string secret = 3;
	string ip_white_list = 4;
	string comment = 5;
	int32 member_id = 6;
        string create_datetime = 7;
        ...
}

and here is *.go file generated:
type Model struct {
	Id                   int32    `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Key                  string   `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	Secret               string   `protobuf:"bytes,3,opt,name=secret,proto3" json:"secret,omitempty"`
	IpWhiteList          string   `protobuf:"bytes,4,opt,name=ip_white_list,json=ipWhiteList,proto3" json:"ip_white_list,omitempty"`
	Comment              string   `protobuf:"bytes,5,opt,name=comment,proto3" json:"comment,omitempty"`
	MemberId             int32    `protobuf:"varint,6,opt,name=member_id,json=memberId,proto3" json:"member_id,omitempty"`
        CreateDatetime       string   `protobuf:"bytes,7,opt,name=create_datetime,json=createDatetime,proto3" json:"create_datetime,omitempty"`
        ....
}

While i got result when doing request:
[nobody@iwala53 digifinex.micro]$ ./cores/micro call go.micro.srv.etscts UserApi.Query '{"key":"5b5e7b669dca0"}'
{
	"model": {
		"id": 55,
		"key": "5b5e7b669dca0",
		"secret": "d63e26ae39a9db7b676cf01a7cbd312405b5e7b66",
		"comment": "挖矿大大",
		"memberId": 121681,
		"createDatetime": "2019-05-30 10:43:50",
	}
}

you can see that the filed memberId and createDatetime have a Hump naming, that's seems not correct.
Environment:
Go Version: please paste go version output here
please paste `go env` output here
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/duanhaipeng/.cache/go-build"
GOENV="/home/duanhaipeng/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/data/vhosts/trade"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build276583482=/tmp/go-build -gno-record-gcc-switches"

please, provide full example of service, that can returns such data

please, provide full example of service, that can returns such data

func (e *UserApi) Query(ctx context.Context, req *etscts.QueryRequest, rsp *etscts.QueryResponse) error {
log.Log("Received UserApi.Query request")
var data models.IwalaApikey
db := mysql_service.NewGorm()
if err := db.First(&data, "key = ?", req.Key).Error; err != nil {
return err
}
rsp.Model = dbModel2ProtoModel(&data)
// 密钥解密
if decodeSecret, err := utils.AesDecrypt(rsp.Model.Secret, conf.UserApiAesKey); err != nil {
return err
} else {
rsp.Model.Secret = string(decodeSecret)
}
return nil
}
This is my handle service.

please, provide full example of service, that can returns such data

func (e *UserApi) Query(ctx context.Context, req *etscts.QueryRequest, rsp *etscts.QueryResponse) error {
log.Log("Received UserApi.Query request")
var data models.IwalaApikey
db := mysql_service.NewGorm()
if err := db.First(&data, "key = ?", req.Key).Error; err != nil {
return err
}
rsp.Model = dbModel2ProtoModel(&data)
// 密钥解密
if decodeSecret, err := utils.AesDecrypt(rsp.Model.Secret, conf.UserApiAesKey); err != nil {
return err
} else {
rsp.Model.Secret = string(decodeSecret)
}
return nil
}
type etscts.QueryResponse struct {
Model                *Model   protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"
XXX_NoUnkeyedLiteral struct{} json:"-"
XXX_unrecognized     []byte   json:"-"
XXX_sizecache        int32    json:"-"
}
This is my handle service.

I found that if i just removed the tag field:
,json=ipWhiteList,
,json=createDatetime
all response will be lower_case naming, like in the proto file.

in proto you have [json_name="XXX"] you can specify needed stuff here and output json have such name

authors: LLLLLancelot vtolstov

repo: micro/go-micro


text:
Comments validation test for the dele comment controller

Before submitting your PR for review

Run npm run lint to find errors in code syntax/format
Run npm run lint:fix to fix all auto-fixable errors in source code and auto-format with prettier
Ensure you fix any linting errors displayed after running any of the above commands

What does this PR do?
Uses joi for validation in the delete comment controller
Fixes #issue_number (replace issue_number with the issue number this PR solves)
Summarise the main tasks handled in the pull request
description of Task to be completed?
Describe (in detail) what the task completed in the pull request does as per the relevant task
How should this be manually tested?
Give bullet point instructions on how to setup the code and test it manually (Assume no prior experience on JS or code)
Any background context you want to provide?
Any pertinent information that should be considered
What is the link to the issue on Github?
Issue #14
Questions:
If something is unclear or you want some questions to be addressed by your peers, mention them here

@The-indigo bro, please link the issue to this PR

@oscar-ekeyekwu This is the link  https://github.com/microapidev/comment-microapi/issues/158

authors: The-indigo oscar-ekeyekwu

repo: microapidev/comment-microapi


text:
Namespace field in InstallReleaseRequest type object  should be optional as helm allow installing charts without namespace

Explanation:
I am trying to install a chart which has a namespace specified within its template file. In this case if I try to give  namespace in InstallReleaseRequest object also then helm  is throwing error of duplicate namespace.
Helm command allow us to install charts without having namespace parameter, in that case it will install helm release in "default" namespace.
I think microbean should also have similar behavior. We should have namespace field as optional in InstallReleaseRequest object.
Code Reference:
Tiller.class (line 5804)
public Tiller.InstallReleaseRequest.Builder setNamespace(String value) {
if (value == null) {
throw new NullPointerException();
} else {
this.namespace_ = value;
this.onChanged();
return this;
}
}

HI,
Can you please explain how it is generated and how can we handle this null condition?

The API classes that interact with Tiller are generated from Helm's protocol buffers source files: https://github.com/helm/helm/tree/master/_proto
The way they are generated uses protoc and the gRPC Java plugin: https://github.com/grpc/grpc-java#grpc-java---an-rpc-library-and-framework
In terms of which fields and methods and whatnot may be null or not within them, I'm honestly not sure off the top of my head.

authors: Netaji-Surve ljnelson

repo: microbean/microbean-helm


text:
Make rownames unique by default (aggByRank)

As discussed in Slack, there might be rows that are named equally after agglomeration, Now thy are made unique by default

Should we make rownames unique by default or not?

I would say unique by default.

authors: TuomasBorman antagomir

repo: microbiome/mia


text:
We (I) need better semantic versioning practices

In the 4 months between 2022-05-13 and 2022-09-14, we had 12 releases, incrementing from 3.x to 7.x.
In the 4 months between 2022-09-14 and today (2023-02-08) we had 15 releases, all in the 7.x branch.
We do have guidelines for semantic versioning, but I have found it hard to stick to them.

We're really going to stick to these guidelines now:

major version increments on breaking changes (removal of an element, increasing the level of constraint on an element, like making a existing slot required)
minor version increments on additions of non-breaking schema changes
patch version increments on non-schema changes to this repo

repo: microbiomedata/nmdc-schema


text:
EN: using scanning loop instead of continuous scanning

converting ScannerService to a lifecycleService
running a simple loop starting / stopping the bluetooth scanner
introducing SCANNING_INTERVAL as a constant for the loop period
introducing SCANNING_TIME as a constant for the scanning duration per loop run

This is my first time using kotlin and I am also not very experienced programming for Android, so I probably did a lot of mistakes. I basically used the same concepts of the AdvertiserService for the ScannerService. The AdvertiserService class has a suspendCoroutine. I am not exactly sure for what it is used and did not include it in the ScannerService. I am also not sure if ScannerService needs the onBind function?
Probably there are many smarter ways of implementing it, so feel free to ignore it or redo it later on. With theses changes the EN API gets closer to the Google/Apple concept and it also solves #1158 for me. In case you want to stick to continuous scanning, you can set SCANNING_TIME = SCANNING_INTERVAL and still solve   #1158.

Thank you for the review. Since you committed your implementation already, we can drop this


text:
MariaDB compatibility

Several Linux distributions have replaced MySQL in their repositories with MariaDB, a fork of MySQL. MariaDB does not support INSERT ... AS, so this PR rewrites the existing use of INSERT ... AS to a form that works in both MySQL and MariaDB.

Thanks for this PR. The existing syntax is MySQL 8.x which is explicitly called out in the requirements. In #62 I mentioned:

Downgrading the syntax to MySQL 5.x isn't something we'll likely support (though — I might be open to adding a mysql5 backend. Maybe. Maybe not.

That said I'm willing to continue the conversation on this – either in the Slack channel or perhaps in #3 (or another GH discussion).

To be clear: the reason for this stance is that we would be going backward with MySQL support. VALUES() is deprecated:

The use of VALUES() to refer to the new row and columns is deprecated beginning with MySQL 8.0.20, and is subject to removal in a future version of MySQL. Instead, use row and column aliases, as described in the next few paragraphs of this section.

So, thinking about this, perhaps we could implement a sort of "dialects" option or something. I haven't tested this code, but something akin to this:
diff --git a/storage/mysql/mysql.go b/storage/mysql/mysql.go
index 166dfac..e26d17c 100644
--- a/storage/mysql/mysql.go
+++ b/storage/mysql/mysql.go
@@ -25,6 +25,8 @@ type MySQLStorage struct {
        logger log.Logger
        db     *sql.DB
        rm     bool
+
+       newOnDupStx bool
 }

 type config struct {
@@ -82,7 +84,7 @@ func New(opts ...Option) (*MySQLStorage, error) {
        if err = cfg.db.Ping(); err != nil {
                return nil, err
        }
-       return &MySQLStorage{db: cfg.db, logger: cfg.logger, rm: cfg.rm}, nil
+       return &MySQLStorage{db: cfg.db, logger: cfg.logger, rm: cfg.rm, newOnDupStx: true}, nil
 }

 // nullEmptyString returns a NULL string if s is empty.
@@ -129,6 +131,20 @@ func (s *MySQLStorage) storeDeviceTokenUpdate(r *mdm.Request, msg *mdm.TokenUpda
        return err
 }

        return err
 }

+func (s *MySQLStorage) asNew() string {
+       if s.newOnDupStx {
+               return " AS new"
+       }
+       return ""
+}
+
+func (s *MySQLStorage) asNewCol(col string) string {
+       if s.newOnDupStx {
+               return "new." + col
+       }
+       return "VALUES(" + col + ")"
+}
+
 func (s *MySQLStorage) storeUserTokenUpdate(r *mdm.Request, msg *mdm.TokenUpdate) error {
        // there shouldn't be an Unlock Token on the user channel, but
        // complain if there is to warn an admin
@@ -142,13 +158,13 @@ func (s *MySQLStorage) storeUserTokenUpdate(r *mdm.Request, msg *mdm.TokenUpdate
 INSERT INTO users
     (id, device_id, user_short_name, user_long_name, token_update, token_update_at)
 VALUES
-    (?, ?, ?, ?, ?, CURRENT_TIMESTAMP) AS new
+    (?, ?, ?, ?, ?, CURRENT_TIMESTAMP)`+s.asNew()+`
 ON DUPLICATE KEY
 UPDATE
     device_id = new.device_id,
-    user_short_name = new.user_short_name,
-    user_long_name = new.user_long_name,
-    token_update = new.token_update,
+    user_short_name = `+s.asNewCol("user_short_name")+`,
+    user_long_name = `+s.asNewCol("user_long_name")+`,
+    token_update = `+s.asNewCol("token_update")+`,
     token_update_at = CURRENT_TIMESTAMP;`,
                r.ID,
                r.ParentID,

Then of course hook up config and Options configurable in the backend options. Thoughts?

@alwatts if this is a direction that seems okay (more 'dynamic' SQL queries) perhaps you want to give a go at #64 at the same time? No worries if not, though. :)

@jessepeterson Can do! Happy to be assigned it.

authors: alwatts jessepeterson

repo: micromdm/nanomdm


text:
Add a KeyValuePair to do foreach loop with dictionaries

Hi!
I would like you to add the possibility of iterating through a dictionary like in C #. Currently we do not have a way to copy the values from 1 dictionary to another.
For example, on 1 page or report, a user performs X action and you insert the values 1 to 1 in the dictionary. But since you do not know (or you should not know why) all the keys that this dictionary houses cannot be used as a temporary or virtual table with guarantees to optimize old routines.
With a KeyValuePair we could do something similar to this
foreach(KeyValuePair<string, string> entry in myDictionary) {     // do something with entry.Value or entry.Key or just copy from 1 dictionary to another }
Thank you very much in advance!

You can always foreach over Dictionary.Keys and just retrieve the value via the key.
    local procedure Something()
    var
        Dict: Dictionary of [Text, Integer];
        KeyText:Text;
        IntValue:Integer;
    begin
        foreach KeyText in Dict.Keys do begin
            IntValue := Dict.Get(KeyText);
        end;
    end;

Admittedly it is an extra line of code unless you just use Dict.Get(KeyText) in the place of the value.
I suppose if we have support for generic Dict<K,V>, it's not a big ask to also have KeyValuePair<K,V>

Hi! This issue is beyond the scope of the AL language and development tools. Please go ahead and post this to our Ideas forum at https://aka.ms/BusinessCentralideas, or vote up the idea if its already there. We're constantly monitoring top Ideas and will consider them for a future release.

authors: Entreri86 atoader charlespockert

repo: microsoft/AL


text:
Bug regarding reservations and orderplanning

Hi guys,
I found out that the Order Planning was not showing some Sales Orders in the demand overview. These should be shown seeing that the need an purchase to meet demand. I am missing order SO177761, SO177763 and SO177764 in this example.

I found out that during the calculation, it checks on the field "Planned" in the Sales Lines. A boolean field used to indicate is the outstanding quantity is met with reservation quantities. it uses a function in the Sales Line table to determine if it is planned, as seen below.

During the calculation of the "Order Planning" it passes codeunit 5520 "Get Unplanned Demand". This will only check Sales lines that are not planned. As seen in the screenshot below.

The bug:
The field "Planned" is only changed in certain situations. The only times it executes the proces is when:

the salesline is initiated
the quantity field is validated
when the reservation screen is opened(page 498)

But oddly enough not when a reservation is canceled on page 497 "Reservation Entries". The field planned is unchanged because nothing triggers the function "UpdatePlanned" or initiates a Sales line modification in this case. But after using the action "reserve" on the sales lines (which starts procedure ShowReservation on the sales line table and opens page 498) . It suddenly updates again. The "planned" field is now correct again.
You can understand the impact of this bug. Orders are overseen, and this could lead to supply shortages/delays. The order planning overview is incompleet and incorrect. Please fix this in the base application. I can probably work around it by forcing the function after each reservation deletion, but it would be better if you make a fix in future versions seeming your order planning is untrustworthy at the moment.

This is not about the AL language or compiler itself, so probably it should be reported via partner support - or, if it relates to extensibility, https://github.com/microsoft/AlAppExtensions/issues

Hi, this issue is out of scope of for this repository. You should do one of the following:

Open a support request to CSS through the PartnerSource portal
Open a bug in Collaborate
Contact your Service Account Manager (SAM) in your local subsidiary to understand what is included in your contract as of support incident and PAH (Partner Advisory Hours). Your SAM might also direct you "step by step" how to open a support request or how to get credentials, if this is the first time for you or your company

As a reminder, this repository only handles issues to do with the compiler or VSCode development experience for AL.

I moved the bug to https://github.com/microsoft/ALAppExtensions/issues/18815

authors: JohnFrostDP dnpb thloke


text:
[Event Request] Codeunit 31000 "Sales-Post Advances".UnPostInvoiceCorrection

Please add new event
procedure UnPostInvoiceCorrection(SalesInvHeader: Record "Sales Invoice Header")
    var
        SalesAdvanceLetterEntry: Record "Sales Advance Letter Entry";
        SalesAdvanceLetterEntry2: Record "Sales Advance Letter Entry";
        SourceCodeSetup: Record "Source Code Setup";
        GenJnlLine: Record "Gen. Journal Line";
        AdvanceLink2: Record "Advance Link";
        SalesAdvanceLetterLine2: Record "Sales Advance Letter Line";
        SalesAdvanceLetterHeader: Record "Sales Advance Letter Header";
        TempSalesAdvanceLetterEntry: Record "Sales Advance Letter Entry" temporary;
        AdvanceLetterLineRelation: Record "Advance Letter Line Relation";
        VATEntry: Record "VAT Entry";
        TempSalesAdvanceLetterEntry2: Record "Sales Advance Letter Entry" temporary;
        DocType: Option " ","Order",Invoice;
        DocNo: Code[20];
        EntryNo: Integer;
        AdvanceLinkEntryNo: Integer;
        IsHandled: Boolean;
    begin
        OnUnPostInvoiceCorrectionOnBeforeConfirm(SalesInvHeader, IsHandled);
        if not IsHandled then
            if not Confirm(Text4005245Qst, false, SalesInvHeader."No.") then
                exit;
        IsHandled := false;
        OnUnPostInvoiceCorrectionOnBeforeSetDocType(SalesInvHeader, DocType, DocNo, IsHandled);
        if not IsHandled then begin
            DocType := DocType::Invoice;
            DocNo := SalesInvHeader."Pre-Assigned No.";
            if SalesInvHeader."Order No." <> '' then begin
                DocType := DocType::Order;
                DocNo := SalesInvHeader."Order No.";
            end;
        end;
        SalesAdvanceLetterEntry.SetCurrentKey("Document No.", "Posting Date");
        SalesAdvanceLetterEntry.SetRange("Document No.", SalesInvHeader."No.");
        SalesAdvanceLetterEntry.SetRange("Posting Date", SalesInvHeader."Posting Date");
        SalesAdvanceLetterEntry.SetRange("Customer No.", SalesInvHeader."Bill-to Customer No.");
        SalesAdvanceLetterEntry.SetRange(Cancelled, false);
        if SalesAdvanceLetterEntry.Find('+') then begin
            OnUnPostInvoiceCorrectionOnAfterFindSalesAdvanceLetterEntry(SalesAdvanceLetterEntry, SalesAdvanceLetterHeader);
            SourceCodeSetup.Get();
            SetCurrencyPrecision(SalesInvHeader."Currency Code");
            SalesAdvanceLetterEntry2.LockTable();
            SalesAdvanceLetterEntry2.Find('+');
            EntryNo := SalesAdvanceLetterEntry2."Entry No.";
            AdvanceLink2.LockTable();
            AdvanceLink2.FindLast;
            AdvanceLinkEntryNo := AdvanceLink2."Entry No.";
            repeat
                case SalesAdvanceLetterEntry."Entry Type" of
                    SalesAdvanceLetterEntry."Entry Type"::Deduction:
                        begin
                            SalesAdvanceLetterLine2.Get(SalesAdvanceLetterEntry."Letter No.", SalesAdvanceLetterEntry."Letter Line No.");
                            SalesAdvanceLetterLine2."Amount To Deduct" := SalesAdvanceLetterLine2."Amount To Deduct" +
                              SalesAdvanceLetterEntry.Amount;
                            SalesAdvanceLetterLine2."Amount Deducted" := SalesAdvanceLetterLine2."Amount Deducted" -
                              SalesAdvanceLetterEntry.Amount;
                            SalesAdvanceLetterLine2.SuspendStatusCheck(true);
                            SalesAdvanceLetterLine2.Modify(true);
                            if SalesAdvanceLetterHeader."No." <> SalesAdvanceLetterLine2."Letter No." then begin
                                SalesAdvanceLetterHeader.Get(SalesAdvanceLetterLine2."Letter No.");
                                if SalesAdvanceLetterHeader.Closed then begin
                                    SalesAdvanceLetterHeader.Closed := false;
                                    SalesAdvanceLetterHeader.Modify();
                                end;
                            end;
                            AdvanceLetterLineRelation.Get(AdvanceType::Sale, DocType, DocNo,
                              SalesAdvanceLetterEntry."Sale Line No.",
                              SalesAdvanceLetterEntry."Letter No.",
                              SalesAdvanceLetterEntry."Letter Line No.");
                            AdvanceLetterLineRelation."Deducted Amount" -= SalesAdvanceLetterEntry.Amount;
                            AdvanceLetterLineRelation.Modify();
                            UnPostInvCorrSalesLine(DocType, DocNo, SalesAdvanceLetterEntry);
                            AdvanceLetterLineRelation.CancelRelation(AdvanceLetterLineRelation, true, true, true);
                            TempSalesAdvanceLetterEntry := SalesAdvanceLetterEntry;
                            TempSalesAdvanceLetterEntry.Insert();
                        end;
                    SalesAdvanceLetterEntry."Entry Type"::"VAT Deduction":
                        begin
                            SalesAdvanceLetterLine2.Get(SalesAdvanceLetterEntry."Letter No.", SalesAdvanceLetterEntry."Letter Line No.");
                            PrepareInvJnlLine(GenJnlLine, SalesAdvanceLetterLine2, SalesInvHeader);
                            GenJnlLine.Correction := true;
                            GenJnlLine."Source Code" := SourceCodeSetup."Sales Entry Application";
                            GenJnlLine."Document No." := SalesInvHeader."No.";
                            SetPostingGroups(GenJnlLine, SalesAdvanceLetterLine2, false);
                            GenJnlLine."Account No." := SalesAdvanceLetterLine2."No.";
                            GenJnlLine."Advance VAT Base Amount" := -SalesAdvanceLetterEntry."VAT Base Amount (LCY)";
                            SalesAdvanceLetterEntry2.Get(SalesAdvanceLetterEntry."Entry No.");
                            if (SalesAdvanceLetterEntry2.Next > 0) and
                               (SalesAdvanceLetterEntry2."Entry Type" = SalesAdvanceLetterEntry2."Entry Type"::"VAT Rate")
                            then
                                GenJnlLine."Advance Exch. Rate Difference" := -SalesAdvanceLetterEntry2."VAT Amount (LCY)";
                            GenJnlLine.Validate(Amount, -SalesAdvanceLetterEntry."VAT Amount (LCY)");
			    //----------------------------------------OnUnPostInvoiceCorrectionOnBeforeUnPost:BEGIN
			    OnUnPostInvoiceCorrectionOnBeforeUnPost(SalesAdvanceLetterEntry, GenJnlLine);
			    //----------------------------------------OnUnPostInvoiceCorrectionOnBeforeUnPost:END
                            UnPostInvCorrGL(SalesInvHeader, GenJnlLine);
                            if SalesAdvanceLetterLine2."VAT Calculation Type" <>
                               SalesAdvanceLetterLine2."VAT Calculation Type"::"Reverse Charge VAT"
                            then begin
                                GenJnlLine."Account No." := GetSalesAdvanceOffsetVATAccount(
                                    SalesAdvanceLetterLine2."VAT Bus. Posting Group", SalesAdvanceLetterLine2."VAT Prod. Posting Group");
                                GenJnlLine."Advance VAT Base Amount" := 0;
                                SetPostingGroups(GenJnlLine, SalesAdvanceLetterLine2, true);
                                GenJnlLine.Validate(Amount, SalesAdvanceLetterEntry."VAT Amount (LCY)");
                                UnPostInvCorrGL(SalesInvHeader, GenJnlLine);
                            end;
                        end;
                    SalesAdvanceLetterEntry."Entry Type"::"VAT Rate":
                        begin
                            SalesAdvanceLetterLine2.Get(SalesAdvanceLetterEntry."Letter No.", SalesAdvanceLetterEntry."Letter Line No.");
                            if SalesAdvanceLetterLine2."VAT Calculation Type" <>
                               SalesAdvanceLetterLine2."VAT Calculation Type"::"Reverse Charge VAT"
                            then begin
                                PrepareInvJnlLine(GenJnlLine, SalesAdvanceLetterLine2, SalesInvHeader);
                                GenJnlLine.Correction := true;
                                GenJnlLine."Source Code" := SourceCodeSetup."Sales Entry Application";
                                GenJnlLine."Document No." := SalesInvHeader."No.";
                                SetPostingGroups(GenJnlLine, SalesAdvanceLetterLine2, true);
                                GenJnlLine."Advance Exch. Rate Difference" := -SalesAdvanceLetterEntry."VAT Amount (LCY)";
                                if GenJnlLine."Advance Exch. Rate Difference" < 0 then begin
                                    Currency.TestField("Realized Losses Acc.");
                                    GenJnlLine."Account No." := Currency."Realized Losses Acc."
                                end else begin
                                    Currency.TestField("Realized Gains Acc.");
                                    GenJnlLine."Account No." := Currency."Realized Gains Acc.";
                                end;
                                GenJnlLine.Validate(Amount, GenJnlLine."Advance Exch. Rate Difference");
                                UnPostInvCorrGL(SalesInvHeader, GenJnlLine);
                                GenJnlLine."Account No." := GetSalesAdvanceOffsetVATAccount(
                                    SalesAdvanceLetterLine2."VAT Bus. Posting Group", SalesAdvanceLetterLine2."VAT Prod. Posting Group");
                                GenJnlLine.Validate(Amount, -GenJnlLine."Advance Exch. Rate Difference");
                                UnPostInvCorrGL(SalesInvHeader, GenJnlLine);
                            end;
                        end;
                end;
                SalesAdvanceLetterEntry2 := SalesAdvanceLetterEntry;
                SalesAdvanceLetterEntry2.Cancelled := true;
                SalesAdvanceLetterEntry2.Modify();
                EntryNo := EntryNo + 1;
                SalesAdvanceLetterEntry2."Entry No." := EntryNo;
                SalesAdvanceLetterEntry2.Amount := -SalesAdvanceLetterEntry2.Amount;
                SalesAdvanceLetterEntry2."VAT Base Amount (LCY)" := -SalesAdvanceLetterEntry2."VAT Base Amount (LCY)";
                SalesAdvanceLetterEntry2."VAT Amount (LCY)" := -SalesAdvanceLetterEntry2."VAT Amount (LCY)";
                SalesAdvanceLetterEntry2."VAT Base Amount" := -SalesAdvanceLetterEntry2."VAT Base Amount";
                SalesAdvanceLetterEntry2."VAT Amount" := -SalesAdvanceLetterEntry2."VAT Amount";
                if SalesAdvanceLetterEntry2."Entry Type" in [SalesAdvanceLetterEntry2."Entry Type"::"VAT Deduction",
                                                             SalesAdvanceLetterEntry2."Entry Type"::"VAT Rate"]
                then begin
                    VATEntry.FindLast;
                    SalesAdvanceLetterEntry2."Transaction No." := VATEntry."Transaction No.";
                    SalesAdvanceLetterEntry2."VAT Entry No." := VATEntry."Entry No.";
                end;
                SalesAdvanceLetterEntry2.Insert();
                TempSalesAdvanceLetterEntry2 := SalesAdvanceLetterEntry2;
                TempSalesAdvanceLetterEntry2.Insert();
            until SalesAdvanceLetterEntry.Next(-1) = 0;
            UnPostInvCorrUpdt(SalesInvHeader, AdvanceLinkEntryNo, SourceCodeSetup, TempSalesAdvanceLetterEntry);
            UnPostInvCorrInvDoc(SalesInvHeader, TempSalesAdvanceLetterEntry2);
            OnAfterUnPostInvoiceCorrection(SalesInvHeader, AdvanceLinkEntryNo);
        end;
    end;

    //----------------------------------------OnUnPostInvoiceCorrectionOnBeforeUnPost:BEGIN
    [IntegrationEvent(false, false)]
    local procedure OnUnPostInvoiceCorrectionOnBeforeUnPost(SalesAdvanceLetterEntry: Record "Sales Advance Letter Entry"; var GenJnlLine: Record "Gen. Journal Line")
    begin
    end;
    //----------------------------------------OnUnPostInvoiceCorrectionOnBeforeUnPost:END

It is blocking our business and we need to resolve it as soon as possible.
Thanks
Jiří Bureš
CEO

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.

authors: JesperSchulz Jiribu73 fridrichovsky

repo: microsoft/ALAppExtensions


text:
Need to add Hide Window Dialog functionality to Codeunit 5884

Hello !
We need new global boolean variabel HideProgressWindow and new external procedure SetHideProgressWindow() in Codeunit 5884
in order to managed them by Job Scheduler and web services.
I think you need to add some GuiAllowed too :)
thank you
best regards

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.

authors: JesperSchulz jnpatrouillault


text:
Codeunit 90 modify event on procedure PostPurchLine

Hi,
We need a modify event on Codeunit 90 procedure PostPurchLine:
         // > Modify event
           OnPostPurchLineOnBeforeInsertReturnShipmentLine(PurchHeader, PurchLine, IsHandled, ReturnShptHeader, TempPurchLineGlobal, RoundingLineInserted, xPurchLine);
           // < Modify event
           if not IsHandled then
               if (ReturnShptHeader."No." <> '') and ("Return Shipment No." = '') and
                  not RoundingLineInserted
               then
                   InsertReturnShipmentLine(ReturnShptHeader, PurchLine, CostBaseAmount);

           IsHandled := false;
           if PurchHeader.Invoice then
               if "Document Type" in ["Document Type"::Order, "Document Type"::Invoice] then begin
                   OnPostPurchLineOnBeforeInsertInvoiceLine(PurchHeader, PurchLine, IsHandled, PurchInvLine);

...
[IntegrationEvent(false, false)]
   local procedure OnPostPurchLineOnBeforeInsertReturnShipmentLine(var PurchaseHeader: Record "Purchase Header"; PurchaseLine: Record "Purchase Line"; var IsHandled: Boolean; ReturnShptHeader: Record "Return Shipment Header"; TempPurchLineGlobal: Record "Purchase Line"; RoundingLineInserted: Boolean; xPurchLine: Record "Purchase Line")
   begin
   end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.

authors: ASLANSABINEFR JesperSchulz


text:
[EventRequest] Table 5050 Contact - function DoModify

Hi, we need a new event in table 5050 Contact, function DoModify
    procedure DoModify(ContactBeforeModify: Record Contact)
    var
        OldCont: Record Contact;
        Cont: Record Contact;
        IsDuplicateCheckNeeded: Boolean;
    begin
        OnBeforeOnModify(Rec, ContactBeforeModify);  // New event

        SetLastDateTimeModified();

The new event should look like this:
    [IntegrationEvent(false, false)]
    local procedure OnBeforeOnModify(var Contact: Record Contact; xContact: Record Contact)
    begin
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 44163.

authors: JesperSchulz MirabelaRobu


text:
[Access Change Request] Table 5050 - procedure ProcessNameChange

Could you please change "local procedure ProcessNameChange" to "procedure ProcessNameChange" to give access to this procedure.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 51059.

authors: JesperSchulz knkcgv


text:
[Event Request] Report 202 "Sales Document - Test" - OnBeforeVerifySellToCust

Please add the following Event OnBeforeVerifySellToCust in Report 202 "Sales Document - Test"
            trigger OnAfterGetRecord()
<...>
                Receive := ShipReceiveOnNextPostReq;

                //>><< New event
                OnBeforeVerifySellToCust("Sales Header", ErrorText, ErrorCounter);

                VerifySellToCust("Sales Header");

    [IntegrationEvent(false, false)]
    local procedure OnBeforeVerifySellToCust(SalesHeader: Record "Sales Header"; var ErrorText: array[99] of Text[250]; var ErrorCounter: Integer)
    begin
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 12046.

authors: AdrijaSipaviciute JesperSchulz


text:
Codeunit 311 Item-Check Avail. Functions ShowAndHandleAvailabilityPage and ShowWarning

Please make the following functions externally accessible. Thank you.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

authors: Teming bc-ghost


text:
[Event Request] Table 37 - OnBeforeGetDeferralAmount

    procedure GetDeferralAmount() DeferralAmount: Decimal
    >>> New Code
    var
        IsHandled: Boolean;
    begin
        IsHandled := false;
        OnBeforeGetDeferralAmount(Rec, IsHandled);
        if IsHandled then
            exit;

        <<< New Code End
        if "VAT Base Amount" <> 0 then
            DeferralAmount := "VAT Base Amount"
        else
            DeferralAmount := CalcLineAmount;
    end;

You can it make also similar Table 37 - Sales Line
    procedure GetDeferralAmount() DeferralAmount: Decimal
    begin
        if "VAT Base Amount" <> 0 then
            DeferralAmount := "VAT Base Amount"
        else
            DeferralAmount := CalcLineAmount;

        OnAfterGetDeferralAmount(Rec, DeferralAmount);
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

authors: bc-ghost ddagkappeler


text:
[Event Request] OnShowCompanyBadgeTooltip

Currently, the 'Company Badge' feature in Business Central allows a customer to display a four character colored badge at the top-right of the business central UI and when clicked, displays the current company name in the tooltip. There is currently no event publisher to override the tooltip text. It always displays the company name.
There are scenarios where we would like more flexibility than this and display custom data in the tooltip.
A simple event publisher OnShowCompanyBadgeTooltip(var ToolTipText: text; var IsHandled: boolean) would satisfy this requirement! With it, extension developers can can render whatever is needed into the tooltip box.
Also allow the event subscriber to use CRLF placeholders in the tooltip text payload e.g.:
TooltipText := STRSUBSTNO('Company:\%1\User:\%2', COMPANYNAME, USERID);
IsHandled := true;

Would render the tooltip as:
Company:
CRONUS International Ltd.
User:
MYDOMAIN\JOHNDOE

Hi @SteveKrisjanovsD365 .
I'm not sure this can be done via application code and anyway this is not a good idea to use tooltips with parameters.
Let's try to ask for help from platform/client guys.