UT case fail because of cpu's nll_loss2d backward

🚀 The feature, motivation and pitch
Ut case <test_comprehensive_nn_functional_nll_loss_xpu_float16> fail because of cpu's nll_loss2d backward.We should try this ut when we implement xpu nll_loss2d op.
Alternatives
No response
Additional context
No response

@huaiyuzh Please update your latest findings.

The issue is accuracy issue.
The case test_comprehensive_nn_functional_nll_loss_xpu_float16 failed in calling nll_loss2d_backward. xpu result is: 0.04122925, cuda and cpu is: 0.04119873, atol is 1e-7. We have two findings: 1) the atol of nll_loss2d_forward is just 1e-2 as below: (torch.float16, torch.ops.aten.nll_loss2d_forward.default): 1e-2, so we think the atol of backward is too high, maybe we can enlarge the atol value of nll_loss2d_backward like nll_loss2d_forward. 2) If we use compile option O0 instead of O3, xpu and cuda can the same precision, that is 0.04119873. We know that there are some optimization bugs when the xpu compiler processes +-*/ of float16 and bfloat16, I tried to use volatile in nll_loss2d_backward kernel, but it had no effect and I still could not get the same precision as cuda.
failure:
RuntimeError: Difference from float64 is larger with decomposition nll_loss2d_backward.default than original on output 0. Original max diff: 1.1224856321843946e-05, Decomp max diff: 1.9292721803156054e-05
atol = 1e-07
args = (tensor(-0.20202637, device='xpu:0', dtype=torch.float16), tensor([[[[ 4.82031250,  7.34765625],
[-3.37109375, -1.95019531]],
[[ 3.78320312, -2.43359375],
[-6.07812500,  5.32812500]],
[[ 5.48046875,  2.64257812],
[-4.53515625,  8.69531250]]],
[[[-5.35937500, -6.23437500],
[ 6.59765625,  3.07812500]],
[[ 6.54687500,  7.01171875],
[ 1.90234375, -6.60937500]],
[[ 2.91992188,  2.51171875],
[ 5.06640625, -0.78613281]]]], device='xpu:0', dtype=torch.float16,
requires_grad=True), tensor([[[1, 0],
[1, 0]],
[[0, 1],
[0, 0]]], device='xpu:0'), tensor([-3.88281250,  0.12963867,  6.82031250], device='xpu:0',
dtype=torch.float16), 1, -100, tensor(-19.03125000, device='xpu:0', dtype=torch.float16))
kwargs = {}
output:
atol:1e-07
orig:tensor([[[[ 0.00000000,  0.04122925],
[ 0.00000000,  0.04122925]],
[[-0.00137711,  0.00000000],
[-0.00137711,  0.00000000]],
[[ 0.00000000,  0.00000000],
[ 0.00000000,  0.00000000]]],
[[[ 0.04122925,  0.00000000],
[ 0.04122925,  0.04122925]],
[[ 0.00000000, -0.00137711],
[ 0.00000000,  0.00000000]],
[[ 0.00000000,  0.00000000],
[ 0.00000000,  0.00000000]]]], device='xpu:0', dtype=torch.float16)
ref:tensor([[[[ 0.00000000,  0.04121802],
[ 0.00000000,  0.04121802]],
[[-0.00137618,  0.00000000],
[-0.00137618,  0.00000000]],
[[ 0.00000000,  0.00000000],
[ 0.00000000,  0.00000000]]],
[[[ 0.04121802,  0.00000000],
[ 0.04121802,  0.04121802]],
[[ 0.00000000, -0.00137618],
[ 0.00000000,  0.00000000]],
[[ 0.00000000,  0.00000000],
[ 0.00000000,  0.00000000]]]], device='xpu:0', dtype=torch.float64)
decomp:tensor([[[[-0.00000000,  0.04119873],
[-0.00000000,  0.04119873]],
[[-0.00137615,  0.00000000],
[-0.00137615,  0.00000000]],
[[ 0.00000000,  0.00000000],
[ 0.00000000,  0.00000000]]],
[[[ 0.04119873, -0.00000000],
[ 0.04119873,  0.04119873]],
[[ 0.00000000, -0.00137615],
[ 0.00000000,  0.00000000]],
[[ 0.00000000,  0.00000000],
[ 0.00000000,  0.00000000]]]], device='xpu:0', dtype=torch.float16)
FAILED

According to @huaiyuzh it is not ARC specific issue. IGC optimization on data type promotion.

will be tracked in #754


nullable ascription date when vehicle is imported but not sold yet

Proposed Changes

Ascription date is nullable

Related Issues

(Github link to related issues or pull requests)

duplicate of #416

Hi @frenck I understand the duplicate and that it is waiting for tests, but I can’t contribute to an existing PR of someone else, right? Can I include all changes of 416 including tests and create that as PR?


Change help msg first line?

When using the help command, it says...
> help
Welcome to Nushell.

Perhaps it should instead say "Welcome to couchbase.sh (powered by Nushell)" or equivalent to be less confusing?

Just had a quick look into this. We'll need to either write our own help command or make some modifications to nu to do it (that string is hardcoded into the nushell help command) but I'm unsure we could continue to support help commands correctly without going the modifying nu route.

> help
Welcome to Couchbase Shell, powered by Nushell. Shell Yeah!


Introduce toothpick-reflect

The idea is to avoid annotation processing, especially for kotlin & java/kotlin projects.
The artifact can replace toothpick's fast implementation (relying on annotation processing) for an alternative reflection based implementation to speed development cyles.
See https://github.com/JakeWharton/butterknife/tree/master/butterknife-reflect for more info.
Thx Butterknife team for this idea and Samuel Guirrardo Navarro for letting us know about it.

Really great idea! Any progress / drafts on this?

We won't have time to work on this before next year.
We are actually trying to see if we can remove registries from TP for the
version 2.
After that we will have more clear ideas on what are the things to be done
in next version.
Stéphane
Le mar. 20 nov. 2018 à 00:19, Paul Woitaschek<EMAIL_ADDRESS>a
écrit :

Really great idea! Any progress / drafts on this?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/stephanenicolas/toothpick/issues/310#issuecomment-440183515,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABv33Uwg5QQzvYtfyXySsWgl8VkyIO03ks5uw7spgaJpZM4X9OYA
.

Actually, it's more complicated than that.
we are looking to make TP2 incremental for annotation processing. So for
java it will be much faster.
But for Kotlin, we need to evaluate how much we still need to optimize TP2,
especially for mixed java / kotlin sources, then
a reflect version would be needed if the incremental annotation processing
is not fast enough.
Le lun. 26 nov. 2018 à 10:27, Paul Woitaschek<EMAIL_ADDRESS>a
écrit :

I think this feature is the one that should really give this library
traction:
Having dependency injection but not suffering from endless build times.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/stephanenicolas/toothpick/issues/310#issuecomment-441745428,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABv33QnJu1EsQfqzEwruF8opJUACZC1Yks5uzDJ5gaJpZM4X9OYA
.

We are delaying any work this because of a few things:

android studio 3.3. provides an experimental setting "Skip source generation on gradle sync if a project has more than X modules". This settings means that annotation processing is not impacting syncs anymore.
TP 2 supports incremental annotation processing
kotlin compiler will soon support incremental annotation processing

And overall tp-reflect would remain a different implementation which would entail more maintenance and some troubles to be consistent between the 2 implementations.
We close this issue.

Here is a rough implementation of toothpick-reflect for Toothpick 1.1.3: https://github.com/lukaville/toothpick-reflect

@lukaville , that's impressive. What do you think of submitting a PR on TP.
There seems to be quite some good stuff in your implementation, a few things we might have done a bit differently but overall, yes, interesting stuff.
Do you think you could make it match TP 2, getting rid of registries for the most part ? And we could use your PR as a basis for TP-reflect. The work will be slow on our side but we can definitely have a look at it.
One of the things I was considering doing is to use TP inside TP so that we would be able to change the implementation of the factories and the member injectors (using generated code or reflection).
But very honestly, I am still wondering if this all is a good approach as explained above. It's definitely interesting but also still very annoying to have to maintain 2 implementations of a lib...
Anyway, great work !


Wiki page on Fairness no longer accurate

The wiki includes a page on queue fairness, based on a blog post I wrote. I believe the page was accurate at the time it was posted, but I no longer stand by my conclusions, partly due to performance optimisations between the HikariCP 2.3 and 2.4 branches.
HikariCP 2.4 introduced a new synchronizer in ConcurrentBag. This new synchronizer is undoubtedly faster, but this comes at the expense of fairness. This is borne out by tests - I re-ran the tests with HikariCP 2.4.1, which produced the following graph, showing the divergence between the order in which borrow attempts are made, and satisfied.

Based on this, I'd no longer support the assertion that HikariCP is "nearly fair".
It's also been my experience that re-running the test with older versions of HikariCP on newer versions of Oracle JDK leads to less fairness - I'd speculate they've added some sort of thread affinity on compareAndSet, which would make "nearly fair" implementations less fair.

@jamespic Thanks for the update.  Would it be too much trouble to ask to run the same test on 2.4.2-RC2?  While I don't expect a significantly different result from 2.4.1, there were some minor changes in the ConcurrentBag hotpath and I would be curious about the effect, if any.

Absolutely. Here are three runs with 2.4.2-RC1:

And for comparison, ArrayBlockingQueue:

The results look interesting to me. My instinctive guess was that the removal of the hasQueuedThreads check around the fast-path acquire would make it less fair, but I can't see a clear winner. It might be fun to try sticking some instrumentation in, to see which paths are being used, or to come up with an objective measure of fairness.
Of course, the test is designed to maximise the odds of the releasing thread barging, so it'll highlight even fairly minor unfairness. In most real-world applications, the releasing thread wouldn't try to immediately re-acquire a connection.

@jamespic Thanks for the update.  Very interesting!  What Java version, and what OS did you run the harness on?

This was on Oracle Java 1.8.0_25, Windows 7, Intel Core i7. Haven't tried it under Linux yet.

