can't launch demo in ros2

When I launch the demo.launch.xml, there is no map object url  in rviz2.After that, when I add object url manually it show [rviz2-1] [ERROR] [1698998146.731052324] [rviz2]: ItemIdentityException: Material with the name https://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png already exists. in ResourceManager::add at ./.obj-x86_64-linux-gnu/ogre-v1.12.1-prefix/src/ogre-v1.12.1/OgreMain/src/OgreResourceManager.cpp (line 148) [rviz2-1] terminate called after throwing an instance of 'Ogre::ItemIdentityException' [rviz2-1]   what():  ItemIdentityException: Material with the name https://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png already exists. in ResourceManager::add at ./.obj-x86_64-linux-gnu/ogre-v1.12.1-prefix/src/ogre-v1.12.1/OgreMain/src/OgreResourceManager.cpp (line 148) . If I try to search the url, it shows The image "https://tile.openstreetmap.org/%7Bz%7D/%7Bx%7By%7.png" cannot be displayed because it containers errors.
Sorry for my basic question, I am new in here.

I have the fine tile map but I can't upload in object url. If I put url to aerial map topic , the rviz just crash.
the error show
[rviz2-1] [ERROR] [1699678924.373426741] [rviz2]: ItemIdentityException: Material with the name http://localhost/tile/0/0/0.png already exists. in ResourceManager::add at ./.obj-x86_64-linux-gnu/ogre-v1.12.1-prefix/src/ogre-v1.12.1/OgreMain/src/OgreResourceManager.cpp (line 148) [rviz2-1] terminate called after throwing an instance of 'Ogre::ItemIdentityException' [rviz2-1]   what():  ItemIdentityException: Material with the name http://localhost/tile/0/0/0.png already exists. in ResourceManager::add at ./.obj-x86_64-linux-gnu/ogre-v1.12.1-prefix/src/ogre-v1.12.1/OgreMain/src/OgreResourceManager.cpp (line 148)
I am using ros2 humble. Thank for your time.

This should be fixed now on the ros2 branch.


Bash script that downloads wrapper and run aemSatisfy

Added folder with minimal wrapper that is download by bash script

are you planning to complete this impl in near future?

@garbacikp are you wanna to complete this?


Checkboxes initial state ignored in labeled checkbox example

Not sure if that was omitted cause it was out of scope of the example, but stating that By using functions instead, we are able to have reuse in our view without disrupting our Model or update is a bit unfair in this case. Without at least initial state synchronization these checkboxes are useless, even in provided example it seems to work wrong, as in initial model all of the checkboxes are set true but rendered unchecked.
https://guide.elm-lang.org/reuse/checkboxes.html

I think the checkbox examples did not make it into the latest version of the guide, and this repo is meant to match the guide.
You can use the checked attribute to set the checkbox state, and if I recall correctly, the examples you mention did not use it in an effort to keep the code simpler. The choice was either that (1) it was a little bit to complex for where I wanted it in the guide or (2) it works a bit weird, so the solution was to find a better way to present the material.


Guarded endpoint returns 401 after signin

I'm building a test API on @nestjs/core 8.0.0 that should be protected by firebase-google-oauth2 sign-in method. With Postman I try to reach the endpoint but even after authentication it responds with a 401. I don't really know if this is a problem related to the library but I don't know where to look at.
I installed the requierd dependencies and followed the documentation to build a simple endpoint
The endpoint looks like this
  @Get('auth')
  @UseGuards(FirebaseAuthGuard)
  auth() {
    return true;
  }

Since I use firebase, my google console has been automatically configured (I assume correctly) and I'm able to obtain an access_token and id_token from google through postman. However using that token when calling the guarded API results in a 401.
My AppModule correctly registers the FirebaseAuthModule with my projectID
FirebaseAuthModule.register({
      audience: 'my project id',
      issuer: 'https://securetoken.google.com/my project id',
    }),

In order to check if everything was working correctly I also tried to create a custom strategy with a simple validate method that just logs the payload
  async validate(payload: DecodedIdToken): Promise<void> {
    console.log(payload);
  }

but the app never logs anything when I fire the request
Do you have any suggestions?

Hi @marnec , can you send a sample API request? Have you tried adding Bearer <id_token> as the Authorization header of your request?

Hi @jimuelpalaca, sorry I realized that there were no problems with the library. With postman I was authenticathing directly to google instead of authenticating to firebase, so the idtoken that I was receiving (and that I used as Bearer token) was refused by firebase

I see, we use firebase/quickstart-js to test firebase auth and get tokens easily. Maybe it can help you too with your development.


Suggest to shiftit afficionados how to get Onsi-like behavior

Or would it be even better to just make this a default-on setting? I prefer it.
brew cask install shiftit is getting the latest from Github at the current
time (v1.6.5) which fixes https://github.com/fikovnik/ShiftIt/pull/258

If this does stay as a suggestion, perhaps it should instead be part of finished.sh? Not sure.

The echo statement does not describe the behavior. (I'd drop the reference to Onsi's fork since many pivots are not familiar with it.)
I looked at ShiftIt's preferences and could not find an option for multipleActionsCycleWindowSizes, so I'm not sure what it is.

This change allows the user to select 1/3 screen width in addition to 1/2 screen width.
I thought that a recent update to ShiftIt had this included by default, on my personal laptop, I confirmed that a brand new brew cask install shiftit did not, so I'll need to see what is on my work workstation later.

Good feedback. Indeed, I was expecting the default behavior to be consistent with a setting of "YES" -- this PR would be a poor stop-gap to compensate for the unexpected default. Feel free to close this or pursue a deeper investigation of why we aren't seeing what we think should have been default.


Flacoco output

Currently Flacoco output the suspicious line and the value .  How can I get the details of the failed test as it only shows the number  of test executed.  How can I know how many out of the tests failed/passed? and the name of the test?
[0] INFO Flacoco - Running Flacoco...
[432] INFO CoverageRunner - Tests found: 20
[432] INFO CoverageRunner - Tests executed: 20

If you use the API, you receive a FlacocoResult object that contains more fine-grained information. See https://github.com/ASSERT-KTH/flacoco/blob/master/src/main/java/fr/spoonlabs/flacoco/api/result/FlacocoResult.java
Another option would be for you to write your own exporter (https://github.com/ASSERT-KTH/flacoco/tree/master/src/main/java/fr/spoonlabs/flacoco/cli/export), if you want to continue using the CLI.


Add local monitoring infrastructure and proof-of-concept middleware

Fixes

Part of #391 by @sarayourfriend
Description

Adds some proof of concept monitoring stuff. We'd need to set up graphite in our infrastructure as well as currently we only have Grafana.
Testing Instructions

Checkout the branch and run just recreate && just init. Then visit the Graphite dashboard at http://localhost:56839 and Grafana at http://localhost:56838.
Checklist

[ ] My pull request has a descriptive title (not a vague title like Update index.md).
[ ] My pull request targets the default branch of the repository (main) or a parent feature branch.
[ ] My commit messages follow best practices.
[ ] My code follows the established code style of the repository.
[ ] I added or updated tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[ ] I tried running the project locally and verified that there are no visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

I'm getting this error in the middleware when I try to view http://localhost:8000/v1/images/?q=test (although the page does load):
web_1               | Traceback (most recent call last):
web_1               |   File "/usr/local/lib/python3.10/site-packages/django/core/handlers/exception.py", line 47, in inner
web_1               |     response = get_response(request)
web_1               |   File "/openverse_api/catalog/api/middleware/statsd_middleware.py", line 16, in __call__
web_1               |     view_name = request.resolver_match.view_name
web_1               | AttributeError: 'NoneType' object has no attribute 'view_name'
web_1               | Internal Server Error: /favicon.ico
web_1               | Traceback (most recent call last):
web_1               |   File "/usr/local/lib/python3.10/site-packages/django/core/handlers/exception.py", line 47, in inner
web_1               |     response = get_response(request)
web_1               |   File "/openverse_api/catalog/api/middleware/statsd_middleware.py", line 16, in __call__
web_1               |     view_name = request.resolver_match.view_name
web_1               | AttributeError: 'NoneType' object has no attribute 'view_name'

@AetherUnbound the error seems to arising from the call to favicon.ico and not for the search request. For this case, we could just skipping the logic in the middleware when the response is 404.

D'oh! It was the end of the day and I didn't look too closely at the error message :sweat_smile:
Are records supposed to show up in Grafana? I was trying to poke around but it didn't seem like any metrics were available even after I visited pages.

@AetherUnbound Grafana requires you to build out dashboards. You can store the dashboards as JSON and then use Terraform to easily replicate your Grafana configuration, but that would be something for the infrastructure repo I think. We could store the JSON in the infra repo and then potentially fetch them from there in a minimalistic dockerfile over the base Grafana image that just imports our various dashboards.
This is one case where a monorepo would be really nice because we wouldn't have to fetch the dashboard JSON from a different repo AND because my intention is to also include the frontend server in Grafana + Graphite/Prometheus and to do that we'll presumably have to duplicate some of the local infrastructure work that's being done here in the frontend repo. Same goes for the catalog if we wanted to throw Airflow health and other metrics into whatever time-series collection solution we end up choosing.
Alternatively, we could add Graphite/Prometheus and Grafana as a completely separate docker-compose stack in the openverse repo and then you'd just have to spin that up in the background along with the API, catalog, and frontend to be able to work on metrics development. In any case we should make sure that it's possible for them to run without those things, but it could be confusing to try to juggle that set up for anyone trying to begin adding metrics.
If you want to see the metrics being gathered you can find them in Graphite by visiting the address in the PR description. Then you'll want to navigate through the Metrics folder in the tree view to find the three different categories this PR sets up. It'll look something like this:

You can use Graphite to browse metrics and identify things you want to visualize in Grafana. You'll need to open up Grafana and add Graphite as a data source by navigating to http://localhost:56838/datasources and clicking "Add data source" button. Then select Graphite as the data source and point it to statsd for the hostname (this will work because they're in the same docker network).
Then in Grafana you can create a new dashboard and add a panel to that dashboard and start querying the various Graphite data streams:

