WIP: /search for JSON search results

Builds on #11; review that first.
This is an initial pass at the JSON API that I use here for my D3 failure charts.  Including it here will get us closer to allowing folks to generate those plots without having to pull down local copies of the logs being searched.  It's a WIP, because there are a number of FIXMEs in the code for bits that I haven't worked out yet, but I thought it was far enough along to be worth a PR ;).

Oh, example on some old data:
$ curl -s 'http://localhost:8080/search?search=08:28:35.843.*Error+deleting+EBS+volume&search=kube-scheduler+changed:+Degraded+message&context=0' | jq .
{
  "/origin-ci-test/pr-logs/pull/22657/pull-ci-openshift-origin-master-e2e-aws/7761/build-log.txt": {
    "kube-scheduler changed: Degraded message": [
      {
        "filename": "FIXME",
        "match": "FIXME",
        "context": [
          "Apr 24 15:45:42.667 I ns/openshift-kube-scheduler-operator deployment/openshift-kube-scheduler-operator (combined from similar events): Status for operator kube-scheduler changed: Degraded message changed from \"StaticPodsDegraded: nodes/ip-10-0-135-166.ec2.internal pods/openshift-kube-scheduler-ip-10-0-135-166.ec2.internal container=\\\"scheduler\\\" is not ready\" to \"\" (17 times)"
        ]
      }
    ]
  },
  "/origin-ci-test/pr-logs/pull/openshift_console/1463/pull-ci-openshift-console-master-e2e-aws/859/build-log.txt": {
    "08:28:35.843.*Error deleting EBS volume": [
      {
        "filename": "FIXME",
        "match": "FIXME",
        "context": [
          "Apr 22 08:28:35.843 W persistentvolume/pvc-8408a25b-64d8-11e9-ade2-124614138f66 Error deleting EBS volume \"vol-0b32310b07eba9771\" since volume is currently attached to \"i-090fdac7c0dbd3579\""
        ]
      }
    ],
    "kube-scheduler changed: Degraded message": [
      {
        "filename": "FIXME",
        "match": "FIXME",
        "context": [
          "Apr 22 08:08:04.026 I ns/openshift-kube-scheduler-operator deployment/openshift-kube-scheduler-operator (combined from similar events): Status for operator kube-scheduler changed: Degraded message changed from \"\" to \"StaticPodsDegraded: nodes/ip-10-0-135-32.ec2.internal pods/openshift-kube-scheduler-ip-10-0-135-32.ec2.internal container=\\\"scheduler\\\" is not ready\" (16 times)"
        ]
      }
    ]
  }
}

roughly lgtm, clean up comments and such.

I've pushed #16 with some more groundwork, and then rebased this PR on top with 73e1d0a -> 26a014f.  That let me address all the FIXMEs, although I did end up dropping match since context seems sufficient.  We can restore match later (via local regexp matching in Go on grep-results?) in follow-up work if it turns out to be important.  In my 26a014f commit message example, I'm using grep -o ... to extract only the matching text as client-side post-processing.

Rebased onto #16 with 26a014f -> 16afdb6

Rebased around #20 with 16afdb6 -> d9c910f.

Landed via #24.


Node without parent - Deletion

Propose to delete the node without parent as a solution, which is mostly what is done today manually

You psychopath! We will move it to a very special folder instead


Flexible indexes: add and use IndexAdapter base class

This PR clears up the path for flexible indexes:

it adds a new IndexAdapter base class that is meant to be inherited by all xarray-compatible indexes (built-in or 3rd-party)
PandasIndexAdapter now inherits from IndexAdapter
the xarray_obj.indexes properties now returns IndexAdapter (PandasIndexAdapter) instances instead of pandas.Index instances

The latter is a breaking change, although I'm not sure if the indexes property has been made public yet.
This is still work in progress, there are many broken tests that are not fixed yet.
There's a lot of dirty fixes to avoid circular dependencies and in the many places where we still need direct access to the pandas.Index objects, but I'd expect that these will be cleaned-up further in the refactoring.

the xarray_obj.indexes properties now returns IndexAdapter (PandasIndexAdapter) instances instead of pandas.Index instances

The latter is a breaking change, although I'm not sure if the indexes property has been made public yet.

This is indeed unfortunately a public API, so we should think about how to roll this out with minimal disruption.
For example: maybe .indexes should continue to return pandas.Index objects for now, by unwrapped IndexAdapters sorted in ._indexes?

maybe .indexes should continue to return pandas.Index objects for now, by unwrapped IndexAdapters sorted in ._indexes?

Yes we could make a special case for pandas indexes. This would also make the refactoring easier now since .indexes is used internally in quite many places that expect pandas.Index objects. Not sure if it's a good solution in the mid/long term, though.
For example, it would be nice to move the logic implemented in convert_label_indexer into PandasIndexAdapter and PandasMultiIndexAdapter classes and call methods of those classes instead of dealing directly with pandas index objects. For this example (and perhaps others) we could use _indexes internally. Alternatively it might make sense to have an .index_adapters property to make things a bit clearer (this may be welcome even for internal purpose IMO).

Rather than xarray.IndexAdapter, maybe we should just call this new object xarray.Index? Calling this object an "adapter" diminishing its importance in Xarray's future API.
I agree that switching the return type of .indexes is probably worthy of a breaking change -- but that breaking change should be done intentionally, once the new indexing functionality works and we are ready to make a major release. We may also want a deprecation cycle. What we don't want to do is change things in an incomplete way now, in a way that makes it hard for us to issue a bug-fix release.
To make development easier, I would suggest adding a new attribute to xarray.Dataset and xarray.DataArray that exposes the new data model, e.g., perhaps .xindexes as short for "xarray indexes". We would then:

Immediately switch xarray to use .xindexes instead of .indexes internally.
Once the new indexing functionality is ready, encourage users to gradually switch from .indexes -> .xindexes by issuing a FutureWarning warning.
After an appropriate period of time, consider making .indexes an alias for .xindexes in a breaking release.

Agreed for adding another property along with a couple of depreciation cycles for smooth transition on what is returned by .indexes. I've suggested .index_adapters in my previous comment but I prefer .xindexes.
xarray.Index makes sense too. For subclasses wrapping another index class perhaps it might be still be relevant to use the Adapter suffix, for example to distinguish between a pandas.Index object and a xarray.PandasIndexAdapter object.

Hello @benbovy! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file xarray/core/variable.py:

Line 30:1: F811 redefinition of unused 'PandasIndexAdapter' from line 29

Thanks for the review @shoyer, I addressed your comments.


replace WIN with WIN32

-Would you consider replacing the "WIN" define with the standard "WIN32" instead ?

I would consider this. However, I'm not very knowledgeable about Windows. A quick google suggests that WIN32 is defined whether you're compiling 32 or 64 bit Windows. Right? Is it safe to use the WIN32 definition as just meaning "this is Windows" and you have to use an alternative test if you want to determine whether it's a 32 or 64 bit compilation?

Yes WIN32 is defined for both so that's the pragmatic way

I'm thinking about this one. Right now I have a scheme where I use cmake to probe the host OS and then I define a tag accordingly. What you suggest is pragmatic, and means that the code could be used on Windows without the developer needing to define an extra label when calling their compiler, but if I were to make the change, then I should consider whether to use #ifdef APPLE on MacOS and what I should do on Linux/BSD.

I am happy with using WIN as a tag for Windows.


Timeoutable timeouts causing Rails to flash[:timedout] as "true"

I know this has been mentioned in other tickets, but it appears to still be an issue, as of 2.0.4.  From the current, master's failure_app.rb:
def redirect_url
  if warden_message == :timeout
    flash[:timedout] = true
    attempted_path || scope_path
  else
    scope_path
  end
end

The third line there is causing the Rails Flash::FlashHash object instance to carry a flash[:timedout] whose value is of TrueClass.  For generalized flash implementations, such as the one generated and recommended by this gem:
<%- flash.each do |name, msg| -%>
  <%= content_tag :div, msg, :id => "flash_#{name}" %>
<%- end -%>

The following HTML is being generated and displayed to visitors:

true

Obviously, this is non-ideal. :)  Is this :timedout flash message actually used for anything?  I see that the failure_app is explicitly keeping the :timedout flash message, even though it's simply a true statement:
def redirect
  store_location!
  if flash[:timedout] && flash[:alert]
    flash.keep(:timedout)
    flash.keep(:alert)
  else
    flash[:alert] = i18n_message
  end
  redirect_to redirect_url
end

Based on a cursory reading of this code, it seems to me that a simple instance variable, which is set to true/false and nilified with each Rack call request, would provide the same functionality and work significantly better.
And, yes, I did see @josevalim's comment on the use of Flash... I just wonder if either the README and example application layout should be updated to reflect the check for String-iness or the surprising usage of Flash for non-user messages should be removed.

@josevalim Would you be willing to accept a PR that moves this to the session hash? It seems like a more appropriate place than using flash messages, right?

@deivid-rodriguez no because it is a fine use of flash. :) Flash is not only about messages but temporary storage.