@jamespic I made some minor changes in my own fork.  The results are more consistently fair, at least on my iMac (Intel Core i5) with Java 1.8.0_60, but every few runs I get a skewed result.
Also running with:
export MAVEN_OPTS=-Xmx4g -Xms4g
mvn exec:java -Dexec.mainClass="com.trustiv.barge.Barge"

to avoid garbage collection during the run.

Yes, using a full HikariDataSource is likely to be more realistic, and I'd suspect reduce the amount of unfairness - the more clock cycles are elapsed between releasing and acquiring connections, the less chance for barging.
And in truth, unfairness isn't that big a deal. Especially since AbstractQueuedLongSynchronizer unparks threads fairly, so in most highly contended cases (where all waiters are parked) there'll be minimal unfairness.
So I'd think that you might as well maximise throughout, and ignore fairness. Or if fairness is important, add an optional mode that's completely fair at the expense of throughout (i.e, no acquires without going through the synchronizer, synchronizer calls hasQueuedPredecessors).

@jamespic I thought I'd provide an update on this.  I re-ran your fairness harness with the 2.6.0 ConcurrentBag and this is the result:
Longest unfair run was 1004 (out of 500,000)
Kolmogorov-Smirnov test of startTimestamps has p-value 1.3482803762343565E-10

Looks almost like a single line.
If you zoom in on various parts you can find the differences, but overall I'm pretty happy with the increased fairness while at the same time increasing performance under contention.
I've updated my fork of your original harness.


Pagination to show only a certain number of page links

Summary
It seems like the current pagination component shows all page links, if there are 20 pages, it will show page links from 1 to 20.
Is it better to only show a certain number of page links at a time, like the flowbite-react Pagination.
Basic example

Motivation
To improve user experience

And maybe add placeholder when the data is being fetched from api?

You can pull your data and create an array like an example in the doc.
<script>
  import { page } from '$app/stores';
  import { Pagination } from 'flowbite-svelte'

  $: activeUrl = $page.url.searchParams.get('page')
  let pages = [
    { name: 1, href: '/components/pagination?page=1'},
    { name: 2, href: '/components/pagination?page=2'},
    { name: 3, href: '/components/pagination?page=3'},
    { name: 4, href: '/components/pagination?page=4'},
    { name: 5, href: '/components/pagination?page=5'}
  ];

  $:{
      pages.forEach((page)=>{
      let splitUrl = page.href.split('?');
      let queryString = splitUrl.slice(1).join('?');
      const hrefParams = new URLSearchParams(queryString);
      let hrefValue = hrefParams.get('page');
      if ( hrefValue === activeUrl){
        page.active=true
      }else{
        page.active=false
      }
    })
      pages=pages
  }

  const previous = () => {
    alert('Previous btn clicked. Make a call to your server to fetch data.');
  };
  const next = () => {
    alert('Next btn clicked. Make a call to your server to fetch data.');
  };
</script>

<Pagination {pages} on:previous={previous} on:next={next} />

Do you mean to recreate the pages array everytime currentPage changes?

This example may help.


how to combine reducer

in my project, i want to combine ervery single part reducer like redux combine

You can do it using combineReducers from redux package itself.
This library is just a small utility that helps you bring mapped state to the components and it does not dictate how you structure or organise your redux store.


dashboard: Fix github auth

#1872

LGTM, but please add descriptions to the commit messages.

Added descriptions to the commit messages.

:ship:


[Accessibility][Name, Role, Value - Property Pane_Ask a question (Bot Asks)]: Ensures all ARIA attributes have valid values for prompt edit field.

User Experience:
This issue should be resolved for good coding practice as all ARIA attributes have valid values for the edit fields.
Test Environment
Browser: Microsoft Edge Canary Version: 82.0.425.0 (Official build)
OS build: 2004 (19564.1005)
Screen Reader: Narrator
URL: Bot Framework Composer
Prerequisite Here
Repro Steps:

Open the above mentioned URL in EDGE.
"Bot Framework Composer" homepage will gets opened.
Select any of the previously created bot from "Recent Bots" or create one from the available Bots under 'Examples' and activate it.
Navigate to already created dialog tree item and activate it. Such as- Greetings, Actions, EndDialog etc.
Click on "+" and select 'Ask a question'. Then select any of the available options except Oauth login.
Navigate to property pane appeared at right side of the screen and select 'Bot Asks'.
Run Accessibility insight and observe the issue.

Actual:
Edit fields such as prompt, Max turn count, Default value, Allow interruption, Always prompt edit fields doesn't have valid ARIA attributes values.
Expected:
Every edit field must have valid aria attributes.
Note:

Same issue found at "Property Pane_Ask a question (User Asks)".
Same issue found at "Property Pane_Ask a question (Other)".
Same issue observed at various property panes like Adaptive dialog and other property panes.

Observation:
This accessibility issue was found using Accessibility Insights for Web 2.14.1 (axe-core 3.3.2), a tool that helps find and fix accessibility issues. Get more information & download this tool at http://aka.ms/AccessibilityInsights.
MAS Impacted: MAS4.1.2
Attachment:

This appears to be also fixed by a PR I already have up. I'll tag that one here.

@cwhitten As checked on below environment the issue is still repro.
Test Environment
Browser: Microsoft Edge Dev {Version 83.0.467.0 (Official build) dev (64-bit)}
Browser: Microsoft Edge Canary {Version 83.0.474.0 (Official build) canary (64-bit)}
OS build: 2004 (19588.1000)
Screen Reader: Narrator
URL: Bot Framework Composer
Prerequisite Here

As checked, issue is fixed. So, HCL is closing the issue.


Bastion monitoring for CAPO

As we are doing bastions on demand now, we don't need monitoring currently.


Errors with deleting when you have multiple saves with the same name

This is fixed in the new engine using an UID system


Rodion Kvitchik added his file

added file rodion-kvitchik.txt
I want to join the OTUS organization


Lazy loading example does not work.

Looks like the "Lazy Loading" example in the README doesn't work with the newest version of preact-async-route. The prop passed to AsyncRoute needs to be getComponent instead of component.

Thanks!


Export scoreboard

Export scoreboard to the RPT log using one of the logging macros and/or diag_log.  See exportScoreboard.sqf.

Next step is to find proper var for sia_f_missionName and call func at end of mission.

Next step is to find proper var for sia_f_missionName and call func at end of mission.

Should be possible with getMissionConfigValue ["onLoadName", missionName]


Help on snippets / autocompletion

First of all I like to give you a big applause for making all the magic possible. You've made my life so much easier!!!
I've noticed that there are some snippets available within this plugin. But I couldn't find a way to customize these.
E.G. I want to add some of my own without grabbing another snippet plugin.
Can you push me in the right direction?
Big thanks

The snippet provided by coc-intelephense itself is very simple and not intended for customization.
It sounds like you don't want to include additional plugins or coc-extension, but again, if you need customization, please add other snippet plugins or coc-extension.  🙇
e.g. coc-snippets https://github.com/neoclide/coc-snippets.


Unable to create tokens from access code

I am using intuit-oauth package version 1.0.3 inside of a React application.
I am able to initiate the OAuth flow and receive the code and the realmId successfully on the callback route.
Then, I pass that URI into the client's createToken method to create the access and refresh tokens and receive the following errors:

Refused to set unsafe header "User-Agent"
Access to XMLHttpRequest at 'https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
PopsicleError: Unable to connect to "https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer"

Other OAuth flows (Auth0, Google) are working successfully inside the React app.

This seems to be an issue with client flows using OAuth2 implicit grants. In the developer forums, it is said that Intuit only supports server-side access.
Can someone on the dev team confirm?

Hi @skyarkitekten ,
We only support OAuth2.0 Authorization Flow at the moment which is supported only on the server side.
We are planning to support OAuth2 implicit grant in the near future.

Thanks, @abisalehalliprasan.
I am glad to hear that implicit grant is on your roadmap. In the meantime, I will introduce a server into our solution.

Hi @abisalehalliprasan ,
I've just come across the same issue - was OAuth2 implicit grant support ever implemented?
Many thanks


feat: 4888 - additional step to select KP items to reorder

What

With this PR we can select the KP items to reorder (instead of reordering all of them).
This is done via an additional "select items to reorder" page.
The ordered KP items are displayed in a new "For me" card.
The next step (in a different PR) would be to display "For me" in a separate tab.

Screenshot

empty "for me"
new "select" page

"reorder" page
ordered "for me"

Fixes bug(s)

Closes: #4888

Files
New files:

reorderable_knowledge_panel_model.dart: Model to manage KP items - which are to reorder and how.
selectable_knowledge_panel_page.dart: Page where the user can select the Knowledge Panel Cards to reorder.

Impacted files:

app_en.arb: added a label for the "select items to reorder" action/page
new_product_page.dart: now we display a "for me" card with the "select/reorder" button
reorderable_knowledge_panel_page.dart: now using the dedicated model
reordered_knowledge_panel_cards.dart: now we display a "for me" card with the "select/reorder" button
user_preferences.dart: now storing the list of selected KP items to be reordered

Codecov Report
Attention: 97 lines in your changes are missing coverage. Please review.

Comparison is base (5ffdca3) 9.68% compared to head (92204be) 9.64%.
Report is 7 commits behind head on develop.

Files
Patch %
Lines

...pages/product/selectable_knowledge_panel_page.dart
0.00%
40 Missing :warning:

...ges/product/reorderable_knowledge_panel_model.dart
0.00%
27 Missing :warning:

...pages/product/reordered_knowledge_panel_cards.dart
0.00%
16 Missing :warning:

.../lib/data_models/preferences/user_preferences.dart
0.00%
6 Missing :warning:

...ages/product/reorderable_knowledge_panel_page.dart
0.00%
6 Missing :warning:

...smooth_app/lib/pages/product/new_product_page.dart
0.00%
2 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##           develop   #4899      +/-   ##
==========================================
- Coverage     9.68%   9.64%   -0.05%
==========================================
  Files          318     320       +2
  Lines        16121   16172      +51
==========================================
- Hits          1561    1559       -2
- Misses       14560   14613      +53

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

small merge conflict