Obviously the data streams won't look too impressive locally, which can make development difficult! I think the use case for a local Grafana instance is moreso being able to verify that metrics are coming through as expected, though you could easily just verify that in Graphite or Prometheus alone as both have their own metrics browsing/visualization tools built in, so maybe Grafana isn't necessary locally.
I envision our Grafana dashboard development cycle looking something like:

Set up the metrics in whatever service you're trying to monitor and then deploy it to production
Go into Grafana and create a temporary "playground" dashboard for yourself
Develop a new graph querying the metrics you're interested in or copy an existing graph you want to update from its home dashboard into your playground dashboard
Export the new graph (or dashboard) as JSON and add it to Terraform under an official name (or update the existing dashboard/graph if you're making modifications to an existing one)

The playground dashboards would be ephemeral and never stored in Terraform, essentially we would make Terraform the source of truth for our Grafana dashboards.

This is incredibly helpful! I didn't realize that we had to add Graphite as a data source. Is there any way to do that with environment variables, so it's available from the get-go on startup?

Is there any way to do that with environment variables, so it's available from the get-go on startup?

Not that I know of, but it's something that can be done with terraform for sure!


Fix the MoTTool to catch an exception

This is a Fix to the MoT Tool. This has nothing to do with the swagger files/services.
Original Issue: https://github.com/Azure/azure-rest-api-specs/issues/4465
@veronicagg @salameer FYI...

Automation for azure-sdk-for-go

Automation for azure-sdk-for-java

Can one of the admins verify this patch?

Automation for azure-sdk-for-node


BERT Model for Tokenization and Initialization of embedding layer

Thank you very much for all your tutorials! :)
In your tutorial6, You have used spacy tokenizer for tokenization and initialized the embedding layer with xavier_uniform as stated below.
def initialize_weights(m):
if hasattr(m, 'weight') and m.weight.dim() > 1:
nn.init.xavier_uniform_(m.weight.data)
I am not sure how to go about using BERT model from huggingface transformer for both tokenization and word-embeddings in order to make vocab open for rare or unseen words and initialize the embedding layer with pre-trained BERT embedding for both encoder and decoder.
Could you please help me what needs to be done in order to achieve these two goals?
Any tip or tutorial will be helpful!
Thanks for your patience! :)

For tokenization just use BertTokenizer-
from transformers.tokenize import BertTokenizer
and word-embeddings is already initialized in BERT model which you are trying to import for downstream tasks.
If you have still some doubts, feel free to ask.


Are we sure the Propose message is optional?

In https://identity.foundation/waci-presentation-exchange/#step-2-send-message-proposing-presentation we mention the propose message is "optional in many cases"
But how? Where would a verifier send the request if this message doesn't happen?

addressed by PR #109


Update to Gradle 2.13

[Current coverage][cc-pull] is 45.07%