@josevalim Alright. I just happened to read the code handling this and it seemed like a code smell (https://github.com/plataformatec/devise/blob/master/lib/devise/failure_app.rb#L58-64). It's not clear what it does, it's not commented, it's not tested, there's quite a lot of issues linking here, and that use of keep doesn't intuitively suggest temporary storage...

We don't have unit tests but we do have integration tests. The flash is an implementation detail to how the feature works. Also, notice we also keep the alert, that's more of a bug of how flash behaves in Rails because it doesn't survive redirects...

Really? I thought they survived a single action... regardless of it being a redirect or not.

Excuse me, how to exclude ":timedout" flash messages from this code:
"flash.each do |msg_type, message|"
that I have in an helper?

@ginolon a bit late but perhaps something like this:
unless msg_type == :timedout

@tonycchung If I use the except way, I got this:
undefined method 'except' for #<ActionDispatch::Flash::FlashHash:0x0000000d3df308>
def flash_messages(opts = {})
    flash.except(:timedout).each do |msg_type, message|
      concat(content_tag(:div, message, class: "alert #{bootstrap_class_for(msg_type)} alert-dismissible text-center fade in", role: 'alert') do
        concat(content_tag(:button, class: 'close', data: { dismiss: 'alert' }) do
          concat content_tag(:span, '×'.html_safe, 'aria-hidden' => true)
          concat content_tag(:span, 'Close', class: 'sr-only')
        end)
        concat message
      end)
    end
    nil
  end

@ginolon Something like this inside your each block should do the trick
next unless value.is_a? String

At least in Rails 4.2.4 ActionDispatch::Flash::FlashHash does not extend from Hash and does not have an #except method. So it's not really a viable option.
While I agree this is a good use of the flash hash, I think its a little stubborn to keep that as a justification when clearly its causing heartburn for people. I mean the intended use of the flash has is clearly messaging, with default methods for :notice and :alert keys and so forth.


Request Config for Seasons not being required.

I have a request, I would like to use your mod in a Adventure Style Pack how ever I really need players to be allowed to farm any kind of crop at any time of year. The pack is themed in space and there really are no seasons in space. I would go with another mod but really yours is just the best, the animals look awesome, the crops look and work so cool and I want to limit what people can craft but you do not need to craft anything to cook and use the food in your nod so its perfect. So my request is a config setting, that can be false by default, that would let any crop be planted any time of year.
Thanks for reading ether way! Note I also posted this on Minecraft Forums before remembering Gethub.

You're better off using another mod. Currently this would involve a lot of rewriting of the code which I'm not willing to do yet. A lot of other things not just the crops rely on the seasons.


Update Vite to >=5.1.8

Self-explanatory. Will fix server.fs.deny vulnerability and DOM clobbering vulnerability as identified by Dependabot
server.fs.deny bypassed when using ?import&raw
DOM clobbering vulnerability


Suggestion: It is recommended to add a function to format sql and view the table structure

When the sql is relatively long, the readability is poor. Adding a function to format the sql can enhance the readability.
Add a right-click function to view the table structure and add a custom font size function

The new version has solved it


utilities for gfv2

Codecov Report

Merging #215 (0347067) into master (a3a3e0c) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master     #215   +/-   ##
=======================================
  Coverage   93.65%   93.66%
=======================================
  Files          19       19
  Lines        1987     1990    +3
=======================================
+ Hits         1861     1864    +3
  Misses        126      126

Impacted Files
Coverage Δ

R/get_nhdplushr.R
96.15% <100.00%> (+0.11%)
:arrow_up:

R/nhdplusTools.R
97.01% <100.00%> (ø)

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 a3a3e0c...0347067. Read the comment docs.


Abstract pivot/action functionality from metron.space into the metron routing

See the app.ts file of the metron.space web site.

Fixed with commit b8e27532b2e810b400585f6172b9aa5267404615


Use main as primary branch instead of master

@mattdavis90 would you be ok with us using main as the primary branch on this repo? (We're following that pattern on the other repos)

Happy for it to change but I can't do it because I'm a member of base16-project, not an owner :)


Incorporate Mixture-of-Depths

Build a module that uses infini-attention in a mixture-of-depths layer (https://arxiv.org/abs/2404.02258).

Implemented.


Wip/6.0 cascade

re-enabling few tests for cascade emerged few other non related issues, this PR contains the fix for all these issues:

issue with circularity detection
NPE when a fetched association is null
EntityFetchDelayedInitializer check if the entity instance has been already loaded
EntityInitializer and DelayedCollectoinAssembler see if we have an existing entry in the PC for the EntityKey
Issue with initialization of empty collections
issue with SimpleForeignKeyDescriptor#generateJoinPredicate() using wrong columns for selfreferenced associations
issue with SimpleForeignKeyDescriptor DomainResult creation

@sebersole thanks for the review, I agree with you, it works but I'm not a huge fan too.

Add a fix for loading empty array collection and merged.
Thanks @sebersole and @NathanQingyangXu


ES VTL/nextToken Fix

Issue #, if available:
#800
Description of changes:
VTL Changes:

Changed from to search_after to act as cursor when 'paginating' between results
Sort will use field.keyword when the field type is a String

Based on elastic search changes which now have fielddata set to false  (ES Docs Resource).

Schema Changes:

nextToken is a string to fit with the search_after param

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@SwaySway Any plans to add those E2E tests? If not I can take a whack at it.
cc: @mikeparisstuff Would be great to get this merged ASAP, right now sorting is broken for @searchable entities.

@SwaySway Any plans to add those E2E tests? If not I can take a whack at it.
cc: @mikeparisstuff Would be great to get this merged ASAP, right now sorting is broken for @searchable entities.

Any news in regards to this? :)

Hey guys, we're working on the integ e2e tests at the moment and as soon as its done, we'll merge and release a new version  of the CLI with this fix.

Added an e2e test which paginates and sorts using a string field.


"Satu Nou", "Țibrinu" are listed in the drop-down menu

Description:
When user writes "Satu Nou", "Țibrinu" the location appears in the drop-down menu next to the comune and the county which is a part according to the law
Precondition:
The website is up an running.

Step 1
Write in the search bar "Satu Nou"

Expected results
The location appears in the drop-down menu as "Sat Satu Nou, CONSTANȚA, (Mircea Vodă)"

Step 2
Press "x" button.

Expected results
The location was deleted from the search bar.


How to refresh an expired accessToken ?

Hi,
Currently when we are trying to refresh the expired access token we have to use the  refresh token as grant type .  There are situations when my refresh token has expired (guess this has something to with 5 connections to a connected app in salesforce) and in this scenario how would i get an access token back ?
should the user start from the beginning where he requests an auth code and establish a connection from there ?
Please let me know. Thanks in advance !
@stomita

should the user start from the beginning where he requests an auth code and establish a connection from there ?

When you expire the "refresh token", they should do so.

Hi stomata ,
Thanks for the reply.  But I don't expire the refresh token. Sales force
does it and when salesforce expires the refresh token even if I try
refreshing the token using grant type equal to refresh token does not work
as it has already expired.
Please find below the steps i tried :
1)create a connection object in my code :
  var conn = new jsforce.Connection({
      oauth2: oauth2,
      accessToken: accessToken,
      refreshToken: refreshToken,
      instanceUrl: instanceURL,
      id: id
  });

trying to search a lead/contact in sales force