I created this PR one month ago and there's not much activity around it.
Feel free to close it if after all it's not relevant. You may approve it too :)

Closing as stale.


/lib/libopencv_cudaarithm.a Error

I am facing problem with
[ 14%] Linking CXX static library ../../lib/libopencv_cudaarithm.a
[ 14%] Built target opencv_cudaarithm
make: *** [all] Error 2

cuda 11.4
GCC 8.3
OpenCV compilation for
dense flow.
Can you guide what could be issue.

build opencv with cuda.


Support cmd tool --version

Expected
ko (and the other tools) --version can print the version info of ko
likely
ko --version
ko Version: 3.2.18
Git SHA: eddf599
Go Version: go1.10.4
Go OS/Arch: linux/amd64

Fixed by #25 and #81
We should really perform a release one day...


TII-192; various fixes to diffs for assignment

Notes on the two sections removed:

It appears that assignment-tool/tool/src/webapp/vm/assignment/chef_assignments_lti_access.vm is in 11, so it doesn't need to be in the diff
the change to the main pom.xml was a mistake. It shouldn't have been in the diff

I'm confused on this one, @clhedrick. Shouldn't this diff file just be removed? And the code in the diff should be submitted as PRs to sakaiproject/sakai as it's Assigments, BasicLTI, etc

Once we move to 11.1, this should be put into the sakaiproject.org. But sites that want to implement with 11.0 need a way to do that. This is just an updated version of a diff that came from Oxford, I believe.

I'm just spit-balling here, but can't we put the code from this diff in sakaiproject/sakai master? And then only after 11.0 is out the door, and we have an 11.1 branch, we can merge it back to 11.1.

My concern is that putting it into master doesn't necessarily help people who need to patch 11. The code isn't always the same.
It probably doesn't make sense to put the assignments patches into master unless we're ready to put the new TII into master. Are we?

The only way we can get it into master, is to have the code for Assignments, BasicLTI and content-review as PRs so people can look at them, review them, make suggestions, etc. I believe @csev said he was also willing to help out with the work required to BasicLTI, as he was not entirely happy with the modifications in the original PR.
So, in order to facilitate other people to work on this stuff, we need to get them as PRs rather than just sitting in diff files.
That's my two cents.

I suppose we can merge this in for the time being. When we make a decision when/if to remove this diff and submit the changes to sakaiproject/sakai, it can be addressed then?

Not a problem. I’d be willing to generate the PR’s. But this needs to be coordinated with the TII implementation. Are we ready to update content-review in master?
I point out again that the diffs are not for master. They are for sites that want to use this with 11.0.
On Jul 8, 2016, at 12:29 PM, Brian Jones <notifications<EMAIL_ADDRESS>wrote:
The only way we can get it into master, is to have the code for Assignments, BasicLTI and content-review as PRs so people can look at them, review them, make suggestions, etc. I believe @csevhttps://github.com/csev said he was also willing to help out with the work required to BasicLTI, as he was not entirely happy with the modifications in the original PR.
So, in order to facilitate other people to work on this stuff, we need to get them as PRs rather than just sitting in diff files.
That's my two cents.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/sakaicontrib/turnitin/pull/4#issuecomment-231406803, or mute the threadhttps://github.com/notifications/unsubscribe/AB0aCBcxlqh-86vPwDl6H2aQLttj0moUks5qTnr1gaJpZM4JIJs7.

Note that I’m set up to test, so I’m willing to make sure all the pieces in master fit together. But this is a different problem than 11.0.
On Jul 8, 2016, at 12:29 PM, Brian Jones <notifications<EMAIL_ADDRESS>wrote:
The only way we can get it into master, is to have the code for Assignments, BasicLTI and content-review as PRs so people can look at them, review them, make suggestions, etc. I believe @csevhttps://github.com/csev said he was also willing to help out with the work required to BasicLTI, as he was not entirely happy with the modifications in the original PR.
So, in order to facilitate other people to work on this stuff, we need to get them as PRs rather than just sitting in diff files.
That's my two cents.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/sakaicontrib/turnitin/pull/4#issuecomment-231406803, or mute the threadhttps://github.com/notifications/unsubscribe/AB0aCBcxlqh-86vPwDl6H2aQLttj0moUks5qTnr1gaJpZM4JIJs7.

My suggestion is that we can remove the diff at the point where we have an 11.1 with all the changes integrated.
On Jul 8, 2016, at 12:31 PM, Brian Jones <notifications<EMAIL_ADDRESS>wrote:
I suppose we can merge this in for the time being. When we make a decision when/if to remove this diff and submit the changes to sakaiproject/sakai, it can be addressed then?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/sakaicontrib/turnitin/pull/4#issuecomment-231407384, or mute the threadhttps://github.com/notifications/unsubscribe/AB0aCPdhULUTCbGD34Wrl0fZhjFtzOQ2ks5qTnt6gaJpZM4JIJs7.

I'm reconsidering my stance on this, sorry! I think you're on the right track @clhedrick. Let's hold off on removing the diff till 11.0 is out the door and we're satisfied that everything works.
After 11.0 is cut, and 11.x effectively becomes 11.1, we can target some PRs for master/11.1 with the contents of the diff for Assignments, BasicLTI and content-review.
Does that sound appropriate to you?

I think the "clean" way todo this is to fork the main Sakai repository into the sakaicontrib organisation with a different repository name (eg turnitin-sakai), then we can have a branch (based off the 11.x) which contains all the Sakai changes for turnitin LTI. We can then generate diff/patch files (if we want to), but also merge in new changes to 11.x and re-generate patch/diff files.
However you should also be able to directly merge the branch into your 11.x branch and just re-merge it as changes are made that you want to pull in.

In my opinion, the core team needs to decide that we want to move master to the new TII integration. They also need to decide whether we’re willing to have master inconsistent. If not, there will need to be a single PR for a set of changes to content-review and all the tools.
csev has indicated he wants to work on the LTI part. We need to talk with him, but my suggestion would be to put the changes in and let him reorganize them.
On Jul 8, 2016, at 12:31 PM, Brian Jones <notifications<EMAIL_ADDRESS>wrote:
I suppose we can merge this in for the time being. When we make a decision when/if to remove this diff and submit the changes to sakaiproject/sakai, it can be addressed then?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/sakaicontrib/turnitin/pull/4#issuecomment-231407384, or mute the threadhttps://github.com/notifications/unsubscribe/AB0aCPdhULUTCbGD34Wrl0fZhjFtzOQ2ks5qTnt6gaJpZM4JIJs7.

I thought about that. That only works if someone is willing to maintain the branch. There would also have to be more than one.
There are also practical issues to using the branch. We don’t use 11 unchanged. We have our own repo. I suspect that’s true for other sites as well. I’m guessing the 11 early adopters will be somewhat different points from 11.x. So we have a changing 11.x, a branch that isn’t changing as rapidly, and our own repo. Trying to juggle all of those is likely to be harder than just integrating a diff. I don’t think there’s a wonderful solution. There are also serious problems with maintaining the diff. But I think it may be the lesser of evils.
On Jul 8, 2016, at 12:44 PM, Matthew Buckett <notifications<EMAIL_ADDRESS>wrote:
I think the "clean" way todo this is to fork the main Sakai repository into the sakaicontrib organisation with a different repository name (eg turnitin-sakai), then we can have a branch (based off the 11.x) which contains all the Sakai changes for turnitin LTI. We can then generate diff/patch files (if we want to), but also merge in new changes to 11.x and re-generate patch/diff files.
However you should also be able to directly merge the branch into your 11.x branch and just re-merge it as changes are made that you want to pull in.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/sakaicontrib/turnitin/pull/4#issuecomment-231410559, or mute the threadhttps://github.com/notifications/unsubscribe/AB0aCCOvaIBe_szec7fVekzNigyUQ5ygks5qTn6DgaJpZM4JIJs7.

Or we just have a branch in the main Sakai repository called something like 11.x-turnitin and then we can make pull requests against that branch for fixes like this.
The reason I didn't suggest that is it "pollutes" the main repository with TII stuff. It's not repositories or branches that matter in git but the history.

I think we have several options here, as you've both illustrated, but it seems like they all have different drawbacks and repercussions.
Due to the fact that we here at Western are working on the 10.x implementation, and we will be staying on 10 until next spring, the decision on which path we take (for the changes with regards to the core tools) for this doesn't affect us much.
My main concern was solidifying one central repo for us all to submit TII PRs to, which we've now all agreed will be here (sakaicontrib/turnitin).
So in light of this, I'm going to leave this decision up to you two, @clhedrick and @buckett, as I think both of your institutions are moving to 11 sooner rather than later.

Alright, maybe we should just get this in so that @buckett can do his Git magic. Everyone in agreement?

So I think now that @buckett has created sakaicontrib/sakai-turnitin, any changes to assignments, basicLTI, and content-review (from this diff or any others you may have @clhedrick) should be submitted as PRs there, correct?

Ok
On Jul 15, 2016, at 9:12 AM, Brian Jones <notifications<EMAIL_ADDRESS>wrote:
So I think now that @bucketthttps://github.com/buckett has created sakaicontrib/sakai-turnitin, any changes to assignments, basicLTI, and content-review (from this diff or any others you may have @clhedrickhttps://github.com/clhedrick) should be submitted as PRs there, correct?

You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/sakaicontrib/turnitin-do-not-use/pull/4#issuecomment-232947051, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AB0aCDuBbxDHSIKzY1d2ld2N7mtE7rsRks5qV4cmgaJpZM4JIJs7.

That's the idea, although we can see how it works. But you should be able to merge changes in from the sakai-turnitin repository to your stable 11.x branch without too many conflicts.

Cool stuff, thanks @buckett!

where are the instructions I had in the main readme?
where is content-review/contentreview-impl?

On Jul 15, 2016, at 9:12 AM, Brian Jones <notifications<EMAIL_ADDRESS>wrote:
So I think now that @bucketthttps://github.com/buckett has created sakaicontrib/sakai-turnitin, any changes to assignments, basicLTI, and content-review (from this diff or any others you may have @clhedrickhttps://github.com/clhedrick) should be submitted as PRs there, correct?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/sakaicontrib/turnitin-do-not-use/pull/4#issuecomment-232947051, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AB0aCDuBbxDHSIKzY1d2ld2N7mtE7rsRks5qV4cmgaJpZM4JIJs7.

