Error on image load

Error: [$compile:nonassign] Expression 'undefined' used with directive 'imgCrop' is non-assignable!
The directive is being used as such:
      <img-crop area-type="square"
                image="photo.myImage"
                result-image="photo.myCroppedImage"
                area-coords="photo.areaCoords">
      </img-crop>

My even handler is as such:
  photo.handleFileSelect = function(evt) {
    var file = evt.currentTarget.files[0]
    var reader = new FileReader()
    reader.onload = function (evt) {
      $scope.$apply(function($scope){
        photo.myImage = evt.target.result
      })
    }
    reader.readAsDataURL(file);
  }

Any ideas on this?

hmmm, do you have this code in some kind of modal?

Yes I do

Try to use small timeout

Ok tried that with no luck. I also tried it on a blank template with no modal or anything. If it helps, the error is replicated any time I resize the photo, and the cropping and production of the resultImage still works. Really weird. I filed another ticket about the cropper not working in the app on IE11 or Edge, and I just can't help but wonder if these issues aren't related somehow. I have no idea.

Can you see this issue in codepen example?

Turns out this was an angular version issue. Upgrading to 1.4.7 fixed it. Thanks!


home-manager: 2019-04-23 -> 2019-05-24

Motivation for this change
Bump to the latest upstream commit: https://github.com/rycee/home-manager/commits/master
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build home-manager

@GrahamcOfBorg eval


[cache] Added a cache mechanism for file downloading

Currently, whenever a big file download is required, the actual download is done no matter how many times the operation was performed over the day. For efficiency purposes, we would need to set a cache mechanism:

[x] dummy cache: we can create a .cache directory where each new file will be saved for the next time a download is called. For that to work, we need to think about a proper naming convention of the file so that we can retrieve it from the cache. Calling the operation will first check in the .cache directory if the data is already there before attempting to DL it. (#27)
[ ] advanced cache: we could set an actual cache container (redis for instance) that would be used as a full cache available to the score prediction container. The cached file will already be loaded as binary streams.

Any feedback is welcome!
cc @dataJSA

Hi @frgfm thanks for the issue !
The dummy cache description seems clear to me, I will work on that and then give a try at building an advance cache mechanism with redis.
I am pretty sure that when I will start implementing I will have some questions that we can discuss here

@dataJSA sure, feel free ti ping me if you need help so that we can manage to get this working shortly :ok_hand:

Perhaps we should consider simply putting the .cache folder in a more appropriate location similarly to what deep learning framework do? Many python project place it in .cache/python_lib where python_lib is the project name.
The redis option is good for production, but for local usage, I'm starting to think that it's not really something we want. What do you think?

Yes you are right for the cache folder its cleaner !
Concerning the use of redis for caching the datasets in production I wonder if it still the best solution.
I just opened the issue #37 where I try to present our current workflow and how we could orchestrate it in production.
The idea being that if we have storage and a compute instance we can

download the dataset once a day
clean it and store it
do some batch prediction
serve the predicted datasets

In this scenario I am not sure if we still would need redis, let me know what you think

I agree, the things we would be caching are both heavy and require access for 24 hours at least. No need for a fancy caching system here

Many python project place it in .cache/python_lib where python_lib is the project name.

I took a look at the download default destination for keras, pytorch and sklearn.

In pytorch the datasets are by default downloaded were the program runs this is where the .cache file is currently created.
In keras and sklearn they broadly create an ~/.python_lib/datasets

Just to be sure I understood correctly you were suggesting to create the cache directory in the user home directory and go with ~/.python_lib/.cache ?

The opposite, I was suggesting ~/.cache/python_lib ;)


HL-392 | Fix condition when TOS approval needed

Description :sparkles:
Issues :bug:
Testing :alembic:
Screenshots :camera_flash:
Additional notes :spiral_notepad:

Codecov Report

Merging #688 (d8933f8) into develop (ba4d53a) will decrease coverage by 39.31%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##           develop     #688       +/-   ##
============================================
- Coverage    63.09%   23.77%   -39.32%
============================================
  Files          753      102      -651
  Lines        18683     2456    -16227
  Branches      1812      615     -1197
============================================
- Hits         11788      584    -11204
+ Misses        6538     1810     -4728
+ Partials       357       62      -295

Impacted Files
Coverage Δ

...forms/application/step5/useApplicationFormStep5.ts
0.00% <0.00%> (ø)

...omponents/forms/fields/fieldLabel/FieldLabel.sc.ts

frontend/shared/src/hooks/useErrorHandler.ts

...uth/browser-tests/index-page/indexPage.testcafe.ts

backend/kesaseteli/kesaseteli/settings.py

...or/migrations/0005_pay_subsidy_percent_not_null.py

frontend/shared/src/utils/attachment.utils.ts

backend/benefit/applications/models.py

...pplications/jobs/monthly/clean_old_applications.py

...rowser-tests/reporter/utils/slackTextFormatters.ts

... and 642 more

Continue to review full report at Codecov.

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


Update d.py intents tag to clarify that privileged intents require activation in d.py 2.0

Raise by Roie#0089 here: https://discord.com/channels/267624335836053506/267624335836053506/1035515307818754129
As of Discord.py 2.0, privileged intents are now required to be explicitly activated.
We would like to add something in the tag body to help clarify this - for example -

Starting from version 2.0, all intents must now be passed into the bot constructor as a required keyword argument intents and privileged intents must also be explicitly enabled on the developer portal.

Discord.py itself has good docs about this.
I think that we could use those to clarify how they should be activated from portal, then we could add a snippet detailing how to pass them to the bot upon instantiation, while making it explicit that's its only needed for version 2.x

Don't focus too much on differentiating between v1 and v2, for all intents and purposes just consider v1 defunct and focus on tailoring the tag content for v2. This is especially important with such a long tag.

@TizzySaurus Only partially. The current tag does explain that privileged intents have to be enabled in the dev portal before it can be used in code. However, due to v2.0's breaking API changes, the tag should also say that intents must be defined in code regardless of whether those privileged intents are needed.


Remove huge-service from the load test

What type of PR is this?
/kind cleanup

What this PR does / why we need it:
huge-service used to be coupled with scheduler-throughput. Related flags have been renamed with the old ones remaining for compatibility.
Which issue(s) this PR fixes:
N/A
Special notes for your reviewer:
Blocked by:

https://github.com/kubernetes/test-infra/pull/24985
https://github.com/kubernetes/test-infra/pull/25001

/assign @mborsz
Does this PR introduce a user-facing change?:

NONE

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

https://github.com/kubernetes/test-infra/pull/25001 is now merged, let's wait a while to make sure it works.

/lgtm
/approve


Allow drag for generating structure.

:+1: -- the dragging works for me, and having an obvious drag anchor helps too.

The only weird thing is creating, IE, chapter 2 means you have to drag two-levels deep to create the node, and then drag that created node back a level.
No solution for that though, maybe that's just how it is.

(From Slack conversation:)

[ ] I wonder if bringing back the button you had near the top to create an arbitrary range might help mitigate your "chapter 2" problem?
[ ] probably better to add the new node at the top?
[ ] shift+click doesn't seem to work
[ ] should be able to collapse any structure I've created