conn.search(searchQuery,function(err, response) {
On Thursday, June 9, 2016, Shinichi Tomita<EMAIL_ADDRESS>wrote:

should the user start from the beginning where he requests an auth code
and establish a connection from there ?
When you expire the "refresh token", they should do so.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jsforce/jsforce/issues/488#issuecomment-225070925,
or mute the thread
https://github.com/notifications/unsubscribe/AHAlvrW6QYGk1LdsUSp2YXqO9aNZgGKcks5qKLr2gaJpZM4Ix_tL
.

@vivinRajagopalan It doesn't matter who expired the refresh token. The expired refresh token is not useful and you need to ask authorization again by oauth2 flow.

Thanks a lot @stomita

what is the default lifetime of refresh tokens in Salesforce?  Mine seems to be expiring after about 1 day (this seems short).  Is it possible to increase this time?

How to get a new refresh token


nearby stops

Hi,
Would be nice to have a function that returns a list of stops that are nearby within a given radius from a lat & long point.

You can get long/lat also by api:
https://opendata-api.stib-mivb.be/NetworkDescription/1.0/PointDetail/5719


v-if rerender input bug in production, works fine in dev

stackblitz
https://stackblitz.com/edit/vitejs-vite-thzryu
problem
I use the v-if to rerender the component, there is a problem in builded production, input element will have a cache text in it.
but dev works fine, im confused about it，which part cause the problem？
recurrence

npm run dev, enter something in input , click reload button. works fine in dev.
npm run build
npm run preview, enter something in input , click reload button. text still in input

Originally posted by @PYPARA in https://github.com/vuejs/core/discussions/6452

<script setup>
// This starter template is using Vue 3 <script setup> SFCs
// Check out https://vuejs.org/api/sfc-script-setup.html#script-setup
import { ref, nextTick } from 'vue';
const alive = ref(true);

function reload() {
  alive.value = false;
  nextTick(() => {
    alive.value = true;
  });
}
</script>

<template>
  <div v-if="alive">
    <input type="text" />
  </div>

  <button @click="reload">reload</button>
</template>

<style scoped>
button {
  margin-top: 20px;
}
</style>

works fine in sfc.
Maybe it's relate to vitejs.

@edison1105
Thank you.
https://cn.vuejs.org/guide/extras/rendering-mechanism.html#static-hoisting
https://github.com/vuejs/core/discussions/6452


diff PR vs master

@loftusa a suggestion has been made (by @gkiar) that you run @ebridge2's  PR on a few samples, and run the master on a few, and compute the distance between the resulting graphs.
in theory, nothing algorithmic has changed, so nothing should have changed in the derivatives.
if we confirm that, we can merge.
i think it is a great idea and suggest you tackle it this/next week.
@falkben

ok, diff ignoring diagonals.
good catch.
On Mon, Dec 3, 2018 at 9:46 PM Eric Bridgeford<EMAIL_ADDRESS>wrote:

of note, the diagonals have been added in, so there will be "some" change;
just the changes should be deterministic
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/neurodata/ndmg/issues/184#issuecomment-443949896, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AACjck-2-9OXz1wwOplRMqD058vFW4ajks5u1eG9gaJpZM4Y_zZX
.

--
the glass is all full:  half water, half air.
neurodata.io

Cool. Will do


Very small cryptocurrency rates (<0.01) get truncated to 0.00

While showing cryptocurrency prices with very low rate shows accurate candles, the axis on the right shows a mere 0.00 for every input.
For instance, there is an asset called HOT and the HOTBTC symbol is currently worth around 20 satoshis, in other words the rate is around 0.00000020. But the right axis will show 0.00. Same thing for max: 0.00 and last: 0.00.
On the other hand it works very well for huge prices, e.g.<PHONE_NUMBER>. Which means it's just truncated to 2 decimals. I'm not sure yet what would be the best here, but I'm gonna publish this first.

If any price in the sequence is <0.01 maybe it would be best to switch to a truncation to the 8th decimal instead of the 2nd decimal?

I think you should prepare the data and maybe show satoshis instead of 0.0000... values..
I will flag that issue as an enhancement, not sure when I am able to pick it up

Yes there is no urgency.
Note the case of HOTBTC is the most extreme one. But there are plenty other cryptocurrencies though (most of them if expressed against BTC) which have rates in the 0.00000xxx to 0.00xxxxxx.
I think eventually since the chart works so well already even with such low rates it will be a logica

(Sorry, I pressed close and comment button by mistake)

project will be archived


[Bug] 404.(md,mdx,tsx,jsx) route breaks rendering

Qwik Version
Qwik CIty Dev Release
Operating System (or Browser)
Debian Linux
Node Version (if applicable)
v16.3.0
Which component is affected?
Qwik City
Expected Behaviour
I should be able to add a 404 route to my routes folder. This is a common use case supported by a lot of hosts.
Actual Behaviour
An error is logged to the browser and pages no longer render. Dev server continues to run.
Additional Information
Looks like this is caused by a bad import. The following error code is logged in the browser.
Uncaught SyntaxError: underscore can appear only between digits, not after the last digit in a number @qwik-city-plan:7:17
Inspecting the file at http://localhost:3000/@qwik-city-plan shows the bad import on line 7
import * as 404_ from "/src/routes/404.md?import";
Not sure if Vite or Qwik City is appending that underscore.

This is already implemented in the new Qwik City branch. Should be fixed when that branch lands.

Fixed in latest.


Session Timeouts on Tomcat 7.0.68/Ubuntu 16.04

We have been using MSM on our Ubuntu 14.04/Tomcat 7.0.52 for some time. Recently, we decided to upgrade to Ubuntu 16.04/Tomcat 7.0.68, and started experiencing abnormal session timeouts. Our app's web.xml specifies a session timeout of 180 (3 hours) but customers started experiencing timeouts of around 30 minutes.
I found this issue: https://github.com/magro/memcached-session-manager/issues/287 but we were already using the 1.9.2 release. Do I have to set a timeout in context.xml consistent with the 180 minutes in the app's web.xml to ensure sessions don't time out early? Below is my current context.xml:

<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>

<Manager
className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="my-elasticache.ffvmii.cfg.use1.cache.amazonaws.com:11211"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
sessionBackupAsync="true"
sticky="true"
copyCollectionsForSerialization="false"
/>

Any help would be greatly appreciated!

As you can see in #287 after 1.9.2 there was added commit 2befaa5 which fixed a bug that sounds related to what you're reporting, and which was released with 1.9.6. Can you test with 1.9.6 or later?

Thanks for your reply! I upgraded to 1.9.6 but I am still seeing the issue after restarting the Tomcat service. I also added
maxInactiveInterval="10800"
to my context.xml (3 hours). Was this the correct place to set it? If so, should I evict any sessions/flush Memcached to see a change?

Session lifetime is determined on creation, so please test with a new session (just clear cookies). To configure the session timeout please use mechanisms according to tomcat docs (to be honest I'm not sure about maxInactiveInterval in context.xml), a usual thing is to configure the sessionTimeout in web.xml.


Make tests in AccessControlManagerTest more readable and maintainable

Mockito based tests can sometime become a bit difficult to read (for someone not being the author of the test at least, or the author 3 months later ;-) ).
This is the case for at least some tests in AccessControlManagerTest; testAclDeleteLogic, testBindingsDeleteWithAllOptionsDisabled and testBindingsDeleteWithSpecificConfigEnabled. These tests require quite some setup (mocks, topology, config, etc) and the verification of mocks also requires a lot of code.
I think these tests can be improved by the following:

Introduce a builder for creating and changing the test topology
Not mocking aclsBuilder will make the test simpler
config can be mocked, since these tests are not about testing the config per se
All tests doesn´t need to check the specific acls is deleted (see code below), enough with one test to verify this

   ....
    List<TopologyAclBinding> bindingsToDelete =
        returnAclsForConsumers(asList(new Consumer("User:app2")), topicA.getName());

     verify(aclsProvider, times(1)).clearBindings(new HashSet<>(bindingsToDelete));
  }

Quite a few other tests will also benefit from all or some of the above  improvements.

I will also soon make a PR with suggested improvements :-)

This test has become harder to maintain with the time and when adding the bindings builder class, so I agree 100% is time for a Saturday cleaning ;-) appreciate


XRTK Controllers & Overall Basic Understanding

Hello XRTK cybernauts!!
I am extremely happy with the decentralized and holistic approach that XRTK is proposing for developers out there.
I came across XRTK via a Medium post by Stephen Hodgson who stated in this exciting post the following "Setting up the Mixed Reality Toolkit should be as easy as downloading, importing, and pressing configure"
( https://medium.com/@stephen_hodgson/getting-to-know-the-new-mixed-reality-toolkit-for-unity-ad21b0e331b1)
However, I must say, despite the amazing job and dedication that has been put to create these tools, at the moment I have found various problems just trying to set up my controllers and almost no documentation or tutorial to get this going smoothly.
I have read all the documentation in this link: ( https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/mrtk_release/Documentation ).... and yes, it's all great, however, these really didn't give any specific understanding on how to set up my controllers or how to use the scripts in the XRTK to control objects or buttons or any sort of basic event system implementation.
In comparison with the  with HoloToolkit-Unity-Preview-2<IP_ADDRESS> , this was much more straight forward to set up, with a shorter learning curve, as just exploring the different example scenes gave me an understanding of how to implement the controllers and the scripts provided in the package. As well as this great video which really helped me out: https://youtu.be/FrZbmFPiD-E
The downside to it is that is dependent on Unity 2<IP_ADDRESS> and for the VR I am developing I am really looking forward to getting the most of the Shader Graph and the VFX Graph only available in later versions.
I am using Unity 2018.3.0f2 and after setting up a basic scene, my Samsung Odessey gets recognized by the configuration of XRTK, however, my controllers are not appearing in the scene and I notice that my controller input name does not appear in the input manager.
So, I really hope the developers of XRTK could help me and also any future developer that stumbles upon this post to get more information on the basic setup of the Motion Controllers, and any overall basic understanding of how to use this promising Toolkit.
Best Wishes

Did you try watching this video which is a quickstart to getting up and running with the MRTK/XRTK?
Walks through most basic things.
As to setting up controllers, once your basic scene is up and running, you simply need to create your own version of the Input / Controller Mapping configurations to start sculpting your own experience.
I plan to get a great many more videos done on the config side as soon as I'm able :D

Thanks for your quick response and for sharing that very useful video, Simon :)
I have followed the steps outlined in the video, and also I have tried to create my own version of the Input / Controller Mapping configuration, but I am getting an error by Unity when I try to create a new profile:

Instance of BaseMixedRealityControllerMappingProfile couldn't be created. The script class needs to derive from ScriptableObject.

Is there anything I'm missing?... In your video tutorial seems that MRTK recognizes your controllers straight away.
Looking forward to your upcoming tutorials :)

Had the same issue. This is unity related as the BaseMixedRealityControllerMappingProfile is abstract
See: https://answers.unity.com/questions/1318684/the-the-script-class-needs-to-derive-from-scriptab.html
When removing the "abstract" in worked to create a new one. But I'm not sure this is the way to go.

Very curious, not had that myself.  I'll look in to that today.

I think this is somehow related to the issue in BaseController:111 where the controllerMappings.ControllerType.Type is always "(None)" instead of the controllerType "WindowsMixedRealityController". Hence always a warning appears:

No controller profile found for type WindowsMixedRealityController, please ensure all controllers are defined in the configured MixedRealityControllerConfigurationProfile.

I have a slight workaround, you can create your own controller mappings for specific controllers using the asset comments, so you can create a new "WindowsMixedRealityControllerMapping" from "Create -> Mixed Reality Toolkit -> Mixed Reality Controller Mappings -> (Controller Type)" which creates the custom asset
You can then assign this to the relevant slot in the "MixedRealityControllerMappingProfiles" config and this works.
It's only the "Copy and Customise" button that isn't working, which is "very" odd as it does this for all controllers.  But I suspect you are correct @wassx that it has something to do with the "Type" of controller it's trying to copy and possibly it's null.

Found it, basically, we shouldn't have a "Copy / Customise" button on that inspector for the multiple profiles option.  As the "Type" of controller in that list is the "BaseMixedRealityontrollerMapping" which isn't a concrete type of scriptable object, as it's abstract.
Simplest answer is to remove that button, you should either replace the existing profile with a new one, or simply add another. Can review later if this can be "improved"
(Gee's I used a lot of "" today)

Interestingly, this highlights some other issues on the screen, e.g:

Can't add a duplicate profile (which you shouldn't) but there is no feedback as to why it didn't work.
You can add multiple mappings of different names for the same type (e.g. two different MRControllerMappings if they have different names), need to review if this should or should not happen.

Simplest answer is to remove that button, you should either replace the existing profile with a new one, or simply add another. Can review later if this can be "improved"

As far as I understand this button should do the same as the button in the "Create.." context menu? I'll give it a try.

I have a slight workaround, you can create your own controller mappings for specific controllers using the asset comments, so you can create a new "WindowsMixedRealityControllerMapping" from "Create -> Mixed Reality Toolkit -> Mixed Reality Controller Mappings -> (Controller Type)" which creates the custom asset
You can then assign this to the relevant slot in the "MixedRealityControllerMappingProfiles" config and this works.