The turnitin code is still is a separate repo at the moment:
https://github.com/sakaicontrib/turnitin
The repo https://github.com/sakaicontrib/sakai-turnitin contains just a
normal copy of Sakai with the diff to assignments/lti/content-review-api
You can see the diff here:
https://github.com/sakaicontrib/sakai-turnitin/compare/11.x...11.x-turnitin
We could do a subtree merge in of the sakaicontrib/turnitin repo so that
there is just one repo but then the layout of the project looks completely
different. What do you think?
On 18 July 2016 at 16:06, Charles Hedrick<EMAIL_ADDRESS>wrote:

where are the instructions I had in the main readme?
where is content-review/contentreview-impl?

On Jul 15, 2016, at 9:12 AM, Brian Jones<EMAIL_ADDRESS><EMAIL_ADDRESS>wrote:
So I think now that @bucketthttps://github.com/buckett has created
sakaicontrib/sakai-turnitin, any changes to assignments, basicLTI, and
content-review (from this diff or any others you may have @clhedrick<
https://github.com/clhedrick>) should be submitted as PRs there, correct?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub<
https://github.com/sakaicontrib/turnitin-do-not-use/pull/4#issuecomment-232947051>,
or mute the thread<
https://github.com/notifications/unsubscribe-auth/AB0aCDuBbxDHSIKzY1d2ld2N7mtE7rsRks5qV4cmgaJpZM4JIJs7>.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/sakaicontrib/turnitin-do-not-use/pull/4#issuecomment-233356650,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAXIWzBtnXCGfzd2QjDt-zlRH2Sq2Y2ks5qW5aJgaJpZM4JIJs7
.

--
Matthew Buckett, VLE Developer, IT Services, University of Oxford

Is sakaicontrib/turnitin appropriate for both 11 and 12?
On Jul 18, 2016, at 11:16 AM, Matthew Buckett <notifications<EMAIL_ADDRESS>wrote:
The turnitin code is still is a separate repo at the moment:
https://github.com/sakaicontrib/turnitin
The repo https://github.com/sakaicontrib/sakai-turnitin contains just a
normal copy of Sakai with the diff to assignments/lti/content-review-api
You can see the diff here:
https://github.com/sakaicontrib/sakai-turnitin/compare/11.x...11.x-turnitin
We could do a subtree merge in of the sakaicontrib/turnitin repo so that
there is just one repo but then the layout of the project looks completely
different. What do you think?
On 18 July 2016 at 16:06, Charles Hedrick <notifications<EMAIL_ADDRESS>wrote:

where are the instructions I had in the main readme?
where is content-review/contentreview-impl?

On Jul 15, 2016, at 9:12 AM, Brian Jones <notifications<EMAIL_ADDRESS>notifications<EMAIL_ADDRESS>wrote:
So I think now that @bucketthttps://github.com/buckett has created
sakaicontrib/sakai-turnitin, any changes to assignments, basicLTI, and
content-review (from this diff or any others you may have @clhedrick<
https://github.com/clhedrick>) should be submitted as PRs there, correct?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub<
https://github.com/sakaicontrib/turnitin-do-not-use/pull/4#issuecomment-232947051>,
or mute the thread<
https://github.com/notifications/unsubscribe-auth/AB0aCDuBbxDHSIKzY1d2ld2N7mtE7rsRks5qV4cmgaJpZM4JIJs7>.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/sakaicontrib/turnitin-do-not-use/pull/4#issuecomment-233356650,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAXIWzBtnXCGfzd2QjDt-zlRH2Sq2Y2ks5qW5aJgaJpZM4JIJs7
.

--
Matthew Buckett, VLE Developer, IT Services, University of Oxford
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/sakaicontrib/turnitin-do-not-use/pull/4#issuecomment-233359706, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AB0aCPo4k7NF0Yh5mEUUr1oI9O8qcB4Gks5qW5jUgaJpZM4JIJs7.

No, I think at the moment it pulls in the Sakai 11 master pom:
https://github.com/sakaicontrib/turnitin/blob/master/contentreview-impl/pom.xml
It may work with Sakai 12 but I haven't tested at all and haven't looked closely how it fits with the other changes that have been made.


Remove version: SmartSoft.SmartFTP version 10.0.3208.0

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

URL: https://static.smartftp.com/static/Products/Client/10.0.3208.0/x64/SmartFTP.msi
Response Error: The remote server returned an error: (404) Not Found.
(Automated message - build 912)


Flake8 rule 'E901' reported an invalid point

Flake8 reported an invalid point for the rule E901, with the messge IndentationError: unindent does not match any outer indentation level.

Debug information:
Atom version: 1.22.1
Flake8 version: 2.5.5 (pep8: 1.5.7, mccabe: 0.2.1, ProxyChecker: 0.0.1, hacking.core: 0.0.1, pyflakes: 0.8.1, flake8-pep257: 1.0.5, flake8-docstrings: 1.0.3, pydocstyle: 1.1.1) CPython 3.6.3 on Linux

Please update your flake8 version (pip install -U flake8). This particular error should be fixed in flake8>=3.2.1.

(Note that hacking is horribly out of date and doesn't support newer flake8 versions so you might just have to ignore this error if you need to keep using hacking)


Fix admin app

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Automatically pass an x-request-id header in HTTP requests if UNIQUE_ID value is set

I have found this to be useful in order to help trace how requests are sent to various internal microservices within our system. I'd like to see this, or something like, it make it into the framework.

Sorry, but I can not find a signed CLA.

The last time I tried it i got:
Delivery to the following recipient failed permanently:

<EMAIL_ADDRESS>
Technical details of permanent failure:
Internal parse error: Illegal envelope To: address (invalid domain name<EMAIL_ADDRESS>

Some more informations to UNIQUE_ID: http://httpd.apache.org/docs/2.2/mod/mod_unique_id.html

@blockjon
Please contact @weierophinney. Thanks!

@weierophinney sorry to call out to you on a random ticket - I swear I had send in my cla last year after it had bounced. What's the best email for me to forward my signed cla to at this point? I still have the bounced copy from last year when I tried it in my inbox.

@froschdesign Pretty sure that's already the origin of our web request ID's are.. however, when we debug our systems in production, it is extremely useful for the ID generated by the front end to pass through to the micro services that we call to via HTTP requests. It is for this reason that having the unique id automatically pass through somehow would be highly desired. Even without my cla, maybe you have some alternate idea that can be used to achieve this?

@blockjon
Look at the Github page of @weierophinney there you can find an email address.

@blockjon

…it is extremely useful for the ID generated by the front end to pass through to the micro services that we call to via HTTP requests.

That's not the question. We need a use case and unit tests!
And please remember:

For ZF1, we are accepting bug fixes to existing components.

http://framework.zend.com/participate/contributor-guide-v1

Closed, because:

no unit test was provided
it's a feature request


Gitolite username mismatch

Context: I have a small Redmine instance with redmine_git_hosting that I have been upgrading since the early days of gitolite v1. Currently everything runs the latest versions of Redmine 3.x, redmine_git_hosting v1.1.x and gitolite on Debian Jessie 8.x.
Everything seems to work pretty well since the latest upgrade, but I sometimes have problems with some users. For example:

I have a user in Redmine, cleaned out all the ssh keys, and re-added a key. Redmine displays it as: "keydir/redmine_git_hosting/redmine_joe_29/redmine_docuwiki/redmine_joe_29.pub"

In my gitolite.conf, I see the following configuration that was created:

repo    myproject
  RW+                            = redmine_joe_29
  config redminegitolite.projectid = myproject
  config redminegitolite.repositoryid =
  config redminegitolite.repositorykey = [...]

In the gitolite keydir, I see:

<EMAIL_ADDRESS>

~/gitolite/keydir/redmine_git_hosting/redmine_joe_29/redmine_joe/redmine_joe_29.pub

However, when I test "ssh<EMAIL_ADDRESS>info", I get:

hello redmine_joe, this is git@myserver running gitolite3 3.6.1-2 (Debian) on git 2.1.4

 R W    testing

In other words, I expected gitolite to respond with "hello redmine_joe_29". If I manually edit my gitolite.conf, to use the example below, it works:
repo    myproject
  RW+                            = redmine_joe
  config redminegitolite.projectid = myproject
  config redminegitolite.repositoryid =
  config redminegitolite.repositorykey = [...]

With some other projects, with other users, I do not seem to be having this problem.
I suspect old configurations causing problems. Any hints on what could be causing this?
Thanks,
Mathieu

Your SSH key is duplicated :
<EMAIL_ADDRESS>~/gitolite/keydir/redmine_git_hosting/redmine_joe_29/redmine_joe/redmine_joe_29.pub

Gitolite will pick the first one it'll find so here<EMAIL_ADDRESS>You must remove this key by hand.

Many thanks for the quick response!
I cloned the gitolite-admin repo, removed the key from the keydir, pushed, then re-tested from Redmine to add/remove, and all worked OK.


[Feature Request] Apply lighter boats to all boats

Would be great if the fix to make boats lighter applied to all items of type boat so that it affected boats added by mods, such as Biomes O Plenty for example.

I like this idea, but it probably won't be done.  I'm not working in 1.12 anymore, and the boats tweak didn't come forward into 1.15/1.16 - partly because the vanilla boat code was notoriously difficult to patch.
If I ever bring back a boat tweak, I'll make sure it applies to mod boats too.


auto-add missing verses.

Auto add missing verses -  https://github.com/sillsdev/serval/issues/414
fix verse numbers missing text. - https://github.com/sillsdev/serval/issues/411

This change is

I don't fully understand your rationale.  I updated the code to reflect the pattern of the other PR.  It appears to respond intelligently to the test cases added.

https://github.com/sillsdev/serval/issues/414 is not something that Scripture Forge has asked for, so I think we should defer it for now. In the case of https://github.com/sillsdev/serval/issues/411, I would say that Serval is actually working as intended. We should wait for feedback on how Scripture Forge wants to handle that issue for continuing.

I pulled out the 2 fixes into 2 different pull requests.  Now this is just add missing verses.  The other issue is handled elsewhere.

This is no longer needed and being supplanted by giving the user the choice to use the source USFM structure.


[Event Request] Report 5880 Calc. Phys. Invt. Order Lines - OnBeforeOnPreDataItem

Hi Team,
In Report 5880 we need possibility to have our additional checks . Having event in the procedure OnPreDataItem, would be a perfect solution :

[IntegrationEvent(false, false)]
local procedure OnBeforeOnPreDataItem(var PhysInvtOrderHeader: Record "Phys. Invt. Order Header"; var Item: Record Item)

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


Ingest not doing anything for 2+ hours after downloading caches. What's going on?

I just noticed that ingest is seemingly stuck for at least 2 hours without doing anything? It hasn't yet started any curation. It's not fetching from Genbank nor from GISAID, yet nothing is happening. This is very strange.
@joverlee521 do you have an idea what is going on. I ran these with fetching deselected
https://github.com/nextstrain/ncov-ingest/actions/runs/10513067722/job/29127832018

Maybe it's just log output to GitHub that's stuck instead? I didn't check locally or on aws, just in GitHub actions logs.

Logs are further ahead on AWS.
Maybe behind in GH Action logs due to Python output buffering?

Can we somehow fix the output buffering? I love being able to see status in the Gh logs but it's useless if it's behind.

I think this is something we would have to fix in the Nextstrain CLI: https://github.com/nextstrain/cli/issues/393

Ah, this is an issue in the GH Action runners: https://github.com/actions/runner/issues/1031
There is slow down because they have to scan every line to mask any potential secrets in the logs.

From https://github.com/actions/runner/issues/1031:

Once a log message gets up to about 6k characters it looks like the runner starts to take a few seconds to process.
At 100k characters this can be 10 minutes or so

The log linked in the input description has 2583 lines and all are under 1500 characters long, most under 400. This doesn't seem that bad. Maybe something else is happening. Likely nothing we can do here if this is specific to GH Actions?

Is the issue that stdout is block-buffered since GitHub Actions redirects it to a non-interactive destination? If Python's default block size is high on the runners—it can vary machine to machine, IIRC—it might take a bit to fill the block up before it's flushed. We could try running under PYTHONUNBUFFERED=1 in the GitHub workflow to diagnose this. If it helps, then we could switch explicitly to line-buffering in Nextstrain CLI; line-buffering is a nice middle ground for this sort of output, between fully unbuffered and block-buffered.


Install aws cli

In order to install aws command line interface I needed to install python and pip. I could then install aws cli.

apologies, was not supposed to make PR here


An error occurred loading the gateway

Hello,
We have an issue during set up this payment gateway. We have 2 different currencies in our whmcs - INR and USD. We have set Convert To For Processing: None, and the bitpay payment gateway not working, it's showing the error: An error occurred loading the gateway. We have changed the processing currency to USD, but still, the same issue remaining. Kindly help to resolve the issue.
Thank You!

Hello,
Can you send screenshots of your payment configuration to<EMAIL_ADDRESS>?


Merge 12-05 updates to live

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

Language/Reference/User-Interface-Help/addins-collection-vba-add-in-object-model.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/appactivate-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/call-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/codepanes-collection-vba-add-in-object-model.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/commandbars-collection-vba-add-in-object-model.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/const-directive.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/const-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/count-property-filesystemobject-object.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/data-type-summary.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/declare-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/deletesetting-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/dim-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/doloop-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/end-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/enum-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/event-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/exit-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/filecopy-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/for-eachnext-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/fornext-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/function-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/get-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/gosubreturn-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/ifthenelse-directive.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/ifthenelse-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/implements-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/inputstatement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/let-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/line-inputstatement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/linkedwindows-collection-vba-add-in-object-model.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/lock-unlock-statements.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/lset-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/mid-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/name-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/on-error-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/ongosub-ongoto-statements.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/open-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/option-compare-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/printstatement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/private-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/properties-collection-vba-add-in-object-model.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/property-get-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/property-let-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/property-set-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/public-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/put-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/raiseevent-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/redim-statement.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/references-collection-vba-add-in-object-model.md
:white_check_mark:Succeeded
View

This comment lists only the first 50 files in the pull request.
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Keep StoreObject internal to AuthorityStore

The StoreObject type is still a public type though.

The StoreObject type is still a public type though.

Yes, actually restricting the access of that type would be more difficult, but I at least want to keep it relatively hidden in practical terms.


Use Quantity in ResourceInfo

Use Quantity instead of IntOrString in order to guarantee full
compatibility with the Kubernetes API. With this we also get CRD
validation.
Auto-generated code (deepcopy functions and crd.yaml) updated with
controller-gen v0.6.0:
controller-gen object crd output:crd:dir=. paths=./pkg/apis/...
mv topology.node.k8s.io_noderesourcetopologies.yaml manifests/crd.yaml

I checked it with scheduler-plugin, and made a PR https://github.com/kubernetes-sigs/scheduler-plugins/pull/214.

/lgtm
@swatisehgal what do you think?

/lgtm


Issue #898: Updating WebpackBin link to new CodeSandbox link in README

In regards to issue #898, there was an old webpackbin.com link in the readme. I updated it to the appropriate codesandbox.io for react-grid-layout.
Thanks to @adamtaylor13 for pointing this out.

Thanks!


Tor becomes unresponsive on network interface changes (adding or changing WiFi)

Currently the standard flow of adding WiFi and then dropping the Ethernet connection causes all Tor hidden services to be unreachable for an indeterminate period of time.
The dirty solution is to just restart tor when network interfaces change, but this may be overly aggressive. It would be better if we understood why Tor was becoming unresponsive during interface changes.

Irrelevant


Failure of build due to sharing between shared libs

I have a libs/ng-shared/shared/domain and libs/ng-shared/shared-dx domains. directives in shared-dx depend on types in shared. Is this allowed?  Although compilation occur, the nx build always fail.
Is it possible to extract the TID into its own libs/ng-shared/ domain?
Below is a screenshot of the relationship

The shared-dx presentation can import types from shared/domain. However, in general you need to be careful not to have circular dependencies, i.e. A imports from B and B imports from A.
What is the build error you are getting.

Errors:
'''
libs/ng-shared/shared-dx/domain/src/lib/dx-type-util.ts:19:21 - error TS6059: File '/home/stclair/workspace/nx/mf/med-soft/libs/ng-shared/shared/domain/src/index.ts' is not under 'rootDir' '/home/stclair/workspace/nx/mf/med-soft/libs/ng-shared/shared-dx/domain/src'. 'rootDir' is expected to contain all source files.
The file is in the program because:
Imported via '@medsoft/shared/domain' from file '/home/stclair/workspace/nx/mf/med-soft/libs/ng-shared/shared-dx/domain/src/lib/dx-type-util.ts'
Imported via '@medsoft/shared/domain' from file '/home/stclair/workspace/nx/mf/med-soft/libs/ng-shared/shared-dx/domain/src/lib/dx-util.ts'
Imported via '@medsoft/shared/domain' from file '/home/stclair/workspace/nx/mf/med-soft/libs/ng-shared/shared-dx/domain/src/lib/dx-validation-util.ts'
19 import { TID } from '@medsoft/shared/domain'
'''

'''
libs/ng-shared/shared-dx/domain/src/lib/dx-type-util.ts:19:21 - error TS6059: File 'xom/nx/mf/med-soft/libs/ng-shared/shared/domain/src/index.ts' is not under 'rootDir' 'xom/nx/mf/med-soft/libs/ng-shared/shared-dx/domain/src'. 'rootDir' is expected to contain all source files.
The file is in the program because:
Imported via '@medsoft/shared/domain' from file 'xom/nx/mf/med-soft/libs/ng-shared/shared-dx/domain/src/lib/dx-type-util.ts'
Imported via '@medsoft/shared/domain' from file 'xom/nx/mf/med-soft/libs/ng-shared/shared-dx/domain/src/lib/dx-util.ts'
Imported via '@medsoft/shared/domain' from file 'xom/nx/mf/med-soft/libs/ng-shared/shared-dx/domain/src/lib/dx-validation-util.ts'
19 import { TID } from '@medsoft/shared/domain'
;''

This looks related to be related to your application. I would look at wherever you have defined rootDir and check if that is correct. Also, make sure when you import from different libraries that you use the tsconfig path.
Are you able to reproduce the issue in the example repository in this branch:

https://github.com/srleecode/domain-example/tree/112


Add a proposal for the tech stack and tooling

Any comment ?
Especially TOML is not an obvious choice, but it seems rather good for configuration files.
We already discussed rust a little

Same, I don't have enough technical experience to comment the 3rd and 4th points !
But agree on 1&2
Do you have any strategies to deploy the CLI ? I don't really know how it works in this cases

deploy the CLI

You mean how we will distribute it? I think at first we will just release the built artifacts on github for each platform, so the users can download it an place it where they want.
If we want to go further, it will depend on the target. We may use https://crates.io/crates/cargo-bundle to bundler into .dev, .app, .msi.
Would that be enough ?

The last one is quite commonly accepted in the rust community.
The 3rd one is much more impactful however: from node we are quite used to use async code only as soon as we need concurrency, as node is single threaded. Rust do not have this limitation. However, async rust is quite hard compared to synchronous rust. This book is a good start : https://rust-lang.github.io/async-book/. The "Why async" explain the main things to consider when choosing a model.


⚠ Bofrost.be has degraded performance

In 376fb0c, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 935 ms

Resolved: Bofrost.be performance has improved in 541e568 after 6 minutes.


Update github/microsoft/autogen link in chess documentation.

Why are these changes needed?
An image in the Nested Chat Chess documentation is broken because it is linked to /microsoft/autogen.

Related issue number

Checks

[ ] I've included any doc changes needed for https://ag2ai.github.io/ag2/. See https://ag2ai.github.io/ag2/docs/Contribute#documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

Actually, I just noticed that all the links in this notebook are broken. It's because the source code specifies the links relatively,
See [nested chats tutorial chapter](/docs/tutorial/conversation-patterns#nested-chats)\n

Which is getting resolved to links like
[nested chats tutorial chapter](https://ag2ai.github.io/ag2/docs/docs/tutorial/conversation-patterns#nested-chats)

(Notice the double /docs)
Maybe this happened during the switchover to the new website?


fix(formatNumber): handle small numbers correctly different gSize and…

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Bug Fix
What is the current behavior? (You can also link to an open issue here)
#14289
What is the new behavior (if this is a feature change)?
Does this PR introduce a breaking change?
No
Please check if the PR fulfills these requirements

[x] The commit message follows our guidelines: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit-message-format
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

Other information:
… lgSize
By using >= when comparing the number length to the lgSize we'll provide
the correct value when formatting numbers with differing lgSize and gSize
Closes #14289

LGTM


[1373] Fix whenever / Capistrano integration [master]

Resolves #1373

use built-in whenever tasks

Merging immediately due to review in #1374.


No output when trying to start a container

Environment
rkt Version: 1.24.0
appc Version: 0.8.10
Go Version: go1.7.5
Go OS/Arch: linux/amd64
Features: -TPM +SDJOURNAL
--
Linux 4.9.7-1-ARCH x86_64
--
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
ID_LIKE=archlinux
ANSI_COLOR="0;36"
HOME_URL="https://www.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
--
systemd 232
+PAM -AUDIT -SELINUX -IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN

What did you do?
sudo rkt --insecure-options=image run docker://centos
What did you expect to see?
Dropped into a shell in the container? Some indication a container was running?
What did you see instead?
No output: it took 20 seconds and then exited.
running sudo rkt list I see:

e9954f9b	centos	registry-1.docker.io/library/centos:latest	exited		32 seconds ago	23 seconds ago

what happens if you pass --exec /bin/bash ath the end?

what happens if you pass --exec /bin/bash at the end?

Same thing. i.e. waits 20 seconds, then exit with no output; an exited container is now added to rkt list output.

This is expected behavior: library/centos has /bin/bash as entrypoint and you are running in non-interactive mode. As such, it correctly spawns a shell that immediately exits with a success code.
If you are interested about all the glorious execution details, run it with --debug. If you are interested in getting an interactive shell instead of an immediate exit, run it with --interactive.

If you are interested in getting an interactive shell instead of an immediate exit, run it with --interactive.

Ah ha. I had somehow missed that.


[RKE2][S3 Snapshot] Provide error message when S3 authentication fails

Setup

Rancher version: v2.6-head 32c8761
Browser type & version: Chrome Build 100.0.4896.88

Describe the bug

When S3 authentication fails when taking snapshot, there is no error message and S3 snapshot shows as active with 0 MiB for file size.

To Reproduce

Provision RKE2 node driver cluster
Under Cluster Configuration and etcd, enable Backup Snapshots to S3 option
Enter S3 Bucket information (Enter incorrect Authentication or None to a private bucket)
Take snapshot after cluster provisions

Result
No files are uploaded to S3 bucket but UI shows S3 snapshots as active and also with file size 0 MiB
Expected Result

There should be some error to notify the user that Authentication failed

Whatever is displayed on the left should probably reflect the etcdsnapshots object .snapshotFile.status field, as that is going to be the most accurate representation of the actual state of the snapshot.
There is also a .snapshotFile.message field that can be displayed that would say why the snapshot is in a status other than "successful"

Test Environment:
Rancher version: v2.6-head 7db4fe4
Rancher cluster type: HA
Docker version: 20.10
Downstream cluster type: RKE2 node driver

Testing:
Tested this issue with the following steps:

Provision RKE2 node driver cluster
Under Cluster Configuration and etcd, enable Backup Snapshots to S3 option
Enter S3 Bucket information (Enter incorrect Authentication or None to a private bucket)
Take snapshot after cluster provisions

Result - Pass
Rancher now shows a 404 Error when authentication fails

This message is okay for now 404 not found is what rke2 gets when it tries to upload the snapshot.
A new ticket, 37498 was created for an enhancement request to enhance the error message given in a future release.


Resolved issue #3635

📑 Description

🐞 Related Issue

Closes #

Hi @victoriacheng15 @anandfresh , I created a pull request #4807 resolving issue #3635
Kindly review the code and merge if it seems good. Otherwise let me know if any further changes are needed. Thank you!

Hi @victoriacheng15 @anandfresh , I created a pull request #4807 resolving issue #3635 Kindly review the code and merge if it seems good. Otherwise let me know if any further changes are needed. Thank you!

Please remember to remove the comment in the markdown next time. You can check to see what it looks like by clicking Preview. Thank you!


Support for file streaming over gRPC?

Are there any plans to add support for file uploads and streaming to this plugin (something similar to https://www.vinsguru.com/grpc-file-upload-client-streaming/)?

This issue is stale because it has been open for 30 days with no activity.

This issue was closed because it has been inactive for 14 days since being marked as stale.

Seems, there are no plans to add support for streaming ;-(


knot-dns: 3.2.5 -> 3.2.6

This is mostly a bugfix version with a few improvements.
https://gitlab.nic.cz/knot/knot-dns/-/tags/v3.2.6
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

The ngtcp2 update isn't required and doesn't seem important, but I added it anyway for consistency with upstream.


"java.util.ConcurrentModificationException: KafkaConsumer is not safe for multi-threaded access" errors in dispatcher logs

Describe the bug
Spotted a CME exception in kafka-channel-dispatcher logs
{
  "@timestamp": "2023-03-01T06:16:42.515Z",
  "@version": "1",
  "message": "Consumer exception context={topics=[knative-messaging-kafka.kc-stable-delay-0.sender0], consumerGroup='kafka.kc-stable-delay-0.sender0.f61db18a-760e-4d72-825f-ed7eab799962', reference=uuid: \"f61db18a-760e-4d72-825f-ed7eab799962\"\nnamespace: \"kc-stable-delay-0\"\nname: \"connection0\"\n}",
  "logger_name": "dev.knative.eventing.kafka.broker.dispatcher.impl.consumer.ConsumerVerticle",
  "thread_name": "vert.x-kafka-consumer-thread-2317",
  "level": "ERROR",
  "level_value": 40000,
  "stack_trace": "java.util.ConcurrentModificationException: KafkaConsumer is not safe for multi-threaded access\n\tat org.apache.kafka.clients.consumer.KafkaConsumer.acquire(KafkaConsumer.java:2490)\n\tat org.apache.kafka.clients.consumer.KafkaConsumer.acquireAndEnsureOpen(KafkaConsumer.java:2474)\n\tat org.apache.kafka.clients.consumer.KafkaConsumer.commitSync(KafkaConsumer.java:1496)\n\tat org.apache.kafka.clients.consumer.KafkaConsumer.commitSync(KafkaConsumer.java:1448)\n\tat io.vertx.kafka.client.consumer.impl.KafkaReadStreamImpl.lambda$commit$29(KafkaReadStreamImpl.java:610)\n\tat io.vertx.kafka.client.consumer.impl.KafkaReadStreamImpl.lambda$submitTaskWhenStarted$3(KafkaReadStreamImpl.java:136)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:833)\n",
  "context": {}
}

the exception unrolled:
java.util.ConcurrentModificationException: KafkaConsumer is not safe for multi-threaded access
	at org.apache.kafka.clients.consumer.KafkaConsumer.acquire(KafkaConsumer.java:2490)
	at org.apache.kafka.clients.consumer.KafkaConsumer.acquireAndEnsureOpen(KafkaConsumer.java:2474)
	at org.apache.kafka.clients.consumer.KafkaConsumer.commitSync(KafkaConsumer.java:1496)
	at org.apache.kafka.clients.consumer.KafkaConsumer.commitSync(KafkaConsumer.java:1448)
	at io.vertx.kafka.client.consumer.impl.KafkaReadStreamImpl.lambda$commit$29(KafkaReadStreamImpl.java:610)
	at io.vertx.kafka.client.consumer.impl.KafkaReadStreamImpl.lambda$submitTaskWhenStarted$3(KafkaReadStreamImpl.java:136)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)

Not sure if the exception affected any functionality, but there were unexpected duplicates received at around the time the CME occured in logs
Expected behavior
No ConcurrentModificationException should occur
To Reproduce
Unknown at this time
Knative release version
1.7
Additional context
Installed on OpenShift via current Serverless operator https://github.com/openshift-knative/serverless-operator main branch (Serverless operator 1.28)

Were you doing anything special during that time to that particular subscription?

no. The only unusual thing with the kc-stable-delay scenario is the receiver having a 10s delay before returning an ACK reply

I looked at the code and I don't anything obvious since every non-thread safe operation on the consumer is scheduled on the single thread executor in vertx-kafka-client
https://github.com/vert-x3/vertx-kafka-client/blob/a8c65ddc1c231b7ecbdbf93bd66dd7685e47d6b8/src/main/java/io/vertx/kafka/client/consumer/impl/KafkaReadStreamImpl.java#L115

I believe it won't affect functionality but as you said it would produce duplicates since it won't commit the offsets.

Fixed this issue by replacing the MTChannelBased Kafka Broker with a Kafka Broker.

/remove-lifecycle stale

/reopen
still reproducible with 1.11

/triage accepted


Documentation error

Prerequisites

[X] I have searched for duplicate or closed issues
[X] I have validated any HTML to avoid common problems
[X] I have read the contributing guidelines

Describe the issue
site/content/docs/5.3/utilities/spacing.md
The examples relating to grid gap spacing are incorrect.
They specify a class of "grid" - however that will not work - it is class "d-grid"
Reduced test cases
na
What operating system(s) are you seeing the problem on?
Windows, macOS, Android, iOS, Linux
What browser(s) are you seeing the problem on?
Chrome, Safari, Firefox, Microsoft Edge, Opera
What version of Bootstrap are you using?
v5.3.2

Hey, thanks for your contribution.
The .grid is intended here to have a grid template. The class is defined in _grid.scss. TBH, I think the implementation is correct since the .grid class exists if the $enable-cssgrid is set to true. The process is well explained in CSS grid part of the documentation. However, the concept explained here still work using flex display.
Closing the issue for now.


Refactoring: New isolinear API

As part of factoring out the terminal integration into revery-terminal, I saw that there ended up being some duplicate concerns:

Having a way to subscribe to an onStateChanged event
Having a subscription model
Queuing and flush effects

I moved these common pieces into isolinear - to streamline Onivim 2, as well as the revery terminal project.
I've also been wanting to bring over the Subscription model @glennsl introduced into isolinear - it fixes a major architectural gap we had in Onivim 2, and is a convenient model for listening to external effects.

Thanks for reviewing this and the corresponding isolinear changes, @glennsl ! Still room for improvement, but baby steps... I like your idea of switching from a first-class module to a record - I think that could improve the API further.

Since it seems to always run, if initially enabled, and isn't updated declaratively but through function calls, it looks like it's just a very elaborate way to break the dispatch dependency cycle. Though I might be missing something of course.

One main benefit I see is that it plugs into the Features / Services model you proposed - in particular, those functions like notifyBufferUpdate can be moved to 'Effects', and it can be wholly decoupled from the store - the interactions from Onivim being the updater that dispatches the effects, and hooking up a subscriber.

I do see a potential benefit if notifyBufferEnter/update could be made data-driven instead. That would make it declarative and remove all the complexity you've added just to be able to make those calls.

I wasn't sure what you meant by this - do you mean not have the syntaxClient passed to them? I was thinking the next step - as part of refactoring this to a service - would be to remove the state from knowing about syntaxClient at all, and have that managed in the Syntax service. Is that similar to what you had in mind?

I see you've solved the single subscription runner problem though.

Hopefully! I built off your work to add subscriptions in Onivim 2, of course. So I hope it'll be easy to map our current subscriptions over to this as well.

I'm not sure I understand why handedOffInstance is needed, even if I understand what it's used for.

I can relate... I didn't understand why this was needed in the ReactMini component update (here: https://github.com/reasonml/reason-react/blame/1333211c1ea4da7be61c74084011e23137075ede/ReactMini/src/React.re#L85) as well, until I ran into the problem myself 😅
The issue was that, since we have this heterogenous list of subscriptions - when we have two of them:
    | (Subscription(sub1, oldMapper), Subscription(sub2, newMapper)) =>
      let {
        config: (module ConfigOld),
        params as _oldParams,
        state as oldState,
        handedOffInstance as oldH,
      } = sub1;
      let {
        config: (module ConfigNew),
        params as newParams,
        state as _newState,
        handedOffInstance as newH,
      } = sub2;

There's no guarantee that oldParams and newParams are the same type, or that oldState and newState are the same type.  We checked that string key is equal, prior to get here - so if we get here, they should be the same type (although, not guaranteed - could easily set up subscriptions that are differents but the same string key). So no way for the type system to know that newState and oldState are the same!
But we want to check for the case where they are the same type, and if they are, 'update' the subscription with the old state. If they aren't the same type, we should dispose the old one and and init the new one.
I didn't think there was a way to do this without Obj.magic. I thought I was going to have reach for that - since the type system doesn't know that oldState and newState are the same. But I remembered seeing that trick in ReactMini and it finally clicked - could use the same thing here. The ref is shared by all instances of the same subscription type, so if we set it in the old one, and the new one sees it - we know they are the same type (and that we can set it on the new one). If we set a value on the old one's ref, and don't see it in the new one's ref, we know they must be different types.
It's pretty sneaky and I can't take credit for it, but it solved my problem here. If it still doesn't click - you can try removing the handedOffInstance and getting this update method to compile: https://github.com/bryphe/isolinear/blob/54765d532f7f32480df59ae1108cf59dc8955198/src/SubscriptionRunner.re#L63 - everything else works fine w/o the handed off instance - it's just that case where we want to pass the state of one subscription to another in a type safe way, without the type checker being able to know that they are the same type.
There might be better or other ways to do this! I'm not an expert. But I was glad I didn't need Obj.magic in this case.

It might also be made simpler by not using a first-class module, but it already seems simpler than what I had implemented!

Definitely! I see this as the next step.

Kudos!

Thanks @glennsl ! This was really enabled by your work to bring subscriptions into our architecture, by your ideas for the next architectural steps, and the Subscription modules you built that I based these off of.

One main benefit I see is that it plugs into the Features / Services model - in particular, those functions like notifyBufferUpdate can be moved to 'Effects', and it can be wholly decoupled from the store - the interactions from Onivim being the updater that dispatches the effects, and hooking up a subscriber in the subscribers function.

Yeah, I can see that. It's still not a great interface for a subscription though, but more on that below.

I wasn't sure what you meant by this - do you mean not have the syntaxClient passed to them? I was thinking the next step - as part of refactoring this to a service - would be to remove the state from knowing about syntaxClient at all, and have that managed in the Syntax service. Is that similar to what you had in mind?

syntaxClient should be an implementation detail, so your suggestion of moving to a Service sounds good. That's not what I meant here though.
Data-driven means that you pass it the current buffer so it can listen to changes on that, instead of calling notifyBufferEnter when it changes. It seems like that should be trivial to implement for BufferEnter, but BufferUpdate might be trickier to do, at least in a performant way.
It's the same way component rendering works. You don't call EditorView.update on BufferUpdate, but change the state and then re-render based on the new state. Ideally that's how subscriptions should work too, as pure functions of state. That isn't always going to be possible, of course, but doing so as much as possible makes for a simpler API that's easier to reason about, where looking at the params should be enough to determine behaviour, without needing to consider the effects applied to it, which order the effects were applied in, if the params changed in between the effects and so on.

....the type system doesn't know that oldState and newState are the same

Why does the runner need to know about the state at all? It didn't before, and was just kept internal to the provider. Why can't it still be an implementation detail?

Data-driven means that you pass it the current buffer so it can listen to changes on that, instead of calling notifyBufferEnter when it changes. It seems like that should be trivial to implement for BufferEnter, but BufferUpdate might be trickier to do, at least in a performant way.

I think I understand what you are saying - but let me check - something like?
let subscriptions = (state) => {
   List.map((buffer) => Service_Syntax.Sub.highlights(~buffer))
  |> Isolinear.Sub.flatten;
}

As you mentioned, it's not clear to me how this model would work performantly in the BufferUpdates model. But I do think this refactoring helps us take a baby step towards that direction, so we can start to improve the interface for syntax highlights further.
I agree that it'd preferable to have less effects, but we might need to think more about how to actually make that happen - unless you have a concrete suggestion for it.

Ideally that's how subscriptions should work too, as pure functions of state.

Yes, makes sense!

but doing so as much as possible makes for a simpler API that's easier to reason about, where looking at the params should be enough to determine behaviour, without needing to consider the effects applied to it, which order the effects were applied in, if the params changed in between the effects and so on.

Right, that's why subscriptions are so nice.

Why does the runner need to know about the state at all? It didn't before, and was just kept internal to the provider. Why can't it still be an implementation detail?

The subscriptions, because they interact with the messy-mutable-outside-world, sometimes need to keep track of some per-instance external state (like the state hook in react elements, but for subscriptions).
I use this in the terminal, for example, to track some subscriptions that we remove on dispose: https://github.com/revery-ui/revery-terminal/blob/2463427542b13d17d732e1f100a0e4ba6138882f/src/bin/Terminal.re#L205
You could scope it globally, with a hashtable of id to per-instance state, but I think it's cleaner if we have general way to carry per-instance state, and not make every subscription re-invent it.

I think I understand what you are saying - but let me check - something like?

Yep!

I agree that it'd preferable to have less effects, but we might need to think more about how to actually make that happen - unless you have a concrete suggestion for it.

I don't. And I think the notifyBufferUpdate might be a necessary evil. But having the syntax client in the state is really ugly. And either way this makes the subscription effectively a singleton and will break if multiple subscriptions are instantiated, so ideally that would be enforced by it somehow too.

You could scope it globally, with a hashtable of id to per-instance state, but I think it's cleaner if we have general way to carry per-instance state, and not make every subscription re-invent it.

Hmm. while I do see the benefit I'm still not sure I agree. Mostly just because it makes the runner implementation very complicated and hard to understand. But since it's already there I also don't have a pressing need to remove it. Perhaps we can come up with a better implementation some day.

I don't. And I think the notifyBufferUpdate might be a necessary evil. But having the syntax client in the state is really ugly. And either way this makes the subscription effectively a singleton and will break if multiple subscriptions are instantiated, so ideally that would be enforced by it somehow too.

I think we're on the same page, the next steps I see for this refactoring would be:

Move this subscription + effects to a Service_Syntax project.
Refactor syntaxClient to be purely managed by the Service_Syntax project, without needing to be in the state at all
Change the granularity of the subscription from a singleton to per-buffer highlighting
Refactor some of the effects to be managed by the subscription - some candidates would be:

configurationChangeEffect - this could be managed by carrying the last-pushed configuration in the state, and sending via params - if they are different, the subscription can handle reconciling that
likewise for theme change effect
the buffer enter / visibility changes could also be managed by the subscription, which the per-buffer granularity would enable

This would leave us really with only the buffer update effect as the messy one - and one effect would be significantly easier to reason about than many effects. It would also help us clean up a messy block in the updater where, for a bunch of different types of view changes, we send visibility updates.
However, I'd prefer to tackle this in a separate change - I'm working on the terminal service pieces now which depend on this.

Sounds good!

Refactor syntaxClient to be purely managed by the Service_Syntax project, without needing to be in the state at all

"purely managed" is a ppor choice of words I think, since it's certainly not very "pure". I'd use "encapsulated", and I'm pretty sure that's what you mean as well.
When dealing with side-effects, I think encapsulation is the right approach. Haskell encapsulates side-effects in the IO monad, for example. Encapsulation allows everything else to be pure and easy to reason about, and makes it relatively easy to remove side-effects from the equation to reason about the whole with just a few assumptions about the behaviour of the side-effects. Both figuratively and literally, in the sense that you can easily mock it out for testing.
tl;dr: I like encapsulation!

"purely managed" is a ppor choice of words I think, since it's certainly not very "pure". I'd use "encapsulated", and I'm pretty sure that's what you mean as well.

Ah yes, you're right, encapsulated is a better description.

When dealing with side-effects, I think encapsulation is the right approach. Haskell encapsulates side-effects in the IO monad, for example. Encapsulation allows everything else to be pure and easy to reason about, and makes it relatively easy to remove side-effects from the equation to reason about the whole with just a few assumptions about the behaviour of the side-effects. Both figuratively and literally, in the sense that you can easily mock it out for testing.

Definitely!


Cannot visualize dataset informations in some deployed frontends behind proxys

After registering a new dataset to be public, the dataset informations (description/openers) are not visible on some frontends deployed behind proxys.
Inspecting one of the faulty frontend webpage gives this
main-15d707.js:1 Mixed Content: The page at 'https://front-mydeployedsubstra/dataset' was loaded over HTTPS, but requested an insecure resource 'http://api-deployedfrontend/data_manager/longhash/description/'. This request has been blocked; the content must be served over HTTPS.

Seems like url rewrite of assets is mistaken on the http/https.
All front execute a request using:
request.build_absolute_uri(
        reverse('substrapp:data_manager-description', args=[data_manager['key']]))

Django doc confirms that http/https depends on the request format:
Maybe it should be based on the headers PROXY ?

To give more context this is a case of Substra being deployed behind a Proxy. This article explain pretty well the issue: https://ubuntu.com/blog/django-behind-a-proxy-fixing-absolute-urls
What we need to make it work theorically is to enforce the parameter settings.USE_X_FORWARDED_HOST to True on Django and be sure that the X-Forwarded-Host header is well defined by the various proxies.

Here it looks like the prod settings enforce those values by default: https://github.com/SubstraFoundation/substra-backend/blob/4a034869d70f26643f942571291d0debd1b26c52/backend/backend/settings/prod.py#L12 so that might be a lack of X-Forwarded-Host on the proxy side.

After some debug it looks like the X-Forwarded-Proto is wrongly set:
Frame 86: 732 bytes on wire (5856 bits), 732 bytes captured (5856 bits)
Linux cooked capture
Internet Protocol Version 4, Src: <IP_ADDRESS>, Dst: <IP_ADDRESS>
Transmission Control Protocol, Src Port: 53750, Dst Port: 8000, Seq: 1, Ack: 1, Len: 664
Hypertext Transfer Protocol
    GET /favicon.ico HTTP/1.1\r\n
        [Expert Info (Chat/Sequence): GET /favicon.ico HTTP/1.1\r\n]
            [GET /favicon.ico HTTP/1.1\r\n]
            [Severity level: Chat]
            [Group: Sequence]
        Request Method: GET
        Request URI: /favicon.ico
        Request Version: HTTP/1.1
    Host: xxxxxx\r\n
    X-Request-ID: xxxx\r\n
    X-Real-IP: xxx.xxx.xxx.xxx\r\n
    X-Forwarded-For: xxx.xxx.xxx.xxx\r\n
    X-Forwarded-Host: xxxx\r\n
    X-Forwarded-Port: 80\r\n
    X-Forwarded-Proto: http\r\n
    X-Scheme: http\r\n
    User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36\r\n
    Accept: image/webp,image/apng,image/*,*/*;q=0.8\r\n
    Sec-Fetch-Site: same-origin\r\n
    Sec-Fetch-Mode: no-cors\r\n
    Sec-Fetch-Dest: empty\r\n
    Referer: https://xxxxxxx/\r\n
    Accept-Encoding: gzip, deflate, br\r\n
    Accept-Language: en,fr-FR;q=0.9,fr;q=0.8,en-US;q=0.7\r\n
    \r\n
    [Full request URI: http://xxxxxx/favicon.ico]
    [HTTP request 1/1]

It's then not a bug on the application but in the infrastructure layer.


[Feature Request] - Property mapping for smoother object chain construction - mapProps(), and mapPropsPicked()

For input validation, Zod sometimes feels like it's copy/paste error prone and feels "reversed."  Often, you validate inputs that are going to be sent to another model type that will be written to an API or database.  The types of the properties of the inputs and the destination type usually have the same data type, or only a few properties on the input need to be coerced, refined, or transformed before simply being copied to another type.   I would also like the some of the errors on the model type to be surfaced immediately before any other logic takes place.
Also, autocomplete is greatly hindered as making sure the property names and property types stay in sync is difficult.
I based a lib I wrote almost entirely off Zod, and added this functionality and it's been a big help.  You can see the documentation which mirrors Zod's docs, here:
https://github.com/kutruff/nimbit#mapprops
I'd love for this functionality to also be in Zod.
const Address = z.object({
  street: z.string(),
  zipcode: z.string().length(5) // validate zip is 5 chars.
});

const Person = z.object({
  name: z.string(),
  age: z.number().min(0), //An existing validation on the model
  address: Address,
  title: z.string()
});

const PersonInput = z.object({
  //z.string() is copy pasted here rather than just using the model.
  name: z.string().default(''),
  //Oops. The age validation on the model isn't caught early...
  age: z.string().pipe(z.coerce.number()),
  //Need to validate sub props and coerce Address...
  //Can't reuse the Address type and we didn't get the validation. Using merge() won't guarantee prop names match.
  address: z.object({
    street: z.string().refine(x => x.includes('St.')),
    //expect zipcode to be a number for input but we just forgot the Address validation.
    zipcode: z.number().pipe(z.coerce.string())
  })
});

Now imagine if we had mapProps() that allowed us on a property by property basis to work with the first type:
const PersonInput = Person.mapProps({
  // p is the Person.name.  It's strongly typed.
  name: p => p.default(''),
  // now we get the age validator )
  age: p => z.coerce.number().pipe(p),
  // Now we can use map props on nested objects too!
  address: p => p.mapProps({
    street: sub => sub.refine(x => x.includes('St.')),
    // adding pipe to reuse the length validation on Address.zipcode
    zipcode: sub => z.number().pipe(z.coerce.string()).pipe(sub)
  })
});

mapPropsPicked() would do the same but restrict the properties would only allow the properties that were specified in the mapping.

This is great
Definitely on the list

If the property mappers from z.mapProps had the signature that closely matched the Array.map function, we'd have a lot more power. Something like the following.
type PropertyMapper = <
  Type extends object,
  Key extends keyof Type
>(
  value?: Type[Key],
  key?: Key,
  parent: Type
): any

Person.mapProps({
  name: (value) => value.default(''),
  title: (value) => value.default(''),
  fullSigniture: (, , { name, title }) => [ name, title ].filter(Boolean).join('; ')
})

mapProps could also receive a PropertyMapper function directly, where it would iterate over the keys, and call the PropertyMapper function for each, resulting in an array. I expect this to be more used on z.record() types.

Wow,  yeah, that's definitely a great idea.  I really like that you also made the key and parent shape available.  It's very flexible while also keeping the typical case very simple.  I'm going to be updating my lib to support this style too!
@colinhacks I can look at making a PR for this functionality if you like.  I just want to make sure you're not already working on it and if I do it, it will be reviewed, etc.

Also, while I'm at it, can I add optional VSCode dev container support to the project?  It really makes contributing to projects so much easier as it isolates your environment.  It would be a separate PR.
https://code.visualstudio.com/docs/devcontainers/containers

(Removed previous comment. ) I'm actually now not following what fullSignature would do in this case. I thought I did, but what does the array mean here? Are the decomposed parameters the value to be parsed and not the types? Initially I thought name and title were the types.
Are you mixing transforms with type pipelining?

@Ustice At present, the design of mapProps function doesn't extend the source object.  It restricts it to just existing properties so that you are guaranteed that your property names do not deviate as you make changes.


FIX: table width of nbsphinx dataframes

Fix #1017
I though initially that the problem was solved by #954, but it wasn't. nbsphinx is not a very nice neighbour as it's injecting its css within the article tag instead of the header. giving it a super high priority over custom and/or our theme css.
Instead of setting an !important statement I simply copy/pasted the complete selector + html making it more specific and thus giving it the priority.
We cannot test it in our theme documentation as we are using mystNB but @seanlaw confirmed it worked from his side.

If this works for @seanlaw then I saw we just merge it in and can keep iterating if folks report more bugs in the future 👍


Update benchmark definitions

Introduces DataType and MetaModel data classes. MetaModel consists of higher level model information where as Model is an more concrete representation, consisting of inputs and outputs.
Also dumps more data to the json files.

Merging so that I can build on top of these changes.


Implement live streaming

Apparently, we can directly stream via vlc instead of downloading video.
current = subprocess.Popen(['vlc-wrapper', '-I', 'rc', 'https://www.youtube.com/watch?v=XXXXXXXXXX', '--no-video', '--play-and-exit'], stdout=useless_trash, stderr=useless_trash)

What would that mean for randoming? Could we just log what urls have been used? That would be nice because then we wouldn't ever run out of space

yes, would log in like some file

(Also, this doesn't get around the files refusing to load issue, same 403 error, thank google)

o actually replacing /usr/lib/vlc/lua/playlist/youtube.luac with this file should fix the issue:
http://git.videolan.org/?p=vlc.git;a=blob_plain;f=share/lua/playlist/youtube.lua;hb=HEAD


Allow unassignment of specific tags/objects in assignment_mixin

At the moment, assignment_mixin does not allow unassignment of individual tags/objects, only removal of all assigned items.
This PR adds support for unassignment of specific tags or objects. It is required for https://github.com/ManageIQ/manageiq-api/pull/177

cc @moolitayer
@miq-bot add-label enhancement

@gtanzillo @zeari Please review

I re-wrote this PR with a much better (and safer) implementation.
@moolitayer can you take a look again?

@gtanzillo @zeari please take a look

@elad661 Please move your internal helper methods to the bottom of the mixin under a private statement as these methods are not intended to be public API to the objects they are mixed in to.

@chrisarcand Done.

@jntullo @gtanzillo  @chrisarcand  PTAL