Merging [#38][cc-pull] into [master][cc-base-branch] will not change coverage

@@             master        #38   diff @@
==========================================
  Files             2          2
  Lines            71         71
  Methods           0          0
  Messages          0          0
  Branches         12         12
==========================================
  Hits             32         32
  Misses           39         39
  Partials          0          0

Powered by Codecov. Last updated by [15b1bf2...d8499df][cc-compare]
[cc-base-branch]: https://codecov.io/gh/vanniktech/VNTFontListPreference/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/vanniktech/VNTFontListPreference/compare/15b1bf20411d7947c41c714abe2f8f493b4ebcd9...d8499dfaf5efcb15e9a641239b386d7b85c0793d
[cc-pull]: https://codecov.io/gh/vanniktech/VNTFontListPreference/pull/38?src=pr


ImportError: cannot import name 'music_pb2'

I tried following the command line usage on the README file. Bazel was able to build successfully, but trying to print the Score message gives me this error:
from protobuf import music_pb2 as protobuf_dot_music__pb2
ImportError: cannot import name 'music_pb2' from 'protobuf' (\?\C:\Users\UserName\AppData\Local\Temp\Bazel.runfiles_fvslv94m\runfiles_main_\moonlight\protobuf_init_.py)

I have the same (or at least related) issue, bazel build moonlight succesfully yet music_pb2 cannot be imported
Command(cmd)log:
C:\Users\Mariu\OMR\moonlight\bazel-bin\moonlight>omr moonlight/testdata/IMSLP00747-000.png
C:\Users\Mariu\OMR\venv\lib\site-packages\librosa\core\audio.py:33: UserWarning: Could not import scikits.samplerate. Falling back to scipy.signal
warnings.warn('Could not import scikits.samplerate. '
Traceback (most recent call last):
File "\?\C:\Users\Mariu\AppData\Local\Temp\Bazel.runfiles_i9rwhti1\runfiles_main_\moonlight\omr.py", line 30, in
from moonlight import conversions
File "\?\C:\Users\Mariu\AppData\Local\Temp\Bazel.runfiles_i9rwhti1\runfiles_main_\moonlight\conversions_init_.py", line 21, in
from moonlight.conversions.musicxml import score_to_musicxml
File "\?\C:\Users\Mariu\AppData\Local\Temp\Bazel.runfiles_i9rwhti1\runfiles_main_\moonlight\conversions\musicxml.py", line 30, in
from moonlight.protobuf import musicscore_pb2
File "\?\C:\Users\Mariu\AppData\Local\Temp\Bazel.runfiles_i9rwhti1\runfiles_main_\moonlight\protobuf\musicscore_pb2.py", line 15, in
from protobuf import music_pb2 as protobuf_dot_music__pb2
ImportError: cannot import name 'music_pb2'
i've tried googling the issue but ive found no solutions thusfar.

I'll clarify the README, we should have instructions for supporting Windows Subsystem Linux but not for Windows itself. The codebase is generally written to be platform-agnostic, but it looks like the Bazel directory structure may be inconsistent on Windows.

Pleasee Update the README :')
After trying to run moonlight on a M1 Mac, I discovered they are not compatible.
Now I have run into this error running on Windows, so this option is discarded as well.

Thanks all.
This project isn't currently active, and our end goal is Cloud Compute over a static corpus of PNGs, so we are only looking at Linux. For debugging, the most comprehensive cross-platform solution would be a Linux VirtualBox and Jupyter notebook with port forwarding. It didn't reach the point yet of producing fuzzy, low-quality, but meaningful MusicXML files in bulk, so we're not working on a regular release yet which would get around limitations of building a Bazel project.


Reduce the frequency of pre-commit autoupdates

[x] User visible changes (including notable bug fixes) are documented in whats-new.rst

Yes less spam! quarterly is my preferred frequency btw but even this is good


[5.10][ClangImporter] Always rebuild any bridging PCH that has errors

Explanation: If a PCH was output with errors, it may not have serialized all its inputs. If there was a change to the search path or a headermap now exists where it didn't previously, it's possible those inputs will now be found. This cherry-pick treats any PCH with errors as out of date, which will cause them to be rebuilt to cover this case.
Scope: Impacts rebuilding PCH with errors, which never happens in the compiler itself (only editor functionality)
Testing: Extra test case to check we rebuild when there's an error.
Risk: Low
Reviewed By: @artemcm
Main Branch PR: https://github.com/apple/swift/pull/69676
Resolves: rdar://117037471

@swift-ci please test


Snappy ticket cleanup

Make a management command to remove all snappy tickets that do not have nonces from the backend.

@imsickofmaps Please review.

:+1:


Exporting 2 different function under same name

I noticed that there are 2 different functions exported under same name, is it on purpose?
https://github.com/mikeal/aws-sign/blob/master/index.js#L126
https://github.com/mikeal/aws-sign/blob/master/index.js#L145

Somehow I think my build just errored because of this:
SyntaxError: Duplicate export 'queryStringToSign' (225:32) in PROJECT_PATH\node_modules\aws-sign2\index.js

... renaming the former export to stringToSign (as I presume would have been the intention) fixed this for me.


Add support for MQTT monitoring

The set of modules that are instrumented and monitored is currently limited. With the huge growth of interest and usage of "Internet of Things" and MQTT as a messaging protocol, adding MQTT seems like a reasonable module to provide support for.

I've prototyped support in my personal fork (https://github.com/seabaylea/appmetrics). This produces the following data:
Event: 'mqtt'
Emitted when a MQTT message is sent or received using the mqtt module.

data (Object) the data from the MQTT event:

time (Number) the milliseconds when the MQTT event occurred. This can be converted to a Date using new Date(data.time)
method (String) whether the event was for a received message or a publish of a message.
topic (String) the topic on which the message is sent or received.
duration (Number) the time taken for the MQTT message to be sent or received.

Additionally received MQTT messages on subscribed topics will "start" a request event if request tracking is enabled.

@mhdawson I know you've got some demos that use MQTT - can you take a look at the protoype and see whether the data being provided makes sense?
It doesn't provide any data on the message itself - either size, or (truncated) content, but that could be added. At the moment it only grabs the types of data that are unlikely to cause issues.

I've also just added support for 'qos'. This does two things:

Adds the qos level to the monitoring event
Measures the duration for a publish as the time from publish to the start of the callback being fired - ie. the acknowledgement from the broker that the message has been received.

Closing based on PR #82


Bluetooth: Fix gatt db stored twice

Fix issue where an invalid (all zeroes) hash was written to settings
storage on reset. This caused the old value to written to zeroes, before
being written back to it's original value again immediately after.
This causes excessive flash wear.
This happens because the check if (k_delayed_work_remaining) returns the
amount of time until the work will execute. When that time has run out
the time is zero, but the work has not yet been executed.
We then write the invalid hash to flash, and then once the work-item
executes it will write the correct value.
@Vudentz @jhedberg
I have documented the behaviour with bt_gatt_service_register and settings_load.
At least that is how it works currently.
I'm not sure if this is the behaviour we wanted or not. @Vudentz Was this intentional or not? Is it documented somewhere else?
If it is not the behaviour we want then we should probably change, but maybe that change could wait until after the release?
Fixes: #22730

CC: @pabigot I think because of the assumption that the database hash work cannot be preempted we don't have to solve the preemption problem. Is my assumption correct?

@joerchan it looks like we will be merging the change to k_delayed_work_cancel so this means you can keep these changes are they are.

@Vudentz Thanks. I'll leave this one as is for the time being then.

@pabigot This one approach should now work since #22810 has been merged, do you agree?

@pabigot This one approach should now work since #22810 has been merged, do you agree?

Well, "should".  Has it been tested?

@pabigot This one approach should now work since #22810 has been merged, do you agree?

Well, "should". Has it been tested?

Yes, tested with both cancel while it is pending in the work queue, and after it has executed. I mentioned it here as well: https://github.com/zephyrproject-rtos/zephyr/pull/22810#pullrequestreview-359900053


synchronize sortScenarioResults to avoid ConcurrentModificationException

Description
Thanks for contributing this Pull Request. Make sure that you submit this Pull Request against the develop branch of this repository, add a brief description, and tag the relevant issue(s) and PR(s) below.

Relevant Issues : not filed
Relevant PRs : (optional)
Type of change :

[ ] New feature
[x] Bug fix for existing feature
[ ] Code quality improvement
[ ] Addition or Improvement of tests
[ ] Addition or Improvement of documentation

Wanted to get some of my Karate tests running as regular junit tests with testcontainers in the background. It works fine, excepting occasional ConcurrentModificationExceptions. These seem to be related to FeatureRuntime::afterFeature assuming it has the run of the house.

thanks, I'll accept this as it is simple and makes sense. next time please follow this process: https://github.com/karatelabs/karate/blob/master/.github/CONTRIBUTING.md

also F Y I: https://stackoverflow.com/a/65578167/143475 - for proper CI, always use the parallel runner
and please do consider blogging about your use of karate + testcontainers

Thanks, Peter!
Yeah, I've seen this thread before and I know we are tiptoeing off the paved road here. I'm a green-bar guy. I want to see my tests run in my IDE without having to click on a separate report. I also want to run all of my tests in parallel, be they proper unit tests, testcontainer tests, integration tests, etc. More on this below...
To give some background on what we are trying to do...
We utilize unit tests pretty extensively, but testing is hard at the interfaces, so we use different mechanisms to test the API and Storage interfaces - karate and testcontainers, respectively.
Since defining the Elasticsearch schema and building queries to run against it can be complex (especially with embedded painless scripts and the like), it's not really possible to write effective tests without an actual instance of Elasticsearch in the mix somewhere. Using testcontainers lets us write relatively direct, targeted tests for our storage logic without having to go through the various levels of indirection that would be required to test via the API itself.
However, we also want to have tests for the API contract, and that's what we use karate for. Traditionally, we have just spun up the service and run karate tests separately. But the direction we are moving in is to use DropwizardAppExtension and testcontainers to actually spin up an instance of the service running with real Elasticsearch behind it. For the service in question, we don't call any downstream services, so ES and the service alone is all we need. We already have some basic checks running via this mechanism, but we haven't moved over the body of our karate tests here yet.
Once we've done so, we want to be able to run of our tests in one fell sweep, regardless of whether they use testcontainers or karate, or are just plain unit tests. Additionally, we want to run them all in parallel with a single entity managing resources -  if we were to just invoke karate's parallel runner and junit at the same time, while each managed its own thread pool, that would not be efficient, as we'd need to either have too many threads running when karate and junit are running at the same time, or leave some of our threads idle when only the slower of the two remains, either of which would lead to slower-than-optimal test execution). That's the appeal of karate-junit5 for us.
BTW, we are using @Karate.Test and @Execution(ExecutionMode.CONCURRENT) to process all karate files dynamically instead of having invoke each with a separate piece of java code.
When you say "for proper CI, always use the parallel runner", what are you referencing? Can you provide a little more detail here? What other risks do we face using karate-junit5 instead of the parallel runner?
Thanks again Peter!

@skibrianski I think the only risks are what you ran into, which is that the junit5 code has not been battle-tested for parallel threads. if the same JVM is used for all unit-tests, I think the reports will aggregate correctly, but I'm not sure. other than that, I don't see any issues.
The parallel runner is designed to traverse folders and run all feature files (I guess this is what you mean by "dynamically"), there should be no difference from the junit5 experience. Yes Karate manages its own thread pool, this is intentional. If you are open to contributing code to more closely integrate Karate into JUnit's life-cycle, that may be interesting - but from my experience, that is more trouble than its worth. Personally I have stuck to 2 phases of tests. 1) run all your unit tests, 2) run e2e tests. Since the Karate parallel runner can be kicked off by "yet another JUnit class", you can just have one mvn test do everything. I personally woudn't worry about optimal use of thread pools, I feel that is premature optimization, and we are talking about tests, not production code.

I hear you about premature optimization. While a secondary concern, performance is important too because the sooner a dev gets the feedback that they made a mistake, the sooner they can correct it (before building on that mistake and making things worse). From my personal experience I know that if running tests takes 15 seconds, I will run them far more often than if running the tests takes a minute.
What's far more important for me than performance is to have a single click in my IDE run every single test I have and present all of the results in a single format.
It would be interesting to see a test runner that knew how to speak both junit5 and also dump fancy karate reports out. When you say it was more trouble than it was worth, was that because the size of effort / complexity of such code, or the perceived low benefits of that code? I may have a different perception on the benefits, and I wonder if there may be others of the same mind.
Realistically, I think it's unlikely that I'll be able to contribute anything that significant anytime soon.

Cool. On the more trouble part, I don't want to be tied to JUnit, and I also have doubts about how "user friendly" the JUnit parallel execution option is. I could be wrong, so happy to review any code or examples to be convinced.

BTW, here's how we're invoking our karate tests via karate-junit5 ATM - there's really not much to it. Omitted isIgnored() because it's not really relevant.
`@Execution(ExecutionMode.CONCURRENT)
public class OurServiceKarateTestIT {
private static final Logger LOGGER = LoggerFactory.getLogger(OurServiceKarateTestIT.class);

@Karate.Test
@Execution(ExecutionMode.CONCURRENT)
public Karate dynamic() {
    List<Feature> features = Runner.path("classpath:com/cvent/ourservice")
            .tags(getKarateTagList())
            .resolveAll();
    String[] featureNames = features.stream()
            .filter(feature -> !isIgnored(feature))
            .map(feature -> feature.getResource().getFileNameWithoutExtension().replaceAll("^.*/", ""))
            .toArray(String[]::new);
    return Karate
            .run(featureNames)
            .configDir("test_configs")
            .relativeTo(getClass());
}

}
`

Intellij / junit integration looks about as good as anything else.
Only hitch I've encountered is that clicking on a failed test takes me to the karate file in target/ instead of the source.

good that you have something that you feel comfortable with.
for the majority of teams using karate in CI, I still would recommend the Runner API.


Initialize sticky value on init as well as change

We ran into an issue where the sticky values were not being saved if the relationships were present on init, but never changed (until they were unset). This fixes that issue.

Thanks man!


Enable VPR toolchain for baselitex-nexys-video

Below error needs to be fixed for successful launch of baselitex-nexys-video with VPR:
  File "/fpga-tool-perf/env/conda/envs/symbiflow-env/lib/python3.8/site-packages/prjxray/fasm_assembler.py", line 190, in parse_fasm_filename
    raise FasmLookupError('\n'.join(missing_features))
prjxray.fasm_assembler.FasmLookupError: Segment DB RIOI3, key RIOI3.IOI_OCLKM_0.IOI_IMUX31_1 not found from line 'RIOI3_X105Y145.IOI_OCLKM_0.IOI_IMUX31_1'
Makefile:43: recipe for target 'top.bit' failed

It is a little suspicious that the clock for that RIOI3 is coming from the interconnect, though I do agree the bits are missing.  We should likely investigate adding the bits and figuring out why the router is routing the clock via the interconnect.
Is this a case where an inverter needs to be absorbed into the OLOGIC tile, but hasn't been?  So the routing looks like CLK -> LUT1/INV -> OLOGIC, instead of CLK -> OLOGIC?

Is this a case where an inverter needs to be absorbed into the OLOGIC tile

Looking at the design, there is no OSERDES that has an inverted clock, but we need to further investigate this issue.

What does https://github.com/SymbiFlow/fpga-tool-perf/pull/257 do?

@mithro it adds the test design, for now built with vivado and yosys-vivado, until we find a solution to this issue.

Could I get a statement whether we can currently generate a working bitstream using SymbiFlow & VPR for baselitex on nexys-video? If so, is there a working test somewhere? Thanks.

@HackerFoo A this moment generating bitstream using VPR is not possible due to issue which I mentioned in this issue.


Add schrodit as codeowner

How to categorize this PR?

/platform equinix-metal
What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Release note:

Add schrodit as codeowner

Thank you @schrodit for your contribution. Before I can start building your PR, a member of the organization must set the required label(s) {'reviewed/ok-to-test'}. Once started, you can check the build status in the PR checks section below.


Open the viewer with study uid

Hello, I am new to using OHIF and i have no experience working with react. I wanted to open the OHIF viewer with an existing study uid. From the study list when you click on a study it will normally go to the link "index.html/viewer/{studyuid}". I can't do this directly on the browser address bar because the server will try to actually find a static resource (I am using Orthanc BTW). In angular when you have routes like this it usually have a # before the route so that you can use such URL directly on the browser address bar. Is there a way to do this in OHIF?

Yes, the lookup of the studyinstanceuid from the url should be a plugable function. This function could default to extract the studyinstanceuid from the url.
Or a more direct interface where the "router" logic is external and optional and the "viewer" gets the information which studies to show or whether to show the patient list via standard method calls.

I support this request, this should be implemented as a function. An alternative option is to use URL rewriting in your web server. This is my working Apache HTTPD config for the embedded viewer:
<Directory /Applications/MAMP/htdocs/ohif>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (.*) index.html [QSA,L]
</Directory>

In angular when you have routes like this it usually have a # before the route so that you can use such URL directly on the browser address bar. Is there a way to do this in OHIF?

What you're describing is "Hash Routing". We use React's "Browser Router" (HTML5 history API).
React Router has a few different options:

https://reacttraining.com/react-router/web/api/Router

The above responses should answer your remaining points.

Thank you all for your responses. I understand the use of browser history for routing in OHIF and will have to configure the server to handle the rewrite. Thank you.

@biruk-abebe if for some reason you need to reconsider please check the following:
https://github.com/OHIF/Viewers/issues/1400
In my opinion, if you are embedding the viewer into existing web app, it would be a better approach.


CANOpen firmware update

One of the specific features I've been looking at is that of applying firmware updates.
There are some ways to do that. Most imply having a separated bootloader and application. The bootloader's task is that it verifies applies the firmware update. Apply the bootloader is either enabling another partition, or effectively writing the new application over the older one.
Sometimes the application fetches the firmware update candidate, sometimes that task is up to the bootloader using some kind of minimal CANOpen implementation.
Both have their pro's and con's but that is not what I would like to discuss.
I've noticed the CiA paper 814:

Implementation and user guideline for CiA 417 - part 1: bootloader

Part of the paper describes from a user point of view the functionality of applying fwupdates over CANOpen through the bootloader. So some question come to mind:

I'm wondering how 'default' this fwupdate principle actually is?
Does everybody do it that way, i.e. is it standardized?
Or is it just some sort of recommendation, which the document has applied through means of giving a good example?
As far as I know, CANOpenNode doesn't include such feature. How could it be introduced? Should it follow any standardization?

I can't really speak to your first point since I have not worked extensively with any bootloaders.  But CiA 814 seems to just define a few common sense checks like "make sure you are writing the the device you think you are"
After skimming CiA 417 I do not think it is merely a recommendation.  CiA 417 specifically states when something is out of the scope of the document and up to the end user (like the node-ID assignment section).  That logically supports the rest of the document, and by extension CiA 814, being not just a recommendation.  If I was to pick a standard to follow it would certainly be the one suggested by CiA.
As to your last point, I think adding a bootloader feature to CANopenNode would be out of the scope of the project.  It would make more sense for an existing bootloader project to support CANopen, and thus use CANopenNode.

Thanks for the heads up.
Regarding the latter, that's correct, I would think the same, off course its not about simply adding CANOpenNode to an existing bootloader. Most of the time you would want a minimal version of that stack as the bootloader is always kept very compact. Because there is also the application and it all has to fit you internal flash. The binary size optimizations is just one thing though, which would not always be required. What puzzles me the most is what is required to 'download' the firmware. What is already in the stack, and what needs to be added. The latter is the most important, since you could go with whatever bootloader you'd want: either one with minimal CANopen stack, or an even more basic bootloader that does only the verification / flashing.

Hi,
I've used the bootloader implementation from
https://github.com/kcaluwae/dspic33e-bootloader on PIC24s that i've done
and got it working fine but not deployed to production. The basic
requirement is to upload via SDO to  0x1F50/0x01. You can fit that boot
loader in the first few pages of a PIC24 flash then after a timeout or a
NMT command it jumps to the main application with the CanOpenNode stack.
0x1f50 is pretty standard for this kind of thing, also see
https://www.systec-electronic.com/fileadmin/Redakteur/Unternehmen/Support/Downloadbereich/Handbuecher/CANopen-BootloaderSoftware_Manual_L-1112e_05.pdf
for other implementations of canopen bootloaders again using the 0x1f50
objects + others to complete the flash.
There is also a implementation of the flash loader tool built in to my
canopenmonitor software https://github.com/robincornelius/CanOpenMonitor in
the flasher plugin which i've tested against the first implementation and
can load mplab hex files on to pic24s via canopen.
Robin
On Thu, 10 Oct 2019 at 19:36, Geoffrey Van Landeghem <
<EMAIL_ADDRESS>wrote:

Thanks for the heads up.
Regarding the latter, that's correct, I would think the same, off course
its not about simply adding CANOpenNode to an existing bootloader. Most of
the time you would want a minimal version of that stack as the bootloader
is always kept very compact. Because there is also the application and it
all has to fit you internal flash. The binary size optimizations is just
one thing though, which would not always be required. What puzzles me the
most is what is required to 'download' the firmware. What is already in the
stack, and what needs to be added. The latter is the most important, since
you could go with whatever bootloader you'd want: either one with minimal
CANopen stack, or an even more basic bootloader that does only the
verification / flashing.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/CANopenNode/CANopenNode/issues/111?email_source=notifications&email_token=AABG2GEFVHNSVOJYYNQPSZ3QN5Y4HA5CNFSM4I7ODUY2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEA5K7MY#issuecomment-540716979,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABG2GGBZZHGDZU7LPRVY2TQN5Y4HANCNFSM4I7ODUYQ
.

Hi,
Firmware update is specified in DSP 302-3. This gives a flowchart how this is supposed to work and the register set you have to implement.
CiA 814/417 is for lifts, so you can't rely on that to be implemented in anything else.
I've used CANopenNode for our bootloader too, but with everything removed except what ist absolute necessary and SDO block download (to make it faster...). This way, I was able to get the entire bootloader with flashing and some features in ~12kB STM32/GCC ARM.

@martinwag I'm curious about how the node IDs, baud settings, etc. are handled for the bootloader--is there a completely separate object dictionary for the bootloader? I haven't had a chance to try it out yet, but one of the major limitations that I've noticed with the stock STM32 CAN bootloader is that it only supports one node at a time.
It seems like the ideal solution from the end-application perspective would be for the bootloader to use the same configuration settings as the application for the baud,node ID, etc. so that you could update FW after the device is in a completed system (possibly with multiple other devices with the same CANopenNode bootloader). Can't help but feel a bit uneasy though blurring the lines between the bootloader and application code.
Putting the device into bootloader mode and changing the settings via SDO is an option, but that adds a process step that wouldn't always be necessary (and thus easy to overlook). Anything you can share on this would be appreciated.
In general, having a standardized/template for a CANopenNode bootloader implementation that could be tailored for individual platforms would be a great resource.

Hi,
Yes, I have a completely separate OD for the bootloader. This way, I can ensure that all our devices share the same OD inside bootlaoder (actually the entire bootloader...) and distributing/preprogramming/updating the bootloader is simple.
You already need to pass the information "bootloader requested" from your firmware to bootloader. Just add node ID, baud rate and so on to that block.
I reccomend you to add a way to set node ID and/or baud rate in bootloader nevertheless, in case you can't boot your firmware (CRC error, download error, not loaded yet :-), ... ).

Thanks for the feedback. In between other things I've had some time to experiment with object 1F50h.
To do a program download I've added following things to the stack:
diff --git a/stack/CO_SDO.c b/stack/CO_SDO.c
index 531168f..a289f98 100644
--- a/stack/CO_SDO.c
+++ b/stack/CO_SDO.c
@@ -288,6 +288,53 @@ static CO_SDO_abortCode_t CO_ODF_1200(CO_ODF_arg_t *ODF_arg){
 }

+
+/*
+ * Function for accessing _SDO program download (index 1f50).
+ *
+ * When master sends more bytes to this object than defined in
+ * CO_SDO_BUFFER_SIZE, multiple segments are received by this node.
+ * For example, sending 38 bytes results in the following segments:
+ * RX segment 1: datalength=28, first=true, last=false, offset=0, dataLengthTotal=38
+ * RX segment 2: datalength=10, first=false, last=true, offset=28, dataLengthTotal=38
+
+ * For more information see file CO_SDO.h.
+ */
+static CO_SDO_abortCode_t CO_ODF_1F50(CO_ODF_arg_t *ODF_arg);
+static CO_SDO_abortCode_t CO_ODF_1F50(CO_ODF_arg_t *ODF_arg){
+    CO_SDO_abortCode_t ret = CO_SDO_AB_NONE;
+    static uint8_t progbuff[1024];
+
+    // allow on subindex 1 only
+    if(ODF_arg->subIndex != 0x01)
+        return ret;
+    //only dowloading is supported
+    if(ODF_arg->reading)
+        return ret;
+
+    if(ODF_arg->firstSegment) {
+        //download started
+        printf("FW Download started\n");
+        memset(progbuff, 0, sizeof(progbuff));
+    }
+
+    //copy into buffer
+    printf("copying data (datalength=%LU, first=%s, last=%s, offset=%LU, dataLengthTotal=%LU) \n", ODF_arg->dataLength, (ODF_arg->firstSegment ? "true":"false"), (ODF_arg->lastSegment ? "true":"false"), ODF_arg->offset, ODF_arg->dataLengthTotal);
+    for(int i=0; i<ODF_arg->dataLength; i++) {
+        uint16_t offset = ODF_arg->offset + i;
+        progbuff[offset] = ODF_arg->data[i];
+    }
+
+    if(ODF_arg->lastSegment) {
+        //download finished
+        printf("FW Download finished\n");
+        printf("FW = %s\n", (char *)progbuff);
+    }
+
+    return ret;
+}
+
+
 /******************************************************************************/
 CO_ReturnError_t CO_SDO_init(
         CO_SDO_t               *SDO,
@@ -343,6 +390,7 @@ CO_ReturnError_t CO_SDO_init(
     /* Configure Object dictionary entry at index 0x1200 */
     if(ObjDictIndex_SDOServerParameter == OD_H1200_SDO_SERVER_PARAM){
         CO_OD_configure(SDO, ObjDictIndex_SDOServerParameter, CO_ODF_1200, (void*)&SDO->nodeId, 0U, 0U);
+        CO_OD_configure(SDO, OD_H1F50_PRGRMDWNLOAD_OBJECT, CO_ODF_1F50, 0U, 0U, 0U);
     }

     if((COB_IDClientToServer & 0x80000000) != 0 || (COB_IDServerToClient & 0x80000000) != 0 ){
diff --git a/stack/CO_SDO.h b/stack/CO_SDO.h
index 33dc42c..eb0429b 100644
--- a/stack/CO_SDO.h
+++ b/stack/CO_SDO.h
@@ -434,7 +434,8 @@ typedef enum{
     OD_H1A00_TXPDO_1_MAPPING      = 0x1A00U,/**< TXPDO mapping parameters */
     OD_H1A01_TXPDO_2_MAPPING      = 0x1A01U,/**< TXPDO mapping parameters */
     OD_H1A02_TXPDO_3_MAPPING      = 0x1A02U,/**< TXPDO mapping parameters */
-    OD_H1A03_TXPDO_4_MAPPING      = 0x1A03U /**< TXPDO mapping parameters */
+    OD_H1A03_TXPDO_4_MAPPING      = 0x1A03U,/**< TXPDO mapping parameters */
+    OD_H1F50_PRGRMDWNLOAD_OBJECT  = 0x1F50U /**< Program download object */
 }CO_ObjDicId_t;

The OD has following changes:
diff --git a/CO_OD.c b/CO_OD.c
index 231a7be..dd3f0c4 100644
--- a/CO_OD.c
+++ b/CO_OD.c
@@ -135,6 +135,7 @@ struct sCO_OD_EEPROM CO_OD_EEPROM = {
 /*1A02*/ {0x0, 0x0L, 0x0L, 0x0L, 0x0L, 0x0L, 0x0L, 0x0L, 0x0L},
 /*1A03*/ {0x0, 0x0L, 0x0L, 0x0L, 0x0L, 0x0L, 0x0L, 0x0L, 0x0L}},
 //
+/*1F50*/ {0x1, 0x0},
 /*1F80*/ 0x04L, //no auto startup of slave node
 /*2101*/ CANOPEN_NODE_ID,
 /*2102*/ 0xFA,
@@ -285,13 +286,16 @@ struct sCO_OD_EEPROM CO_OD_EEPROM = {
            {(void*)&CO_OD_ROM.TPDOMappingParameter[3].mappedObject6, 0x8D,  4},
            {(void*)&CO_OD_ROM.TPDOMappingParameter[3].mappedObject7, 0x8D,  4},
            {(void*)&CO_OD_ROM.TPDOMappingParameter[3].mappedObject8, 0x8D,  4}};
+/*0x1F50*/ const CO_OD_entryRecord_t OD_record1F50[2] = {
+           {(void*)&CO_OD_ROM.ProgramDownload.maxSubIndex, 0x06,  1},
+           {0, 0x0E, 0}};
 /*0x2120*/ const CO_OD_entryRecord_t OD_record2120[6] = {
            {(void*)&CO_OD_RAM.testVar.maxSubIndex, 0x06,  1},
            {(void*)&CO_OD_RAM.testVar.I64, 0xBE,  8},
@@ -339,6 +343,7 @@ const CO_OD_entry_t CO_OD[CO_OD_NoOfElements] = {
 {0x1A01, 0x08, 0x00,  0, (void*)&OD_record1A01},
 {0x1A02, 0x08, 0x00,  0, (void*)&OD_record1A02},
 {0x1A03, 0x08, 0x00,  0, (void*)&OD_record1A03},
+{0x1F50, 0x02, 0x00,  0, (void*)&OD_record1F50},
 {0x1F80, 0x00, 0x8D,  4, (void*)&CO_OD_ROM.NMTStartup},
 {0x2100, 0x00, 0x36, 10, (void*)&CO_OD_RAM.errorStatusBits[0]},
 {0x2101, 0x00, 0x0D,  1, (void*)&CO_OD_ROM.CANNodeID},
diff --git a/CO_OD.h b/CO_OD.h
index 6ae91e3..8dc21ae 100644
--- a/CO_OD.h
+++ b/CO_OD.h
@@ -80,7 +80,7 @@
 *******************************************************************************/
    #define CO_NO_SYNC                     1   //Associated objects: 1005, 1006, 1007, 2103, 2104
    #define CO_NO_EMERGENCY                1   //Associated objects: 1014, 1015
-   #define CO_NO_SDO_SERVER               1   //Associated objects: 1200
+   #define CO_NO_SDO_SERVER               1   //Associated objects: 1200, 1F50
    #define CO_NO_SDO_CLIENT               0
    #define CO_NO_RPDO                     4   //Associated objects: 1400, 1401, 1402, 1403, 1600, 1601, 1602, 1603
    #define CO_NO_TPDO                     4   //Associated objects: 1800, 1801, 1802, 1803, 1A00, 1A01, 1A02, 1A03
@@ -92,7 +92,7 @@
 /*******************************************************************************
    OBJECT DICTIONARY
 *******************************************************************************/
-   #define CO_OD_NoOfElements             55
+   #define CO_OD_NoOfElements             56

 /*******************************************************************************
@@ -152,6 +152,11 @@
                uint32_t     mappedObject8;
                }              OD_TPDOMappingParameter_t;

+/*1F50[1]   */ typedef struct{
+               uint8_t      maxSubIndex;
+               domain_t         domain_t;
+               }              OD_ProgramDownload_t;
+
 /*2120      */ typedef struct{
                uint8_t      maxSubIndex;
                int64_t      I64;
@@ -234,6 +239,7 @@ struct sCO_OD_ROM{
 /*1600[4]   */ OD_RPDOMappingParameter_t RPDOMappingParameter[4];
 /*1800[4]   */ OD_TPDOCommunicationParameter_t TPDOCommunicationParameter[4];
 /*1A00[4]   */ OD_TPDOMappingParameter_t TPDOMappingParameter[4];
+/*1F50      */ OD_ProgramDownload_t ProgramDownload;
 /*1F80      */ uint32_t     NMTStartup;
 /*2101      */ uint8_t      CANNodeID;
 /*2102      */ uint16_t     CANBitRate;

This way I can download 1024 bytes:
./canopencomm 0x0A w 0x1f50 1 d 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 61 62 63 64 65 66 67 68 69 6A

The download handler implementation is just for testing purposes.
In the end people always would need to implement their own handler depending on the storage system they have available. I guess what CANopenNode can do is making sure that when the object is created within the OD, it is also being picked up by the stack. The download handler implementation however would need to be a callback or some sort of thing outside of the stack. In that case users only need to hook up their handler to get the feature without adjusting the stack.
In my case the bootloader only swaps applications, the downloading is handled by the application.

In the end I've completely moved the implementation from CANopenNode library into the application as it currently makes good sense. The data handling and storing to storage device is just very application specific.
My demo application can be found here.
In my case I'll use a generic bootloader that handles the new firmware file, instead of creating a CANOpen bootloader. The demo application auto restarts after the download has finished. As I have noticed in CiA814, the flow is a bit different in that master decides to reboot the node. My final application will try to do that.

Does the host device receive firmware from the host device? How does the host device start?

I am aware this is an old and closed thread.
Would it be possible for someone to please assist me with porting this to the latest CANOPENNODE_V4, in particular the 0x1F50 object with newer OD Editor (v4.0-51-g2d9b1ad)? I am new to CANopen and still finding my way around. Thanks

I don't have experience with bootloader, but I think, this may be relevant from v4:
https://github.com/CANopenNode/CANopenDemo/blob/master/demo/domainDemo.c

OK, thank you for your answer
---Original---
From: @.>
Date: Mon, Jul 5, 2021 17:24 PM
To: @.>;
Cc<EMAIL_ADDRESS>Subject: Re: [CANopenNode/CANopenNode] CANOpen firmware update (#111)
I don't have experience with bootloader, but I think, this may be relevant from v4:
https://github.com/CANopenNode/CANopenDemo/blob/master/demo/domainDemo.c
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

I think I see how to do this with the domain example.
But I am unsure how to get the SDO client working correctly. How does the target node SDO Server ID (0x1280 sub index 3) get added to the client to server COB ID (0x1280 sub index 1) when CO_SDOclientDownload() is called?
or must the COB ID client to server be configured in the OD editor directly? For example should I make it 0x601 (for node ID 1)?

You can use cocomm, where SDO client is already implemented. If you like to make own SDO client - that is advanced topic...


Unable to damage dragon

I've tried on 1.14.4 and 1.12.2 using magic version 7.7.5 to damage the dragon and overall spells using magic damage have not damaged the dragon, and I tested this using laser and superkill.
On further testing, using "/cast laser damage_type physical" on 1.12.2 would damage the dragon while on 1.14.4 it would not.  The spells were targeting the dragon (fury would target the different parts of the dragon with each missile) but not damaging it.
With more testing on 1.14.4 I found an issue with out of world damage which provided the following errors:
[15:07:30] [Server thread/INFO]: NeoFalcon issued server command: /cast missile|4 damage_type out_of_world
[15:07:30] [Server thread/WARN]: java.lang.IllegalArgumentException: java.lang.ClassCastException@4cce61a6
[15:07:30] [Server thread/WARN]:        at sun.reflect.GeneratedMethodAccessor49.invoke(Unknown Source)
[15:07:30] [Server thread/WARN]:        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[15:07:30] [Server thread/WARN]:        at java.lang.reflect.Method.invoke(Unknown Source)
[15:07:30] [Server thread/WARN]:        at com.elmakers.mine.bukkit.utility.CompatibilityUtils.damage(CompatibilityUtils.java:537)
[15:07:30] [Server thread/WARN]:        at com.elmakers.mine.bukkit.action.builtin.DamageAction.perform(DamageAction.java:141)
[15:07:30] [Server thread/WARN]:        at com.elmakers.mine.bukkit.action.ActionContext.perform(ActionContext.java:38)
[15:07:30] [Server thread/WARN]:        at com.elmakers.mine.bukkit.action.ActionHandler.perform(ActionHandler.java:225)
[15:07:30] [Server thread/WARN]:        at com.elmakers.mine.bukkit.action.CompoundAction.perform(CompoundAction.java:105)
[15:07:30] [Server thread/WARN]:        at com.elmakers.mine.bukkit.action.ActionContext.perform(ActionContext.java:38)
[15:07:30] [Server thread/WARN]:        at com.elmakers.mine.bukkit.action.ActionHandler.perform(ActionHandler.java:225)
[15:07:30] [Server thread/WARN]:        at com.elmakers.mine.bukkit.batch.ActionBatch.process(ActionBatch.java:38)
[15:07:30] [Server thread/WARN]:        at com.elmakers.mine.bukkit.magic.Mage.processPendingBatches(Mage.java:1700)
[15:07:30] [Server thread/WARN]:        at com.elmakers.mine.bukkit.magic.MagicController.processPendingBatches(MagicController.java:1296)
[15:07:30] [Server thread/WARN]:        at com.elmakers.mine.bukkit.magic.BatchUpdateTask.run(BatchUpdateTask.java:12)
[15:07:30] [Server thread/WARN]:        at org.bukkit.craftbukkit.v1_14_R1.scheduler.CraftTask.run(CraftTask.java:81)
[15:07:30] [Server thread/WARN]:        at org.bukkit.craftbukkit.v1_14_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:394)
[15:07:30] [Server thread/WARN]:        at net.minecraft.server.v1_14_R1.MinecraftServer.b(MinecraftServer.java:1022)
[15:07:30] [Server thread/WARN]:        at net.minecraft.server.v1_14_R1.DedicatedServer.b(DedicatedServer.java:393)
[15:07:30] [Server thread/WARN]:        at net.minecraft.server.v1_14_R1.MinecraftServer.a(MinecraftServer.java:970)
[15:07:30] [Server thread/WARN]:        at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:815)
[15:07:30] [Server thread/WARN]:        at java.lang.Thread.run(Unknown Source)

I then tested all the damage types using missile|4 with the following results:

anvil: Same error as out of world
burn: Same error as out of world
cactus: Same error as out of world
cramming: Same error as out of world
dragon_breath:  Same error as out of world
drown: Same error as out of world
explosion: No error, no damage dealt
fall:  No error, no damage dealt
falling_block: Same error as out of world
fire: No error, no damage dealt
fly_into_wall: Same error as out of world
generic: Same error as out of world
hot_floor: Same error as out of world
lava: Same error as out of world
lightning: Same error as out of world
magic: No error, no damage dealt
out_of_world: N/A
overall: No error, no damage dealt
physical: No error, no damage dealt
projectile: No error, no damage dealt
starve: Same error as out of world
stuck: Same error as out of world
wither: Same error as out of world
custom damage type: No error, no damage dealt

Wow, thanks for digging into this so hard!
So for whatever reason it has always required a weird hack to damage the ender dragon. Just calling Entity.damage has never worked right.
So I have an NMS hack to apply "thorns" damage, which seems to be the only damage type that works against the ender dragon. I have no idea why that is.
But that NMS method has been broken since 1.13, apparently. I think I have a fix ready, will push it to a dev build once I've tested it.

17a60829db36d2ce73b6cfe918d9cf29eba37879


Deprecate old artifact transform API

cc: @gradle/build-cache

IIRC, we wanted to emit a deprecation warning for anybody using the ArtifactTransform API and remove the type/methods in 7.0.

OK, I renamed the issue.

We should only deprecate when AGP 3.6 is out, so there is a stable version which doesn't use the old artifact tranforms API.

The Kotlin plugin uses ArtifactTransform as well. Let's find out when they can remove the usage.


Add simple example Jupyter notebook (for Binder)

Towards #126
Preview Link:
https://mybinder.org/v2/gh/EricCousineau-TRI/pygccxml/feature-py-notebook-example?filepath=pygccxml/docs/examples/notebook/example.ipynb

Just as a note: this looks good so far. I'll do another review and approve when the todos are gone

Removed TODO about path stuff (I won't be able to investigate anytime soon).
Briefly trying the JupyterLab setup, but may descope that as well.

JupyterLab does not work easily; will leave in TODO; breadcrumb commit: 608f224
I think the remaining TODOs can remain as they are.
@tao558 Might you have time to take a look?

@EricCousineau-TRI I'll take a look ASAP

FYI I changed requirements away from use a set literal which is then converted to a list. That operation is redundant when dict/set become order-preserving (Python 3.5, I believe?), and provides information loss in lower Python versions.

Are you OK with me squashing the commits when merging?

Yup!

Please squash-merge if that's an option. If not, I can squash myself since review is done.

Thanks @EricCousineau-TRI! Good to finally get this merged.


SHTS-2625

remove encode("utf8") to fix formatting in python 3
change default environment to QA in bat file
remove commented code
support user readable output for additional RDM types customer, design object & map tile set
protect traits factory from TypeError exceptions

approved


Disable displaying feature limits

The problem is that we're displaying 160 chats in the error message:

while on the /cody/manage page, we display 20:

Cody Gateway only knows the LLM limits (which is 160 for Free users), and that's what it returns in the error header, so that's all the client knows as well. We should display the official limit of 20 instead, but we can't know it for now on the client side.
So my quick solution is just to hide this info on the UI.
Test plan
Relying on the JetBrains team to test this

raised here
cc @sourcegraph/jetbrains-plugin @danielmarquespt


Update upon release

There were some mobile screen issues which I came accross on Iphone.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 75.938%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
243

Relevant Lines:
320

💛  - Coveralls


Adjusted height of title so that plot filled up more space

@GarreBrenn - something was wrong with travis - I just reran the build on travis and all is well.


Unable to view pointclouds while using airport_demo.launch

Hi,
I recently setup pedsim_ros. When I run the simple_pedestrians example ( roslaunch pedsim_simulator simple_pedestrians.launch), everything works fine and I can see the people and obstacle pointclouds by launching the corresponding pedsim_sensor launch files.
But when I run the airport_demo example (roslaunch pedsim_simulator airport_demo.launch), I am able to visualize the crowds and moving people in rviz, but am not able to view the pointclouds, even though I run the pedsim_sensor launch files.
Thanks in advance for your help.

Closing the issue. Realized that it was a mistake on my side.


TRELLO-W0VXgdcb: Hash idp entity id and pid

There are three commits.

Convert Event from interface to class since there is only one concrete class which implements the Event interface
Stop outputting standard output and whether the test has started or not.
Update Event Emitter to hash identity provider entity id and persistent id as a hashed persistent id before storing it in a database in a same way as Audit and Billing applications.

Authors: @adityapahuja

I have updated the PR to have 3 commits. Could you please review these commits.
Thanks.

Please refer to the commit details for further information.


fix: add deep compare to update dropdown items

Connection with issue(s)

Close #1252

Connected to #687
Connected to #1239
Solution description
Add a deep compare to reset dropdown only when items are really different.
I considered remove the verification and transfer it responsibility to reset dropdown to developer users (like @danvick says on this comment), but I thinks that this behavior is a important to have embedded on package because is a feature that able implement related fields with minor effort.
Screenshots or Videos
Test behavior of original issue (#1252)
Screencast from 15-07-23 14:23:59.webm
Test behavior of related issue (#687)
Screencast from 15-07-23 14:25:01.webm
To Do

[x] Read contributing guide
[x] Check the original issue to confirm it is fully satisfied
[x] Add solution description to help guide reviewers
[ ] Add unit test to verify new or fixed behaviour
[ ] If apply, add documentation to code properties and package readme

Other than the highlighted error, I think the code is well done.
HOWEVER, there is still a loophole to this condition currentlyValues.contains(initialValue).
As I had indicated in point number 2 of my original comment, if the List contains objects of a class that doesn't override the equality operator (==), the condition will still return false.
Example:
main(){
  print([
    Continent(id: 1, name: 'Africa'),
    Continent(id: 2, name: 'Asia'),
    Continent(id: 3, name: 'Europe'),
  ].contains(Continent(id: 1, name: 'Africa'))); // PRINTS `true` because the Continent class is 'equatable'

  // WHILE

  print([
    Country(id: 2, name: 'India', continentId: 2),
    Country(id: 3, name: 'Spain', continentId: 3),
    Country(id: 3, name: 'France', continentId: 3),
  ].contains(Country(id: 2, name: 'India', continentId: 2))); // PRINTS `false` because the Country class is NOT 'equatable'

}
class Continent {
  final int id;
  final String name;

  Continent({required this.id, required this.name});

  @override
  operator ==(Object other){
    return other is Continent && other.id == id;
  }

  @override
  int get hashCode => id.hashCode;
}

class Country {
  final int id;
  final String name;
  final int continentId;

  Country({required this.id, required this.name, required this.continentId});
}

It is therefore up to the user to make sure that that's the case.
For example, in the example of the original issue that we're solving, if the Line class was "equitable", the issue wouldn't have occurred in the first place.
Since there's nothing more we could do about that, I applaud @deandreamatias's efforts to prevent the user of the library from shooting themselves in the foot. Good work!
You can resolve the reviews then go ahead and merge. Thanks.


Outdated manifest persists in WebShell

I was updating a manifest to have a particle point to move instead of humanMove, but the changes did not seem to be propagating through. The graph in Arcs dev tools explorer was showing the particle still pointed to humanMove instead of move. Refreshing the page did not solve the issue, nor did hard reload or empty cache and hard reload. After clearing the cache, cookies, indexed DB, and local storage, the graph pointed to move and the program executed as expected.

Is there a clear repro here?

I accidentally closed this, but it may be the best move since some time has passed and it doesn't seem to be a chronic problem?


Plugin System breaks for certain command names

The current add command method looks like this:
add_cmd(name, func) {
        this[name] = func;
}

However, one could easily break the plugin class by naming the command something that already exists as a property in the Plugin class, such as "bot", "add_cmd", etc... as it will override the existing property/method with an IRC command.
I haven't gotten around to looking at how Plugins are used in other files, but this could be an easy fix by doing
this.commands[name] = func;

or something like that.

I actually thought of doing that when we were implementing hooks

Closed by fb63e62fff7d2ce3c6ea4ace4a458b106562426c


Letting you know

File "pybam.py", line 265
print 'PYBAM ERROR: Odd bzgip block detected! The author of pybam didnt think this would ever happen... please could you let me know?'

Thank you Andy! That's really good to know.
Do you still have the BAM file that produces this? I would very much appreciate a sample to figure out what happened. Not the whole file - perhaps if you just do "head -c 1000000 ./the.bam > ./sample.bam" and then run sample.bam through pybam and see if it generates the error, then that 1Mb would be enough for me to get to the bottom of the error.
If it's not possible, then that's also OK - just knowing you got this message is enough to know i need to make an update to the internal python decompressor :)


Replace linenoise-ng with linenoise-mob

couchbase-lite-tools changed forks of linenoise.

@snej Manifest changes go through Gerrit - please propose this change there. Thanks for fixing it up.


Some refactoring

Are you interested in these changes? If I resolve the conflicts will you merge it? Should I split it into smaller PRs?

Not much interest I'm afraid, it's mostly style changes and I don't think we want to spend too much time debating style and what is the right ones to have, how uniform we want to be etc. I'm sorry you have put some effort into this but please ask before submitting such PRs as we could have told you beforehand that there wouldn't be much interest merging this.


#1 create project modal.

this is how it looks like:

I've also created #39 with priority:low.

closes #7.


Tidy program version and horizontal scroll bar.

Modified version number to two decimal precision.  Also, hid horizontal scroll bar in RichTextBox.


#chore(query): exec query string (raw Query Builder)

Add feat to exec query from QueryString (Raw Query Builder)
example:
var users []db.UserModel
client.Prisma.QueryString(query {result: findManyUser(where:{AND:[{email:{equals:"truanv@gmail",}},{lastName:{equals:"Van",}},],}) {id createdAt firstName lastName email }}).Exec(ctx, &users);

Summary by CodeRabbit

New Features

Introduced structured management and execution of GraphQL queries with the new QueryString functionality.
Added support for executing raw queries in a transactional context through the QueryStringExec and TxQueryStringResult types.

Bug Fixes

Improved error handling for uninitialized query engines during execution.

Documentation

Enhanced logging for query execution duration to track performance.

What's the use case for this? Unfortunately Prisma is moving away from GQL to a json protocol, so this will be deprecated soon.

What's the use case for this? Unfortunately Prisma is moving away from GQL to a json protocol, so this will be deprecated soon. I just did not have the chance to refactor the codebase from gql to the new json protocol as I didn't have the time. Although in the future this new API could be used to do raw json protocol queries.

i want

What's the use case for this? Unfortunately Prisma is moving away from GQL to a json protocol, so this will be deprecated soon. I just did not have the chance to refactor the codebase from gql to the new json protocol as I didn't have the time. Although in the future this new API could be used to do raw json protocol queries.

in my system. Another serivce will call db service (Repo service) to get data. So i want reusing query builder to query (i will transfer raw query to repo service)

What's the use case for this? Unfortunately Prisma is moving away from GQL to a json protocol, so this will be deprecated soon. I just did not have the chance to refactor the codebase from gql to the new json protocol as I didn't have the time. Although in the future this new API could be used to do raw json protocol queries.

Thanks for prisma is moving GQL to json protocol, i will check that and implement

You can remove this line https://github.com/steebchen/prisma-client-go/blob/c207dc03a144cd310cdffd9cd50b8598a4a211b4/engine/lifecycle.go#L256
to see how the protocol looks. It's basically very similar to gql but it's JSON. Note that involves lots of changes all over the codebase. You can also check out this https://github.com/RobertCraigie/prisma-client-py/issues/707 for more info. I'll send more info as well from the linked notion doc which I can't access, but I asked Prisma to send this over.


Batching issue

Related forum topic:
https://forum.playcanvas.com/t/debugging-batch-groups/29340/10
Repro project:
https://playcanvas.com/editor/project/1070373
Both triangle and the box belong to the same batch group. The triangle is generated by the init function. If I call init immediately, both the box and the triangle are visible. If I call init on delay, only the box is visible.

Not sure if this stems from the same issue but when changing batch id (in my case to "null"), the entity disappears and only becomes visible after disabling the entity and re-enabling again.
I've made a project to demonstrate the issue here (see script for details):
https://playcanvas.com/editor/scene/2096078


Fluid Debugger should either close window or disable controls on choosing snapshot

For 90Mb file, when I select snapshot to load and click Ok, nothing happens.
This is due to it taking forever (to be precise - 2 minutes) to download snapshot.
All that time UI is still there in its original form, allowing user to click buttons and leaving user unsure if anything is happening.
Jatin - any chance you can take a look into it? This is not urgent

Seems like disabling controls and adding "loading" UI would be ideal.

Reopening

I'd let it close :) Multiple reasons:

Snapshots are smaller (images are out) and we will continue to make them smaller
It's not clear what's the future of the tool, especially with ODSP deleting ops and snapshots. It's useful for other services (FRS) and understanding of how system works, but it's no longer on critical path.
So it's not clear how we will justify improvements in it. We need to have some scenario where it's used, otherwise it will slowly die (though it does not require any support, i.e. cost of supporting it is close to zero, so keeping it is fine too).


Invalid host name isn't returning any error number for SqlException for .net core 2 in Linux

I am having a negative integration test case in .net core 2 based project where I am providing invalid host name to connect to SQL server database. I am expecting that the error number should be returned as 53 for that (I am having some logic around error number). While executing test case in Windows, it's throwing proper error code i.e. 53 but in Linux it's not throwing any error number though returning SqlException.
The error I am receiving in Windows is:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) ---> System.ComponentModel.Win32Exception (0x80004005): The network path was not found

In Linux:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 35 - An internal exception was caught) ---> System.AggregateException: One or more errors occurred.

Any help will be appreciated.
P.S. I tried to search error number here but didn't get any help.

Duplicate of # https://github.com/dotnet/corefx/issues/12472


Add UR20 Robot to Universal Robot Library

DH Parameters according to https://www.universal-robots.com/articles/ur/application-installation/dh-parameters-for-calculations-of-kinematics-and-dynamics/
I had to do some Mesh repairs to ensure the meshes are displayed properly. Hope this did not add to much binary data to the git.

Hope this did not add to much binary data to the git

I squash the commits of this branch. This loses the ability to roll back changes but also discards old versions of the 3dm files, so they don't bloat the git repo.

The UR20 seemed very low res to add an extra 20MB (same as all the other URs combined). I purged the 3dm file, saved without plugin or texture data, and it went back to 24 MB, not sure exactly where the extra MB came from.

Interesting,
I was wondering why there was so much new data. I spent a lot of time trying to reduce and repair the mesh. Good to know that it wasnt the mesh after all but some other data that lingered in the 3dm file.


Fix to issue #26

Desired functionality: When inputting a judgment to NARS, if there is a corresponding Goal or Question already stored in the concept, we should print to the user that the input judgment has completed the Goal/Question.
Previously, when a judgment is processed, the program return answers in an list (i.e., a list of judgments). This list however did not delineate between answers to goals vs. questions; furthermore, the goal itself was extraneously placed into the list of answers. Then, the contents of the list were being printed as though they were answers to questions.
Now, we delineate between answers to questions vs. answers to goals using a dictionary. Also, the goal is no longer extraneously added to the list of answers. With this delineation, we can choose different ways to print answers to goals vs. questions. Now, answers to goals are printed as "Achieved:"
New behavior:

Awesome! I'll review the code tomorrow.

Got it down to +1 LOC
:P

sorry, forgot to re-request. Still figuring out Github

sorry, forgot to re-request. Still figuring out Github

@ccrock4t sorry for my delay. was too busy yesterday.
No need to re-request if there's any change. It automatically updates and informs related people.


Check name is not null before invoking isResolveable

This scenario is failing in JBPM :
When there is an ASTNode with deep property ($.firstName), the custom VariableResolver may receive a null string to deal with it.
My proposal is to check if nameCache is not null, before invoking isResolveable.

@gmunozfe add the jira to the first line of the commit comment

Thanks @elguardian done

@mariofusco @lucamolteni can you have a look at this one ?

this is ok to test.

@elguardian fine by me

Resolves #198

@mariofusco this affects jbpm. When is it planned to release 2.4.5 ?


github pages for documentation

Remeber to make github pages for docs like 2022 year. https://uci-uav-forge.github.io/uavf/

IMO not worth, as opposed to just keeping an up to date GitHub wiki or something.


Markdown anchor links in package readMe.md broken

Your Environment

verdaccio version: 5.2.2
node version: 14.18.1
package manager<EMAIL_ADDRESS>os: mac
platform: npm, docker

Describe the bug
Anchor links in readMe.me rendered by the UI use a wrong base URL.
E.g.:
For module mysample in private registry @peter, local test URL would be:
http://localhost:4873/-/web/detail/@peter/mysample.
Markdown [Sample](#sample) resolves to Sample instead of Sample
This can't be fixed by adding baseUrl as option to marker seen marker does not add baseUrl to non origin independent URL's.
To Reproduce
Add a link in the package readMe.md (e.g.; [Sample](#sample)) and observe how this is rendered when viewing the package using the web-ui.
Expected behavior
When clicking the anchor link, view should jump to that section in the readMe.md
Screenshots, server logs, package manager log

Not relevant

Configuration File (cat ~/.config/verdaccio/config.yaml)

Not relevant

Environment information

Not relevant

Debugging output

Not relevant

Contribute to Verdaccio

[x] I'm willing to fix this bug 🥇

I'll create a PR shortly.

@coolsp  https://www.npmjs.com/package/verdaccio/v/5.3.0


[tool_crash] ExistingDartDevelopmentServiceException

Command
flutter run -d chrome --web-port 5000 --web-renderer html

Steps to Reproduce

...
...
...

Logs
ExistingDartDevelopmentServiceException
#0      DartDevelopmentServiceImpl._startDDSServer (package:dds/src/dds_impl.dart:227:7)
<asynchronous suspension>
#1      DartDevelopmentServiceImpl.startService (package:dds/src/dds_impl.dart:119:7)
<asynchronous suspension>
#2      DartDevelopmentService.startDartDevelopmentService (package:dds/dds.dart:97:5)
<asynchronous suspension>
#3      DebugService.startDartDevelopmentService (package:dwds/src/services/debug_service.dart:165:12)
<asynchronous suspension>
#4      DevHandler._createAppDebugServices (package:dwds/src/handlers/dev_handler.dart:514:7)
<asynchronous suspension>
#5      DevHandler.loadAppServices (package:dwds/src/handlers/dev_handler.dart:239:21)
<asynchronous suspension>
#6      Dwds.debugConnection (package:dwds/dart_web_debug_service.dart:59:30)
<asynchronous suspension>
#7      WebDevFS.connect.<anonymous closure> (package:flutter_tools/src/isolated/devfs_web.dart:715:15)
<asynchronous suspension>

[✓] Flutter (Channel stable, 3.13.3, on Microsoft Windows [Version 10.0.19045.3448], locale en-IN)
    • Flutter version 3.13.3 on channel stable at C:\Users\princ\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision<PHONE_NUMBER> (3 weeks ago), 2023-09-06 14:32:31 -0700
    • Engine revision b8d35810e9
    • Dart version 3.1.1
    • DevTools version 2.25.0

[✓] Windows Version (Installed version of Windows is version 10 or higher)

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at C:\Users\princ\AppData\Local\Android\sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-10027231)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[✗] Visual Studio - develop Windows apps
    ✗ Visual Studio not installed; this is necessary to develop Windows apps.
      Download at https://visualstudio.microsoft.com/downloads/.
      Please install the "Desktop development with C++" workload, including all of its default components

[✓] Android Studio (version 2022.3)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = C:\Program Files\Android\Android Studio
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-10027231)

[✓] VS Code (version 1.82.2)
    • VS Code at C:\Users\princ\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.72.0

[✓] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19045.3448]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 116.0.5845.188
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 117.0.2045.41

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

Flutter Application Metadata
Type: app
Version: 1.0.0+1
Material: true
Android X: false
Module: false
Plugin: false
Android package: null
iOS bundle identifier: null
Creation channel: stable
Creation framework version: 4f9d92fbbdf072a70a70d2179a9f87392b94104c
Plugins
audio_session-0.1.16
emoji_picker_flutter-1.6.1
flutter_web_auth_2-2.2.1
fluttertoast-8.2.2
google_sign_in-6.1.4
google_sign_in_android-6.1.18
google_sign_in_ios-5.6.2
google_sign_in_web-0.12.0+2
just_audio-0.9.35
just_audio_web-0.4.8
package_info_plus-4.1.0
path_provider-2.0.15
path_provider_android-2.0.27
path_provider_foundation-2.2.4
path_provider_linux-2.1.11
path_provider_windows-2.1.7
shared_preferences-2.2.0
shared_preferences_android-2.2.0
shared_preferences_foundation-2.3.2
shared_preferences_linux-2.3.0
shared_preferences_web-2.2.0
shared_preferences_windows-2.3.0
sqflite-2.3.0
url_launcher-6.1.12
url_launcher_android-6.0.37
url_launcher_ios-6.1.4
url_launcher_linux-3.0.5
url_launcher_macos-3.0.6
url_launcher_web-2.0.18
url_launcher_windows-3.0.7
video_player-2.7.1
video_player_android-2.4.10
video_player_avfoundation-2.4.10
video_player_web-2.0.17
wakelock_plus-1.1.1
webview_flutter-4.2.4
webview_flutter_android-3.9.3
webview_flutter_wkwebview-3.7.3
window_to_front-0.0.3

Hi @Prince2347X, thanks for reporting this.
How often do you get this crash?

Hi @Prince2347X, thanks for reporting this.
How often do you get this crash?

I got this error only once and I followed the link to report it (creating this issue).

Thanks, labeling for further insight from the team.
This seems similar to other dds errors in terms of the stacktrace but the error message is different.


Possibility to set the width of the generated flowchart

By adding a flowchartConfiguration with the with it should b possible to set the with to 100% or a specific with like 970px
If the configuration is omitted the actual width should be used.

A fix for this has been released in version 0.5.0

Has anyone verified this issue has been resolved? I'm struggling to get the flow diagram to resize based on width argument and I could certainly be doing something wrong.  However, I simply modified
/test/web.html
    <script>
        var config = {
            mermaid:{
                startOnLoad:true,
                htmlLabels:true,
                callback:function(id){
                    console.log(id,' rendered');
                },
                flowChart:{width:'50%'}
            }
        };
        mermaid.initialize(config);
    </script>

And did not seem to notice any of the charts resize.

I am having trouble with this as well. If I want to set the max width for the nodes, where and how do I do it exactly?

Sorry for the late reply for this. Summer is great! :-)
@pnewell, this issue refers to the width of the whole chart and not the nodes.
@trienism, I see the issue. Currently it will decrease the width if it is to wide. But will ignore your setting. If you surround you mermaid div with another div with width:50% set in the css you should get the effect you desire.
Will fix this though for next release.


annual_rainfall_summaries - if dates aren't present they come back as {} not ""

This is an issue with rpy2 which looks like it has been resolved now. Will need to update in order to fix

Updating rpy2 didn't fix issue


hostname

why no hostname?
like www.google.com

Good question. Looking at the underlying ping library it does support host names. Have you tried to set one for the ipv4 value and see if it works?

Good question. Looking at the underlying ping library it does support host names. Have you tried to set one for the ipv4 value and see if it works?

I did't try.
I just tried, at least no error on homebridge logs for www.google.com
is there a setting to enable debug logs and see the ping to that address?

I think you run homebridge -D for debug logs.

@vectronic it works for host name, you should update the Readme.
also your code base on https://github.com/jsworks/homebridge-ping-hosts that supports hostanames

@asyba thanks - I have updated the readme.


Block: Novasports Premier League

Channel ID
NovasportsPremierLeague.gr
Reference
https://github.com/iptv-org/iptv/issues/6486
Notes (optional)
Novasports Premier League is owned by United Media, which has requested a removal request in the past.

@Alstruit I don't get it, what does the Bundesliga have to do with the Premier League?

@Alstruit I don't get it, what does the Bundesliga have to do with the Premier League?

I presume that Nova Sports covers some blocked DCMA but I provided the wrong reference.

https://github.com/iptv-org/database/pull/7543#issuecomment-1806945693


PC-1237: update makefile to docker compose v2

Link to Jira ticket
Description
see https://github.com/orgs/community/discussions/116610, docker-compose is now deprecated & can be replaced with docker compose
Checklist

[x] I have made any necessary updates to the documentation
[x] I have checked there are no unnecessary IDE warnings in this PR
[x] I have checked there are no unintentional line ending changes
[x] I have added tests where applicable

Assume this all works fine and there's no further changes to the docker-compose.yml itself needed to migrate to v2?

from https://docs.docker.com/compose/migrate/ it seems no, it's mostly a CLI change


Locked by pid running should only be display is Task is actually locked

When the Tasks is not locked yet, this information is misleading.

This could be a solution: http://stackoverflow.com/a/19576320/1721105


refactor(styles): remove userSelect:none from disabled menu options

Alaska Airlines Pull Request
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes: #90
Summary:
Removes user-select: none; CSS from disabled menu items.
Type of change:
Please delete options that are not relevant.

[x] New capability
[ ] Revision of an existing capability
[ ] Infrastructure change (automation, etc.)
[ ] Other (please elaborate)

Checklist:

[x] My update follows the CONTRIBUTING guidelines of this project
[x] I have performed a self-review of my own update

By submitting this Pull Request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Pull Requests will be evaluated by their quality of update and whether it is consistent with the goals and values of this project. Any submission is to be considered a conversation between the submitter and the maintainers of this project and may require changes to your submission.
Thank you for your submission!
-- Auro Design System Team

What bug is this causing that requires the removal of this code?

This was a design decision - no reason to block user-select on disabled items.

@leeejune can you link to the version of the auro-menu we need to be referring to for this iteration? I am unaware of this design decision to not disable text selection.
Also, now that we bring this up... I'd argue that we should use user-select: none on all options in a menu. This is an opinion that is shared with shoelace https://shoelace.style/components/menu and Material UI https://mui.com/components/menus/

@leeejune can you link to the version of the auro-menu we need to be referring to for this iteration? I am unaware of this design decision to not disable text selection.
Also, now that we bring this up... I'd argue that we should use user-select: none on all options in a menu. This is an opinion that is shared with shoelace https://shoelace.style/components/menu and Material UI https://mui.com/components/menus/

Our current design doesn't call for disabling the user-select.
That said, I agree with the shoelace and Material UI, in that if it is set too none it should be in all cases, not just disabled. That's the point of this PR. We aren't consistent in the current implementation and since the Figma doesn't call for it to be disabled we should not implement that rule selectively without that being part of the Design.


Move as much configuration as possible from Octopus to VSTS

Today, Search Service and Gallery store some configuration in VSTS and some in Octopus.
We should align on VSTS since this provides easy versioning and, most importantly, a flow for code review.
We should also move jobs to have a NuGetDeployment build as well (like Search and Gallery already have).

Issue moved to NuGet/Engineering #367 via ZenHub


Support programmatic selection of Table rows

Currently it is not possible to programatically select table rows.
I submitted a PR #60 to accomplish selection of table rows based on selection criteria. It's still work in progress...
selectrows!(model.table, model.selection, [1, 3, 10])
selectrows!(model.table, model.selection, "b", r"hello|World")
selectrows!(model, :table, :selection, "b", r"hello|World")
selectrows!(model, :table, "a", iseven) # assumes the existence of a field :table_selection

Closed with #60