updated tutorial code in regards to issue 1137

@michellechandra , removed the add/remove CursorInteraction code from the CartoDB.js repo/examples/tutorials/tutorial-google-driving-2.html (in regards to your tutorial).

:+1:


⚠ Bofrost.lu has degraded performance

In e00d193, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1527 ms

Resolved: Bofrost.lu performance has improved in 08bfe53 after 6 minutes.


Unclear error message when discarding changes

The angry hippo in #32405 does bring up a valid issue.

Normally, with say Git, "revert all changes" means:

Revert all tracked files to their VCS version
Leave all untracked files alone

I do believe that SVN works in similiar way, altho I haven't used it for a while so I might be wrong.
"Discard all changes" should either clarify that (probably with big sign THIS WILL DELETE EVERY FILE THAT IS NOT IN VCS and smaller one "and ones commited will be reverted to upstream), or do not touch untracked files at all

#32459


error validators for validateErrors action passes undefined parameter

Having an issue with the new actions.validateErrors(). Any time errorValidators are used, the parameter is logged as undefined, when it should reflect the current value of the user model reducer. For instance:
// somewhere with dispatch()
dispatch(actions.validateErrors('user.email', (val) => {
  console.log(val) // undefined
}))
dispatch(actions.validateErrors('user.email', {
  required: (val) => { console.log(val) } // undefined
}))

Can you post a full code example?

My code is separated into different files, I hope its readable. As of now, everything seems to be working as it is supposed to, even with validateErrors, except that the value passed in to the error validator is undefined.
// MyComponent.jsx

import React from 'react'
import { Form, createFieldClass, controls } from 'react-redux-form'
import { Input } from 'react-bootstrap'
import { handleSurveySubmit } from 'actions/survey'

const InputField = createFieldClass ({
  'Input': controls.text
})

export default class MyComponent extends React.Component {
  render() {
    <Form onSubmit={ () => this.props.actions.handleSurveySubmit() }>
      <InputField model="survey.isStudent">
          <label>{ 'Are you currently a student?' }</label>
          <Input type="radio" value="Yes" label="Yes" />
          <Input type="radio" value="No" label="No" />
        </InputField>
      <button type="submit">{ 'Continue' }</button>
    </Form>
  }
}

...

// actions/survey.js
import { actions } from 'react-redux-form'

export function handleSurveySubmit() {
  return (dispatch) => {
    const { forms: { surveyForm } } = getState()
    dispatch(actions.validateErrors('survey.isStudent', {
      required: (val) => { console.log(val) } // undefined
    }))

    if (surveyForm.valid) {
      // do something
    }
  }
}

...

// reducers/forms.js

import { modelReducer, formReducer } from 'react-redux-form'
import { combineReducers } from 'redux'

const initialSurveyState = {
  isStudent: ''
}

export default combineReducers({
  survey: modelReducer('survey', initialSurveyState),
  surveyForm: formReducer('survey')
})

...

// reducers/index.js

import combineReducers from 'redux'
import { forms } from 'reducers/forms'
...

export default combineReducers({
  forms,
  ...
})

Might be a React-Bootstrap issue - have you tried 'Input': controls.radio ?

Ya I have tried controls.radio. When I use controls.radio, everything works the same except that actual radio button that is chosen does not show up, and they are all unmarked (Although I think that's a separate issue). Are you sure it is a React-Bootstrap issue? Even when I take out the  component and submit the form without any user interaction, the validateErrors should be accessing my survey model reducer independently of what is shown to the user right? In that case I am not using Bootstrap at all, but I should still be able to validate my survey model state, though there may not be a point to doing so. Thoughts?

@nickzarate This definitely looks like a react-bootstrap issue. Check this example out - not even using Redux or React-Redux-Form, the console fails to log the "No" option: http://esnextb.in/?gist=fff6baa60ddd5e42e4ff

Issue here: https://github.com/react-bootstrap/react-bootstrap/issues/1690

Using nearly the exact same code you used:
import React from 'react'
import { Input } from 'react-bootstrap'

export default class Foo extends React.Component {
  handle(e) {
    console.log(e.target.value);
  }
  render() {
    return (
      <form>
        <Input type="radio" name="asdf" value="Yes" label="Yes"
          onChange={e => this.handle(e)}/>
        <Input type="radio" name="asdf" value="No" label="No"
          onChange={e => this.handle(e)}/>
      </form>
    )
  }
}

I am not able to reproduce the issue, "Yes" and "No" are logged to the browser just fine. Not sure why that is. However, if I understood correctly, jquense answered that issue you submitted saying that that is the intended behavior right? (Implying it is not an issue to be 'fixed'). With that in mind, is there a possible workaround or is React-Bootstrap just going to be a problem? On that note, I am having issues with React-Bootstrap using a checkbox input and radio input, and I just saw issue #65, in your opinion, do you think it is worth it to use React-Bootstrap with RRF?

Yes, if the above code works, then you should be able to do this:
import React from 'react'
import { actions } from 'react-redux-form';
import { Input } from 'react-bootstrap'

const Foo = connect(s=>s)(class Foo extends React.Component {
  render() {
    let { dispatch } = this.props;
    return (
      <form>
        <Input type="radio" name="test" value="Yes" label="Yes"
          onChange={e => dispatch(actions.change('user.email', e))}/>
        <Input type="radio" name="test" value="No" label="No"
          onChange={e => dispatch(actions.change('user.email', e))}/>
      </form>
    )
  }
});

And for that issue, all custom components should have a .displayName property. I'll open a PR to add it to react-bootstrap if it's missing on some of their components.

Oh sorry I was actually referring to the original issue, which wasn't even with the Radio button actually, that is working for me fine (except for in production because of uglify, and also I use controls.text which works instead of controls.radio which does not work). The problem I am having is that when I submit the form, I cannot validate the errors of any specific field. So for the isStudent state inside my survey model reducer, I can see that "Yes" and "No" are actually being set as the states, but when I submit the form, my error validators get undefined as the value being pulled from those states. I was confused as to why it was a ReactBootstrap issue because I thought validateErrors was independent of the actually component itself, and only related to the state in the model reducer. Actually I just tried this, and when I use input instead of React Bootstraps Input, validateErrors is still returning undefined for me. This is the specific snippet of code where I am having trouble:
// actions/survey.js
import { actions } from 'react-redux-form'

export function handleSurveySubmit() {
  return (dispatch) => {
    const { forms: { surveyForm } } = getState()
    dispatch(actions.validateErrors('survey.isStudent', {
      required: (val) => { console.log(val) } // undefined
    }))

    if (surveyForm.valid) {
      // do something
    }
  }
}

I'm pretty new to all this stuff though (even React and Redux in general), so I'm sorry if I'm missing something here or not making any sense, I appreciate the help!

@nickzarate Please see this gist (click Execute) and check the console upon clicking the text. I am successfully getting the value of survey.isStudent logged. http://esnextb.in/?gist=fdc389057dbb786e5925
Also, make sure to return (dispatch, getState) => { to provide getState inside your function body.

Ok, I figured out what the issue was. I actually suspected this from the beginning but for some reason forgot about it! So the issue I was having, and I think this extends to some other issues, was that I have been nesting my modelReducers, and formReducers. I combinedReducers of all of my model and form reducers under a forms reducer that I then use in my reducers/index.js, for some reason this extra layer lead to issues, maybe because of combineReducers? Here is the snippet of code (from above) that caused the issue:
// reducers/forms.js

import { modelReducer, formReducer } from 'react-redux-form'
import { combineReducers } from 'redux'

const initialSurveyState = {
  isStudent: ''
}

export default combineReducers({
  survey: modelReducer('survey', initialSurveyState),
  surveyForm: formReducer('survey')
})

...

// reducers/index.js

import combineReducers from 'redux'
import { forms } from 'reducers/forms'
...

export default combineReducers({
  forms,
  ...
})

If you want to keep your original code, you can declare it as so:
export default combineReducers({
  survey: modelReducer('forms.survey', initialSurveyState),
  surveyForm: formReducer('forms.survey'),
  ... // other reducers
})

I will update the docs to clarify this. :smile:

Haha wow, such an easy fix. Thanks!


Meaning of mapping to an existing object?

Meaning of mapping to an existing object?
I used map to existing object, but I found that it doesn't preserve the value of the existing object during the mapping process, it initializes the value of the existing object, and when the existing object is a collection, the value of the existing object is the same as The response data is not the same, but I think their result should be the same
[TestMethod]
public void TestMapToExistingObject()
{
    List<UserDto> sources = new List<UserDto>()
    {
        new()
        {
            Name = "Jim",
            Age = 18
        }
    };

    List<UserDto> destination = new List<UserDto>();
    sources.Adapt(destination);
    Assert.IsTrue(destination.Count == sources.Count);//But it is not established at present, I think he is a bug
}

public class UserDto
{
    public string Name { get; set; }

    public int Age { get; set; }
}

update existing colliection
i think Mapster need add new api something like ByField() (search some key to update)
,and insert new when not exists.


case of extraneous graph edges with dynamic indexing

In the following case, all the y[1:10] elements are found as dependents of mu[11:20] (and vice versa for getParents), because in findDynamicIndexParticipants we set the full range for the mu symbolicParentNode of the introduced .mu variable (.mu_unknownIndex_mu_oBksi_oBi_cB_cB_context2, which is in a newly-introduced temporary declaration) based on the varInfo, which has maxes of 20 not 10. I.e., the symbolicParentNode is mu[1:20] when it should be mu[1:10].
code <- nimbleCode({
    for(i in 1:10) {
        y[i] ~ dnorm(mu[ksi[i]],1)
        ksi[i] ~ dcat(p[1:10])
        mu[i]~dnorm(0,1)
    }
    for(i in 11:20) {
        y[i] ~ dnorm(mu[i],1)
        mu[i]~dnorm(0,1)
    }
})

This should unnecessarily increase computation rather than cause incorrect behavior of algorithms (presuming that unneeded dependencies don't cause problems), but it would be good to fix to avoid unexpected issues.

Actually, on further thought, we'd have to understand the potential values of ksi if we were to deal with this. That goes beyond our framework for setting up the graph.


[FIRTrace updateTraceWithSessionId]_block_invoke

Describe the bug
Started having a lot of IOS APP crashes - all crashes happened on IOS 12
To Reproduce
It comes up very randomly
Console Logs
__36-[FIRTrace updateTraceWithSessionId]_block_invoke + 91
Plugin Version
2.0.5
Smartphone (please complete the following information):

OS: [e.g. iOS12]

It seems that problem is within IOS firebase plugin

Same Here
Fatal Exception: NSInvalidArgumentException
0  CoreFoundation                 0x22514dea4 __exceptionPreprocess
1  libobjc.A.dylib                0x22431da50 objc_exception_throw
2  CoreFoundation                 0x2250c5384 _CFArgv
3  CoreFoundation                 0x225039a58 -[__NSSetM addObject:]
4  Pepperfry                      0x100858650 __36-[FIRTrace updateTraceWithSessionId]_block_invoke
5  libdispatch.dylib              0x224b856c8 _dispatch_call_block_and_release
6  libdispatch.dylib              0x224b86484 _dispatch_client_callout
7  libdispatch.dylib              0x224b60fa0 _dispatch_lane_serial_drain$VARIANT$armv81
8  libdispatch.dylib              0x224b61ae4 _dispatch_lane_invoke$VARIANT$armv81
9  libdispatch.dylib              0x224b69f04 _dispatch_workloop_worker_thread
10 libsystem_pthread.dylib        0x224d690dc _pthread_wqthread
11 libsystem_pthread.dylib        0x224d6bcec start_wqthread

Any update on that? I'm too experiencing those crashes

Same here any updates?


added serial control

This class is used to communicate between the raspberry pi and the arduino.
Test will be coming

closing this because there are some issues with the files (AutoPylot vs autopylot)


Exec plugin can also be used with a parameterized class.

I noticed this is missing in README file.

Thanks!

No problem:)
Love to give something back.


llm_serving not compatible with transformers 4.23.1

Please describe the bug
llm_serving not compatible with transformers 4.23.1. Here is the trace:
(DeviceMeshGroupManager pid=69681) Traceback (most recent call last):
(DeviceMeshGroupManager pid=69681)   File "launch_model_worker.py", line 128, in batch_loop
(DeviceMeshGroupManager pid=69681)     results = self.generator.generate(**args)
(DeviceMeshGroupManager pid=69681)   File "/home/zhanyuan.zhang/alpa/examples/llm_serving/generator.py", line 175, in generate
(DeviceMeshGroupManager pid=69681)     output_ids = self.model_wrapper.generate(input_ids=input_ids, **generator_args)
(DeviceMeshGroupManager pid=69681)   File "/home/zhanyuan.zhang/.conda/envs/alpa-debug/lib/python3.8/site-packages/transformers/generation_utils.py", line 734, in _get_logits_processor
(DeviceMeshGroupManager pid=69681)     suppress_tokens = suppress_tokens if suppress_tokens is not None else self.config.suppress_tokens
(DeviceMeshGroupManager pid=69681) AttributeError: 'InferenceFuncConfig' object has no attribute 'suppress_tokens'

Please describe the expected behavior
System information and environment

OS Platform and Distribution: Linux Ubuntu 16.04:
Python version: 3.8
CUDA version: 11.1
NCCL version: 2.10.3
cupy version: cupy-cuda111==11.2.0
GPU model and memory: (GeForce GTX 1080 Ti, 11GB)x2
Alpa version: v0.2.1
TensorFlow version: N/A
JAX version: jax==0.3.15, jaxlib==0.3.15+cuda111.cudnn805

To Reproduce
Steps to reproduce the behavior:

Follow here to installation requirement
Check that transformers 4.23.1 is installed
Go to localhost:8001 and enter any prompt
See the error message from console

Screenshots
If applicable, add screenshots to help explain your problem.
Code snippet to reproduce the problem
To launch model worker:
python launch_model_worker.py --model alpa/bloom-560m --path ~/bloom-560m_weights/ --host <IP_ADDRESS> --tokenizer bigscience/bloom-7b1

And to start the website:
uvicorn launch_website:app --host <IP_ADDRESS> --port 8001

Additional information
Add any other context about the problem here or include any logs that would be helpful to diagnose the problem.

Just filed a PR to solve this: https://github.com/alpa-projects/alpa/pull/742
My textgen.py result after importing the changes in this PR:


No TypeScript results on website

Despite having a binary convert implementation on the TypeScript repository, I don't see anything on the website. Same for the other algorithms added in here.
Even the link given to the site gives a 404 :no_mouth:

I believe the site hasn't been updated yet. That's an issue for the site repo.


Update issue templates for improved ticket filtering

This PR updates existing issue templates with standardized title tags for increased organization of tracked on-call tickets. Also, a template is added for generic inquiries.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/bot run checks

/bot run checks


'Function not resolved in class: no members found error' on release build

compose-runtime-version = above 1.6.4 (compose-bom version = above "2024.03.00")
The following error occurred in the release build, and when R8 retrace was performed, it was confirmed that there was an issue within the Compose runtime.
FATAL EXCEPTION: main
Process: com.unifest.android, PID: 30877
qb.i: Function 'onAction' (JVM signature: onAction(Lcom/unifest/android/feature/intro/viewmodel/IntroUiAction;)V) not resolved in class ra.r: no members found
 at r.q0.b(Unknown Source:555)
 at nc.v1.b(Unknown Source:18)
 at nc.j0.r(Unknown Source:7)
 at nc.j0.toString(Unknown Source:2)
 at ec.h.toString(Unknown Source:12)
 at java.lang.String.valueOf(String.java:4092)
...

I thought it might be helpful, so I'm attaching the relevant error part from the R8 retrace results.
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Unknown Source:109)                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Unknown Source:35)
at androidx.compose.ui.platform.ComposeView.Content(Unknown Source:428)
at androidx.compose.ui.platform.AbstractComposeView$ensureCompositionCreated$1.invoke(Unknown Source:252)                                                                                at androidx.compose.ui.platform.AbstractComposeView$ensureCompositionCreated$1.invoke$bridge(Unknown Source:0)
at androidx.compose.ui.platform.AbstractComposeView$ensureCompositionCreated$1.invoke(Unknown Source:251)                                                                                at androidx.compose.animation.AnimatedContentKt$AnimatedContent$6$1$4$1.invoke$bridge(Unknown Source:0)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Unknown Source:109)                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Unknown Source:35)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(Unknown Source:228)
at androidx.compose.ui.platform.CompositionLocalsKt.ProvideCommonCompositionLocals(Unknown Source:186)
at androidx.compose.ui.platform.AndroidCompositionLocals_androidKt$ProvideAndroidCompositionLocals$3.invoke(Unknown Source:119)                                                                                at androidx.compose.material.ButtonKt$Button$3.invoke$bridge(Unknown Source:0)
at androidx.compose.ui.platform.AndroidCompositionLocals_androidKt$ProvideAndroidCompositionLocals$3.invoke(Unknown Source:118)                                                                                at androidx.compose.foundation.lazy.grid.LazyGridDslKt$rememberColumnWidthSums$1$1.invoke$bridge(Unknown Source:0)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Unknown Source:109)                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Unknown Source:35)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(Unknown Source:228)
at androidx.compose.ui.platform.AndroidCompositionLocals_androidKt.ProvideAndroidCompositionLocals(Unknown Source:110)
at androidx.compose.ui.platform.WrappedComposition$setContent$1$1$2.invoke(Unknown Source:139)                                                                                at androidx.compose.ui.platform.WrappedComposition$setContent$1$1$2.invoke$bridge(Unknown Source:0)
at androidx.compose.ui.platform.WrappedComposition$setContent$1$1$2.invoke(Unknown Source:138)                                                                                at androidx.compose.ui.platform.WrappedComposition$setContent$1$1$2.invoke$bridge(Unknown Source:0)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Unknown Source:109)                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Unknown Source:35)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(Unknown Source:248)
at androidx.compose.ui.platform.WrappedComposition$setContent$1$1.invoke(Unknown Source:138)                                                                                at androidx.compose.ui.platform.WrappedComposition$setContent$1$1$2.invoke$bridge(Unknown Source:0)
at androidx.compose.ui.platform.WrappedComposition$setContent$1$1.invoke(Unknown Source:123)                                                                                at androidx.compose.ui.platform.WrappedComposition$setContent$1$1$2.invoke$bridge(Unknown Source:0)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Unknown Source:109)                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(Unknown Source:35)
at androidx.compose.runtime.ActualJvm_jvmKt.invokeComposable(Unknown Source:90)
at androidx.compose.runtime.ComposerImpl.doCompose(Unknown Source:3302)
at androidx.compose.runtime.ComposerImpl.composeContent$runtime_release(Unknown Source:3235)
at androidx.compose.runtime.CompositionImpl.composeContent(Unknown Source:725)
at androidx.compose.runtime.Recomposer.composeInitial$runtime_release(Unknown Source:1071)
at androidx.compose.runtime.CompositionImpl.composeInitial(Unknown Source:633)
at androidx.compose.runtime.CompositionImpl.setContent(Unknown Source:619)
at androidx.compose.ui.platform.WrappedComposition$setContent$1.invoke(Unknown Source:123)                                                                                at androidx.compose.ui.platform.WrappedComposition$setContent$1.invoke(Unknown Source:114)                                                                                at androidx.compose.foundation.BorderModifierNode$drawGenericBorder$1.invoke$bridge(Unknown Source:0)
at androidx.compose.ui.platform.AndroidComposeView.setOnViewTreeOwnersAvailable(Unknown Source:1289)
at androidx.compose.ui.platform.WrappedComposition.setContent(Unknown Source:114)
at androidx.compose.ui.platform.WrappedComposition.onStateChanged(Unknown Source:164)
at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(Unknown Source:320)
at androidx.lifecycle.LifecycleRegistry.addObserver(Unknown Source:198)
at androidx.compose.ui.platform.WrappedComposition$setContent$1.invoke(Unknown Source:121)                                                                                at androidx.compose.ui.platform.WrappedComposition$setContent$1.invoke(Unknown Source:114)                                                                                at androidx.compose.foundation.BorderModifierNode$drawGenericBorder$1.invoke$bridge(Unknown Source:0)
at androidx.compose.ui.platform.AndroidComposeView.onAttachedToWindow(Unknown Source:1364)
at android.view.View.dispatchAttachedToWindow(View.java:23215)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3698)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3705)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3705)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3705)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3705)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3883)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3275)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:11257)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1650)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1659)
at android.view.Choreographer.doCallbacks(Choreographer.java:1129)
at android.view.Choreographer.doFrame(Choreographer.java:1055)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1622)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:8913)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