Thanks for the support!!
I have successfully created a new profile following your workaround provided above, however, even if my controllers are paired and ready in the Mixed Reality Portal, the motion controllers are still not being recognised by Unity or XRTK.
When I hit play only these prefabs are opening as children of the MixedRealityPlayspace game object:

I see that in your tutorial, MRTK adds the following prefabs in play mode:

The only difference in comparison to your tutorial is the version of Unity that I am using (the one that XRTK requires)
Still not sure if its Unity, XRTK or something that I haven't done to set this correctly.
Appreciate both of your help and time.

Any documentation, rough drafts or outlines, about the individual profiles? When creating a new profile and it is all blank, It is difficult to know where to start.

Creating new profiles is more of an advanced topic. Simply copying the default profiles is always the best start.

Issue with the controllers not displaying was due to a default asset bug, PR #23 submitted to resolve this.  I believe an updated release will also come out to push this.
As for docs @hridpath , I'll be doing some light touches to get you started.

I found a way to make the controllers appear by going into the "Controller Data Provider Profile", under the "Windows Mixed Reality Controller Data" Provider in the "Runtime Platform" I changed it from "Nothing" to "Everything" and then my controllers appeared in the scene :)
However, all the inputs I mapped in the "Controller Mapping Profiles" are not working, there is no pointer, neither teleportation system, and the controllers disappear if I move to some areas of the scene
:(

Are you using the default profiles?

Yes @StephenHodgson, I have been creating direct copies of the default profiles for being able to get deeper into the settings.

Alright, Its fixed for now.
What I did was to start everything again, new scene, new profiles from the default and new profiles in various of the "Input System Settings".
The only change from the default profiles, was in the "Controller Data Provider Profile", under the "Windows Mixed Reality Controller Data" Provider in the "Runtime Platform" I changed it from "Windows StandAlone" to "Everything"

Okay thanks for the report. We also fixed one problem with the windows mixed reality controller profile as well. I'll try to push out an update today for it.

Hi @Virtual-Awakening , can you retest under the latest Dev or Master branches (they are back in sync now) and check if you're ok, if so then close the issue please.


Guidance on proposing new standard names

To help users construct new standard names consistent with established names, I think the new issue form should include following its first sentence a link to http://cfconventions.org/Data/cf-standard-names/docs/guidelines.html.  It might read:
"Before submitting an issue, be sure you have read and understood the rules for vocabulary changes and review the guidance for constructing standard names."

I think that's a good idea. Thanks.

I agree, thanks for spotting. I have changed the issue template in the discuss repo to reflect that change. Thanks Jonathan for bringing this ticket to my attention.


Why do you pay so many bot/fake accounts to get stars for this repo?

We recommend this repo to our friends to increase the popularity of this repo.


Reading the MTU?

Is there currently a way to detect the current MTU? In iOS CBPeripherals have a function called maximumWriteValueLength which can be used for this purpose, but I could not find anything related to that in the documentation.

Thanks again for your work. Version 0.6.4 added mtu property to Device object which allows you to read it after device is connected with requestMTU option specified or by calling requestMTUForDevice function.  On iOS requesting MTU is noop operation as iPhone is doing it automatically (however after a while when device is connected it should be available and in most cases it is 158 bytes). On Android make sure to call one of above functions.

To me it looks like:
On 0.6.4 when cancelDeviceConnection() is called on BleModule.java and promise is being resolved successfully:
promise.resolve is called by argument "new Device(device, null).toJSObject(null)"
=> So the given new device object is initialized with null connection.
New device is then called "toJSObject()", which executes line:
"result.putInt(Metadata.MTU, connection.getMtu());"
This causes NPE as the connection is null and connection.getMtu() is called.
Could you please check this if I read the code correctly.

You are right. Will fix with new version.

I'm not currently testing on iOS, just android, but can you explain if the following is correct?
device.connect({requestMTU:512}).then(deviceC => {
	console.log(`connected ${deviceC.id} ${deviceC.name} mtu:${deviceC.mtu}`);
});

hypothetically, if the peripheral only supports 300 and i'm on an iOS device, the mtu in the log message should (usually) be 158. if the peripheral only supports 100, the mtu in the message should be 100.
ie if i request the max (512) does the api sort out the min of my request, the device and the peripheral?

On iOS you can't request MTU and JS call won't do anything. On Android we are calling https://developer.android.com/reference/android/bluetooth/BluetoothGatt.html#requestMtu(int). Still documentation is not clear here. I think you have to check in practice how device behaves.

Closing this issue as changing MTU was implemented and NPE fixed in 0.6.5. Please open another issue for further discussion or just ask us on Gitter.


Add composite propagators

The OpenTelemetry spec includes Composite Propagators, which allow you to run several propagators in sequence. This work adds composite propagators. Along the way, it makes propagators configurable, so that users can decide how their context gets propagated (the spec requires support for b3, jaeger, and w3c baggage propagators).
In order to add composite propagators, I did a few things:

relocated trace_context.lua to text_map/trace_context_propagator.lua.
deleted carrier.lua, since the code is not using it anymore
updated the method signature of inject and extract to include optional getter/setter arguments (see spec).
added modules for composite propagator, getter, and setter.
updated nginx.conf in the examples directory.

I also added a test harness for busted tests, along with a make command to run them.
These changes will require existing users to modify their code. If that is not acceptable, we can find a solution 😄.
I'm new to Lua, so I'm sure there are plenty of changes required, but I wanted to get some 👀 .

Please rebase main branch.

@plantfansam Please check the review.

@plantfansam You cannot see this review?

@yangxikun I cannot see that review. The comments are shown as pending in the screenshot you posted. I think you need to click "submit review," like this:


Conversion to RSAKey Error

[x] I have checked that the [SDK documentation][sdk-docs] doesn't solve my issue.
[x] I have checked that the [API documentation][api-docs] doesn't solve my issue.
[x] I have searched the [Box Developer Forums][dev-forums] and my issue isn't already reported (or if it has been reported, I have attached a link to it, for reference).
[x] I have searched [Issues in this repo][github-repo] and my issue isn't already reported.

Description of the Issue
Some keys being generated by the Developer tools lead to the error System.Security.Cryptography.CryptographicException: 'The specified RSA parameters are not valid. Exponent and Modulus are required. If D is present, it must have the same length as Modulus. If D is present, P, Q, DP, DQ, and InverseQ are required and must have half the length of Modulus, rounded up, otherwise they must be omitted.'
See https://stackoverflow.com/questions/949727/bouncycastle-rsaprivatekey-to-net-rsaprivatekey for how to create an RSA key from the BouncyCastle objects; the key lengths need to be truncated.

Hi @arjankowski -
Sorry, I'm working off of credentials provided to me by a customer. I mean the Box developer console. This is related to JWT authentication.
I've put the correction in fork, located at https://github.com/emily-crank/box-dotnet-sdk-gen/tree/fix/rsa-key. I'll open a PR for you if it helps!

Hi @emily-crank,
Thanks for the explanation. Because of it, I was able to reproduce it on my end.
This repository is generated by our codegen tool, so we can't directly create a PR with the code to this repository. Instead, we need to add it to our codegen tool. I have already created a PR there based on your fork, so it should appear in this repository soon.
Thanks for pointing out the error and for your help!
Best regards

Hi @emily-crank,
once again thank you for your support. The fix has just been released in version 1.4.0.
Regards,
Artur


Site Request: Deadspin.com

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like that [x])
Use Preview tab to see how your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2<IP_ADDRESS>. If it's not read this FAQ entry and update. Issues with outdated version will be rejected.

[X ] I've verified and I assure that I'm running youtube-dl 2<IP_ADDRESS>

Before submitting an issue make sure you have:

[X ] At least skimmed through README and most notably FAQ and BUGS sections
[X ] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[ ] Bug report (encountered problems with youtube-dl)
[X ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

http://fittish.deadspin.com/pro-cyclist-crashes-spectacularly-into-snowbank-costs-1779152408
http://theconcourse.deadspin.com/bear-catches-belly-rays-1779158981
http://deadspin.com/russell-westbrook-tells-us-how-he-really-feels-about-st-1779124655
Playlist: n/a

Thanks
Ringo

@RingoTheDog Seems there's no video in the first example?
To developers: Custom YouTube embeds.

After "Instead, he quite literally rode right into it."

Alright, my ad blocker blocks it. It's a Twitter embedded.

no prob...and thanks!

BUMP
Hoping someone might be able to have another look at deadspin....
here is a more recent example URL:
http://screengrabber.deadspin.com/arena-football-play-so-bad-youll-forget-how-many-teams-1795612624
Thanks again
Ringo

Seems to use JW Player, which is also used by other supported sites already, as far as I know.

yes many of the vids use but JW Player...
http://screengrabber.deadspin.com/arena-football-play-so-bad-youll-forget-how-many-teams-1795612624  is JW Player
However: http://fittish.deadspin.com/pro-cyclist-crashes-spectacularly-into-snowbank-costs-1779152408 is a twitter embed (which points to: https://video.twimg.com/ext_tw_video/736192056104787972/pu/pl/1280x720/YUtVYgxkgcXmIcZc.m3u8)

Let's go to the archives an oldie but a goodie ;-)
Here is a new link:
https://deadspin.com/last-man-standing-in-bears-exhaustive-kicker-competitio-1837728402?jwsource=cl
youtube-dl.py` -v "https://deadspin.com/last-man-standing-in-be
ars-exhaustive-kicker-competitio-1837728402?jwsource=cl"
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', 'https://deadspin.com/last-man-standing-in-bea
rs-exhaustive-kicker-competitio-1837728402?jwsource=cl']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] youtube-dl version 2019.08.13
[debug] Python version 3.6.3 (CPython) - Windows-7-6.1.7601-SP1
[debug] exe versions: ffmpeg N-71727-g46778ab, rtmpdump 2.4
[debug] Proxy map: {}
[generic] last-man-standing-in-bears-exhaustive-kicker-competitio-1837728402?jws
ource=cl: Requesting header
WARNING: Falling back on generic information extractor.
[generic] last-man-standing-in-bears-exhaustive-kicker-competitio-1837728402?jws
ource=cl: Downloading webpage
[generic] last-man-standing-in-bears-exhaustive-kicker-competitio-1837728402?jws
ource=cl: Extracting information
ERROR: Unsupported URL: https://deadspin.com/last-man-standing-in-bears-exhausti
ve-kicker-competitio-1837728402?jwsource=cl
Traceback (most recent call last):
File "C:\Transmogrifier\youtube-dl.py\youtube_dl\YoutubeDL.py", line 796, in e
xtract_info
ie_result = ie.extract(url)
File "C:\Transmogrifier\youtube-dl.py\youtube_dl\extractor\common.py", line 53
0, in extract
ie_result = self._real_extract(url)
File "C:\Transmogrifier\youtube-dl.py\youtube_dl\extractor\generic.py", line 3
333, in _real_extract
raise UnsupportedError(url)
youtube_dl.utils.UnsupportedError: Unsupported URL: https://deadspin.com/last-ma
n-standing-in-bears-exhaustive-kicker-competitio-1837728402?jwsource=cl


[Help!!] how to use own object detection model..?

I'm not familiar to tensorflow and unity...
I wanna use pre-trained tensorflow model in zoo. (ssd mobilenet v2 coco)
But there are 5 files in coco model. (checkpoint, frozen_inference_gragh.pb, model.ckpt.data-00000-of-00001, model.ckpt.index, model.ckpt.meta)
I wanna .pb to bytes... but I don't know how to convert it.
I searched the information using google. It was told to use the freeze_gragh. I tried to use it. but I don't have .ckpt file... (I only have .ckpt.meta etc..)
How can I convert the file...?
ps. Exectly, What kind of model did you uesd?

Hi @YouMinJung,
I used ssd_mobilenet from TensorFlow examples.
You only need 2 files - frozen_inference_gragh.pb and file with labels. You simply have to rename the file to change .pb extension to .bytes, no need to convert anything.
Be aware that, as I mentioned in README, the performance of Detect sample isn't very good.


Plugin upgrades leave untagged layers

When a plugin automatically upgrades, docker untags the older image layers, leaving them labeled as <none>. This is an example of what we see when running docker images:
REPOSITORY  TAG         IMAGE ID        CREATED         VIRTUAL SIZE
<none>      <none>      a3599da68365    8 hours ago     15.6 MB
<none>      <none>      80e7709b7395    8 hours ago     15.64 MB
<none>      <none>      9e0802a7fe0b    25 hours ago    15.6 MB
<none>      <none>      e2c70e7e5329    29 hours ago    15.59 MB
<none>      <none>      0bc862fde87b    30 hours ago    15.59 MB

The can be removed with the following command:
sudo docker rmi $(sudo docker images -f "dangling=true" -q)

We should implement or document a strategy for dealing with these dangling images. We may implement something directly in drone. We may recommend a cron job. We may recommend running docker-gc [1] as a cron job.
[1] https://github.com/spotify/docker-gc

I would suggest integrate parts of https://github.com/rancher/sherdock into drone

@tboerger cool I'll definitely take a look at Sherdock. I think the regexp based option could be really interesting.
I should probably consolidate to a single issue, but my plan is expand our plugin model beyond just public / deploy / notify plugins. I'd like a POST_BUILD plugin (at the system level) that triggers when a build completes. It could be used to manage the size of the cache (#1160) or remove untagged image (#1193).
I'd like a POST_ACTIVATE plugin (also at the system level) that triggers when a repository is added to Drone. This could be used to automatically add .drone.yml files or badges the README (#1161).
These plugins would be optional and be declared in the dronerc file. Below is a contrived example to give you an idea of what I'm thinking:
POST_ACTIVATE=spotify/docker-gc --exclude plugins/* --max-size 10gb

I'd like to enable these sort of activities with the plugin model so that people can integrate whatever technologies or strategies they want into Drone, so that we don't force a one-size-fits-all strategy directly inside Drone :)

I'm going to close this in favor of docker system prune commands
https://docs.docker.com/engine/reference/commandline/system_prune/


is:issue is:open ERROR	controller.provisioner	Could not schedule pod, incompatible with provisioner "eng-node-group", incompatible requirements, label "eks.amazonaws.com/nodegroup" does not have known values;

Description
Observed Behavior: I am trying to apply provision-er and node-template, but every time am getting this error, please help on this.
We have 3 nodegroups on EKS cluster with different ami id.
apiVersion: karpenter.sh/v1alpha5
kind: Provisioner
metadata:
name: eng-node-group
spec:
requirements:
# Include general purpose instance families
- key: karpenter.k8s.aws/instance-family
operator: In
values: [t3a]
# Exclude small instance sizes
- key: karpenter.k8s.aws/instance-size
operator: NotIn
values: [nano, micro, small]
providerRef:
name: eng-node-group
ttlSecondsAfterEmpty: 30
apiVersion: karpenter.k8s.aws/v1alpha1
kind: AWSNodeTemplate
metadata:
name: eng-node-group
spec:
subnetSelector:
karpenter.sh/discovery: "cluster-name" # replace with your cluster name
securityGroupSelector:
karpenter.sh/discovery: "cluster-name" # replace with your cluster name
amiSelector:
aws::ids: "ami-id"
Expected Behavior:  Its should provision nodes, but its not working for any.
Reproduction Steps (Please include YAML):
Versions:

Chart Version: 1.26.1
Kubernetes Version (kubectl version): 1.22

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

If there's a label that Karpenter isn't aware what the values are, these labels need to be defined at the Provisioner-level. In this case, you need to add a requirment that looks like this into your Provisioner
requirements:
- key: eks.amazonaws.com/nodegroup
  operator: In
  values: <insert-expected-values-here>

Feel free to reopen if that didn't solve your issue!

@nandeeshb09 are you able to resolve this?


Fix GCC-6 benchmark error

Fixes #246 .

Ping @wolfv this was a pretty involved bug. As an optimization, GCC-6 was reusing the last std::array allocated on the stack to initialize the shape of an xtensor, which was causing calls to reshape to not see that the shape was different.


Split schemas by trialized vs. event-related experiments?

The current draft splits trialized and event-related experiments. trial would be activated if all events are tied to specific trials. event whould be activated if events occur independently of trials. The only difference is whether or not the schema.Event table inherits from a parallel Trial table or an upstream Session table.
Are there alternate conceptualizations of how schemas should be split?

Closed by PR 7


add a config option to suppress undefined prop warnings

replaces https://github.com/surface-ui/surface/pull/588

Hi @mayel!
Thanks for the PR.
Closing this now since we'll be using LV's declarative API soon so if something like that necessary, we'll have to implement it there.
Thanks again!


App crashes instantly on startup

After installing from the link provided, when the app is opened, the app briefly opens before crashing
No SocialX logo is displayed and no part of the app opens before the app closes
Steps to reproduce the behaviour:

Install the app from the link provided
Open the app
App crashes

The app should open, but does not
No screenshots available due to the nature of the bug crashing the app as soon as it opens
Smartphone

Device: motorola XT1052
OS: Android 4.4.2
RAM: 4 GB

Will do @Shadyzpop

@Shadyzpop I can only test with Android 5.1 Lollipop API 22 and it works.

@snowmanmedia  unfortunately we can't support Android versions from 2013 with SocialX. Please check if you can install the application on a more recent phone, thanks.


[ADD] Tech News

Category Name
Resources
Subcategory Name
Tech News
Additional Context

Hacker Tab is a handy extension designed to help developers stay up-to-date with the latest tech happenings. Whether you’re a frontend wizard, a backend sorcerer, a full-stack magician, a mobile app conjurer, or a data scientist spellcaster, Hackertab has got you covered! 🧙♂🔮
Reddit Programming
TLDR Newsletter
GitHub trending

Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I have checked that this category does not exist
[X] I have checked that this subcategory does not exist
[X] I am willing to work on this issue (optional)

Hey @JuanPabloDiaz you already have plenty of issues assigned to you so we're opening this issue for others to work on :)

I'll take this one if no one has.

Hi @cbid2
I'm reopening this issue because the PR associated with this is still open.


Refactor EventHandler class

This PR refactors the EventHandler class. It gets rid of the _callbacksActive property and generally simplifies the code but maintains the same behavior and (hopefully) the same performance.
It also lifts the limit on passing 8 arguments to an event handler.
I confirm I have read the contributing guidelines and signed the Contributor License Agreement.

@Maksims Do you have any thoughts on this change? I think you were the last person to make significant changes here. 😄

I'm very happy about this... nothing about the code made sense to me and I felt sure it's just technical debt... 4x senseless shallow array cloning etc.
Please make sure to fix this too:
https://github.com/playcanvas/engine/blob/3e550768b1901e35070e865c44f1e7bd618d9070/src/core/events.js#L14-L25

The current implementation focuses on a few major things: avoid V8 deoptimization due to the use of arguments keyword, and ensure there are no unnecessary allocations. And modifying callbacks during the execution of a callback is safe and has no magical behaviors.
This PR will introduce a lot of breaking changes due to the way the callback array is managed and can lead to infinite callback execution when within callback another event is added of the same name.
Also removing an event during event execution will lead to a change of handlers, which will not work as intended too.
A brutforce solution to this is to clone callbacks on each fire, which was the code before. And after memory and performance profiling we identified it to be a significant issue, so I've previously optimized this code to clone array only if the callbacks array gets modified during the execution of the callback.
This PR leads to breaking changes as it changes logic of callbacks execution.
If you still insist on these changes, please create a set of tests for the current implementation, and measure the memory and performance on large projects.

This PR will introduce a lot of breaking changes due to the way the callback array is managed and can lead to infinite callback execution when within callback another event is added of the same name.

I tried to test that, but I didn't see that happening:
animal = new GraphNode("cat");
animal.on("birth", () => {
  console.log("awww");
    animal.on("birth", () => {
      console.log("awww 2");
  });
});
animal.fire("birth");

Do you mean like that?

The old implementation is acting differently (not calling the newly added birth event:

Personally I've never come across this pattern of adding an event on itself with the same name on itself... is anyone doing this and what is the reasoning?
Not tested, but if we require this, instead of creating temporary arrays in multiple places which causes GC, we could save a version/id in the handler. If we call on, the id increases and the newly added callback has "id mismatch" - therefore not called, acting like the old version without GC issues.

Events in complex projects and in the engine, their flow of execution and nesting - can be deep and complex.
Often when we see an exception of an event, notice how many events deep it can be. There is no guarantee that developer will know this special rules, and especially facing an issue of infinite events, or trigger of event while somewhere down the line event was added - this is all "magical" and hidden behaviors from developer. And will be almost impossible to debug or understand without knowing implementation specifics.
Current implementation mitigates that, and have straight forward rules of execution of events, without magical behaviors that developer could stumble on.

The old implementation is acting differently (not calling the newly added birth event):

That is correct behavior. Only events that were present during fire should be triggered.

Not tested, but if we require this, instead of creating temporary arrays in multiple places which causes GC, we could save a version/id in the handler. If we call on, the id increases and the newly added callback has "id mismatch" - therefore not called, acting like the old version without GC issues.

This will not work when removing events within callbacks that were present during fire, they should happen still.

Yep, fully agree, I still have a feeling we dont need to cause GC for array cloning here and there.

Not tested, but if we require this, instead of creating temporary arrays in multiple places which causes GC, we could save a version/id in the handler. If we call on, the id increases and the newly added callback has "id mismatch" - therefore not called, acting like the old version without GC issues.

This will not work when removing events within callbacks that were present during fire, they should be triggered.

Right, this is also fixed when fixating n in the fire/for loop.

This will not work when removing events within callbacks that were present during fire, they should be triggered.

Yep, I didn't test that yet, but also agree that we require unit tests for this case.

Here is a quick description of "activeCallback" mechanics:
If we call fire, we do not clone an array of callbacks and go through its execution. We note by name that we are currently executing list of callbacks.
If at any point while there is active execution of callbacks we try to modify list of callbacks of that name (by calling on, once, off), then we ensure that currently executed list of callbacks elsewhere is cloned and continues on pre-modified list. Then list of callbacks is modified.
Benefits of this approach:

Eliminates cloning of callbacks list - that is a source of GC stalls.
Eliminates unintended magical behaviors that could have occurred if we would modify callbacks list during its execution (which is the case with this PR).
It performs better than brute-cloning of callbacks list when accounted for GC stalls performance hit.

This approach worked great for a very long time, and had no issues with GC, performance or bugs. Why change it?

This approach worked great for a very long time, and had no issues with GC, performance or bugs. Why change it?

It's kinda simple to proof, just replace every occurrence of:
this._callbackActive[name] = this._callbackActive[name].slice();

with:
this.causeGC(name);

and implement it:
    causeGC(name) {
        console.log("cause GC for", name);
        this._callbackActive[name] = this._callbackActive[name].slice();
    }

Test some code:

Looks like GC on every EventHandler#fire, right?

This approach worked great for a very long time, and had no issues with GC, performance or bugs. Why change it?

I attempted a refactor because:

The code is really hard to read and understand. This comment is concerning.
The use of an object essentially in place of a Map is bad practice - just use a Map. I won't go into why - lots has been  written about this.
I was curious to see if we could boost performance of this class (since it's called so frequently) but it's hard to iterate with optimization experiments when the code is so brittle and hard to follow.
It's a shame we impose a limit on arg count to event handlers.
We are proposing changes to event management with EventHandle so I thought it would make sense we revisited whether we had a solid foundation in the EventHandler class. And while I feel it works well, I don't think it's perfectly written.

Looks like GC on every EventHandler#fire, right? Of course we change the callbacks via on in this case, and usually it doesn't happen? But then again, we never really know, because:

Please read carefully the previous post:

If at any point while there is active execution of callbacks we try to modify list of callbacks of that name (by calling on, once, off), then we ensure that currently executed list of callbacks elsewhere is cloned and continues on pre-modified list. Then list of callbacks is modified.

The Solution before this optimization was cloning on every fire. Not cloning the callbacks array - will lead to infinite callbacks and unintended or missed callbacks.

The code is really hard to read and understand. This comment is concerning.

The comment is:
// TODO: What does callbacks do here?
// In particular this condition check looks wrong: (i < (callbacks || this._callbackActive[name]).length)
// Because callbacks is not an integer

The condition is not wrong, the commenter missread the code. There are brackets around two objects. It will either do callbacks.lenth or this._callbackActive[name].length if callbacks is falsy.

2. The use of an object essentially in place of a Map is bad practice - just use a Map. I won't go into why - lots has been  written about this.

Sure, we can replace objects with Maps if it is beneficial.

3. I was curious to see if we could boost performance of this class (since it's called so frequently) but it's hard to iterate with optimization experiments when the code is so brittle and hard to follow.

Good intent. The current implementation has boosted the performance and GC footprint a lot when we moved away from "always cloning" of callbacks. If this PR is updated to ensure backward compatibility and the same events execution behavior, then will be great to see a performance comparison.

4. It's a shame we impose a limit on arg count to event handlers.

I don't see a reason not to increase that number. Using arguments will decrease performance as it requires casting it into an array, and as mentioned before, still is in lists of V8 deoptimizations.

5. We are proposing changes to event management with EventHandle so I thought it would make sense we revisited whether we had a solid foundation in the EventHandler class. And while I feel it works well, I don't think it's perfectly written.

It was written around 8 years ago. We had more ES5 strict rules at the time. I can make a PR to use more modern features while preserving functionality and existing optimizations. With performance tests.

Closing for now as per @willeastcott


api get orders for the logged vendor and update status, and tests

Codecov Report
Attention: Patch coverage is 91.66667% with 4 lines in your changes missing coverage. Please review.

Project coverage is 89.35%. Comparing base (0135231) to head (24e43cf).

Files with missing lines
Patch %
Lines

services/orders-service.js
85.00%
2 Missing and 1 partial :warning:

routes/orders.js
96.15%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #30      +/-   ##
==========================================
+ Coverage   88.75%   89.35%   +0.59%
==========================================
  Files          33       35       +2
  Lines         507      554      +47
  Branches       51       56       +5
==========================================
+ Hits          450      495      +45
- Misses         55       57       +2
  Partials        2        2

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Menu Entry Swap for NPC Contact

Would it be possible for a menu entry swap for NPC contact, so it contacts your previous NPC on left-click insted of having to right-click for previous NPC?
Thanks

Yes. It would probably be best to make it shift-click similar to how we swap the teleport destinations.

Okay thank you, also with the new options added today to eat/drink in bank interface, could we possibly get shift click options for these? Aswell as filling essence pouches?

That is a separate issue, both of which have already been created.

I don't know if this is the best place for discussion, but can I ask your reasoning for making this a shift-click?


Add lint command to Travis

Removed from #474 in order to let that pass. This change will not pass CI until #474 is merged and linting errors are fixed, at which point it should be merged and kept there to keep the code nice and clean.

See #607


Weave Scope queries repeatedly for DNS name "true"

I start Weave Scope as per instructions on https://www.weave.works/documentation/scope-latest-installing with:
version: '2'

services:
 scope:
  image: weaveworks/scope
  command:
  - "--probe.docker"
  - "true"
  privileged: true
  container_name: weavescope
  network_mode: "host"
  pid: "host"
  volumes:
  - /var/run/docker.sock:/var/run/docker.sock
  restart: always

When I do sudo tcpdump -v port 53 -i eth0 I see the following DNS messages.
13:28:40.762241 IP (tos 0x0, ttl 64, id 56717, offset 0, flags [DF], proto UDP (17), length 57)
    xxxx.51772 > yyyy: 23616+ AAAA? true.tno.nl. (29)
13:28:40.762319 IP (tos 0x0, ttl 64, id 56718, offset 0, flags [DF], proto UDP (17), length 57)
    xxxx.49673 > yyyy: 63954+ A? true.tno.nl. (29)
13:28:40.764365 IP (tos 0x0, ttl 125, id 17841, offset 0, flags [none], proto UDP (17), length 122)
    yyyy > xxxx.49673: 63954 NXDomain 0/1/0 (94)
13:28:40.764393 IP (tos 0x0, ttl 125, id 17842, offset 0, flags [none], proto UDP (17), length 122)
    yyyy > xxxxl.51772: 23616 NXDomain 0/1/0 (94)
13:28:40.764588 IP (tos 0x0, ttl 64, id 56719, offset 0, flags [DF], proto UDP (17), length 50)
    xxxx.49528 > yyyy: 26105+ AAAA? true. (22)
13:28:40.765360 IP (tos 0x0, ttl 64, id 56720, offset 0, flags [DF], proto UDP (17), length 50)
    xxxx.50258 > yyyy: 22506+ A? true. (22)
13:28:40.770368 IP (tos 0x0, ttl 125, id 17845, offset 0, flags [none], proto UDP (17), length 50)
    yyyy > xxxx.49528: 26105 ServFail 0/0/0 (22)
....

My company's DNS server is "bombarded" with these DNS queries, because this goes on forever.
How can thsi be resolved?
What is the meaning of the option "true" in the container command?

Our bad, it should be "--probe.docker=true", in a single line.
I will make sure this is fixed.

Ok, that is clarified :+1:
Related question - while on topic - : how can a list of hostnames be passed into scope (i.e. where peer scope instances run) ?   And/or will scope discover these itself in case Weave neyworking is used.

how can a list of hostnames be passed into scope (i.e. where peer scope instances run) ?

I am not sure I understand what you mean. Can you please clarify?

will scope discover these itself in case Weave networking is used.

Yes, it will

In scope launch I can add a list of IP addresses. Where can I put that list in the Compose file?

I see that the issue is closed, but still some follow up:
I still see that scope repeatedly queries the DNS server (roughly every 10s) for the hostnames I provided in the compose file.  Doesn't scope cache the IP addresses, so it only has to query once?
Compose file:
services:
 scope:
  image: weaveworks/scope
  command: --probe.docker=true app-docker01 app-docker02 app-docker03 app-docker04 app-docker05
  privileged: true
  container_name: weavescope
  network_mode: "host"
  pid: "host"
  volumes:
  - /var/run/docker.sock:/var/run/docker.sock
  restart: always

In scope launch I can add a list of IP addresses. Where can I put that list in the Compose file?

At the end of the command section (where "true" was incorrectly placed)
version: '2'

services:
 scope:
  image: weaveworks/scope
  command:
  - "--probe.docker=true"
  - <target1>
  - <target2>
  - <target3>
  privileged: true
  container_name: weavescope
  network_mode: "host"
  pid: "host"
  volumes:
  - /var/run/docker.sock:/var/run/docker.sock
  restart: always

Doesn't scope cache the IP addresses, so it only has to query once?

Querying repeatedly is intentional. 10s seems reasonable, why is that a problem?

It eats away some CPU time and networking comms, which is not needed if you would cache the IP address after the first query. Hosts won't change IP address that quickly.
And my company's system admin was actually complaining :-).

It eats away some CPU time and networking comms

That should be negligible

And my company's system admin was actually complaining

What was the complaint exactly? The traffic?

Yep :-).


{Doc} Update doc for hotfix PR

Description
Update doc for hotfix PR to describe the correct workflow to merge release back to dev.

The CI check fails because the title contains the word "hotfix":

Hotfix PR should target release branch.

Doc


Window blur and focus events in headful/headless mode

Puppeteer doesn't have any page method to simulate or dispatch blur and focus window events.
I was trying to evaluate window.focus(); and window.blur(); but event was not fired.
I was trying to dispatch:
const event = document.createEvent('Event');
event.initEvent('blur', true, false);
window.dispatchEvent(event);

Of course event is not trusted after manual dispatching.
After my PR we have bringToFront method, which can help with focus in headful, but what about headless. Any suggestions or ideas?

+1


Hotfix: Disable tests parallelization in strongbox-storage-api.

Pull Request Description
This pull request disables tests parallelization in strongbox-storage-api module, in order to solve unstability in master branch.
Relates to issue #950
Acceptance Test

[x] Building the code with mvn clean install -Dintegration.tests still works.
[x] Running mvn spring-boot:run in the strongbox-web-core still starts up the application correctly.
[x] Building the code and running the strongbox-distribution from a zip or tar.gz still works.
[x] The tests in the strongbox-web-integration-tests still run properly.

Questions

Does this pull request break backward compatibility?

[ ] Yes
[x] No

Does this pull request require other pull requests to be merged first?

[ ] Yes, please see #...
[x] No

Does this require an update of the documentation?

[ ] Yes, please see strongbox/strongbox-docs#{PR_NUMBER}
[x] No

Thanks, Pablo!


Add RESTful API for Pipeline read feature.

Fix Issue #9

I'm merging this but we must change these APIs after 0.1.0, exposing the pipeline data model as nothing more than a representation of what is configured on disk I don't think is terrifically useful.
For example, the "environment" in a response should really be a full Environment model, which is going to necessitate #62 being merged and some refactoring going on.


Plugin resolveFileUrl hook is not getting called.

⚠ IMPORTANT ⚠ Please check the following list before proceeding. If you ignore this issue template, your issue will be directly closed.

[x] Read the docs.
[x] Use Vite >=2.0. (1.x is no longer supported)
[x] If the issue is related to 1.x -> 2.0 upgrade, read the Migration Guide first.

Describe the bug
With Vite v1, when building production application, it was generating import statement with absolute paths when importing chunks like import { a } from '/_assets/chunk.d5k56.js'.
With Vite v2, it now generates it with relative paths import { a } from './chunk.d5k56.js'.
That's a breaking change for us (we could add that to the docs).
But I figured: OK I'll probably need to add a micro plugin to convert it back to absolute paths. So I went ahead and thought resolveFileUrl is what I needed, but it does not seem to be triggered at all.
Reproduction
https://github.com/AlexandreBonaventure/vite-resolve-file-hook
run yarn build and see that console.log statements are not showing up.
System Info

vite version: 2.0.0-beta.31
Operating System: Mac OS
Node version: 14
Package manager (npm/yarn/pnpm) and version: yarn v1

Why would this be a breaking change?

Why would this be a breaking change?

because we are using an embedded vite app in an android framework that is intercepting request to serve local files accordingly

because we are using an embedded vite app in an android framework that is intercepting request to serve local files accordingly

I don't think resolveFileUrl should be called as you expected - it only affects files created via this.emitFile and won't affect split chunk imports.
The relative chunk import statements are generated by Rollup, and Vite doesn't really have control over that. I'm actually surprised that Vite 1 generated code like that.

I don't think resolveFileUrl should be called as you expected - it only affects files created via this.emitFile and won't affect split chunk imports.
The relative chunk import statements are generated by Rollup, and Vite doesn't really have control over that. I'm actually surprised that Vite 1 generated code like that.

yeah that's odd... I thought exactly the same thing at the beginning, and my colleagues realized the URL paths changed after switching to v2

It may have to do with entryFileNames and chunkFileNames... you can try tweaking those.

Honestly I don't know if this fixable from within vite - I think your best bet is a custom rollup plugin that in renderChunk, use es-module-lexer to parse for relative imports and rewrite them.

Honestly I don't know if this fixable from within vite - I think your best bet is a custom rollup plugin that in renderChunk, use es-module-lexer to parse for relative imports and rewrite them.


Move Modules to Shared Library Part 3 of 3

Acceptance Criteria

[x] Move modules for EDSC (SIN validation, pt/ft msfaa, pt/ft ecert, pt/ft feedback file, daily disbursement file (receipt), DailyDisbursementReport (send daily disbursement file to FIN), federal restrictions)
[x] Create scheduler for EDSC (SIN validation, pt/ft msfaa, pt/ft ecert, pt/ft feedback file, daily disbursement file (receipt), DailyDisbursementReport (send daily disbursement file to FIN), federal restrictions)
Ensure naming conventions use part time and full time

done

process SIN
response SIN
PT MSFAA request
FT MSFAA request
PT MSFAA response
FT MSFAA response
PT E-Cert
FT E-Cert
PT Feedback file
FT Feedback file
FT disbursement receipt
FIN
Fed restriction

Added DailyDisbursementReport (send daily disbursement file to FIN) to the AC as  it is tightly coupled with disbursement receipt processing and needs to be moved together.

All integration were tested without files, are all were working as before.
there was a bug in ECert integration, it was fixed,


Support indirect circular component ref

What: Fix for issue #583

Why: Avoid StackOverflowError for indirect component cycles

How: Updating the cyclReference check

Checklist:

[x ] Documentation added to the README.md OR link to PR on https://github.com/specmatic/specmatic-documentation
[x] Tests
[ ] Sonar Quality Gate

Issue ID:
Closes: #583

@westse Thank you for raising this PR. I will test this and merge the same shortly.

Looks good to me.


Update Paulson's logo

I edited an existing logo as a placeholder, paulson's just delivered the logo we should be using. May need to have aspect ratio changed.

I'm guessing they don't sponsor any longer.


Intermittent EPERM when running the test suite on Windows

https://github.com/mochajs/mocha/blob/0a93024b475e58e75c5def6b2f5228bd363874de/test/integration/reporters.spec.js#L53 gets a spurious EPERM error trying to unlink the temporary file about half the time. Should we try graceful-fs here? Or would it suffice to try-catch the error and make multiple unlink attempts if necessary?

outdated


Filename argument to verbose argument

Filename argument is mentioned twice in readme but I assume the latter one should be verbose

Thanks for the update!


Getting nested key from Firebase Data

My Firebase Data is follows

I am using Angular2 + Firebase
from activatedRoute in my application i get unique id -Kar2tyvPZcu15y_1bWF
now i want to get that object
CODE::

      export class MyProjectComponent {
        sub: any;
        db;
        project;
        constructor( private route: ActivatedRoute, af: AngularFire) {
          this.route = route;
          this.db = af.database.list('projects');
          console.log("Database " + this.db);
        }

        ngOnInit() {

          this.sub = this.route.params.subscribe(params => {
          let id = params['id'];
          console.log("ID " +id);
        });

        this.db.map( projects => {
          const filtered = projects.filter(project => project.uid=== '-KamS40N02VGAZmmRWBF');
          console.log("Filtered "+filtered);
          this.project = filtered;  })

        }

      }

But this is not working, even console.log not outputting anything.
Basically based on a UID, i want to grab an object which is nested 2 levels deep,
my object can be in projects/base or projects/personal or projects/pro or projects/social
For single level depth its good: i can use af.database.list('projects/base/${UID}'); but i dont know where is my object i can be in either of base,personal,pro,social which are child of projects...
I can flatten my data Structure, but still how to get this done...

All issues have to follow the issue template provided. I understand this is asking a lot and is generally annoying when you feel your question is straightforward, but just trust that it's critical to keep things streamlined and manageable for our team. I'm closing this for now because it doesn't adhere to these requirements. Feel free to resubmit according to the template, being absolutely sure to include a working, minimal repro of the problem and version info.
Note that how-to questions like this one are better suited for Stack Overflow or a discussion group.


first sketches towards a wikinews scraper

The idea is to create a scraper that can read the last N days of WikiNews and insert them as articles.
Things left to do:

Scrape categories
Insert article into the DB (they're inserted by not displaying as expected)
Assign appropriate categories
Figure out how to do a summary (first <p>, first two <p>s?)
Create proper command entry point

Nice to have:

Extract image info and create the proper semantic relationship via related_content

FYI: I've put this inside [armstrong.cli.experimental] for the time being.  I'm going to close this branch and we'll possibly merge it in once it's stabilized.


add compound files and markdown content

This PR does a few things.  Closes #16

adds data/validate/compound.tsv which is small-ish dataframe with ids and descriptions for about 4000 compounds. It is 6 MG in size, compared to the 14GB file in OSF. This tsv file only contains info about compounds associated with files in the portal
adds data/input/compound_IDs.tsv, which is a list of compounds in the portal that also have descriptions in the above file
adds new snakemake rules

The markdown content generated looks like this: External links: More information is available on the NCBI PubChem page for compound 1978.

Currently, adds a sentence starting with "External links: ..." to either GlyGen or PubChem page.

I have updated the markdown text for Glycans so now it looks like this

added glycan images and links for compounds referred to by compound id

summary of annotations on staging

would like to figure out how to reduce drug image but oh well.
need to merge #46 first, then fix conflicts


Scheme Interference in GPC signal recording [Scheme 6]

We observed that GPC current page setting in scheme 6 is sometimes recorded as "false" but it should always be "unset". This indicates that code for other schemes are interfering with scheme 6.

If this issue is fixed, the description of this quirk in the readme under "7. Known Issues" needs to be modified or deleted.


Terminal logs "Modal failed :/" when clicking select buttons, and no selection window is opened

The title says it all. I am running as root.
Log in case you need it:
exerhythm@MacBook-Pro-2017 MacOS % sudo /Applications/iPAPatcher.app/Contents/MacOS/iPAPatcher
Modal failed :/

What macOS version?

macOS Catalina, latest one

Oh, I just restarted my MacBook and everything works now. The power of restarting, I guess...


MySQL dialect to sql type text

== About varchar(N) type in MySQL ==
N is number of characters.
A varchar column can store up to 65535 bytes.
Remember that 1 character is more than 1 bytes. (i.e. 3 bytes in utf-8 charset.)
Also remember that each row can store up to 65535 bytes, and you have some overheads, so it's not possible for a varchar column to have 65535/3 characters (in case of utf-8) really.
So it would be better to use 'text' type in stead of large varchar type.

I would be happy to merge this PR, but could you please:

Add a test case for varchar vs text
Squash commits
Rebase this PR on master (we've deprecated the develop branch, sorry)

Thanks!

I'll merge these now without test case, that will come in v2-phase3 (see #270).

Merged as 0ca02be3238d9c48a9ab715870354e7acdf063ba


Examples Error: Non-frozen UDTs are Not Supported

Running the samples in cdrs/examples/crud_operations.rs against Scylla 3.0.10-0.20190815.b3bfd8c08 returns:
thread 'main' panicked at 'Table creation error: Server(CDRSError { error_code: 8704,
message: CString { string: "Non-frozen User-Defined types are not supported, please
use frozen<>" }, additional_info: Invalid(SimpleError) })', src/libcore/result.rs:999:5

Hi @wwwesleyyy,
I think we may want to add a separate e2e test step for Scylla to make sure we keep Scylla support.
This is something that we are missing in the CI


Enhanced the CODE_OF_CONDUCT Guidelines

I have enhanced/improved the CODE_OF_CONDUCT Guidelines via updating the CODE_OF_CONDUCT.md file. Making it more clear/comprehensible for the users, ensuring that users can easily access and understand the CODE_OF_CONDUCT instructions information.
I have also corrected the minor grammatical errors etc. that were present in the file previously.
@kevwan
Kindly review my PR and merge it please.

Please update to the official version 2.1.

Please update to the official version 2.1.

@kevwan
I have made the changes as per your request.
Kindly review and merge my PR please.

Please use this one.
https://www.contributor-covenant.org/version/2/1/code_of_conduct/

Please use this one.
https://www.contributor-covenant.org/version/2/1/code_of_conduct/

@kevwan
I have made the changes as per your request.
Kindly review and merge my PR please.

Why not use the content from https://www.contributor-covenant.org/version/2/1/code_of_conduct/code_of_conduct.md directly? Is there any important changes that we need to notice?

Why not use the content from https://www.contributor-covenant.org/version/2/1/code_of_conduct/code_of_conduct.md directly? Is there any important changes that we need to notice?

@kevwan
It's right that we can use the https://www.contributor-covenant.org/version/2/1/code_of_conduct/code_of_conduct.md directly without any major changes.

Thankyou @kevwan for merging my pull request.


Getting IO exception while creating field level security for a new field

IO Exception: Read timed out
at Class.MetadataService.MetadataPort.updateMetadata: line 10070, column 1

This Apex API is actually wrapping an underlying HTTP callout to the Salesforce Metadata API which is a SOAP based Web Service. In Apex when you make a HTTP callout the platform puts limits on how long it will wait for a response. This is the limit you have hit. As per the docs you can change the default timeout from 10 seconds upto a maximum of 120 seconds. Take a look at this https://github.com/financialforcedev/apex-mdapi/issues/77 for more information on how to do that.


Obs data for recipe_anav13jclim.yml

Hello,
I'm trying to run the recipe "recipe_anav13jclim.yml" and I have some issues trying to collect all the observational data needed.
Without redownloading everything from each individual data source, I imagine somebody gathered the data somewhere to test the recipe. Would it be possible to point me to a place where I could obtain the data (cmorized or not)? Else, if you have the list of access points from where to download each dataset, that would also be appreciated.
@mattiarighi @schlunma : I see you are the authors of https://github.com/ESMValGroup/ESMValTool/blob/90eaba9156b5f13d98ba2bc206b1e80277e1b025/doc/sphinx/source/recipes/recipe_anav13jclim.rst . Would you be able to help me with this?
Thank you very much in advance,
Best regards,

Are you running the recipe on your own computer, or on a scientific compute cluster?
Note that we also have some work in progress to make it easier to download observational datasets: https://github.com/ESMValGroup/ESMValTool/pull/1657

Thanks for your prompt reply! I'm working on a scientific cluster.
Actually I'm working together with @jvegasbsc who just pointed me to https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/cmorizers/obs in which there seems to be indication on how to download most of the observations used in this recipe. So now that I have more detailed instructions on each sources in the comments of the different python scripts. I'll do the download by hand from there. I was aware of #1657 but this doesn't seem to be exactly what I needed yet.
Thank you.

Which cluster are you on? We have a common pool of downloaded data available on a few systems @valeriupredoi, @mattiarighi or @bjoernbroetz might be able to tell you more about that.

Documentation on how to run the cmorizer scripts can be found here: https://esmvaltool.readthedocs.io/en/latest/input.html#using-a-cmorizer-script, but indeed information on how to download is still missing from the documentation on readthedocs #1219.

Apart from the BSC facilities, I have access to Jasmin for example.

Great, in that case @valeriupredoi should be able to help you out!

Thanks! I got access the esm(e)val workspace on Jasmin (/group_workspaces/jasmin4/esmeval/obsdata-v2) on Friday but could only find the data from CRU and HADISST, so I started contacting the different providers, based on the information from https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/cmorizers/obs but if the whole data is available somewhere on Jasmin, I'll be very happy to access them from there.

Ping @valeriupredoi Could you please have a look at this?

Hi @pabretonniere, is the OBS data access still an issue? I see that the recipe_anav13jclim.yml requires quite a few different OBS datasets. While the Tier2 should be available on Jasmin, the Tier3 ones are not. And several of the Tier3 datasets unfortunately do not have an auto-downloader script so the new CMORizer interface is not solving your issue fully. Please let us know how we can help or if this issue can be closed. Thanks 👍

Hi @remi-kazeroni
From what I remember, I found a way to download the datasets "manually" contacting the different providers. Nothing very fancy but I managed to get the data, pseudo cmorize them and run the recipe.
We can close the issue.
Thanks


Int test function propogation

I originally tried implementing a check for this via cdrs-tokio or cassandra_cpp but found there was no way to hit a specific node via those drivers.
Instead I ended up finding the desired functionality already implemented in the scylla rust driver.
I have no problems adding it to our dependencies as it would be nice to eventually add it to the list of drivers that our int tests abstract over.
I had to remove test::functions test cases from the TLS cases as scylla doesnt seem to support TLS? But thats not really a problem as the TLS tests are just duplicating the regular test logic in the hope of catching some absurd edge case, but such an edge case would be truly absurd.
I have been able to reproduce the failure locally without this change.
I have not been able to reproduce the failure with this change.

But thats not really a problem as the TLS tests are just duplicating the regular test logic in the hope of catching some absurd edge case, but such an edge case would be truly absurd.

I feel like we are tempting fate with this sentence 🤣
LGTM


Call to static::EXTRA_METADATA_FIELDS fails if class is extended

Not sure if this is intentional or not, but in the function below:
    private function extractExtraMetadata(array $metadata): array
    {
        $extracted = [];

        foreach (static::EXTRA_METADATA_FIELDS as $field) {
            if (isset($metadata[$field]) && $metadata[$field] !== '') {
                $extracted[$field] = $metadata[$field];
            }
        }

        return $extracted;
    }

The code is referencing static::EXTRA_METADATA_FIELDS, which is now a private property. Any class that extends this thus doesn't have access to that property and thus has to be redundantly defined in the extended class.
If the intent is to have this be fully internalized, perhaps this should be referring to self::EXTRA_METADATA_FIELDS instead.

I've opened !302 to fix this. In the meantime I had to copy the array to my extending class.


omitted unneeded content in abstracts

Throughout our migration docs, we have a redundant way of saying "projects in v1 devfiles still work in v2 devfiles." I went through our migration docs and removed this unnecessary phrasing. We can continue to  improve expand upon our abstracts in later PRs.

@tstastna good question :) The information I removed is unnecessary, so no need to preserve. But there have definitely been other PRs where I did have to preserve content I removed, so good catch!