So I added the requested features. Right now the way the plugin works is as you drag an object down, it'll expand collapsed items so that you can sort it into the tree. Which makes sense, but maybe we should disable that feature? It makes the "button to add a section" more troublesome than helpful, I think.
I also wonder if maybe there should be a "section above me" button.

Deploying this to staging to try out.

I will try to look today after lunch

Was too anxious :wink:.
I think we're barking up the right tree.
How about cleaning up the boxes:

[ ] add thumbnails
[ ] get rid of bullets (I assume I'm not the only one seeing them? See image below)
[ ] move the expand/collapse arrow to the right side (wouldn't want to accidentally click the 'x')
[ ] make the x seem more severe - maybe even a red bootstrap warning label?
[ ] make the form box a little bigger

And add a notification when the save is successful / fails, and then call this good for Friday?

@jpstroop "Form box"?

@jpstroop Maybe the "x" should be on the right side, by itself? Seems like having to reach for it would be important.

Sorry. The field where the user adds the label for the new range. Some of them get really long. E.g. search for Glinka in the PUDL.

Maybe the "x" should be on the right side, by itself? Seems like having to reach for it would be important.

We can try whatever, but I also found the expand/collapse button difficult to find and thought that might make more sense to the far right.

@jpstroop Pushed up some styling changes, take a look at staging?

:+1: I'm cool w/ the expand/collapse arrows now too. I think thumbnails will give us a good first pass for Friday and you should make this into a PR once they're added.

I'm curious about how to do thumbnails - I'm concerned about size issues if I add a .panel-body. Any thoughts?

@jpstroop Added thumbnails and pushed to staging - take a look?

@jpstroop says :+1:, so squashed and ready for review.


Remove configlet binary.

Removes configlet binary that came along for the ride erroneously with
pull request #102.
Adds .gitignore entry for the configlet binary.

Damn -- those binaries are huge. I'm going to do the totally-not-recommended thing and rewrite the history on this one, rather than merge the pull request. This could result in some people getting weird errors if they updated or forked in the past two days, but I'm ok with handling that on a case-by-case basis and walking people through the process of getting it straightened out.

Adds .gitignore entry for the configlet binary.

This bit, though, I will pull in!

Included in debd447aa12d9444bbd0c2a69f983477e1c47988

Yikes.. sorry, :(

No, I made it worse than it had to be by slipping in some old binaries earlier. My bad!


[BUG] Profile UI Fix

Description
account/manage/profile is looking like this on mobile screen and dark mode
Screenshots

Additional information
No response

Good spot 👍 It works on desktop fine, but on mobile it doesn't


how about not use this char array storage, it lose type info, is not easy to debug

https://github.com/cmuparlay/concurrent_deferred_rc/blob/f1fb49b36a8a3cd60be3b816db9922c4ed5faf4b/include/cdrc/internal/counted_object.h#L22

That's a reasonable point.  The member can not just be an ordinary T object since we need to be able to manually control the construction and destruction.  The two main ways to achieve this are either:

using an aligned char array (here)
by using a single-member union, i.e., union { T value; }

The union member acts like an ordinary member except that we are responsible for manually constructing and destructing it. When I last looked at libc++, libstdc++, and Microsoft STL's implementation of std::shared_ptr, both of these techniques were used by at least one of them, so neither seems strictly preferred. The union would be easier to debug though, so we could switch to that.
If you want to Pull Request that change I'll take it.  Otherwise I can do it myself at some point, but it might be a bit later since I am busy right now.


Debug Help !

I dont understand the error , neither do I know how to fix it . Can anyone please help ?
File "C:\Users\Saheli\Anaconda3\envs\deeplearning\lib\site-packages\keras\engine\training.py", line 76, in _standardize_input_data
data = [np.expand_dims(x, 1) if x is not None and x.ndim == 1 else x for x in data]
File "C:\Users\Saheli\Anaconda3\envs\deeplearning\lib\site-packages\keras\engine\training.py", line 76, in
data = [np.expand_dims(x, 1) if x is not None and x.ndim == 1 else x for x in data]
AttributeError: 'str' object has no attribute 'ndim'

It means that you have a type conversion error. Somewhere in your code, you have a series of values that you are trying to handle like a numeric but they are actually strings. In this case, it looks like its variable "x" and you should try to see how you create that variable and see if you need a numeric conversion along the way.

@SaheliDe Can you post your code?

@tomastheod-ITI it was solved :D

How did you solve it? Can you please post your code?


Fix Blur Canvas [Chart + Crossair]

Version
8.5.0
Steps to Reproduce
import klinecharts from "./chart";
import { useEffect, useRef } from "react";
import data from "./data.json";
function App() {
const chRef = useRef(null);
useEffect(() => {
const el = chRef.current;
el.style.width = ${window.innerWidth}px;
el.style.height = ${window.innerHeight}px;
const chart = klinecharts.init(el, {});
chart.applyNewData(data);

}, []);
return ;
}
export default App;
Current Behavior

Expected Behavior

Environment
- OS:Ubuntu
- Browser:Brave
- Framework:React@18

Any additional comments?
No response

this relates to #258. should be closed.
you should read before open any issue to prevent waste maintainers' time.


Initialization started to fail

Describe the bug
Init started to fail. With both 186 and 185 while working for about 2 weeks without problems. No changes to system except win update afaik. Tried reinstall and system restarts - not helping.
log
4/9/2024 9:21:21 PM: System.Exception: Initialization was called twice.
at FanControl.Domain.ComputerAccessLayer.Initialize()
at FanControl.Domain.ComputerAccessLayer.<>c__DisplayClass11_0.<b__0>d.MoveNext()
4/9/2024 9:21:21 PM: Initialization failed.
4/9/2024 9:25:41 PM: System.Exception: Initialization was called twice.
at FanControl.Domain.ComputerAccessLayer.Initialize()
at FanControl.Domain.ComputerAccessLayer.<>c__DisplayClass11_0.<b__0>d.MoveNext()
4/9/2024 9:25:41 PM: Initialization failed.
4/10/2024 8:05:21 AM: System.Exception: Initialization was called twice.
at FanControl.Domain.ComputerAccessLayer.Initialize()
at FanControl.Domain.ComputerAccessLayer.<>c__DisplayClass11_0.<b__0>d.MoveNext()
4/10/2024 8:05:21 AM: Initialization failed.
4/10/2024 8:44:16 PM: System.Exception: Initialization was called twice.
at FanControl.Domain.ComputerAccessLayer.Initialize()
at FanControl.Domain.ComputerAccessLayer.<>c__DisplayClass11_0.<b__0>d.MoveNext()
4/10/2024 8:44:16 PM: Initialization failed.
Relevant hardware specs and setup
Win 10 - had update approximately of time this started to show up

Thank you for the clarification!


Organize the /lib folder

I would like to organise overall lib folder as the pages are getting added its looking clumsy and at the same time we need to manage overall dart files as views models and services

could you please assign me this issue?

@smaranjitghose could you please review this pr?


fix: walletconnect does not work

Related issues 🔗
Closes #919
Technical 👨🔧
Bug was caused by a global and not globalThis reference in @walletconnect/socket-transport/dist/esm/index.js. That's why there's a dirty global = globalThis added to the polyfills.js
Fixing global issue revealed another with missing Buffer - webpack@5+ doesn't include node's polyfills anymore hence I needed to add it manually to the polyfills.ts.
Demo 📺

Tested: Working fine


Get State/County FIPS codes and display names from the server rather than a hard-coded map

One thing that may be tricky abut this is making sure the UI can handle asynchronous loading of geographic dropdowns

Current hard-coded map is here, for future ref: https://github.com/SatcherInstitute/health-equity-tracker/blob/master/frontend/src/data/utils/Fips.ts


Will pull requests be serviced?

I would like to create a pull request for documentation updates on the typeahead, but I see a number of pull requests waiting in the queue... are these going to be merged at some point?

I guess also applicable is what's the story with the original yuche/vue-strap issue for 2.x support and also their 2.x branch
I am also planning to use vue-strap in production, and I can only imagine what a headache it is to support such a popular project (thanks @wffranco for all the work you have done!). If you have an idea of what the roadmap going forward is, it'd be great to know.

Want to know this as well.. really want to keep using vue-strap but this needs clarification.. which fork are we supposed to use


SpoonModelException when running Nopol

Since yesterday we got a lot of error messages like this:

repairnator-pipeline_2018-03-12_1218_352270782.log:spoon.compiler.ModelBuildingException: Type mismatch: cannot convert from element type Ord<capture#1-of ? extends RexNode> to Ord at /root/workspace/apache/calcite/352270782/core/src/main/java/org/apache/calcite/rel/metadata/RelMdCollation.java:220
repairnator-pipeline_2018-03-12_1702_352404376.log:spoon.compiler.ModelBuildingException: The method detectConflicts(Predicate<List<DomainEventMessage<?>>>, ConflictExceptionSupplier) is ambiguous for the type ConflictResolver at /root/workspace/AxonFramework/AxonFramework/352404376/core/src/main/java/org/axonframework/commandhandling/conflictresolution/ConflictResolver.java:65
repairnator-pipeline_2018-03-12_2031_352493501.log:spoon.compiler.ModelBuildingException: The method info(String, Object) is ambiguous for the type Logger at /root/workspace/apache/twill/352493501/twill-yarn/src/main/java/org/apache/twill/internal/appmaster/ApplicationMasterService.java:756
repairnator-pipeline_2018-03-12_2044_352360271.log:spoon.compiler.ModelBuildingException: Syntax error, annotations are only available if source level is 1.5 or greater at /root/output_astor/AstorMain-server/src/default/io/druid/server/http/CoordinatorDynamicConfigsResource.java:49
repairnator-pipeline_2018-03-12_2044_352360271.log:spoon.compiler.ModelBuildingException: The method makeRequestMetrics(GenericQueryMetricsFactory, QueryToolChest<T,Query>, Query, String) in the type DruidMetrics is not applicable for the arguments (GenericQueryMetricsFactory, QueryToolChest, Query, String) at /root/workspace/druid-io/druid/352360271/server/src/main/java/io/druid/server/AsyncQueryForwardingServlet.java:500
repairnator-pipeline_2018-03-12_2055_352493478.log:spoon.compiler.ModelBuildingException: The method info(String, Object) is ambiguous for the type Logger at /root/workspace/chtyim/twill/352493478/twill-yarn/src/main/java/org/apache/twill/internal/yarn/AbstractYarnAMClient.java:147
repairnator-pipeline_2018-03-12_2122_352522014.log:spoon.compiler.ModelBuildingException: The type VaultTransitTemplate.RawTransitKeyImpl must implement the inherited abstract method RawTransitKey.getKeys() at /root/workspace/spring-projects/spring-vault/352522014/spring-vault-core/src/main/java/org/springframework/vault/core/VaultTransitTemplate.java:643
repairnator-pipeline_2018-03-12_2149_352536365.log:spoon.compiler.ModelBuildingException: Cannot cast from ElementMatcher.Junction<capture#10-of ? super MethodDescription & ByteCodeElement & MethodDescription> to ElementMatcher<? super MethodDescription> at /root/workspace/raphw/byte-buddy/352536365/byte-buddy-dep/src/main/java/net/bytebuddy/dynamic/scaffold/inline/InliningImplementationMatcher.java:64
repairnator-pipeline_2018-03-12_2206_352543750.log:spoon.compiler.ModelBuildingException: Cannot cast from ElementMatcher.Junction<capture#10-of ? super MethodDescription & ByteCodeElement & MethodDescription> to ElementMatcher<? super MethodDescription> at /root/workspace/raphw/byte-buddy/352543750/byte-buddy-dep/src/main/java/net/bytebuddy/dynamic/scaffold/inline/InliningImplementationMatcher.java:64
repairnator-pipeline_2018-03-12_2223_352549022.log:spoon.compiler.ModelBuildingException: The blank final field nextExecutionTime may not have been initialized at /root/workspace/spring-projects/spring-vault/352549022/spring-vault-core/src/main/java/org/springframework/vault/authentication/LifecycleAwareSessionManagerSupport.java:172
repairnator-pipeline_2018-03-13_0102_352594763.log:spoon.compiler.ModelBuildingException: The method info(String, Object) is ambiguous for the type Logger at /root/workspace/chtyim/twill/352594763/twill-yarn/src/main/java/org/apache/twill/internal/appmaster/ApplicationMasterService.java:756
repairnator-pipeline_2018-03-13_0105_352610024.log:spoon.compiler.ModelBuildingException: Syntax error, type parameters are only available if source level is 1.5 or greater at /root/output_astor/AstorMain-352610024/src/default/org/autobet/CloseableIterator.java:20

For the record, I keep the ticket open but:

We won't receive emails anymore regarding those errors (see #463)
Errors are now stored in database (see #464)
A ticket has been opened on Spoon to manage this issue (see https://github.com/INRIA/spoon/issues/1911)

Closing it: it won't be fixed on Spoon as the reproduction is difficult.


Placeholder styling

Steps to reproduce
When value is empty/null, the placeholder is shown
Expected behaviour
The placeholder style should be different from the style of a value
Actual behaviour
The span containing the placeholder has no additional CSS class, hence we cannot style it differently.

Vue code:
<vue-multiselect
                            track-by="id"
                            label="label"
                            v-model="newItem.role"
                            placeholder="Rôle du représentant légal dans la structure"
                            :options="legalRepresentativeRoles"></vue-multiselect>

Rendered in browser:
//...

            Rôle du représentant légal dans la structure

//...

Working code (but very verbose when you have lots of selects):
                    <vue-multiselect
                            track-by="id"
                            label="label"
                            v-model="newItem.role"
                            :options="legalRepresentativeRoles">
                        <template slot="placeholder">
                            Rôle du représentant légal dans la structure
                        </template>
                    </vue-multiselect>

Same issue. Why is this closed? Why are their remnants of a class existing "multiselect__placeholder" and it not being applied to an actual placeholder.

I did not get it either :/

@williamabbott please look into the source code:

          <slot name="placeholder">
              {{ placeholder }}
          </slot>

As you can see, the .multiselect__placeholder class is still there and applied. However, when the component is searchable we’re using the native placeholder of an input. I imagine the latter could be working different (ditching the native placeholder all together). A PR is welcome in this case.

@shentao when I focus the multiselect, I can see it reverts to displaying the native placeholder (this is styled, as I want, as per other inputs) but in an unfocused state, it is using:
      My placeholder

Please provide a reproduction fiddle.

https://jsfiddle.net/rjr8n2oc/10/

I will accept a PR that improves this :)

I don't know about anyone else in this thread but my issue was resolved by bumping version 2.1.0 -> 2.1.3

https://github.com/shentao/vue-multiselect/pull/700 I guess

Thanks, it' helpful.


DO NOT MERGE! Fast Forward stable to 44bc520f2446651a6008d60397bcc354e7870b25.

This PR will be merged automatically once checks are successful.

This change is

Jenkins job mixer/postsubmit passed

Jenkins job mixer/e2e-suite passed


Fix issue with storing and retrieving OAuth data

Fixes #601
When the user's email address is null, we need to be careful with storing and reading the saved OAuth data because it's keyed on the email address.
I'm still not sure how I ended up with OAuth data stored in Preferences keyed on a null email address in the first place. However, with these changes it should never happen because we will always check that the email address is not null before storing OAuth data.
Also, this change ensures that we only try to read OAuth data when a user is logged in and hence has an associated email address. So, even with the corrupted prefs.xml file, everything should be fine after this change. I tested with the bad prefs.xml file referenced in the issue.

Trying to wrap my head around this one: So after these changes, if the user reproduces the original issue, they will be just be logged out with no errors? In other words, if the user is logged in and their auth settings are corrupted (somehow) then what exactly happens?

After these changes it would not be possible to reproduce the original issue because we're now guarding against saving invalid OAuth data. So, we will never be in a situation where we will be attempting to load invalid OAuth data.
I'm still not entirely sure about the situation which causes the auth tokens to be set while the user email is null. I suspect that happens when the user is logged out for a reason like session timeout and cleanup is not done fully. In that situation the only thing that will be different is that these invalid OAuth session settings will no be saved. The login status will remain unchanged.

LGTM


Commenting and annotation overview

This issue provides an overview of our vision for a universal commenting and annotation system for JupyterLab.
Background
Since the very early days of the IPython/Jupyter Notebook we have gotten received requests to have real-time collaboration and commenting and annotation that integrates with that. These are two closely related aspects of the broader collaboration picture in Jupyter.
Big picture
The big picture we envision has a a lot of similarity with the basic experience of Google Drive, but with some important differences:

JupyterLab has many different types of documents (notebooks, text files) and activities (visualizations, terminals, consoles, etc.).
Some of those documents are portable and can move between different systems where storage mechanisms, identities, etc. differ.
As JupyterLab gains more capabilities, there is a strong need to maintain a user experience that doesn't overwhelm the user and remains simple.
The state of comments in relation to a documents history is of particular importance.

Initial design work
Over the summer of 2018 a team of design interns at Cal Poly worked on the design of the commenting and annotation system and presented their work as a poster at JupyterCon 2018. While there is more to do, this team made really good progress on the design. A separate issue(s) will be opened on the details of this work.

Reiterating the comments (ha) from the other issue on jlab, in considering the data model, I would pass on the schema.org Comment and have a look at the W3C Web Annotation Data Model. It already has support for almost anything we can throw at it: text, tables, images, etc. hypothesis is the main python implementation I know of (pyramid-based), and would have some great starting points, like their schemas (colander-based). Their sphinx-based docs are a pretty good showcase of how their stuff works, but their stuff can ride along on any page through a proxy, like, i dunno:
https://via.hypothes.is/https://github.com/jupyterlab/jupyterlab-commenting/issues/3
Back in Jupyter, a big challenge (aside from the mentioned portability of datasets), is a way to point at some thing in JSON (e.g. nbformat), but specifically a thing in a list like a cell or an output. The general guidance is to use a fragment selector pattern. JSON Pointer is widely implemented, and combined with selector refinement, would be sufficient for most of our purposes:
{
  "id": "http://hub.example.org/anno29",
  "type": "Annotation",
  "body": "http://hub.example.org/comment1",
  "target": {
    "source": "https://raw.githubusercontent.com/jupyterlab/jupyterlab/86c6a89/examples/vega/vega-extension.ipynb",
    "selector": {
      "type": "FragmentSelector",
      "value": "jsonpointer(/cells/4/outputs/0/data/image~1png)",
      "refinedBy": {
        "type": "FragmentSelector",
        "value": "xywh=0,0,100,239"
      }
    }
  }
}

Of course, the above only works for known, static cell/output positions in the document that won't change... but except for the very special case of annotations stored in the notebook themselves, this is fine. Most formats won't let you cram random JSON into them :P
Another approach would be CSS selectors, but I wouldn't touch them for anything other than static, archival-grade output (e.g. nbconvert/nbsphinx output) and only then if it was also cryptographically identifiable.

Love your excitement, thank you for the input!
I have a lot more background and design notes to post, but will fill in some of the relevant details here. During the summer's design work, the team did spend a lot of time studying the data model of the W3C Web Annotation. That data model was foundational in all of the subsequent design work. A more constrained way of stating the design goal that emerged was something like "how to we adapt this data model to the realities of working with notebooks and other documents in JupyterLab?"
In the process I had a talk with Dan Whaley (of hypothesis) about our goals and the best way of integrating and leveraging with the W3C Web Annotation work. Here is my recollected summary of that conversation:

Leverage the WC3 data model from an abstract perspective as much as possible, extending and adapting it where needed for JupyterLab's purposes.

For example, one of the aspects we talked about was building a coherent annotation model for a document that is evolving rapidly in time (as users edit) and for which there is a full document history (such as in VCS or real-time collaboration system). Much of the design work the team did this summer was about dealing with that complexity (which is missing from the WC3 spec).
A second example, many of the things a user might want to annotate in JupyterLab aren't documents in the traditional sense. A particular one we are focusing on right now is datasets (the actual dataset, not a visual rendering of it).

Build a user experience/interface around that data model with all of the needed integrations and extensions that are relevant to JupyterLab.
When it is time to tackle the question of "how do I move this notebook with comments from my server to that server over there that is running Google Colab or nteract or ...?" develop a formal proposal to encode comments in the notebook document format itself using the WC3 standard.

Thus, from my perspective, the end game is to propose a change to the notebook format related that would leverage the actual WC3 Web Annotation Standard. Along that path, there are a lot of important user experience and design challenges to explore that go beyond that (comments on non-documents, documents with version history, etc.). And that path definitely starts with the Web Annotation Standard as well to help frame the data model and abstractions.
[as a side note, while schema.org does have a Comment "thing" we have no plans to use it currently. I suppose someone could use that as an alternative serialization approach for comments in certain cases, but isn't rich enough to model the types of things we have in Jupyter in a meaningful way]

See #4 for more details on the summer design notes.

@ellisonbg
maybe for the our first implementation, could we use the complete example as reference?
https://www.w3.org/TR/2017/REC-annotation-model-20170223/#complete-example
{
  "@context": "http://www.w3.org/ns/anno.jsonld",
  "id": "http://example.org/anno38",
  "type": "Annotation",
  "motivation": "commenting",
  "creator": {
    "id": "http://example.org/user1",
    "type": "Person",
    "name": "A. Person",
    "nickname": "user1"
  },
  "created": "2015-10-13T13:00:00Z",
  "generator": {
    "id": "http://example.org/client1",
    "type": "Software",
    "name": "Code v2.1",
    "homepage": "http://example.org/homepage1"
  },
  "generated": "2015-10-14T15:13:28Z",
  "stylesheet": {
    "id": "http://example.org/stylesheet1",
    "type": "CssStylesheet"
  },
  "body": [
    {
      "type": "TextualBody",
      "purpose": "tagging",
      "value": "love"
    },
    {
      "type": "Choice",
      "items": [
        {
          "type": "TextualBody",
          "purpose": "describing",
          "value": "I really love this particular bit of text in this XML. No really.",
          "format": "text/plain",
          "language": "en",
          "creator": "http://example.org/user1"
        },
        {
          "type": "SpecificResource",
          "purpose": "describing",
          "source": {
            "id": "http://example.org/comment1",
            "type": "Audio",
            "format": "audio/mpeg",
            "language": "de",
            "creator": {
              "id": "http://example.org/user2",
              "type": "Person"
            }
          }
        }
      ]
    }
  ],
  "target": {
    "type": "SpecificResource",
    "styleClass": "mystyle",
    "source": "http://example.com/document1",
    "state": [
      {
        "type": "HttpRequestState",
        "value": "Accept: application/xml",
        "refinedBy": {
          "type": "TimeState",
          "sourceDate": "2015-09-25T12:00:00Z"
        }
      }
    ],
    "selector": {
      "type": "FragmentSelector",
      "value": "xpointer(/doc/body/section[2]/para[1])",
      "refinedBy": {
        "type": "TextPositionSelector",
        "start": 6,
        "end": 27
      }
    }
  }
}

Closing this for now since we have an initial implementation working. It will probably be best to open new issues for specific design discussions.


No Advanced options set, so cannot change service connection...

Only see a button called "Authorize" there is no drop down or any advanced options and since I.

Do not want to use my personal account to login to Azure.
Do not have access with my personal account as its not the same I use for Azure.

How come you say there is an advanced options and manage connections but I cannot see this in my deployment task?

Hi @Stoffe this is actually not a feature of the task, but an integrated control within Azure DevOps. What you are referring to is probably this here

I don't know why you do not see this, but you have to authorize it with your account. But in the end your account is not used. It is used to create a service principal on your behalf, which is then used to connect to Azure.
If you do not have Azure, then you have to use the advanced setup in the service connection configuration of your project.
Check the following documentation.
https://docs.microsoft.com/en-us/azure/devops/pipelines/library/connect-to-azure?view=azure-devops#create-an-azure-resource-manager-service-connection-with-an-existing-service-principal
If you create a connection beforehand, then you should be able to start using it in the task.
But other than that, it does not seem to be a bug and caused by the task itself. Closing this, but please if you still think that it is a problem of a task, then you can answer here. :-)


Convert docs from MarkDown to AsciiDoc

Depends-On: https://github.com/openstack-k8s-operators/ci-framework/pull/1098
Preview: https://logserver.rdoproject.org/04/304/65cfd5f720e8c6f34dbcf2a82bbfe1672d7bcb4c/github-check/ansibleee-operator-docs-preview/14c8a79/docs_build/docs_build/ansibleee/index-upstream.html

recheck

recheck

recheck

recheck

/lgtm Ouput looks good to me. Wait for the ci-framework patch to be merged.

/test ansibleee-operator-build-deploy-kuttl

/approve
/lgtm


Remove bundling magic for Mapbox styles script

Another attempt on #7159.

Now finally the examples build with this change.


Update gradle version to 2.2.3

This PR updates gradle version to 2.2.3 from 2.2.0 to make Instant run faster.

Automated message from Dropbox CLA bot
@yadav-rahul, it looks like you've already signed the Dropbox CLA. Thanks!

@kunall17 @Sam1301 can one of you review this?

Nice @yadav-rahul , thanks for working on this, the code looks fine to know :+1:

Merged, thanks @yadav-rahul!


(Feature) Add gitter chat room badge to readme

It would be nice to have a https://gitter.im/ chat badge added in the README.md for this repository. If you sign into gitter and create a room linked to this repository it should issue a PR to add this badge for you automatically.

I'm just going to have one for sails-permissions for now to avoid fragmentation. Thanks


https://github.com/vitejs/vite/issues/1989 also applicable to using vs-code over ssh.

Describe the bug
When you use vs-code for editing/debuging over ssh against the VSCode server and Vite running on another host, or in WSL or in a Docker container, the the remote VSCode server will proxy the Vite port to the VSCode host, remapping the port number.   As described earlier in https://github.com/vitejs/vite/issues/1989 by @FractalHQ this will reload the page/app every second or so.
While in my case Vite runs remotely on localhost:4000 it runs locally on localhost:.   The client tries to contact the original ws://localhost:4000, which clearly doesn't work.
Would it be possible to make it use the remapped port number from the url for the ws call-back?
Reproduction
Connect from one host to another using the ssh explorer and run vite in development mode.
System Info
Using vite v2.7.6  and VSCode 1.63.2.

Used Package Manager
pnpm
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to https://github.com/vuejs/vue-next instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Tried to log this to the original https://github.com/vitejs/vite/issues/1989, but it was locked by a bot.

Closing as #8650 fixed this.
I tested with ssh port fowarding.


Add Te Aho O Te Kura Pounamu

Adding "Te Aho O Te Kura Pounamu", the New Zealand Correspondence School.
Email Domain: mytekura.school.nz
Main Site: www.tekura.school.nz
This is the domain that we have for student email addresses however the main website is www.tekura.school.nz. Not really sure why they do it this way but they do 🤷♂

@MaxiIsSlayy The first verification stage is complete: the official domain for  Te Aho O Te Kura Pounamu is www.tekura.school.nz, to the best of my knowledge. This is just an informational note. The pull request is still under review. The review may take some more time. I greatly appreciate your patience. Here is the proof of domain ownership: http://www.tekura.school.nz/assets/Publications-non-curriculum/How-to-access-your-mytekura.school.nz-email-online.pdf

@MaxiIsSlayy The first verification stage is complete: the official domain for  Te Aho O Te Kura Pounamu is www.tekura.school.nz, to the best of my knowledge. This is just an informational note. The pull request is still under review. The review may take some more time. I greatly appreciate your patience. Here is the proof of domain ownership: http://www.tekura.school.nz/assets/Publications-non-curriculum/How-to-access-your-mytekura.school.nz-email-online.pdf

@MaxiIsSlayy Thank you for your patience while waiting for a review and processing your request. Pull request merged.

@MaxiIsSlayy Thank you for your patience while waiting for a review and processing your request. Pull request merged.

Hi there, having a bit of a problem, when trying to sign up it still says the email isn't valid to a school. Is there something that I am missing?

@philipto

@MaxiIsSlayy Thank you for the question. Does the issue persist? If yes, please let me know by email to<EMAIL_ADDRESS>


Models

I just added code for setting up models for the user, and a server for running a CRUD api. I've also got a running heroku/mLab server for the user. Model for user might need to be tweaked to include more security features, which includes the routes/database.js

@mrmojica - when you do have the chance, test this out and let me know if there's any changes you would like to make for your login/signup to work. then we can fix that and then confirm if this pull request is good to go after that.

We can consider adding unique: true to have an added security feature by which we can eliminate the chance of duplicate username.
Would love to check on what exactly index: true is helping us in


Leaking a heap allocation of pointer results in confusing output

Take the code:
let local = 0usize;
let leak_this = Box::new(&local as *const usize);
Box::into_raw(leak_this);

Running cargo miri run produces the following output:
The following memory was leaked: alloc1673 (Rust heap, size: 8, align: 8) {
    ╾0x28970[a1657]<3157>─╼                         │ ╾──────╼
}
alloc1657 (deallocated)

It is not immediately clear why alloc1657 is shown or the relation between alloc1673 and alloc1657. If alloc1657 were not deallocated it would be possible to interpret alloc1657 as leaked memory.
One suggestion would be to explicitly mention that the leaked memory contains alloc1657 and expand a1657 to alloc1657 for clarity.
The following memory was leaked: alloc1673 (Rust heap, size: 8, align: 8) {
    ╾0x28970[alloc1657]<3157>─╼                         │ ╾──────╼
}
alloc1673 contains a pointer: alloc1657 (deallocated)

(my comment is directed at everyone else, not OP)
The fact that the leak report also says a1657 instead of alloc1657 also doesn't help with the confusing newcomer experience.
But more importantly: Why are we even mentioning that alloc1657 is deallocated? The program has exited, so allocations can only be deallocated or leaked. If an allocation is leaked, it should be part of the leak report.

Hmm... I thought it to be strictly better to tell the user about all the things their leaked alloc references, but it was definitely not based on any data

This is not the first time I've seen a newcomer just be bewildered by the amount of text that gets written to the screen and just ignore most of it. It is of course possible to puzzle through this report, but the fact that it has so much information and dense notation and a lot of these IDs I think causes people to skim over it way too often.
It wouldn't hurt to link people to something like a glossary or the rustc error index.
But in this case specifically, I think unless we can explain how a user would use the
alloc1657 (deallocated)

to debug their leak, not outputting that sounds like a better option.

In that case, maybe we should change the Allocation printing logic (in rustc_interpret), too?
The following memory was leaked: alloc1673 (Rust heap, size: 8, align: 8) {
    ╾0x28970[dangling]─╼                         │ ╾──────╼
}

I think Miri prints 0xaddr[noalloc] in that case. We should try to be consistent, so whatever the terminology we should try to reuse the code.

One suggestion would be to explicitly mention that the leaked memory contains alloc1657 and expand a1657 to alloc1657 for clarity.

FWIW, what happens here is that 0x28970[alloc1657]<3157> is too wide to fit into the space that 8 bytes take in the memory dump, so alloc gets shortened to a such that the alignment of bytes is preserved in the output.


wildcards tag completion don't show

hi, i'm a new using this and i don't have much knowledge of this. so, i write: "long hair, __" but nothing appear

Wildcards are disabled by default since not everyone has that script. To use them, you need to edit config.json and set "useWildcards" to true. You also need to add/uncomment the name of every wildcard file you want to use in the wildcardNames.txt file.

Still not show, I set "useWildcards" to true.

I recently pushed a new version that makes it easier to add wildcards, please update and try again.
It should be enabled by default now and scan the folder for wildcard files automatically.
So all you need to do is have the wildcard files you want to use in the /scripts/wildcards/ folder

Well done dude.I exactly saw the scanned txt in the temp text,but it dose still not show wc tag.I guess maybe "two underscores" doesn't work, can I change the way?

Well done dude.I exactly saw the scanned txt in the temp text,but it dose still not show wc tag.I guess maybe "two underscores" doesn't work, can I change the way?

or configure the way ?

try this

I find some clues,it works in Chrome but Firefox not.

It works for me in Firefox, so I think it might be a cache issue.
Try clearing your browser cache or opening the Developer Tools and disabling cache in the "Network" tab before reloading the page.

It works for me in Firefox, so I think it might be a cache issue. Try clearing your browser cache or opening the Developer Tools and disabling cache in the "Network" tab before reloading the page.

Thank you,finally :>

Glad I could help!

and you can just use the CTRL+F5


Memory unit tests for evaluating local LLMs

Given how popular local llms + memgpt seems to be (at least in general interest) it might be worth setting up some "memory unit test" scripts so that we can quickly eval different models

Conceptually, are there any metrics or any research into evaluating LLM's output? It would be fun to explore, because it's a non-deterministic task


TypeError: $ is not a function

When running on Ubuntu 18, I immediately get the following:
TypeError: $ is not a function in allVidsIdScraper.js:25:17
Does it require some specific version of whole node/npm environment? I got node 14.20.1 and npm 6.14.17. During installation npm said that Puppeteer and Request are deprecated.

Any updates?

Seems like he fixed it but did not publish the updated version on npmjs.
Install from GitHub directly using:
npm install https://github.com/kwarchalowski/tvpVODdownloader.git

Indeed, it's pretty much an obsolete package. I have no intentions to fix it as the VOD platform is constantly changing.
Other than that, this package wasn't very flexible from the beginning.
I have marked it as DEPRECATED so it won't confuse anyone anymore.
As @kylevessPL said - I suggest switching to solution that is actually working and being maintained :)
Thank you, cheers


Typo in the RZZgate documentation

URL to the relevant documentation
https://docs.quantum.ibm.com/api/qiskit/qiskit.circuit.library.RZZGate#rzzgate
examples section
third equation
Select all that apply

[X] typo
[ ] code bug
[ ] out-of-date content
[ ] broken link
[ ] other

Describe the fix.
In example section, third equation:
R ZZ (θ=π)=−iZ⊗Z
The i is missing.

Hi, I addressed it in https://github.com/Qiskit/qiskit/pull/12678 on the qiskit repo since the documentation text in the code was to be changed


Create escolatecnicaadelia

School Name (pt-BR): Escola Técnica Adélia
Address: Av. Miguel Mussa Gaze, 247 - Vila Santa Rosa, Guarujá - SP, 11431-120
State of Sao Paulo
Country Brazil
School domain:escolatecnicaadelia.com.br
Website for selling the face-to-face IT technical course: https://escolatecnicaadelia.com.br/cursotecnicoinformatica/
Remote IT technical course sales website: https://escolatecnicaadelia.com.br/curso-tecnico-informatica-ead/?ref=E59043139C

@JoaoVitorFerreiro lib/domains/br/com/escolatecnicaadelia: this request has an incorrect file path format, please ensure that you are familiar with     this repository rules located at the bottom of this page and change     your request accordingly. If you don't know how to change request, close it and open a new one.     If you are not able to make the pull request according the instructions, please send us an email to<EMAIL_ADDRESS>Please mention this request URL in the message.

@JoaoVitorFerreiro First stage of verification passed, official domain for Escola Técnica Adélia is escolatecnicaadelia.com.br as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@JoaoVitorFerreiro Pull request merged. Thank you.


[BUG] Unable to edit name of pointer/ping

When I try to edit the name of the pointer/ping, the name is not changed.
In the console, you can see that each character is added to the beginning of the name in turn, but only the last character gets added to the front of the name and the rest of the name remains the same.
This also makes it difficult to Add New pointer/pings because it won't take a new name.
I was able to work around this by typing in single character names, although the text box showed the New name or maybe one of the other names.
To Reproduce
Steps to reproduce the behavior:

Go to 'Configure Settings -> PnP Settings and Design Studio'
Click on 'Choose your pointer'
Select a pointer name, or Add New pointer
Type a new name.
Nothing happens or a character ends up at the front of the string.
In the console, you can see the name of the object been modified and each character typed added to the front of the string.

Expected behavior
The new name should be be displayed and updated in the list.
Module incompatibilities
Same problem when I disabled all modules
Screenshots/GIFs/Videos
If applicable, add screenshots to help explain your problem.

A picture is worth a thousand words.

Desktop (please complete the following information):

OS: MacOS 12.3
Browser: Chrome
FVTT Version: v9.255
Module version: 2.3.4

Additional context
Add any other context about the problem here.

I second this bug, it cannot be fixed by any workaround. Somehow keyboard entry in the name field is disabled and even copy-paste cannot work.
I am also running macOS.

I have the same problem. I have had this proble since it release. When i try to change something in the settings the module go crazy. I need to reinstall the module


[BUG] error bad-request when I try to get the profilePicture with<EMAIL_ADDRESS>

Describe the bug
I'm trying to get the contact profile picture who send me message, but I receive the follow error:
Error: bad-request
    at assertNodeErrorFree (C:\Users\devs\Documents\xama\backend\node_modules\@whiskeysockets\baileys\lib\WABinary\generic-utils.js:56:15)
    at query (C:\Users\devs\Documents\xama\backend\node_modules\@whiskeysockets\baileys\lib\Socket\socket.js:145:48)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async Object.profilePictureUrl (C:\Users\devs\Documents\xama\backend\node_modules\@whiskeysockets\baileys\lib\Socket\chats.js:442:24)
    at async verifyContact (C:\Users\devs\Documents\xama\backend\dist\services\WbotServices\wbotMessageListener.js:439:25)
    at async handleMessage (C:\Users\devs\Documents\xama\backend\dist\services\WbotServices\wbotMessageListener.js:1441:25)
    at async EventEmitter.<anonymous> (C:\Users\devs\Documents\xama\backend\dist\services\WbotServices\wbotMessageListener.js:1849:21) {
  data: 400,
  isBoom: true,
  isServer: true,
  output: {
    statusCode: 500,
    payload: {
      statusCode: 500,
      error: 'Internal Server Error',
      message: 'An internal server error occurred'
    },
    headers: {}
  }
}

The message contact id is valid
To Reproduce
Steps to reproduce the behavior:

Created a new connection
Receive a new message
Try get the profile picture with the message ID

Expected behavior
Return the url picture
Environment (please complete the following information):

Is this on a server? Yes
What do your connectOptions look like?

let wsocket: Session = null;
      const store = makeInMemoryStore({
        logger: loggerBaileys
      });

      const {state, saveState} = await authState(whatsapp);

      const msgRetryCounterCache = new NodeCache();

      wsocket = makeWASocket({
        logger: loggerBaileys,
        printQRInTerminal: false,
        browser: Browsers.appropriate("Desktop"),
        auth: {
          creds: state.creds,
          keys: makeCacheableSignalKeyStore(state.keys, logger),
        },
        version,
        msgRetryCounterCache,
        shouldIgnoreJid: jid => isJidBroadcast(jid),
        defaultQueryTimeoutMs: undefined,
      });

Do you have multiple clients on the same IP? No
Are you using a proxy? Yes

Additional context

@Yago-Tavares check this #901

Thank you

Now now you don't need to update your baileys version to the latest version example $ npm install @whiskeysockets/baileys@zennn08/Baileys#profile-picture-url
You can take or access profile photos without it saying "BAD REQUEST". There is one way to retrieve or access a profile photo without it not saying "BAD REQUEST"
The first step :
You go to your own bot script folder then look for the folder node_modules > @whiskeysockets > baileys > lib > Socket > chats.js
Second step:
After finding the folder above that I told you about above, then you look for a function or code in the form of "profilePictureUrl" then replace the previous code with the new code below 👇👇
const profilePictureUrl = async (jid, type = 'preview', timeoutMs) => {
var _a;
jid = (0, WABinary_1.jidNormalizedUser)(jid);
const result = await query({
tag: 'iq',
attrs: {
target: jid,
to: WABinary_1.S_WHATSAPP_NET,
type: 'get',
xmlns: 'w:profile:picture'
},
content: [
{ tag: 'picture', attrs: { type, query: 'url' } }
]
}, timeoutMs);
const child = (0, WABinary_1.getBinaryNodeChild)(result, 'picture');
return (_a = child === null || child === void 0 ? void 0 : child.attrs) === null || _a === void 0 ? void 0 : _a.url;
};
After you change it, just save the previous edits and try to see the results, good luck :)
Note:
The code or function above can be installed on any Baileys version, whether it's 6.5.0 / 6.6.0 or also 6.4.0 and previous versions, so there's no need to update to the Baileys version like I said above, maybe this might work for you, thank you!!!


ovn-northd memory leak

	40128 bytes in 1254 allocations from stack
		xmalloc__+0x2a [ovn-northd]
		xmalloc+0x26 [ovn-northd]
		smap_add__+0x26 [ovn-northd]
		smap_clone+0x74 [ovn-northd]
		ovn_port_update_sbrec+0x716 [ovn-northd]
		build_ports+0x4f3 [ovn-northd]
		ovnnb_db_run+0x4b1 [ovn-northd]
		northd_run+0x64 [ovn-northd]
		en_northd_run+0x486 [ovn-northd]
		engine_recompute+0x1b0 [ovn-northd]
		engine_run_node+0x8c [ovn-northd]
		engine_run+0x5f [ovn-northd]
		inc_proc_northd_run+0x92 [ovn-northd]
		main+0x823 [ovn-northd]
		__libc_start_main+0xf3 [libc-2.31.so]
	49860 bytes in 5540 allocations from stack
		xmalloc__+0x2a [ovn-northd]
		xmalloc+0x26 [ovn-northd]
		xmemdup0+0x24 [ovn-northd]
		xstrdup+0x2e [ovn-northd]
		smap_clone+0x4c [ovn-northd]
		ovn_port_update_sbrec+0x716 [ovn-northd]
		build_ports+0x4f3 [ovn-northd]
		ovnnb_db_run+0x4b1 [ovn-northd]
		northd_run+0x64 [ovn-northd]
		en_northd_run+0x486 [ovn-northd]
		engine_recompute+0x1b0 [ovn-northd]
		engine_run_node+0x11e [ovn-northd]
		engine_run+0x5f [ovn-northd]
		inc_proc_northd_run+0x92 [ovn-northd]
		main+0x823 [ovn-northd]
		__libc_start_main+0xf3 [libc-2.31.so]
	177280 bytes in 5540 allocations from stack
		xmalloc__+0x2a [ovn-northd]
		xmalloc+0x26 [ovn-northd]
		smap_add__+0x26 [ovn-northd]
		smap_clone+0x74 [ovn-northd]
		ovn_port_update_sbrec+0x716 [ovn-northd]
		build_ports+0x4f3 [ovn-northd]
		ovnnb_db_run+0x4b1 [ovn-northd]
		northd_run+0x64 [ovn-northd]
		en_northd_run+0x486 [ovn-northd]
		engine_recompute+0x1b0 [ovn-northd]
		engine_run_node+0x11e [ovn-northd]
		engine_run+0x5f [ovn-northd]
		inc_proc_northd_run+0x92 [ovn-northd]
		main+0x823 [ovn-northd]
		__libc_start_main+0xf3 [libc-2.31.so]

resolved in https://github.com/ovn-org/ovn/commit/a407c9b9e924c67b72dc47c578324c577aed1a44


Question: rosdep yaml consistency

So I wanted to make it so rosindex can (1) determine if a package dependency is a rosdep or if it's another ROS package. Additionally, I wanted to (2) show a page listing the details of that rosdep (i.e. which platforms it's available on and which distributions). In the future, this could be used to (3) automatically declare whether a given package is supported on a given platform.

Is possible just by reading the identifiers in the rosdep yaml files, which is fine

Creates some issues though, because of the variability in the way rosdep keys are listed. I've found that the following forms exist in the current yaml files:

CASE A
ROSDEPKEY:
PLATFORM: array-of-deps
CASE B
ROSDEPKEY:
PLATFORM:
VERSION: array-of-deps
CASE C
ROSDEPKEY:
PLATFORM:
VERSION:
MANAGER: array-of-deps
CASE D
ROSDEPKEY:
PLATFORM:
VERSION:
MANAGER:
packages: array-of-deps
CASE E... ugh
ROSDEPKEY:
PLATFORM:
MANAGER:
packages: array-of-deps
CASE FFFF... ugh
ROSDEPKEY:
PLATFORM:
VERSION:
packages: array-of-deps

    Without knowing the names of the platforms, platform versions, and package managers a priori, case *E* and case *FFFF* are indistinguishable. Are such keys correct, or is one of these cases wrong? I understand that in most cases, the only rosdep keys you care about in a given instance are the ones needed by your OS, in which case you know what platform/version/etc you're looking for.

3. Is further out but a good thing to have on the horizon, I think.

Without knowing the names of the platforms, platform versions, and package managers a priori, case E and case FFFF are indistinguishable.

That's correct, but rosdep knows this information, otherwise it wouldn't be able to resolve keys using them.

Are such keys correct, or is one of these cases wrong?

They are correct, one easy way to check is with rosdep resolve <key> --os=PLATFORM:VERSION.
rosdep knows how to expand the keys, for example if you try to resolve a key which exists but not for the target OS platform/version:
% rosdep resolve ipython --os=gentoo:2014

ERROR: No definition of [ipython] for OS [gentoo]

No definition of [ipython] for OS [gentoo]
	rosdep key : ipython
	OS name    : gentoo
	OS version : 2014
	Data: debian:
- ipython
fedora:
- python-ipython
macports:
- py27-ipython
ubuntu:
  lucid:
  - ipython
  maverick:
  - ipython
  natty:
  - ipython
  oneiric:
  - ipython
  precise:
  - ipython
  quantal:
  - ipython
  raring:
  - ipython
  saucy:
  - ipython
  trusty:
  - ipython
  trusty_python3:
  - ipython3
  utopic:
  - ipython

Maybe you can look into rosdep and see how it does it. I wouldn't recommend trying to interpret the rosdep yaml files yourself.

Case E is using what I would call an implicit any_version key and Case F uses what I would call the implicit default_installer key. These are concepts I came up with when I described the new YAML format for xylem, which was then greatly improved and expanded on by @NikolausDemmel. Here is the design doc page on the rules files:
http://xylem.readthedocs.org/en/latest/spec.html
And the description of the format in the source code:
https://github.com/catkin/xylem/blob/master/xylem/specs/plugins/rules.py#L15-L244
Some of the design of the new rules format was done to formally describe how this expansion worked and to provide tools to make it just as concise but more explicit where possible.
Anyways, I link you to that stuff not to say "wait for this", but just because it might help you make sense of the current state of rosdep's rules. Also at some point @NikolausDemmel was working on a script to automatically convert the rosdep rules into the new xylem format, but I can't find that right now, maybe he can point you at it, because it would also be useful for an example of something that interprets the rosdep rules directly.

Thanks for the info @wjwwood.

Maybe you can look into rosdep and see how it does it. I wouldn't recommend trying to interpret the rosdep yaml files yourself.

As far as I can tell, it wouldn't be too hard to generate a full table of rosdeps if you know the lists of platforms, versions and their respective package managers. So I'm just going to do that, and then query it for each key.

Closing this, I've got a satisfactory solution.


Added loop over websocket call in websocket_safe_read to return multiple messages

Summary
Issue #231 points out that each call to client.rtm_read() only returns a single message, regardless of how many are available. This PR introduces a loop over the websocket read to receive all available messages before returning from rtm_read().
Requirements (place an x in each [ ])

[ x] I've read and understood the Contributing Guidelines and have done my best effort to follow them.
[ x] I've read and agree to the Code of Conduct.

I think this is ready for code review, please let me know if it needs further work.

@matthewswain Thank you for contributing to this project. I apologize we did review this PR in timely fashion. Given the state of 1.x I decided to address client feature gaps in v2 (https://github.com/slackapi/python-slackclient/issues/384). I'd love to stay in touch to learn more about what you're building and how we can better serve community. I'm available via<EMAIL_ADDRESS>


Build fails

$ go get -u github.com/gravitational/teleconsole

# github.com/gravitational/teleconsole/clt
.gopath/src/github.com/gravitational/teleconsole/clt/clt.go:88: not enough arguments in call to integration.NewInstance
	have (string, string, []int, nil, nil)
	want (string, string, string, []int, []byte, []byte)
.gopath/src/github.com/gravitational/teleconsole/clt/clt.go:114: tconf.Proxy.DisableWebUI undefined (type service.ProxyConfig has no field or method DisableWebUI)
.gopath/src/github.com/gravitational/teleconsole/clt/clt.go:168: cannot use func literal (type func(io.ReadWriteCloser) (bool, error)) as type client.ShellCreatedCallback in assignment
.gopath/src/github.com/gravitational/teleconsole/clt/main.go:47: undefined: utils.InitLoggerCLI
.gopath/src/github.com/gravitational/teleconsole/clt/main.go:57: undefined: utils.InitLoggerVerbose
.gopath/src/github.com/gravitational/teleconsole/clt/main.go:62: undefined: utils.InitLoggerDebug

I attempted to use make to build, but still got an error:
$ make

make -C version
make[1]: Entering directory '/home/demizer/.gopath/src/github.com/gravitational/teleconsole/version'
make[1]: Leaving directory '/home/demizer/.gopath/src/github.com/gravitational/teleconsole/version'
CGO_ENABLED=1 go build -i -ldflags -w -o out/teleconsole
# github.com/gravitational/teleconsole/clt
clt/clt.go:88: not enough arguments in call to integration.NewInstance
	have (string, string, []int, nil, nil)
	want (string, string, string, []int, []byte, []byte)
clt/clt.go:114: tconf.Proxy.DisableWebUI undefined (type service.ProxyConfig has no field or method DisableWebUI)
clt/clt.go:168: cannot use func literal (type func(io.ReadWriteCloser) (bool, error)) as type client.ShellCreatedCallback in assignment
clt/main.go:47: undefined: utils.InitLoggerCLI
clt/main.go:57: undefined: utils.InitLoggerVerbose
clt/main.go:62: undefined: utils.InitLoggerDebug
make: *** [Makefile:16: out/teleconsole] Error 2

Same thing happening to me. go version go1.8.3 darwin/amd64.

Seems like it is related to this: https://github.com/gravitational/teleconsole/issues/16
Looks like Teleconsole was using old version of Teleport, that is not vendored in Teleconsole. But I still can't manage to build Teleconsole with v1.* of Teleport.