Thanks for reporting. This will be resolved in a K2 support release.


beautify alert box

Issue Number
fixes #183

Describe the changes you've made
A clear and concise description of what you have done to successfully close your assigned issue. Any new files? or anything you feel to let us know!
Added a better alert box with a relevant message.
Describe if there is any unusual behaviour of your code(Write NA if there isn't)
A clear and concise description of it.
NA
Additional context (OPTIONAL)
Add any other context or screenshots about the feature request here.
Test plan (OPTIONAL)
A good test plan should give instructions that someone else can easily follow.
How someone can test your code?
Just add the login details and click on login and alert box will appear.
Checklist

[ ] I have added my name in the contributors list at the end of README.md file.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have added tests to cover my changes.
[ ] All new and existing tests passed.
[x] The title of my pull request is a short description of the requested changes.
[x] LGMSOC21

A small typo: "Happy to have to aboard"
Correct it.

yes, I just updated it.


chore(Function): rename some lemmas

Merge Function.left_id and Function.comp.left_id into Function.id_comp.
Merge Function.right_id and Function.comp.right_id into Function.comp_id.
Merge Function.comp_const_right and Function.comp_const into Function.comp_const, use explicit arguments.
Move Function.const_comp to Mathlib.Init.Function, use explicit arguments.

bors merge

bors d+

bors merge

bors merge


gatsby build fails while generating thumbnails.

Hi,
I was really hoping to use this with Firebase, but it just won't build, getting stuck on thumbnail generation. I found some issue with this on other projects.
Is there a specific npm or node version it needs? I began my 12 hours of attempts using node - v 13, but there were so many missing requirements and stuff, so I downgraded to node -v 8.10, and then I could at least start seeing npm install complete.  Anyway, this looks like it would be a great thing, but it just won't install nor build completely on my Mac.
home:sol-journal home$ gatsby develop
success open and validate gatsby-configs - 0.112s
success load plugins - 0.796s
success onPreInit - 0.003s
success initialize cache - 0.020s
success copy gatsby files - 0.072s
success onPreBootstrap - 2.938s
success createSchemaCustomization - 0.028s
success source and transform nodes - 0.170s
success building schema - 0.353s
success createPages - 0.002s
success createPagesStatefully - 0.102s
success onPreExtractQueries - 0.002s
success update schema - 0.034s
success extract queries from components - 0.273s
success write out requires - 0.043s
success write out redirect data - 0.012s
success Build manifest and related icons - 0.119s
success onPostBootstrap - 0.144s

info bootstrap finished - 8.172 s

[                            ]   0.037 s 0/9 0% run queries
[                            ]   0.011 s 0/3 0% Generating image thumbnails

 ERROR

UNHANDLED REJECTION { err:
   { Error
    at _errnoException (util.js:1022:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19)
    at onErrorNT (internal/child_process.js:372:16)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
     code: 'ENOENT',
     errno: 'ENOENT',
     syscall: 'spawn /Users/ulken/sol-journal/node_modules/pngquant-bin/vendor/pngquant',
     path: '/Users/ulken/sol-journal/node_modules/pngquant-bin/vendor/pngquant',
     spawnargs: [ '-', '--quality', '50-75', '--speed', 4, '--strip' ],
     stdout: <Buffer >,
     stderr: <Buffer >,
     failed: true,
     signal: null,
     cmd: '/Users/ulken/sol-journal/node_modules/pngquant-bin/vendor/pngquant - --quality 50-75 --speed 4 --strip',
     timedOut: false,
     killed: false },
  message: 'Failed to process image /Users/ulken/sol-journal/src/img/landing-graphic-light.png' }

  Error: { err:
     { Error

  - child_process.js:190 Process.ChildProcess._handle.onexit
    internal/child_process.js:190:19

  - child_process.js:372 onErrorNT
    internal/child_process.js:372:16

  - next_tick.js:138 _combinedTickCallback
    internal/process/next_tick.js:138:11

  - next_tick.js:180 process._tickCallback
    internal/process/next_tick.js:180:9

  - code: 'ENOENT',

  - errno: 'ENOENT',

  - syscall: 'spawn /Users/ulken/sol-journal/node_modules/pngquant-bin/vendor/pngquant',

  - path: '/Users/ulken/sol-journal/node_modules/pngquant-bin/vendor/pngquant',

  - spawnargs: [ '-', '--quality', '50-75', '--speed', 4, '--strip' ],

  - stdout: <Buffer >,

  - stderr: <Buffer >,

  - failed: true,

  - signal: null,

  - cmd: '/Users/ulken/sol-journal/node_modules/pngquant-bin/vendor/pngquant - --quality 50-75 --speed 4 --strip',

  - timedOut: false,

  - killed: false },

  - message: 'Failed to process image /Users/ulken/sol-journal/src/img/landing-graphic-light.png' }

  - index.js:115 process.on.reason
    [lib]/[gatsby-cli]/lib/index.js:115:14

  - index.js:155 processEmit
    [lib]/[gatsby-cli]/[signal-exit]/index.js:155:32

  - index.js:155 processEmit [as emit]
    [sol-journal]/[signal-exit]/index.js:155:32

  - promises.js:108 emitPendingUnhandledRejections
    internal/process/promises.js:108:22

  - next_tick.js:189 process._tickCallback
    internal/process/next_tick.js:189:7

[                            ]   0.037 s 0/9 0% run queries
[                            ]   0.011 s 0/3 0% Generating image thumbnails

Hmmm, I wonder if it might be a node issue, I'm on Node.js v11.15.0 locally (also on Mac) and things work okay on my machine and get deployed to Netlify okay where it builds alright. Maybe deploying it to Netlify where the environment is different would work?

I downgraded, but now I'm getting other errors, mostly about core-js. Seems there are conflicts or something about the older core-js that this project requires. Anyways, I can't get it to build, giving up.

I use firebase for my deployment of the app. I build and deploy using Gitlab CI. Would you like me to post the CI script here?


Implement GTE and LTE operators for numeric user traits and event properties

It will be really useful to have >= and <= operators for building segments. There are a lot of scenarios for them, e.g.:
User Trait age >= 30
or
User Performed purchase_event at least 1 time   where made_purchase.price <= 100

Hey Alex, thanks for this! We'll try to implement them soon :)

That would be great!

@sintezcs just implemented these features for your team, will go out in the next release!
https://github.com/dittofeed/dittofeed/commit/af4aaf087cf77717c0e54eb9665c2c2ec82db36f
https://github.com/dittofeed/dittofeed/commit/c11c6e4ca11fe945f9d7d1b0ab8ead251c5a3af9


test install under python2.7 on travis

ASE dropped python2 support in 3.18.
We've decided to no longer support python2.7 for the AiiDA lab.


Dismiss the keyboard automatically

Add one @IBInspectable property like autoDismissKeyboard to AnimatableViewController.

What's the idea behind that feature? Hiding the keyboard when a viewController is disappearing?

For example, if we have some UITextField and UITextView in a ViewCotroller, once the keyboard is up, we need to write some code to dismiss it manually. How about we can automatically dismiss the keyboard when the user taps out of the UITextField. That is a small feature on top of my head 😊

I can understand the feature, but won't it be hard to make it customisable with IB? Otherwise, it will really be a basic feature without to much customisation, which is completely ok 👍

@tbaranes I think an enum like borderSide will be extendable, good idea 👍.


Landscape signin page

Pretty bare bones, but matches the mocks.

Specifically, this could have more advanced error states (currently doesn't check if it's a shipname, etc.)

Might want to merge this into hotfix

Reverting this because you included some of Fangs stuff that shouldn't be there


Swift Package Manager Build

Hi,
When attempting to use swift build , there a swift error: NoSources(... for /Tests/Resources/ . At the moment I don't have a need for your libraries unit tests, and the sources were fetched just fine. However just a heads up; and seeing if there is a fix for this. Seeing that SPM is pretty new.
Any insights appreciated!
Cheers! :beer:

I don't know if is an bad approach, but I deleted Tests folder before run swift build again.
rm -rf Packages/Alamofire-3.3.0/Tests/*

thanks @vsouza I'll attempt that, for now just sticking to cocoapods on the project until SPM is stable and Swift3...

Thanks @vsouza. We currently aren't closely supporting SPM since it's still in beta. If anyone out there with more experience with SPM would be willing to help get Alamofire ready, it would be greatly appreciated!
Cheers. 🍻


Move DeleteWorkflowExecution to workflow service

What was changed

Move DeleteWorkflowExecution to workflow service.
Why?

https://github.com/temporalio/api/pull/233

I would expect that API PR to be merged before this PR works

#883 includes all needed changes. This can be closed now.


fix lru hash map

What is this fix about?
Also, have you implemented an LRU cache from scratch? any reason why you didn't use other implementations such as http://www.codeproject.com/Articles/23396/A-High-Performance-Multi-Threaded-LRU-Cache ?

my previous implementation was wrong, this is not implemented from scratch, and its working.
(tests are passing)

@eladmarg can you point us to the tests that are being fixed by this PR?

I see one test in the PR request, but the comment referenced plural tests so want to make sure we look at them all.

currently only TestHashMap

To be frank my main concern is with the actual implementation - the Java version is relying on a JVM implementation, and if we are to write our own we should at least try and get other proven ones

Itamar, this is proved one,
Taken from here: https://gist.github.com/nakhli/6686251
the previous was mine implementation, and it was wrong.

can it be merged?

I want to review this properly and see what our options are for trusted LRU implementations, not going to merge for now until we get it right for sure.


Starred and Unread UI indicators are not updated in search results or smart feeds on Catalina

I noticed that the unread/starred indicators are not updated in the UI if the selected article is displayed as a search result or displayed in the "Smart Feeds" section if

A local and an iCloud account is activated at the same time
The selected article is part of a feed which is contained in both accounts

If this is the case, then the UI indicators only work for one article - in my case it updates the article of the local account just fine, but refuses to update it for iCloud. However the in the underlying database the article gets marked accordingly only the UI stays out of sync with the data.
If the conditions above do not apply (e.g. if the local account is disabled in preferences) everything works just fine. I only noticed it when I tried to transfer all my Feeds to the iCloud account. First I exported my subscriptions from the local account to a file and then re-imported it into the iCloud account (maybe there is a better way to do that). I wanted to delete the local account but noticed that all starred articles were gone which I wanted to keep and hence discovered the bug.
Steps to Reproduce

Make sure a local and iCloud Account is active at the same time
Type in a search query or select an article from the smart feeds section
make sure the article is part of a feed which is subscribed by both accounts (so there should be two articles with the same name)
The unread/starred indicators should only update for one of the two articles

System Infos
NetNewsWire Version 6.0 (6026)
macOS Catalina 10.15.7 (19H524)
Demo
The video demonstrates the bug. The iCloud article (top) does not update the UI indicators while the article stored in the local account (bottom) reflects the changes accordingly.
https://user-images.githubusercontent.com/16613048/112766704-31402d80-9013-11eb-9dc6-a3eacd2d0afd.mov

Thanks for the excellent bug report. We've identified the issue and there is a fix for this coming in the 6.0.1 release.

Happy to help! Thank you for NetNewsWire!


Make MapBuilderServer testable

Pass MapBuilder to the constructor so the MapBuilder can be mocked.

@wally-the-cartographer merge

Merge requested by authorized user cschuet. Merge queue now has a length of 1.


Version v<IP_ADDRESS> missing in Docker Hub

Just want to start by thanking you, @begriffs, for such a useful piece of software. That said, it appears that version v<IP_ADDRESS> is missing from https://hub.docker.com/r/begriffs/postgrest. I was able to build this version locally and verify that the build worked without issue.
Again, thanks for your time and continued efforts.

The correct repo is actually https://hub.docker.com/r/postgrest/postgrest/
We link to it in a badge at the top of the readme, but you're not the first person to use the older repo. Maybe I should add a more prominent note about the move...

That makes sense - I was using the other repo as it ranks higher in a Google search for "postgrest docker". Thanks for the correction!


[10.x] New Validate Attribute , csv for csv mime type

for csv mime type validation use csv
 $validator = Validator::make($request->all(), [
              'file' => 'required|csv'
          ]);

This PR unfortunately contains to many unrelated style changes.


Modal doesn't support animations

Steps
Open a modal.
Expected Result
The modal doesn't animate while opening.
Actual Result
The modal shows immediately, without any animation.
Version
0.62.3

No transitions are included until #813 is merged.

Now  is done, should  have animation by default? Or do we need to enable it?

Now that Transition is complete, it needs to be integrated into our own components. The Dimmer is getting transitions added in #2001.
Perhaps you could submit a PR for the modal?


[SUGGESTION] Bring back Video Annotation

Please bring back the camera.annotate_text feature. It was so simple to use, especially for low grade raspberry pi's like the zero.

I'm afraid the previous implementation was based on the proprietary GPU firmware and the proprietary legacy camera stack. It really cannot be made to work like that again. Your best bets are either to do things in the newer way, or to re-enable the legacy camera stack running under Bullseye. In the former case, if you have simple test cases where the performance is poor, then please do raise them in case there's anything we can do to help.


[WIP] TP2000-141 Geo areas form component

Codecov Report

Merging #599 (482d31b) into master (0f50a7e) will increase coverage by 0.02%.
The diff coverage is 96.25%.

@@            Coverage Diff             @@
##           master     #599      +/-   ##
==========================================
+ Coverage   92.95%   92.97%   +0.02%
==========================================
  Files         322      324       +2
  Lines       20132    20368     +236
  Branches     1604     1629      +25
==========================================
+ Hits        18713    18938     +225
- Misses       1127     1131       +4
- Partials      292      299       +7

Impacted Files
Coverage Δ

common/forms.py
86.92% <86.73%> (-0.31%)
:arrow_down:

measures/forms.py
98.05% <98.34%> (+0.96%)
:arrow_up:

common/tests/test_forms.py
100.00% <100.00%> (ø)

common/widgets.py
100.00% <100.00%> (ø)

measures/tests/conftest.py
92.90% <100.00%> (+0.09%)
:arrow_up:

measures/tests/test_forms.py
100.00% <100.00%> (ø)

measures/tests/test_views.py
100.00% <100.00%> (ø)

measures/views.py
96.58% <100.00%> (ø)

geo_areas/models.py
94.93% <0.00%> (-1.27%)
:arrow_down:

Continue to review full report at Codecov.

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


Terminal Tabs enabled by default.

VS Code Version: 1.56
OS Version: MacOS Catalina

Steps to Reproduce:

Upgrade to latest VSCode.
Open more than one tab.

Expected Result:
Things are the same as before.
Actual Result:
Terminals appear in tabs now.

Does this issue occur when all extensions are disabled?: Yes/No
Yes.
This wouldn't be so bad, but when changing between tabs, keypresses now go to the terminal tab "pane", not the terminal so - for example -  up cursor key switches the highlight between tabs, not brings the last item in my command history up.  I now have to click into the tab after switching tabs for it gain event focus.

(Experimental duplicate detection)
Thanks for submitting this issue. Please also check if it is already covered by an existing one, like:

Tabbing into terminal needs 2 tabs (#117353)
Allow renaming terminal tabs inside the tab view (#122023)
Weird visual selection state for few frames when clicking on terminal tabs (#122422)
Dragging tabs should show an insertion target, not a replacement target (#118419)
Terminal tabs CSS rules are not terminal tabs specific (#121258)

None of these are about the fact that this experimental feature is enabled by default, which is the exact opposite of what the release notes claim it should be.

It should be disabled by default. You can easily go back to the old way by setting terminal.integrated.tabs.enabled: false or by right clicking the terminal and choosing hide tabs in the context menu while we polish tabs this iteration.

Terminal tabs has seen many improvements and will be enabled in the upcoming version. You can always disable them in settings if you want.

Terminal tabs has seen many improvements and will be enabled in the upcoming version. You can always disable them in settings if you want.

I am aware of that.  What I can do, and what is directly stated in your onboarding readme are not the same.
The readme claimed the old behavior would be the default.  That is not what I saw.


shopify_integration failure

Following on
https://github.com/mikelarkin/contestapp/issues/6

I am now using
https://github.com/mikelarkin/contestapp/blob/chapter_03/app/services/shopify_integration.rb

When clicking on:
Test Connection

I get the following error:
ArgumentError at /accounts/1/test_connection
params[:account_id] is required

error occurs in:
app/services/shopify_integration.rb

at line 8
3  attr_accessor :url, :password, :account_id
4
5  def initialize(params)
6    # Ensure that all the parameters are passed in
7    %w{url password account_id}.each do |field|
8      raise ArgumentError.new("params[:#{field}] is required") if params[field.to_sym].blank?
9
10      # If present, then set as an instance variable
11     instance_variable_set("@#{field}", params[field.to_sym])
12    end
13 end

I have pushed current state of sources to:
https://github.com/MartinRaskovsky/contestapp/

Fixed myself, diffs follow:
diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb
index 5630650..4e3338e 100644
--- a/app/controllers/accounts_controller.rb
+++ b/app/controllers/accounts_controller.rb
@@ -68,6 +68,7 @@ class AccountsController < ApplicationController
ShopifyIntegration.new(api_key: @account.shopify_api_key,
shared_secret: @account.shopify_shared_secret,
url: @account.shopify_account_url,

                      account_id: @account.id,
                      password: @account.shopify_password).connect()

begin
# The gem will throw an exception if unable to retrieve Shop information
diff --git a/config/environments/development.rb b/config/environments/development.rb
index f09f3d8..34a1726 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -4,6 +4,11 @@ Contestapp::Application.configure do
In the development environment your application's code is reloaded on
every request. This slows down response time but is perfect for development
since you don't have to restart the web server when you make code changes.

SHOPIFY_API_KEY = "MY SHOPIFY API KEY"

SHOPIFY_SHARED_SECRET = "MY SHOPIFY SHARED KEY"

DOMAIN = "http://localhost:3000"

config.cache_classes = false
Do not eager load code on boot.


Enable the new model serialization for sphere

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

API change check
API changes are not detected in this pull request.


feat(portal): Billing system

When seats limit is reached an account message will be shown

Nice work getting this together so fast!
A couple things before I do a more in-depth review:

Can we remove the active seats terminology and just say seats? I think MAU billing could be a feature we launch later on, but for forecasting (for us, and most companies) it's simpler just to have a static seat count to start.
Can we make it so that a user is a seat, not an actor? I understand the similarity from an backend / engineering perspective, but to most customers this is just going to add to confusion in sales calls, docs and marketing communication. Since service accounts are the only way we secure machine to machine communication, we may want to up that limit separately (or remove it altogether since we already advertise "No limit")

Can we remove the active seats terminology and just say seats? I think MAU billing could be a feature we launch later on, but for forecasting (for us, and most companies) it's simpler just to have a static seat count to start.

We can do that but I would advise against it.
This would hurt product adoption especially when used with the IdP sync: imagine a company will hire a new employee that does not need access to Firezone but as soon as they are added to Google Workspace we will sync that user and start sending emails forcing a subscription upgrade. Next thing you will be asking me to build a filter for IdP sync and grace limits for enterprise plans, so we will have a house of cards to compensate for not properly calculating what user is active :).
For us, it's way more beneficial if we don't build those things and just fairly calculate which user is considered active. I believe it will both boost the adoption rate (and potentially our revenue) and feel safer for the clients because without onboarding new users to Firezone the bill won't change.

Can we make it so that a user is a seat, not an actor?

Sure, it's just a separate limit to calculate now.

Sure, it's just a separate limit to calculate now.

🙏

I appreciate your input here, but this contradicts feedback we've heard from customers who want simple predictable costs. It also makes our revenue less predictable, which make revenue forecasts less confident and less convincing to those who are interested in them.

This doesn't make costs less predictable, let's discuss on a hangout.


Add support for AmgX

Building AmgX  +  MFEM
bash ./setupAMGXMFEM.sh
Sample runs:
AmgX as preconditioner:
lrun -n 1  --smpiargs="off" ./amgx_ex1 --amgx-file precon.json --amgx-preconditioner
AmgX as solver
lrun -n 1  --smpiargs="off"    ./amgx_ex1 --amgx-file multi_gs.json --amgx-solver
MPI Teams sharing a GPU:
mpirun -n 40 ./amgx_ex1p --amgx-file amg_pcg.json
Map 1 MPI rank to a GPU:
lrun -n 4 ./amgx_ex1p --amgx-file amg_pcg.json --amgx-mpi-gpu-exclusive

PR
Author
Editor
Reviewers
Assignment
Approval
Merge

#1386
@artv3
@tzanio
@dylan-copeland + @acfisher + @v-dobrev + @barker29
09/08/20
⌛due 10/09/20
⌛due 10/16/20

Have you built AMGX on lassen? I'm getting errors, in my case it looks like it's trying to pick up gcc includes even though I'm trying to build with xlc.
This is probably just my own mistake, but if you have a recipe for building on lassen I'd like to see it.
In file included from /g/g14/barker29/ws/packages/AMGX/core/src/aggregation/aggregation_amg_level.cu:28:
In file included from /g/g14/barker29/ws/packages/AMGX/core/include/aggregation/aggregation_amg_level.h:40:
In file included from /g/g14/barker29/ws/packages/AMGX/core/../base/include/amg_level.h:34:
In file included from /g/g14/barker29/ws/packages/AMGX/core/../base/include/amg.h:53:
In file included from /g/g14/barker29/ws/packages/AMGX/core/../base/include/amg_solver.h:45:
In file included from /g/g14/barker29/ws/packages/AMGX/core/../base/include/vector.h:81:
In file included from /g/g14/barker29/ws/packages/AMGX/core/../base/include/resources.h:36:
In file included from /g/g14/barker29/ws/packages/AMGX/core/../base/include/thread_manager.h:35:
In file included from /g/g14/barker29/ws/packages/AMGX/core/../base/include/global_thread_handle.h:34:
In file included from /usr/tce/packages/gcc/gcc-4.9.3/gnu/lib64/gcc/powerpc64le-unknown-linux-gnu/4.9.3/../../../../include/c++/4.9.3/mutex:35:
/usr/tce/packages/gcc/gcc-4.9.3/gnu/lib64/gcc/powerpc64le-unknown-linux-gnu/4.9.3/../../../../include/c++/4.9.3/bits/c++0x_warning.h:32:2: error: This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support for the \
 ^
CMake Error at amgx_core_generated_aggregation_amg_level.cu.o.Release.cmake:226 (message):
  Error generating
  /g/g14/barker29/ws/packages/AMGX/build/core/CMakeFiles/amgx_core.dir/src/aggregation/./amgx_core_generated_aggregation_amg_level.cu.o

make[2]: *** [core/CMakeFiles/amgx_core.dir/build.make:65: core/CMakeFiles/amgx_core.dir/src/aggregation/amgx_core_generated_aggregation_amg_level.cu.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:259: core/CMakeFiles/amgx_core.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

Have you built AMGX on lassen? I'm getting errors, in my case it looks like it's trying to pick up gcc includes even though I'm trying to build with xlc.
This is probably just my own mistake, but if you have a recipe for building on lassen I'd like to see it.
In file included from /g/g14/barker29/ws/packages/AMGX/core/src/aggregation/aggregation_amg_level.cu:28:
In file included from /g/g14/barker29/ws/packages/AMGX/core/include/aggregation/aggregation_amg_level.h:40:
In file included from /g/g14/barker29/ws/packages/AMGX/core/../base/include/amg_level.h:34:
In file included from /g/g14/barker29/ws/packages/AMGX/core/../base/include/amg.h:53:
In file included from /g/g14/barker29/ws/packages/AMGX/core/../base/include/amg_solver.h:45:
In file included from /g/g14/barker29/ws/packages/AMGX/core/../base/include/vector.h:81:
In file included from /g/g14/barker29/ws/packages/AMGX/core/../base/include/resources.h:36:
In file included from /g/g14/barker29/ws/packages/AMGX/core/../base/include/thread_manager.h:35:
In file included from /g/g14/barker29/ws/packages/AMGX/core/../base/include/global_thread_handle.h:34:
In file included from /usr/tce/packages/gcc/gcc-4.9.3/gnu/lib64/gcc/powerpc64le-unknown-linux-gnu/4.9.3/../../../../include/c++/4.9.3/mutex:35:
/usr/tce/packages/gcc/gcc-4.9.3/gnu/lib64/gcc/powerpc64le-unknown-linux-gnu/4.9.3/../../../../include/c++/4.9.3/bits/c++0x_warning.h:32:2: error: This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support for the \
 ^
CMake Error at amgx_core_generated_aggregation_amg_level.cu.o.Release.cmake:226 (message):
  Error generating
  /g/g14/barker29/ws/packages/AMGX/build/core/CMakeFiles/amgx_core.dir/src/aggregation/./amgx_core_generated_aggregation_amg_level.cu.o

make[2]: *** [core/CMakeFiles/amgx_core.dir/build.make:65: core/CMakeFiles/amgx_core.dir/src/aggregation/amgx_core_generated_aggregation_amg_level.cu.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:259: core/CMakeFiles/amgx_core.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

I was able to build on RzAnsel.  I didn't try specifying a compiler though, I just let CMAKE pull defaults.  Perhaps try doing module load gcc/7.3.1 or try adding the following flag -std=c++11?
How did you configure the build?

I'm specifically trying to avoid using gcc because the docs for lassen discourage it and the rest of my stack (metis, hypre, mfem) is built with xlc. But so far at least the AMGX build is behaving much better with gcc so we'll see how it goes.

@barker29 , I was able to build on lassen with the following cmake config:
 cmake -DCMAKE_CXX_COMPILER=xlC -DCMAKE_C_COMPILER=xlc -DCMAKE_CXX_FLAGS=-std=c++11 ../ . I did get lots of warnings though. I can relay them to the AMGX team.

Thanks! I was missing the std=c++11 bit, which is obvious now.

Can you post the expected output from ./amgx_ex -c ../../AMGX/core/configs/CLASSICAL_V_CYCLE.json?
I am getting something that seems to maybe work, but then I get an error from some CuMemFree call and I want to see if what is happening before that is reasonable or not.

Can you post the expected output from ./amgx_ex -c ../../AMGX/core/configs/CLASSICAL_V_CYCLE.json?
I am getting something that seems to maybe work, but then I get an error from some CuMemFree call and I want to see if what is happening before that is reasonable or not.

The output I get is:
AMGX version <IP_ADDRESS>-opensource
Built on Apr  7 2020, 11:55:12
Compiled with CUDA Runtime 10.1, using CUDA driver 10.1
Options used:
   --mesh ../data/beam-hex.mesh
   --order 1
   --no-static-condensation
   --no-partial-assembly
   --c ../../AMGX/core/configs/CLASSICAL_V_CYCLE.json
   --device cuda
   --visualization
Device configuration: cuda,cpu
Memory configuration: host-std,cuda
Number of finite element unknowns: 37281
AMG Grid:
         Number of Levels: 1
            LVL         ROWS               NNZ    SPRSTY       Mem (GB)
         --------------------------------------------------------------
           0(D)        37281            924385  0.000665         0.0109
         --------------------------------------------------------------
         Grid Complexity: 1
         Operator Complexity: 1
         Total Memory Usage: 0.0108864 GB
         --------------------------------------------------------------
           iter      Mem Usage (GB)       residual           rate
         --------------------------------------------------------------
            Ini             12.2691   4.272940e-02
Relative residual has reached machine precision
              0             12.2691   6.177668e-18         0.0000
         --------------------------------------------------------------
         Total Iterations: 1
         Avg Convergence Rate: 		         0.0000
         Final Residual: 		   6.177668e-18
         Total Reduction in Residual: 	   1.445765e-16
         Maximum Memory Usage: 		         12.269 GB
         --------------------------------------------------------------
Total Time: 6.92136
    setup: 6.89951 s
    solve: 0.0218459 s
    solve(per iteration): 0.0218459 s

Is this the error you got?
CUDA Hook Library: Failed to find symbol mem_find_dreg_entries, ./amgx_ex: undefined symbol: __PAMI_Invalidate_region
CUDA error: (cudaFree(dptr)) failed with error:
 --> driver shutting down
 ... in function: void *mfem::CuMemFree(void *)
 ... in file: general/cuda.cpp:71
ERROR:  One or more process (first noticed rank 0) terminated with signal 6

I suspect you ran the code the following way:
lrun -n 1 ./amgx_ex -c ../../AMGX/core/configs/CLASSICAL_V_CYCLE.json
Try the following:
lrun -n 1 --smpiargs="off" ./amgx_ex -c ../../AMGX/core/configs/CLASSICAL_V_CYCLE.json

Beautiful, thank you!

I just pushed a commit that begins to imagine an MFEM object that interfaces to AMGX. It is still very much WIP but I think it's an improvement. @artv3 if you don't like it, feel free to roll it back (or ask me to). I'd appreciate feedback from anyone.

@barker29 Nice! I think that looks fantastic! I also found this AMGX PETSc wrapper: https://github.com/barbagroup/AmgXWrapper. By creating PETSc matrices through MFEM, I've been able to do multi-GPU runs. I can push up an example of how I've made it work this week.
Within MFEM, I think we can do something similar and bypass the need of PETSc.

@barker29 , I added a first pass for multi-GPU support, see ex1p. It works by assuming 1 GPU per MPI proc. I plan to do a clean up pass and gather some performance results. It's looking promising so far, it would be great if we can merge our wrappers together as well.

I've been doing some run-time comparisons using AMGX and  Boomer AMG + PCG. The driver is perf_amgx.cpp and amg_pcg.json is the config file for AMGX (I think that should be a similar configuration to boomer amg + pcg).
Below are some performance numbers using 1 node of Lassen.  The total time includes any sparse matrix  manipulation required for the solvers. For AMGX I have to consolidate the diagonal and off diagonal sparse matrices from the Hypre parcsr format, I'm wondering if this step could could be done on the GPU to further improve performance?
AMGX - Order 1

GPU
Dofs
Setup + Solve (sec)
Total time (sec)

1
2146689
2.82216
5.48312

2
4276737
6.31895
9.21916

4
8520321
3.26739
6.51875

Boomer AMG + PCG - Order 1

MPI Procs
Dofs
Setup + Solve (sec)
Total time (sec)

1
545025
6.89
6.89136

2
1081665
7.37
7.36441

4
2146689
6.98
6.97845

8
4276737
8.52
8.51148

16
8520321
8.8
8.80561

32
16974593
9.08
9.08053

Those are nice results. I'd be curious to see what happens at higher order - it's possible the GPU looks better because there's more operations to do, but the access patterns aren't regular so it might not matter.

Those are nice results. I'd be curious to see what happens at higher order - it's possible the GPU looks better because there's more operations to do, but the access patterns aren't regular so it might not matter.

I'm curious as well, I'll post some more results later this evening. I'll try higher order + more GPUs.

Additional runs below. To improve performance we could try CUDA pinned memory and see if we can skip the sparse matrix wrangling (or do it on the device).
Order 3 | AMGX |   |   | Boomer+PCG |   |
-- | -- | -- | -- | -- | -- | --
GPUs | Dofs | Setup+Solve | Total Time | MPI | Dofs | Setup+Solve | Total Time
1 | 912673 | 2.08512 | 7.43861 | 1 | 117649 | 6.04 | 6.03737
2 | 1815937 | 3.76649 | 9.29254 | 2 | 232897 | 6.94 | 6.94391
4 | 3613153 | 3.60117 | 9.21555 | 4 | 461041 | 8.72 | 8.71538
8 | 7189057 | 3.16233 | 8.98515 | 8 | 912673 | 7.04 | 7.03111
16 | 14340865 | 5.63106 | 11.7472 | 16 | 1815937 | 8.21 | 8.20503
32 | 28607425 | 6.43755 | 13.1838 | 32 | 3613153 | 9.96 | 9.9573
  |   |   |   | 64 | 7189057 | 7.73 | 7.71505
  |   |   |   | 128 | 14340865 | 9.46 | 9.45479
  |   |   |   | 256 | 28607425 | 11.64 | 11.636
Order 4 | AMGX |   |   | Boomer+PCG |   |
-- | -- | -- | -- | -- | -- | --
GPUs | Dofs | Setup+Solve | Total Time | MPI | Dofs | Setup+Solve | Total Time
1 | 274625 | 2.78495 | 5.80421 | 1 | 35937 | 2.62 | 2.61288
2 | 545025 | 3.15463 | 6.32125 | 2 | 70785 | 3.6 | 3.59559
4 | 1081665 | 3.18324 | 6.47475 | 4 | 139425 | 4.01 | 4.00496
8 | 2146689 | 6.0769 | 9.55185 | 8 | 274625 | 3.72 | 3.70214
16 | 4276737 | 4.33204 | 8.05218 | 16 | 545025 | 4.44 | 4.43781
32 | 8520321 | 4.81449 | 8.87212 | 32 | 1081665 | 5.04 | 5.02581
  |   |   |   | 64 | 2146689 | 4.59 | 4.57185
  |   |   |   | 128 | 4276737 | 5.35 | 5.34299
  |   |   |   | 256 | 8520321 | 5.96 | 5.95573

Somehow there is a relatively big difference between orders 3 and 4:
order 3, 32 GPUs vs 256 CPUs (28607425 dofs): 6.43755 vs 11.64 setup+solve time
order 4, 32 GPUs vs 256 CPUs ( 8520321 dofs): 4.81449 vs  5.96 setup+solve time

This is probably due to the smaller local problem size for order 4.
Overall, AMGX gives nice boost but not as big as one might hope for.
It'll be interesting to compare 32 GPUs vs 256 CPUs at order 1. The results above for order 1 use 1 GPU to 4 CPUs ratio which is not quite "fair".
By the way, is this 2D or 3D?

@v-dobrev , these are 3D results using the perf_amgx.cpp driver.
I just updated new results since I made the mistake of not monitoring the residual, and some problems didn't converge. I pushed in a new configuration where I observed convergence across the board. Additionally, I am now pinning the host buffers using AMGX_pin_memory.
There are a few differences I should also highlight.
Although both solvers use AMG as a preconditioner, and PCG to solve the system. AMGX uses Jacobi as a smoother. Boomer is configured with Gauss-Siedel, I tried using colored Gauss–Seidel  in  AMGX but it was much more expensive (sequential Gauss-Siedel is not suited for the GPU).
PMIS is also used as selector in AMGX vs HMIS in Boomer.

@am-oler when you get a chance can you merge with master and make sure we pass on continuous integration and travis?

Hooray! Passed on travis!

@tzanio @v-dobrev , I have a few smaller TODO's left but I feel the code is ready for some eyes if folks are interested in trying it out. Any feedback on further organization and features would be appreciated. I updated the PR description with some sample runs.

@artv3 Do you plan to keep the example files in the examples directory in master, or are they just in the PR for demonstration to the reviewers?

@artv3 Do you plan to keep the example files in the examples directory in master, or are they just in the PR for demonstration to the reviewers?

I originally added them for the reviewers, but perhaps we can have a folder with an AmgX example? I will follow the preference of the reviewers.

@artv3 The first sample run lrun -n 1 --smpiargs="off" amgx_ex --amgx-file MULTI_GS.json --amgx-solver works for me, but the second one does not:
lrun -n 1 --smpiargs="off" amgx_ex --amgx-file precon.json --amgx-preconditioner Options used:    --mesh ../data/star.mesh    --order 1    --no-static-condensation    --no-partial-assembly    --amgx-file precon.json    --amgx-preconditioner    --amgx-verbose    --device cpu    --visualization Device configuration: cpu Memory configuration: host-std Number of finite element unknowns: 20801 AMGX version <IP_ADDRESS>-opensource Built on Sep 16 2020, 12:41:55 Compiled with CUDA Runtime 10.1, using CUDA driver 10.1 Applying AmgX as preconditioner     Iteration :   0  (B r, r) = 1.1207e+231 ... PCG: The operator is not positive definite. (Ad, d) = nan    Iteration :  40  (B r, r) = -nan PCG: No convergence! Average reduction factor = -nan

@artv3 The first sample run lrun -n 1 --smpiargs="off" amgx_ex --amgx-file MULTI_GS.json --amgx-solver works for me, but the second one does not:
lrun -n 1 --smpiargs="off" amgx_ex --amgx-file precon.json --amgx-preconditioner
Options used:
   --mesh ../data/star.mesh
   --order 1
   --no-static-condensation
   --no-partial-assembly
   --amgx-file precon.json
   --amgx-preconditioner
   --amgx-verbose
   --device cpu
   --visualization
Device configuration: cpu
Memory configuration: host-std
Number of finite element unknowns: 20801
AMGX version <IP_ADDRESS>-opensource
Built on Sep 16 2020, 12:41:55
Compiled with CUDA Runtime 10.1, using CUDA driver 10.1
Applying AmgX as preconditioner
   Iteration :   0  (B r, r) = 1.1207e+231 ...
PCG: The operator is not positive definite. (Ad, d) = nan
   Iteration :  40  (B r, r) = -nan
PCG: No convergence!
Average reduction factor = -nan

Another issue is that the first sample run works for MassIntegrator, but if this is changed to DiffusionIntegrator as in ex1p then it fails to converge.

Sorry about that, it seems we have to set X=0 before we apply mult in AMGX (just pushed a fix).
I now get the following:
[vargas45@rzansel30:examples]$  lrun -n 1 --smpiargs="off" ./amgx_ex --amgx-file precon.json --amgx-preconditioner
Compiled with CUDA Runtime 10.1, using CUDA driver 10.2
Applying AmgX as preconditioner
   Iteration :   0  (B r, r) = 4.78951 ...
   Iteration :   6  (B r, r) = 3.78895e-13

With regards to solving with the diffusion matrix, I see that too. I see improved performance with amg as a preconditioner + cg (see below) I suspect we have to adjust the multi-color GS script for better performance.
 lrun -n 1 --smpiargs="off" ./amgx_ex --amgx-file amg_pcg.json --amgx-solver

AMG Grid:
Number of Levels: 3
LVL         ROWS               NNZ    SPRSTY       Mem (GB)
--------------------------------------------------------------
0(D)        20801            185281  0.000428        0.00259
1(D)         3924             84758    0.0055        0.00205
2(D)          707             20697    0.0414       0.000484
--------------------------------------------------------------
Grid Complexity: 1.22263
Operator Complexity: 1.56916
Total Memory Usage: 0.00512902 GB
--------------------------------------------------------------
Applying AmgX as solver
iter      Mem Usage (GB)       residual           rate
--------------------------------------------------------------
Ini            0.878906   3.309898e-02
0            0.878906   8.023642e-01        24.2414
1              0.8789   1.107793e-01         0.1381
2              0.8789   1.980708e-02         0.1788
3              0.8789   3.377608e-03         0.1705
4              0.8789   5.967222e-04         0.1767
5              0.8789   1.052048e-04         0.1763
6              0.8789   1.834787e-05         0.1744
7              0.8789   3.205434e-06         0.1747
8              0.8789   5.627631e-07         0.1756
9              0.8789   9.496952e-08         0.1688
10              0.8789   1.610142e-08         0.1695
11              0.8789   2.777073e-09         0.1725
12              0.8789   4.709810e-10         0.1696
13              0.8789   8.258003e-11         0.1753
14              0.8789   1.435589e-11         0.1738
15              0.8789   2.500842e-12         0.1742
16              0.8789   4.359400e-13         0.1743
--------------------------------------------------------------
Total Iterations: 17
Avg Convergence Rate: 		         0.2291
Final Residual: 		   4.359400e-13
Total Reduction in Residual: 	   1.317080e-11
Maximum Memory Usage: 		          0.879 GB
------------------------------------------------------------

@artv3 Do you plan to keep the example files in the examples directory in master, or are they just in the PR for demonstration to the reviewers?

I originally added them for the reviewers, but perhaps we can have a folder with an AmgX example? I will follow the preference of the reviewers.

I definitely think we need at least one example to demonstrate how to use AmgXSolver. It seems it could be added to the main examples/ex1p with #ifdef MFEM_USE_AMGX, without adding very many lines or confusing the reader. I know the examples directory should be kept as simple as possible, and maybe other reviewers or editors have stronger opinions, but it seems to me that just a few lines of code could enable the option to use AmgX. Otherwise, I would also be fine with an example or two in another directory.

Can we update the TODOs at the very top of this PR? I suspect some of them are complete but I would like that confirmed.

Thanks all, I'll push on this PR this week.

In addition to comments from others above, I'm trying to run some examples on this branch on lassen and generally having some trouble. For example:

I can't build amgx_ex:

amgx_ex.cpp(193): error: identifier "AmgXSolver" is undefined

./amgx_ex4p -d cuda does not seem to run on device:

Verification failed: (Device::IsDisabled()) is false:
 --> transpose action on device is not enabled; see BuildTranspose() for details.
 ... in function: virtual void mfem::SparseMatrix::AddMultTranspose(const mfem::Vector &, mfem::Vector &, const double) const
 ... in file: linalg/sparsemat.cpp:759

./amgx_ex_orig -d cuda seems to run and converge, but has some warnings/errors:

CUDA Hook Library: Failed to find symbol mem_find_dreg_entries, ./amgx_ex_orig: undefined symbol: __PAMI_Invalidate_region

In general it would be nice to have cleaner examples with example command lines so I know what exactly to run and what output to expect.

In addition to comments from others above, I'm trying to run some examples on this branch on lassen and generally having some trouble. For example:
* I can't build `amgx_ex`:

amgx_ex.cpp(193): error: identifier "AmgXSolver" is undefined

* `./amgx_ex4p -d cuda` does not seem to run on device:

Verification failed: (Device::IsDisabled()) is false:
 --> transpose action on device is not enabled; see BuildTranspose() for details.
 ... in function: virtual void mfem::SparseMatrix::AddMultTranspose(const mfem::Vector &, mfem::Vector &, const double) const
 ... in file: linalg/sparsemat.cpp:759

* `./amgx_ex_orig -d cuda` seems to run and converge, but has some warnings/errors:

CUDA Hook Library: Failed to find symbol mem_find_dreg_entries, ./amgx_ex_orig: undefined symbol: __PAMI_Invalidate_region

In general it would be nice to have cleaner examples with example command lines so I know what exactly to run and what output to expect.

Hi @barker29,
I just built the whole stack using the bash script in the description of the PR. I was able to build amgx_ex. Are you up to date with the PR? I can look into it with you if it doesn't work.
Did you also try some of the sample runs on the PR description:
For example:
mpirun -n 40 ./amgx_ex4p --amgx-file amg_pcg.json -nd 1
Gives the following output:
Options used:
   --mesh ../data/beam-hex.mesh
   --order 1
   --impose-bc
   --frequency 1
   --no-static-condensation
   --hybridization
   --no-partial-assembly
   --device cpu
   --visualization
   --amgx-file amg_pcg.json
   --amgx
   --nr 2
   --np 2
   --nd 1
   --nsolves 1
Device configuration: cpu
Memory configuration: host-std
Number of finite element unknowns: 102656
AMGX version <IP_ADDRESS>-opensource
Built on Sep 24 2020, 09:42:26
Compiled with CUDA Runtime 10.1, using CUDA driver 10.2
Cannot read file as JSON object, trying as AMGX config
Converting config string to current config version
Parsing configuration string: exception_handling=1 ;
Using Normal MPI (Hostbuffer) communicator...
AMG Grid:
         Number of Levels: 4
            LVL         ROWS               NNZ    SPRSTY       Mem (GB)
         --------------------------------------------------------------
           0(D)       102656            999936  9.49e-05         0.0138
           1(D)        21239           1618371   0.00359          0.037
           2(D)         4008            696376    0.0433         0.0157
           3(D)          394             42796     0.276       0.000968
         --------------------------------------------------------------
         Grid Complexity: 1.24978
         Operator Complexity: 3.35769
         Total Memory Usage: 0.0674993 GB
         --------------------------------------------------------------
           iter      Mem Usage (GB)       residual           rate
         --------------------------------------------------------------
            Ini            0.880859   2.017762e+02
              0            0.880859   3.518586e+01         0.1744
              1              0.8809   8.178395e+00         0.2324
              2              0.8809   1.805407e+00         0.2208
              3              0.8809   3.697599e-01         0.2048
              4              0.8809   8.483917e-02         0.2294
              5              0.8809   1.795062e-02         0.2116
              6              0.8809   3.894573e-03         0.2170
              7              0.8809   8.352405e-04         0.2145
              8              0.8809   1.796172e-04         0.2150
              9              0.8809   3.917901e-05         0.2181
             10              0.8809   8.490560e-06         0.2167
             11              0.8809   1.810263e-06         0.2132
             12              0.8809   3.918177e-07         0.2164
             13              0.8809   8.355717e-08         0.2133
             14              0.8809   1.788109e-08         0.2140
             15              0.8809   3.816057e-09         0.2134
             16              0.8809   8.168584e-10         0.2141
             17              0.8809   1.747712e-10         0.2140
         --------------------------------------------------------------
         Total Iterations: 18
         Avg Convergence Rate: 		         0.2137
         Final Residual: 		   1.747712e-10
         Total Reduction in Residual: 	   8.661632e-13
         Maximum Memory Usage: 		          0.881 GB
         --------------------------------------------------------------
Total Time: 0.0764986
    setup: 0.0531165 s
    solve: 0.0233821 s
    solve(per iteration): 0.001299 s

|| F_h - F ||_{L^2} = 0.113514

Regarding the warnings:
CUDA Hook Library: Failed to find symbol mem_find_dreg_entries, ./amgx_ex_orig: undefined symbol: __PAMI_Invalidate_region
Can you try running like this: lrun -n 1 --smpiargs="off" ./amgx_ex_orig  ?
Also, amgx_ex_org.cpp is the example you contributed, if there are features we would like to include into the solver class I can certainly add them in.
Lastly, regarding running example 4p on the device. I haven't looked into running amgx with mfem on the device yet, but it looks like the following kernel has not been ported
SparseMatrix::AddMultTranspose(line 720)
     MFEM_VERIFY(Device::IsDisabled(), "transpose action on device is not "
                  "enabled; see BuildTranspose() for details.");

I'm not sure if this is not supposed to be ported? Maybe we can make this always run on the host?
I'll work on addressing reviewer comments this week, and clean up the results as well as include expected output.

amgx_ex_org.cpp is the example you contributed

Well, that explains why it doesn't work then...
I'll take a closer look at this - I am using the most recent pull of your branch, but I'm doing some exotic things with the configuration (xlc, essl for lapack, etc) and I'll try a more basic build and get back to you. I also missed the example runs in the PR description, so thanks for pointing those out.

This is still active, so I'm extending the review deadline to the end of this week...

@barker29 @dylan-copeland @acfisher ,  I reorganized the code a bit more and moved examples to an amgx example folder. Additionally, I included the output of the sample runs (listed on the PR description) in the amgx example folder  as a reference to the expected output.

Thanks for the feedback guys, I didn't get to them during the week. But I'll try to get the PR in shape by Monday.

Adding a bit more time for review as there are still changes...

@barker29 @dylan-copeland  I added a default configuration for using AmgX as a preconditioner or solver and added example usage under example 1/1p. I still have to do a proof read pass and do minor clean up. But I was wondering if examples 1/1p illustrate the usage we are looking for? Using the amgx option is activated using the -amgx flag as illustrated below. The amgx folder contains additional examples for other features.
The output one could expect from ex1/1p using AmgX is illustrated below.
lrun -n 1 --smpiargs="off" ./ex1 -amgx

Compiled with CUDA Runtime 10.1, using CUDA driver 10.2
   Iteration :   0  (B r, r) = 0.685373
   Iteration :   1  (B r, r) = 9.47709e-05
   Iteration :   2  (B r, r) = 1.15799e-07
   Iteration :   3  (B r, r) = 2.31355e-10
   Iteration :   4  (B r, r) = 4.80418e-13
Average reduction factor = 0.030249

lrun -n 2 ./ex1p -amgx

Options used:
   --mesh ../data/star.mesh
   --order 1
   --no-static-condensation
   --no-partial-assembly
   --amgx-precon
   --device cpu
   --visualization
Device configuration: cpu
Memory configuration: host-std
Number of finite element unknowns: 82561
AMGX version <IP_ADDRESS>-opensource
Built on Oct  2 2020, 14:50:59
Compiled with CUDA Runtime 10.1, using CUDA driver 10.2
Cannot read file as JSON object, trying as AMGX config
Converting config string to current config version
Parsing configuration string: exception_handling=1 ;
Using Normal MPI (Hostbuffer) communicator...
   Iteration :   0  (B r, r) = 0.387334
   Iteration :   1  (B r, r) = 0.0730444
   Iteration :   2  (B r, r) = 0.000394756
   Iteration :   3  (B r, r) = 1.05156e-05
   Iteration :   4  (B r, r) = 5.62496e-08
   Iteration :   5  (B r, r) = 2.52817e-10
   Iteration :   6  (B r, r) = 8.3872e-12
   Iteration :   7  (B r, r) = 2.19847e-13
   Iteration :   8  (B r, r) = 8.09957e-16
   Iteration :   9  (B r, r) = 6.98018e-18
   Iteration :  10  (B r, r) = 1.99383e-20
   Iteration :  11  (B r, r) = 3.32709e-23
   Iteration :  12  (B r, r) = 6.47468e-26
Average reduction factor = 0.0928176

@v-dobrev, do you want to review this?

@v-dobrev, do you want to review this?

I think we have enough approvals. However, I noticed that not all reviewer comments have been addressed, e.g. https://github.com/mfem/mfem/pull/1386#discussion_r496233978.

Travis is failing because of my documentation style, is there a way to test locally if I am documenting with the right format?

You can likely just do make in the doc/ directory. If you don't have Doxygen, you will have to install it before that.
That being said, in this case the error seems clear:
/home/travis/build/mfem/mfem/linalg/amgxsolver.hpp:171: warning: argument 'AMGX_MODE' of command @param is not found in the argument list of mfem::AmgXSolver::DefaultParameters(const AMGX_MODE amgxMode_, const bool verbose)
/home/travis/build/mfem/mfem/linalg/amgxsolver.hpp:185: warning: The following parameters of mfem::AmgXSolver::DefaultParameters(const AMGX_MODE amgxMode_, const bool verbose) are not documented:
  parameter 'amgxMode_'

I believe I have addressed all the comments, one thing I haven't been able to figure out is how to build with CMAKE....

Merged in next for testing...

Re-merged in next.

Re-merged in next for testing ...

I have not done or seen timing comparisons for AMGX and hypre until now, but I just ran a test for ex1p -m ../data/inline-hex.mesh with and without -amgx, with 4 MPI tasks. Hypre took 0.53 seconds with 24 iterations; AMGX took 0.079 seconds with 10 iterations.

@dylan-copeland are they both using GPU?

Re-merged in next for testing ...

Re-merged in next for testing ...

There was a hypre error with Travis with the current configuration:
Mac: Parallel + Debug
AMD64
Compiler: clang Xcode: xcode11.2 C++
linalg/cpardiso.cpp -o linalg/cpardiso.o

In file included from linalg/cpardiso.cpp:2:

In file included from linalg/hypre.hpp:25:

In file included from ./../hypre/src/hypre/include/seq_mv.h:13:

./../hypre/src/hypre/include/HYPRE_seq_mv.h:17:10: fatal error: 'HYPRE_utilities.h' file not found

#include "HYPRE_utilities.h"

There was a hypre error with Travis with the configuration:
Mac: Parallel + Debug
AMD64
Compiler: clang Xcode: xcode11.2 C++
linalg/cpardiso.cpp -o linalg/cpardiso.o

In file included from linalg/cpardiso.cpp:2:

In file included from linalg/hypre.hpp:25:

In file included from ./../hypre/src/hypre/include/seq_mv.h:13:

./../hypre/src/hypre/include/HYPRE_seq_mv.h:17:10: fatal error: 'HYPRE_utilities.h' file not found

#include "HYPRE_utilities.h"

Fixed after clearing cache and restarting build, thanks @v-dobrev!

Re-merged in next for testing ...

I have not done or seen timing comparisons for AMGX and hypre until now, but I just ran a test for ex1p -m ../data/inline-hex.mesh -d cuda with and without -amgx, with 4 MPI tasks on 4 GPUs. Hypre took 0.48 seconds with 24 iterations; AMGX took 0.049 seconds with 10 iterations. This is using hypre 2.20.0 built with cuda and UVM.

It would be good to compare what the configuration for each of the solvers. If we get them the same the number of iterations should be closer.

@tzanio @dylan-copeland , currently with the AmgX defaults, using AmgX as a preconditioner will invoke two iterations of a v-cycle with a Jacobi smoother. I think Hypre may only do one. In general by doing more v-cycles on the GPU I found better performance in both run-time and number of iterations. Should we keep two as the default? or change to one?

Yes Hypre does one v-cycle. On the CPU that typically is the best choice for overall time to solution.
I think it is OK to leave it at 2 (or more) on the GPU, but it will be good to have some benchmarks to see that it is better, and we should probably also document it in the code.


Fix StopItem parcelable crash

#174  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @ksharma-xyz and the rest of your teammates on  Graphite


haskellPackages.hercules-ci-cnix-store: nix_2_16 -> nix_2_18

Description of changes

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

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

@ofborg build cachix cachix.passthru.tests

Sorry, I don’t know how you are related to cachix/hercules-ci. Why bump this now?
Is this coordinated with @roberth and @domenkozar ?

Why bump this now?

Cachix no longer builds on master and release-23.11, due to Nix 2.16 being marked as insecure (https://github.com/NixOS/nix/security/advisories/GHSA-2ffj-w4mj-pg37).
If this PR is not viable, I'll create a PR to remove Cachix from the release-critical jobs.

Ah, that is very relevant context. Thank you! Maybe we can give @domenkozar a few hours to react?

I'm working on a branch that bumps that cluster of packages separately from haskell-updates, which would have fixed this if it were merged in a timely manner. I will use non-hackage-packages.nix, as I expect that that won't interfere with haskell-updates.

@maralorn I'll clean it up.

https://github.com/NixOS/nixpkgs/pull/294055


Make tea magic hook work on fish

Looks like a great project! However, when using fish, after install I get
  want magic?

  tea’s shell magic works via a simple hook function in fish
  it’s not required, but we do recommend it.

  │ docs https://github.com/teaxyz/cli#usage-as-an-environment-manager
sh: line 362: ~/.config/fish/config.fish: No such file or directory

The file ~/.config/fish/config.fish does exist and is writeable. This is on Mac OS Ventura 13.0.1 on the ARM M1 Max with fish shell version 3.5.1
I'm running asdf but that doesn't seem to be impacting. BTW to get the install script to work on Fish, I had to do: sh < (curl https://tea.xyz | psub)
Thanks for all of your awesome work!

Did https://github.com/teaxyz/setup/pull/103 fix this per chance? This is merged so running the install line again should use this fix.

sh < (curl https://tea.xyz | psub)

interesting. Is that what you have been using @jhheider? Either way we should add this to the README.

yep. i thought we had documented the psub syntax somewhere, but it might have just been in a ticket.

I believe we’re done here. Reopen if I'm wrong!


fix: send reponse error cannot continue to log debug

when sendSuccessfulResponse failed, we cannot continue to print debug logs sent out STS success response
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Pull Request Attributes
Please check any characteristics that apply to this pull request.
[ ] Does not have any user-facing changes. This may include CLI changes, API changes, behavior changes, performance improvements, etc.

Hi @gy95. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/ok-to-test

@gy95: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

release-notes_istio
dfadc02150342ce96b253b4ac834fc5e910ec9de
link
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@gy95: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

release-notes_istio
dfadc02150342ce96b253b4ac834fc5e910ec9de
link
/test release-notes_istio

unit-tests_istio
dfadc02150342ce96b253b4ac834fc5e910ec9de
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test release-notes_istio

/test unit-tests_istio

@gy95: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
dfadc02150342ce96b253b4ac834fc5e910ec9de
link
/test unit-tests_istio

release-notes_istio
dfadc02150342ce96b253b4ac834fc5e910ec9de
link
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@gy95: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
dfadc02150342ce96b253b4ac834fc5e910ec9de
link
/test unit-tests_istio

release-notes_istio
dfadc02150342ce96b253b4ac834fc5e910ec9de
link
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

need release-notes-none label, @howardjohn

/retest

@gy95: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

release-notes_istio
dfadc02150342ce96b253b4ac834fc5e910ec9de
link
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


feat(publish): Add version bump script

This PR (unfortunately) adds lerna to our repo to use it as a mechanism of bumping all our package versions. We need this for the craft publishing process.
For future readers, here are some reasons for choosing lerna:

Nx doesn't have a version bump command built in :(
I tried to use the Nx semVer plugin but this tool does too much for our purposes

it creates git tags (can't disable this)
it automatically determines if the version should be a major/minor/patch bump
we could only manually override the decision to bump to the next major/minor/patch but we can't just specify a version.
Because of these limitations and for time reasons we chose not to pursue this approach further

I tried to use yarn version but this would only bump the version of the respective package, but not of the package's dependencies.

This caused yarn install failures because of dependency missmatches after bumping the versions.

Lerna has a lerna version command which lets us set a specific version on our terms. So we're welcoming it back for now until Nx hopefully figures this out.
Furthermore, the PR adds a pre-release script we need for craft later on
ref #50

Maybe one day we try https://rushjs.io/ - which has this stuff built in.


update history page to account for archived accounts

When a participant is absorbed or deactivated, we end up with:

a participant record that has no elsewhere records associated with it
the participant_id username reset to a random string
the old participant_id username stored in the absorptions or deactivations table under absorbed_was or deactivated_was

The history page should show absorbed_was or deactivated_was instead of the random string.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Closing in light of our decision to shut down Gratipay.
Thank you all for a great run, and I'm sorry it didn't work out! 😞  💃


Dont reset consec count on shutdown

remove self.num_pressure_decreases = 0
this would cause a warning to be more recent than an error since shutdown gives a depressurize

4f5d100


Fix datepicker empty row

Proposed Changes
Fixes empty row

@alexzhirkevich Would you like me to merge it?

Sure


How to get Face Mask only (not the entire body)

Hi @JialeCao001
Thanks for sharing your amazing work. I haven't installed it yet.
But I have a requirement to extract only face area of the person instead of the entire body,  can you please let me know how to achieve this in your code?

@zubair-ahmed-ai Thanks for you interst. Do you have the annotations about the face area of person? The original COCO seems no annotations about face.


DPDK Interface Walkthrough Presentation

I missed the signing in my fork, reverted, instead of updating the base.  My quick mistake in the DCO process.


feature: add api aggregate plugin.

Summary
support api aggregation mentioned in #603
(BTW: I will write doc for it when code review finish.)

@ShiningRush missing test case with invalid arguments

and please take a look at the output of Travis: https://travis-ci.org/github/apache/incubator-apisix/jobs/670393219#L817

We have discussed the the feature's detail, then rename the plugin to "batch-requests", it likes the batch APIof google and microsoft.
Here links :

json-batching
Batching Requests
Sending Batch Requests

merged, many thx @ShiningRush


Error when running dlt deploy cli with airflow-composer parameter

dlt version
1.4.1
Describe the problem
Hello,
I am encountering an issue when trying to deploy a pipeline on Airflow-Composer.
The pipeline works perfectly, but when I run the command :
dlt deploy .\rest_api_pipeline.py airflow-composer
I get the following error:
Your current repository origin is not set to GitHub but to [https://gitlab.*****/test-dlt-composter.git](https://gitlab.%2A%2A%2A%2A%2A/test-dlt-composter.git).
You must change it to be able to run the pipelines with GitHub Actions: https://docs.github.com/en/get-started/getting-started-with-git/managing-remote-repositories
NOTE: Please refer to our docs at 'https://dlthub.com/docs/walkthroughs/deploy-a-pipeline' for further assistance.

I do not understand why the CLI is trying to use GitHub Actions, as I haven’t specified anything in my configuration.
I therefore believe this might be a bug.
Expected behavior
Generation of a DAG file with my pipeline
Steps to reproduce
Install latest version of dlt
create a simple rest api to bigquery pipeline
run pipeline to check that all is working fine
run dlt deploy .\rest_api_pipeline.py airflow-composer command
Operating system
Windows
Runtime environment
Local
Python version
3.9
dlt data source
service now rest api
dlt destination
Google BigQuery
Other deployment details
No response
Additional information
No response

After some research, it turns out that having a repository pointing to GitHub is a prerequisite (_get_origin() method in deploy_command_helpers.py), even if GitHub Actions are not being used.
So, I added a dummy repo with github.com in the URL of my repo, and it works. I find it counterintuitive, but I couldn’t find any other way to make the command work.


RTLSDR BLOG V4

Does not work with RTLSDR v4
Will there be any updates to support it ?

Works.
Had to compile again after updating  rtlsdr  files to V4


Missing resources for monitored technologies

**Is your feature request related to a problem?
Not related to a problem
Describe the solution you'd like
For the monitored technologies I would like to see the following resources added

AIX
Envoy

Describe alternatives you've considered
Click OPs and CURL API calls

Hi @nmarchini,
The resources for the two actually exist but are somewhat hidden. We typically match naming and categories by the API schema ID, but in this case that made the resources harder to find. We'll review and make improvements in the docs so they're easier to find.
AIX - dynatrace_aix_extension
Envoy - dynatrace_monitored_technologies_opentracing


Debian?

This is really a beautiful piece of work. I actually managed to get to the point where I've got a Dockerfile that even installs zend guard and all that and now it even gets far enough to need /etc/httpd/conf/httpd.conf to exist so it mocks up a fake /etc/httpd/conf for the System Admin commercial module and gets right up to where it says the system admin RPM is missing.. That particular module seems to be the key for some others, like Voicemail Reports I've paid for...
And then I realize- it all pretty much falls apart at that point. I don't know if commercial modules are supposed to work or not- but I've paid for the System Admin module and I was hoping to migrate from a FreePBX Distro box to a docker container to save some EC2 $ on instances.
But I guess I'm left wondering- I know we all love debian, but Sangoma/FreePBX's creators love binding all their crap down into the OS pretty far and they love the RedHat base... Any chance you have looked into a CentOS/"SangomaOS" flavored variant?

What's you thinking about add zend guard module to docker-freepbx?

It's possible to install RPM on debian.. might be able to mock up some "provides" RPMs that fool everything....


downgrade electron to 1.1.3

Should solve the weird replication issues. See https://github.com/electron/electron/issues/5851 for more details

Yep, that solves it.


panic unrelated to in()

a node that has 2 outputs being fed into 2 nodes stacked together
discovered because of in() but it's (thankfully/sadly) isn't a problem there

test1.txt
passing it through a pass() | pass() first makes it work:

test2.txt
the panic happens in audionode.rs:126 a failed assertion in process. for some reason the input.len() is 1 but the self.inputs() is 2 on some node

doesn't happen in 0.4 so i'm guessing it's related to the net wrapping that's removed in 0.5

why tf do we have a node (an audionode) with inputs() of 2?

forgive me sami
use fundsp::hacker32::*;

fn main() {
    let dc = Net32::wrap(Box::new(dc(42.)));
    let dcs = dc.clone() | dc;
    let reverb = Net32::wrap(Box::new(reverb_stereo(40., 5., 1.)));
    let filter = Net32::wrap(Box::new(lowpass_hz(1729.,1.)));
    let filters = filter.clone() | filter;
    let mut net = dcs >> reverb >> filters;
    let input : &[&[f32]] = &[];
    let output : &mut [&mut [f32]] = &mut[&mut [0.;32]];
    println!("{:?}", output);
    net.process(32, input, output);
    println!("{:?}", output);
}

this and #86 are both fixed in the latest fundsp


Moveo D-H Parameters

Moveo is awesome project! Thanks for sharing it!
I finished assembly my Moveo, I would like to drive it with a direct and inverse kinematics.
Someone has already calculated the d-h parameters (Denavit–Hartenberg) of this robot?

Ok, calculated it .
Added a joint-6 to expand sixth dof rotary .
Moveo D-H Parameters (5/6DOF)

Ok, calculated it .
Added a joint-6 to expand sixth rotary dof.
Moveo D-H Parameters (5/6DOF)
#            L2
#   j2  *----------*   j3
#       |       L3 |
#   L1  |          *   j4
#       |       L4 |
#   j1  *          *   j5
#               L5 |
#                  *   j6
#                 | |

joint
Alpha
A
D

1
0
0
L1

2
90
0
0

3
0
L2
0

4
90
0
L3

5
-90
0
0

6
90
0
L4

Wow @MarcoAntonini !
Awesome job. I would be very interested if you share how you control your Moveo. Is it ROS or something? That looks pretty neat

Yes, LinuxCNC has realtime kernel !
Certainly I will share documentation as soon as possible
I'm studying for stepper signals generation, for now just a simulation but very impressive :
https://www.youtube.com/watch?v=55SpbKL9n8U

That's really impressive. Didn't know about linuxCNC (used Mach3 instead). It seems like a very configurable software as you can render the full robot in 3D.
Is there a way of generating the trajectories within the software? or any way of make the robot learn the movements?
truly impressive

LinuxCNC is similar to Mach3,It has a python scripting language to create your own robot/machine.
It generate the trajectories in non-linear movements from XYZABC cartesian coordinates using direct kinematics.
For current configuration (5 joint) only X-Y-Z-A-B are supported. Add sixth joint for C Axes.
This simulation using the A,B axis , rotate a effector around a fixed point : https://www.youtube.com/watch?v=SHPSGXtctZM ,seems to properly work :)

@MarcoAntonini this is great! How did you make a visualisation?

@pkmcnc , use the linuxcnc vismach http://linuxcnc.org/docs/html/gui/vismach.html

hello sir did you calculate the inverse kinematics of this robotic arm  ?
if you did it can you provide it to me please ?

Any news on this one guys? I have found some inverse kinematic solutions on the Internet. Thought you guys might be interested. Here is link: http://www.chew-z.it/wiki/doku.php?id=moveo:moveo_kinematic
Thing is it is not in English.

@MarcoAntonini do you have the DH-parameters now? Cuz I need them too

https://stackoverflow.com/questions/67159164/denavit-hartenberg-6dof-moveo-inverse-kinematic-robot-arm?noredirect=1#comment118726837_67159164