Fleshing out axom::Array support

Summary

Adds support for calling Array<T> functions set(), emplace()/emplace_back(), and insert()/push_back() when Array<T> is allocated in device-only memory

This completes host-side support for all outstanding Array<T> functions on device-only memory

Refactors detail::ArrayOps<T>

Helper functions are now encapsulated in an ArrayOpsBase<T, bool> class: ArrayOpsBase<T, false> implements helper functions for CPU-accessible memory, while ArrayOpsBase<T, true> implements helper functions for device-only memory.
SFINAE on member operations in ArrayOpsBase is used to handle differences in implementations depending on type traits like is_trivially_copy_constructible/is_default_constructible

Replaces use of std::is_trivial<T> with more-specific type traits

Adds macro check to switch to TR1-based fallback for std::is_trivially_copy_constructible, which isn't implemented for GCC 4.9.3's libstdc++

Adds missing std::forwards in some uses in Array<T>::emplace()

@kanye-quest I think we should ignore gcc 4.9.3 since the upcoming RAJA and Umpire releases will require C++14.

@kanye-quest I think we should ignore gcc 4.9.3 since the upcoming RAJA and Umpire releases will require C++14.

Unfortunately, some of our user codes still have<EMAIL_ADDRESS>as their std library behind intel and/or clang, so the fixes for<EMAIL_ADDRESS>are still helpful and appreciated.


Queue does not get drained if batch size is not met

The code comments in the DataService.cs states:
always drain the queue every nth iteration so that nothing sits in the queue indefinitely
However, there is no code to increment the iteration and the queue is never drained.

Fixed in #19


APIv2: protoreflect.FileDescriptor should be able to preserve source info

With the current state of the api-v2 branch, there is no way to construct a protoreflect.FileDescriptor (using "sanctioned" APIs) and be able to retain the source info.
Is this intentional?
The only way I can find is to use the mechanism that generated code uses -- using protoimpl.FileBuilder to create it instead of protodesc.NewFile. And that involves type asserting the result to interface{ProtoLegacyRawDesc() []byte} and calling that method, which is documented as likely to be removed in the future.
Should I have to deal with that myself -- like provide a wrapper struct that embeds a file descriptor and also retains source info? It would also have to provide custom methods to convert back to a proto since the ToFileDescriptor would return a descriptor proto that does not have the source info.
Maybe NewFile should at least be parameterized (or a new peer function) that makes creation of a descriptor with source info possible.

Thanks for the issue.

Is this intentional?

More of an oversight. The reflect/protodesc package should preserve this information round-trip. Which implies that perhaps this should also be surfaced in the reflect/protoreflect API.

@dsnet, thanks for the fast reply! That is reassuring to hear.
cc @pedgeio

@dsnet do you want a hand with this or she we leave it to the maintainers? I have an interest in this being available sooner than later

FWIW, C++ provides a GetSourceLocation method on descriptors:
// Updates |*out_location| to the source location of the complete
// extent of this message declaration.  Returns false and leaves
// |*out_location| unchanged iff location information was not available.
bool GetSourceLocation(SourceLocation* out_location) const;

// NB, all indices are zero-based.
struct SourceLocation {
  int start_line;
  int end_line;
  int start_column;
  int end_column;

  // Doc comments found at the source location.
  // See the comments in SourceCodeInfo.Location (descriptor.proto) for details.
  std::string leading_comments;
  std::string trailing_comments;
  std::vector<std::string> leading_detached_comments;
};

Something similar doesn't seem unreasonable. I agree that we should preserve this information round-trip.

It would be great if SourceCodeInfo_Locations were surfaced for each type, both directly and in a clean manner, ie GetStartLine(), GetEndLine(), GetStartColumn(), GetEndColumn(), GetLeadingComments(), GetTrailingComments(), GetLeadingDetachedComment() effectively

FYI there's a bunch of code from jhump/protoreflect desc that could be ported over here with an intermediate amount of work.
https://github.com/jhump/protoreflect/blob/f0c0d116896c934f55895bc1cbaf3a43c0dd58a3/desc/descriptor.go#L311
https://github.com/jhump/protoreflect/blob/f0c0d116896c934f55895bc1cbaf3a43c0dd58a3/desc/convert.go#L80
https://github.com/jhump/protoreflect/blob/f0c0d116896c934f55895bc1cbaf3a43c0dd58a3/desc/internal/source_info.go
That might be a good starting point. I'd love to be able to use https://godoc.org/google.golang.org/protobuf/reflect/protoreflect right now but without writing a heavy adapter layer, this is what I'd need. Let me know what you think.

The first step is to come up with a concrete API design. I expect implementation should be fairly straightforward once we have that.
A few questions to answer:

How do we represent the source info? Struct, interface, something else? Do we have separate data structures representing the path and other location information, or a combined one?
Does each protoreflect.*Descriptor type have a method to look up the location information for that descriptor?
How do you fetch location information not associated with a Descriptor? (A method on FileDescriptor?)

Note for self: Once we add this, we'll also want to update the protogen package to make use of it. (It has its own, more specialized handling of location information.)

Thanks @pedgeio for point to that prior work. I'm out of the office for this week, and will be back on Monday.
I think a relevant question to answer first is whether reflect/protoreflect should have first-class support for SourceCodeInfo or not.

If not, then we can simply add a FileDescriptor.SourceCodeInfo method that returns a *descriptorpb.SourceCodeInfo and document that the method either always copies the contents upon each call or document that the user must not mutate the retrieved contents. This is pretty much what we do with the Options messages.
If yes, then we probably want to design a structured API that only allows read-only access to the source-code information and also allows efficient look-up of locations by path.

One argument for first-class support is that the compiler/protogen package itself seems to carry along the raw descriptors only for the source code information. In fact protogen represents the location map in nearly the same way as jhump/protoreflect.

This is just a rough sketch of what I have in my head, I'm sure there are edge cases I'm not considering right now.
To answer 1, sticking with the design of reflect/protoreflect, I'd probably propose the following:
// SourceCodeInfo represents the source code info of an element.
type SourceCodeInfo interface {
  GetStartLine() uint32
  // returns GetStartLine() if not set in SourceCodeInfo.Location
  GetEndLine() uint32
  GetStartColumn() uint32
  GetEndColumn() uint32
  GetLeadingComments() string
  GetTrailingComments() string
  GetLeadingDetachedComments() string
}

Then in the simplest form, you would just add this to protoreflect.Descriptor:
type Descriptor interface {
  ...

  // SourceCodeInfo returns the SourceCodeInfo for this Descriptor.
  //
  // Support for this functionality is optional and may return nil.
  SourceCodeInfo() SourceCodeInfo
}

This would be the simplest for the end-user.
Point three is where this gets interesting though, and touches on https://github.com/jhump/protoreflect/issues/212 and https://github.com/jhump/protoreflect/pull/209. FileDescriptorSets have unassociated SourceCodeInfo.Locations, and you'd like protodesc.ToFileDescriptorProto(protodesc.NewFile(input)) == input. You'd have to store these in some way, I guess as you said perhaps store these on the FileDescriptor as an optional value.

Note that leading_detached_comments is a repeated field, so either that needs to be a []string or some opaque representation of a list of strings.

@neild whoops mental copy/paste error, missed that :-)
@dsnet on whether this should be a first-class citizen, I'm going to just give my vote/pleading that it should be - this would make stuff a lot easier for a lot people. You can do the lookups one time within a SourceCodeInfo and then store this information on a given Descriptor, and users don't have to rewrite that logic each time. Exposing the associated SourceCodeInfo.Location gets you half-way there, but if you're going that far, you might as well do it as a first-class citizen completely. If you do this, the lookup shouldn't have to happen - you just pretty much store a copy of the information on each type (i.e internal/prototype.fileDesc, internal/prototype.fieldDesc, etc).

I'm going to just give my vote/pleading that it should be - this would make stuff a lot easier for a lot people.

I'm inclined to agree.

Then in the simplest form, you would just add this to protoreflect.Descriptor:

The downside to this is that SourceCodeInfo is not always tied to a descriptor declaration, and can be tied to pretty much anything.

Another possible design:
type FileDescriptor interface {
    ...
    SourceLocations() SourceLocations
}

type SourceLocations interface {
    ...
    Len() int
    Get(int) SourceLocation
    ByDescriptor(Descriptor) SourceLocation
    ByPath([]int32) SourceLocation
}

type SourceLocation struct {
    StartLine, StartColumn int
    EndlLine, EndColumn int
    LeadingComments string
    TrailingComments string

    // DetachedComments is a copy of the detached comments.
    // This is rarely populated, and perhaps a copy is okay.
    // Alternatively, we can make this an opaque type.
    DetachedComments []string
}

Id be 100% on board with that solution as well - that solves @neild's third point in a cleaner way.
A few notes:

I am not convinced you need to expose SourceLocations#Len or SourceLocations#Get, however maybe to make sure there are no breaking changes in the future, not a bad idea.
I would either make SourceLocation an interface, return a pointer to the struct, return (SourceLocation, bool), or return (SourceLocation, error) - while really FileDescriptor.SourceLocations should return nil or not nil, and if not nil, ByDescriptor always returns a valid value, I could see a situation where someone uses a Descriptor not associated with a FileDescriptor, gets back an empty SourceLocation, and continues on as if it is valid. Some way to denote this via the function call would be good.
I would document EndLine as 0 if it is equal to StartLine, or explicitly say it has to be set as opposed to what SourceCodeInfo.Location does.

Semi-related: https://github.com/protocolbuffers/protobuf/issues/6188

One issue that comes to mind with the above signature for SourceLocations and re: the comment about interface vs pointer/bool/error return value - the Get(Descriptor) method might not be what you want to do, instead still exposing GetSourceCodeInfo() on each Descriptor, which internally can hold a reference to a path []int32 and then just call ByPath itself. This is to prevent the ability to call GetDescriptor for Descriptors not linked to the SourceLocations and underlying FileDescriptor.

We do need a way to get a full list of SourceLocations, including ones not attached to a descriptor, to permit round-tripping a FileDescriptor through reflect/protodesc.
Returning (SourceLocation, bool) seems better than returning a zero value for a missing location.
I don't have a strong opinion on SourceLocations.ByDescriptor vs. Descriptor.SourceLocation; the former isolates location information into a single place, but the latter is slightly simpler to use.

Yea I actually re-read the proposal and realized the relative need for Len and Get due to the original problem you mentioned (problem 3).
I'd argue for Descriptor.SourceLocation so that there's no possibility of doing:
fileDescriptorOne  := ...
fileDescriptorTwo := ...
// some FieldDescriptor from fileDescriptorOne
fieldDescriptor := fileDescriptorOne.Messages().Get(1).Fields().Get(2)
// invalid
sourceLocation := fileDescriptorTwo.SourceLocations().ByDescriptor(fieldDescriptor)

Just re-pinging here :-) Let me know if you need any help/hoping you had a good week off @dsnet.
One thing I noticed is that you might actually want to expose GetSourceLocationPath() on Descriptor in some way, which returns the base path for the type. This would allow you to do things like:
fileDescriptor := ...
// some FieldDescriptor from fileDescriptor
fieldDescriptor := fileDescriptor.Messages().Get(1).Fields().Get(2)
// get the base location
fileDescriptor.SourceLocations().ByPath(fieldDescriptor.GetSourceLocationPath())
// get the source location of the field name
fileDescriptor.SourceLocations().ByPath(append(fieldDescriptor.GetSourceLocationPath(), 1))
// get the source location of the field number
fileDescriptor.SourceLocations().ByPath(append(fieldDescriptor.GetSourceLocationPath(), 2))

This isn't particularly clean, but this is the general idea.

Just an update to avoid leaving you hanging.
Right now my attention is focused on getting CL/175458 merged, which is a signifcant change to the protoreflect.Message API in response to feedback from usage inside Google. This has higher priority since usage of reflection inside Google is quickly increasing. It is easier to get breaking changes like this in sooner than later.
This issue is my next priority afterwards. I can assure you that protoreflect will have some way to preserve source info. The exact API is TBD, but there's a lot of good discussion and proposed designs here.

OK no worries - thanks for the update, really appreciate it. Let me know if I can help in any way.

Please take a look: https://go-review.googlesource.com/c/protobuf/+/183157

Bare minimum API for preserving SourceLocations is submitted. No convenience methods for looking up locations by path were added. I filed #899 for that.


Check email validity on all requests rather than only on login.

I believe this small change handles #125.

thanks!


Miri test failure: Stacked Borrow rules violated

Our scheduled CI jobs discovered a new set of Miri errors on the latest nightlies. The full logs are:
running 26 tests
error: Undefined Behavior: trying to retag from <202439> for SharedReadOnly permission at alloc86155[0x0], but that tag does not exist in the borrow stack for this location
   --> /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:385:18
    |
385 |         unsafe { &*self.as_ptr() }
    |                  ^^^^^^^^^^^^^^^
    |                  |
    |                  trying to retag from <202439> for SharedReadOnly permission at alloc86155[0x0], but that tag does not exist in the borrow stack for this location
    |                  this error occurs as part of retag at alloc86155[0x0..0x10]
    |
    = help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental
    = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information
help: <202439> was created by a SharedReadWrite retag at offsets [0x0..0x3e8]
   --> src/test.rs:49:35
    |
49  |     let heap = unsafe { Heap::new(data.as_mut_ptr().cast(), data.len()) };
    |                                   ^^^^^^^^^^^^^^^^^
help: <202439> was later invalidated at offsets [0x0..0x400] by a Unique retag
   --> src/test.rs:53:16
    |
53  |       let drop = move || {
    |  ________________^
54  | |         let _ = heap_space;
55  | |     };
    | |_____^
    = note: BACKTRACE:
    = note: inside `core::ptr::NonNull::<hole::Hole>::as_ref::<'_>` at /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:385:18
note: inside `hole::Cursor::current` at src/hole.rs:50:18
   --> src/hole.rs:50:18
    |
50  |         unsafe { self.hole.as_ref() }
    |                  ^^^^^^^^^^^^^^^^^^
note: inside `hole::Cursor::split_current` at src/hole.rs:69:29
   --> src/hole.rs:69:29
    |
69  |             let hole_size = self.current().size;
    |                             ^^^^^^^^^^^^^^
note: inside `hole::HoleList::allocate_first_fit` at src/hole.rs:411:19
   --> src/hole.rs:411:19
    |
411 |             match cursor.split_current(aligned_layout) {
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: inside `Heap::allocate_first_fit` at src/lib.rs:196:15
   --> src/lib.rs:196:15
    |
196 |         match self.holes.allocate_first_fit(layout) {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: inside `hole::test::aff` at src/hole.rs:723:17
   --> src/hole.rs:723:17
    |
723 |         let _ = heap.allocate_first_fit(reqd).unwrap();
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: inside closure at src/hole.rs:720:14
   --> src/hole.rs:720:14
    |
719 |     #[test]
    |     ------- in this procedural macro expansion
720 |     fn aff() {
    |              ^
    = note: this error originates in the attribute macro `test` (in Nightly builds, run with -Z macro-backtrace for more info)

note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

cc @jamesmunns

Thanks for tagging me!
I'll look into these today and report back :)
On Mon, Nov 14, 2022, at 10:18, Philipp Oppermann wrote:

Our scheduled CI jobs discovered a new set of Miri errors https://github.com/rust-osdev/linked-list-allocator/actions/runs/3449760480/jobs/5757902049 on the latest nightlies. The full logs are:
running 26 tests error: Undefined Behavior: trying to retag from <202439> for SharedReadOnly permission at alloc86155[0x0], but that tag does not exist in the borrow stack for this location    --> /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:385:18     | 385 |         unsafe { &*self.as_ptr() }     |                  ^^^^^^^^^^^^^^^     |                  |     |                  trying to retag from <202439> for SharedReadOnly permission at alloc86155[0x0], but that tag does not exist in the borrow stack for this location     |                  this error occurs as part of retag at alloc86155[0x0..0x10]     |     = help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental     = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information help: <202439> was created by a SharedReadWrite retag at offsets [0x0..0x3e8]    --> src/test.rs:49:35     | 49  |     let heap = unsafe { Heap::new(data.as_mut_ptr().cast(), data.len()) };     |                                   ^^^^^^^^^^^^^^^^^ help: <202439> was later invalidated at offsets [0x0..0x400] by a Unique retag    --> src/test.rs:53:16     | 53  |       let drop = move || {     |  ________________^ 54  | |         let _ = heap_space; 55  | |     };     | |_____^     = note: BACKTRACE:     = note: inside core::ptr::NonNull::hole::Hole::as_ref::<'_>at /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:385:18 note: insidehole::Cursor::currentat src/hole.rs:50:18    --> src/hole.rs:50:18     | 50  |         unsafe { self.hole.as_ref() }     |                  ^^^^^^^^^^^^^^^^^^ note: insidehole::Cursor::split_currentat src/hole.rs:69:29    --> src/hole.rs:69:29     | 69  |             let hole_size = self.current().size;     |                             ^^^^^^^^^^^^^^ note: insidehole::HoleList::allocate_first_fitat src/hole.rs:411:19    --> src/hole.rs:411:19     | 411 |             match cursor.split_current(aligned_layout) {     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: insideHeap::allocate_first_fitat src/lib.rs:196:15    --> src/lib.rs:196:15     | 196 |         match self.holes.allocate_first_fit(layout) {     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: insidehole::test::affat src/hole.rs:723:17    --> src/hole.rs:723:17     | 723 |         let _ = heap.allocate_first_fit(reqd).unwrap();     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: inside closure at src/hole.rs:720:14    --> src/hole.rs:720:14     | 719 |     #[test]     |     ------- in this procedural macro expansion 720 |     fn aff() {     |              ^     = note: this error originates in the attribute macrotest` (in Nightly builds, run with -Z macro-backtrace for more info)
note: some details are omitted, run with MIRIFLAGS=-Zmiri-backtrace=full for a verbose backtrace
`
cc @jamesmunns https://github.com/jamesmunns
—
Reply to this email directly, view it on GitHub https://github.com/rust-osdev/linked-list-allocator/issues/74, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQAGLGHMDIBY5DDVXO67OTWIH7VJANCNFSM6AAAAAAR7S4OTA.
You are receiving this because you were mentioned.Message ID: @.***>


Shadow gets weird when card is too long

I'm writing an app which uses a lot of cards and I noticed, that they get a weird shadow at the bottom if the content is too long.

It's not a big issue, but it looks weird :D

Please add the output of flutter doctor -v.
To investigate we would need a minimal runnable reproduction
as a single file so that we can just copy your code into lib/main.dart of a new project and run to reproduce.

Flutter doctor:
[✓] Flutter (Channel dev, v1.2.2, on Linux, locale en_US.UTF-8)
    • Flutter version 1.2.2 at /home/jld3103/flutter
    • Framework revision 007a415c2a (4 days ago), 2019-02-21 20:22:47 -0800
    • Engine revision f1f19bba8f
    • Dart version 2.2.0 (build 2.2.0-dev.2.1 c92d5ca288)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /home/jld3103/Android/Sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = /home/jld3103/Android/Sdk
    • Java binary at: /home/jld3103/.local/share/JetBrains/Toolbox/apps/AndroidStudio/ch-0/182.5264788/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
    • All Android licenses accepted.

[✓] Android Studio (version 3.3)
    • Android Studio at /home/jld3103/.local/share/JetBrains/Toolbox/apps/AndroidStudio/ch-0/182.5264788
    • Flutter plugin version 31.3.3
    • Dart plugin version 182.5124
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)

[✓] IntelliJ IDEA Ultimate Edition (version 2019.1)
    • IntelliJ at /home/jld3103/.local/share/JetBrains/Toolbox/apps/IDEA-U/ch-0/191.5532.39
    • Flutter plugin version 33.0.5
    • Dart plugin version 191.5532.37

[✓] VS Code (version 1.31.1)
    • VS Code at /usr/share/code
    • Flutter extension version 2.23.0

[!] Connected device
    ! No devices available

! Doctor found issues in 1 category.

Minimal reproduction:
List<Widget> items = [];
    for (int i = 0; i < 100; i++) {
      items.add(Text(i.toString()));
    }
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Container(
          width: double.infinity,
          child: ListView(
            padding: EdgeInsets.only(bottom: 100),
            shrinkWrap: true,
            children: <Widget>[
              Card(
                child: Column(
                  children: items,
                ),
              ),
            ],
          ),
        ),
      ),
    );

You can increase the max value in the for loop to increase the shadow height at the bottom.

Weird stuff.
Complete runnable example:
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  List<Widget> items;
  @override
  void initState() {
    super.initState();
    items = List<Widget>.generate(100, (i) => Text('$i'));
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Scaffold(
        appBar: AppBar(
          title: Text(widget.title),
        ),
        body: Center(
          child: Container(
            width: double.infinity,
            child: ListView(
              padding: EdgeInsets.only(bottom: 100),
              shrinkWrap: true,
              children: <Widget>[
                Card(
                  child: Column(
                    children: items,
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

This is happening with the Material widget as well, came here to make a similar issue. My example:
`import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: SafeArea(
child: Padding(
padding: EdgeInsets.all(16),
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(8)),
),
child: Material(
borderRadius: BorderRadius.all(Radius.circular(8)),
color: Colors.white,
elevation: 3,
child: ListView.builder(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: 42,
itemBuilder: (context, groupIndex) {
return ExpansionTile(
title: Text('Item ${groupIndex}'),
//                      borderRadius: BorderRadius.circular(8),
children: [
                  ],
                );
              },
            ),
          ),
        ),
      ),
  ),
);

}
}
`

@zoechi
Came here to make similar ticket. I am using following structure:
ListView

Text
Column
--- Card
--- Card
--- .........

With each card the cards top shadow is increasing. Here is a sample code where I tested if I am doign something wrong
When testing the code see the first card then the last card.
This issue is not present when cards are outside of a column for example directly inside ListView it works well.
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatelessWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  Widget build(BuildContext context) {
    List<Card> cards = List();

    for (int i = 0; i < 30; i++) {
      cards.add(
        Card(
          elevation: 2,
          child: Column(
            mainAxisSize: MainAxisSize.max,
            mainAxisAlignment: MainAxisAlignment.start,
            crossAxisAlignment: CrossAxisAlignment.stretch,
            children: <Widget>[
              Container(
                padding: EdgeInsets.all(8),
                color: Colors.grey[100],
                child: Text("Card ${i}"),
              ),
              Container(
                  margin: EdgeInsets.all(8),
                  child: Column(
                    crossAxisAlignment: CrossAxisAlignment.stretch,
                    children: <Widget>[
                      TextField(
                        decoration: InputDecoration(labelText: "Something ${i}"),
                      ),
                      TextField(
                        decoration: InputDecoration(labelText: "Something ${i}"),
                      ),
                      TextField(
                        decoration: InputDecoration(labelText: "Something ${i}"),
                      ),
                    ],
                  ))
            ],
          ),
        ),
      );
    }

    return Scaffold(
      appBar: AppBar(
        title: Text(title),
      ),
      body: Center(
        child: ListView(
          children: [
            Text("Something"),
            Column(
              crossAxisAlignment: CrossAxisAlignment.stretch,
              children: cards,
            )
          ],
        ),
      ),
    );
  }
}

While it is not a real fix, a possible workaround is to use a Container with similar card properties. But remember that by using this you will not have all the goodies that the Card offers (strict Material guidelines, semantics, etc).
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatelessWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  Widget build(BuildContext context) {
    List<Card> cards = List();

    for (int i = 0; i < 30; i++) {
      cards.add(
        Container(
          // margin and decoration to emulate a card
          margin: EdgeInsets.symmetric(horizontal: 5),
          decoration: BoxDecoration(
            color: Colors.white,
            borderRadius: BorderRadius.circular(5),
            boxShadow: [BoxShadow(
              blurRadius: 5,
              color: Color(0xffcccccc),
              offset: Offset(2, 2),
              spreadRadius: 2
            )]
          ),

          child: Column(
            mainAxisSize: MainAxisSize.max,
            mainAxisAlignment: MainAxisAlignment.start,
            crossAxisAlignment: CrossAxisAlignment.stretch,
            children: <Widget>[
              Container(
                padding: EdgeInsets.all(8),
                color: Colors.grey[100],
                child: Text("Card ${i}"),
              ),
              Container(
                  margin: EdgeInsets.all(8),
                  child: Column(
                    crossAxisAlignment: CrossAxisAlignment.stretch,
                    children: <Widget>[
                      TextField(
                        decoration: InputDecoration(labelText: "Something ${i}"),
                      ),
                      TextField(
                        decoration: InputDecoration(labelText: "Something ${i}"),
                      ),
                      TextField(
                        decoration: InputDecoration(labelText: "Something ${i}"),
                      ),
                    ],
                  ))
            ],
          ),
        ),
      );
    }

    return Scaffold(
      appBar: AppBar(
        title: Text(title),
      ),
      body: Center(
        child: ListView(
          children: [
            Text("Something"),
            Column(
              crossAxisAlignment: CrossAxisAlignment.stretch,
              children: cards,
            )
          ],
        ),
      ),
    );
  }
}

Code Sample
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatelessWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  Widget build(BuildContext context) {
    List<Card> cards = List();

    for (int i = 0; i < 30; i++) {
      cards.add(
        Card(
          elevation: 2,
          child: Column(
            mainAxisSize: MainAxisSize.max,
            mainAxisAlignment: MainAxisAlignment.start,
            crossAxisAlignment: CrossAxisAlignment.stretch,
            children: <Widget>[
              Container(
                padding: EdgeInsets.all(8),
                color: Colors.grey[100],
                child: Text("Card ${i}"),
              ),
              Container(
                  margin: EdgeInsets.all(8),
                  child: Column(
                    crossAxisAlignment: CrossAxisAlignment.stretch,
                    children: <Widget>[
                      TextField(
                        decoration:
                            InputDecoration(labelText: "Something ${i}"),
                      ),
                      TextField(
                        decoration:
                            InputDecoration(labelText: "Something ${i}"),
                      ),
                      TextField(
                        decoration:
                            InputDecoration(labelText: "Something ${i}"),
                      ),
                    ],
                  ))
            ],
          ),
        ),
      );
    }

    return Scaffold(
      appBar: AppBar(
        title: Text(title),
      ),
      body: Center(
        child: ListView(
          children: [
            Text("Something"),
            Column(
              crossAxisAlignment: CrossAxisAlignment.stretch,
              children: cards,
            )
          ],
        ),
      ),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel dev, 1.19.0-3.0.pre, on Mac OS X 10.15.5 19F96, locale
    en-GB)
    • Flutter version 1.19.0-3.0.pre at /Users/tahatesser/Code/flutter_dev
    • Framework revision 6135091de9 (31 hours ago), 2020-06-01 17:17:03 -0700
    • Engine revision e39301f23f
    • Dart version 2.9.0 (build 2.9.0-11.0.dev 6489a0c68d)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/tahatesser/Code/sdk
    • Platform android-29, build-tools 29.0.3
    • ANDROID_HOME = /Users/tahatesser/Code/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.5, Build version 11E608c
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 45.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.45.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.11.0

[✓] Connected device (4 available)
    • iPhone 11  • 0EC80516-8F99-4A0C-89ED-2273579862F9 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-13-5 (simulator)
    • macOS      • macOS                                • darwin-x64     • Mac
      OS X 10.15.5 19F96
    • Web Server • web-server                           • web-javascript •
      Flutter Tools
    • Chrome     • chrome                               • web-javascript •
      Google Chrome 83.0.4103.61

• No issues found!

Hi. Same issue with Flutter 1.17.5 Stable.
Rubén

Also happens in Flutter 1.20.4

Any updates, same problem here

Still seems to be present in 1.22.4 (the latest stable release).
In a long list of cards, it seems the shadow slowly shifts from the bottom to the tap.
In this example image, the affected areas have been marked in blue.

I have just seen this issue too, do we have any update on a fix?

I'm using cards in a CustomScrollView. As I scroll the list down, at some point, the next card shadow starts to move up by, say, 1px, incrementally. At the bottom of the list, the upper card is overlayed by the lower card shadow.

.

Any updates..

I am able to replicate the issue on latest stable and master using this code sample. The shadow of later cards when we scroll down, is noticeable and long.

Although, unable to replicate the issue using this code sample.

master and stable flutter doctor -v
[✓] Flutter (Channel master, 1.26.0-2.0.pre.402, on Mac OS X 10.15.4 19E2269
    darwin-x64, locale en-IN)
    • Flutter version 1.26.0-2.0.pre.402 at
      /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision 2a188eeca3 (31 hours ago), 2021-01-17 19:27:00 -0800
    • Engine revision 609036f2bf
    • Dart version 2.12.0 (build 2.12.0-236.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[!] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    ! CocoaPods 1.9.3 out of date (1.10.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin
        code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see
      https://guides.cocoapods.org/using/getting-started.html#installation for
      instructions.

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.52.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.16.0

[✓] Connected device (5 available)
    • SM A260G (mobile)            • 5200763ebcfa861f                     •
      android-arm    • Android 8.1.0 (API 27)
    • AOSP on IA Emulator (mobile) • emulator-5554                        •
      android-x86    • Android 9 (API 28) (emulator)
    • iPhone 12 Pro Max (mobile)   • A5473606-0213-4FD8-BA16-553433949729 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)              • macos                                •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)                 • chrome                               •
      web-javascript • Google Chrome 87.0.4280.141

! Doctor found issues in 1 category.

[✓] Flutter (Channel stable, 1.22.5, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-IN)
    • Flutter version 1.22.5 at /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision<PHONE_NUMBER> (6 weeks ago), 2020-12-10 11:54:40 -0800
    • Engine revision ae90085a84
    • Dart version 2.10.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.9.3

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.52.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.16.0

[✓] Connected device (3 available)
    • SM A260G (mobile)            • 5200763ebcfa861f                     •
      android-arm • Android 8.1.0 (API 27)
    • AOSP on IA Emulator (mobile) • emulator-5554                        •
      android-x86 • Android 9 (API 28) (emulator)
    • iPhone 12 Pro Max (mobile)   • A5473606-0213-4FD8-BA16-553433949729 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)

! Doctor found issues in 1 category.

I am able to replicate the issue on latest stable and master using this code sample. The shadow of later cards when we scroll down, is noticeable and long.

Although, unable to replicate the issue using this code sample.

master and stable flutter doctor -v
[✓] Flutter (Channel master, 1.26.0-2.0.pre.402, on Mac OS X 10.15.4 19E2269
    darwin-x64, locale en-IN)
    • Flutter version 1.26.0-2.0.pre.402 at
      /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision 2a188eeca3 (31 hours ago), 2021-01-17 19:27:00 -0800
    • Engine revision 609036f2bf
    • Dart version 2.12.0 (build 2.12.0-236.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[!] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    ! CocoaPods 1.9.3 out of date (1.10.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin
        code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see
      https://guides.cocoapods.org/using/getting-started.html#installation for
      instructions.

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.52.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.16.0

[✓] Connected device (5 available)
    • SM A260G (mobile)            • 5200763ebcfa861f                     •
      android-arm    • Android 8.1.0 (API 27)
    • AOSP on IA Emulator (mobile) • emulator-5554                        •
      android-x86    • Android 9 (API 28) (emulator)
    • iPhone 12 Pro Max (mobile)   • A5473606-0213-4FD8-BA16-553433949729 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)              • macos                                •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)                 • chrome                               •
      web-javascript • Google Chrome 87.0.4280.141

! Doctor found issues in 1 category.

[✓] Flutter (Channel stable, 1.22.5, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-IN)
    • Flutter version 1.22.5 at /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision<PHONE_NUMBER> (6 weeks ago), 2020-12-10 11:54:40 -0800
    • Engine revision ae90085a84
    • Dart version 2.10.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.9.3

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.52.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.16.0

[✓] Connected device (3 available)
    • SM A260G (mobile)            • 5200763ebcfa861f                     •
      android-arm • Android 8.1.0 (API 27)
    • AOSP on IA Emulator (mobile) • emulator-5554                        •
      android-x86 • Android 9 (API 28) (emulator)
    • iPhone 12 Pro Max (mobile)   • A5473606-0213-4FD8-BA16-553433949729 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)

! Doctor found issues in 1 category.

Thanks for the extra info @darshankawar. 👍🏻
I think what we might be able to learn from this is that:

It only shows up when there are a lot of elements with shadows, since it doesn't show up in your last example.
Not only are the shadows longer and noticable, they're also incorrectly offset. The shadows slowly shift from under the cards to above them.

This issue was tracked in Skia at https://bugs.chromium.org/p/skia/issues/detail?id=10781 and should now be fixed.

I created a PR that fixes this issue. flutter/engine#27124
Here are the screenshots from this code sample.
Card 0-3

Card 26-29


[BUG] fix isolated test failure in test_cache_hit_miss

Describe the bug
When working on wheel builds in #619, it was observed that a single test case, test_cache_hit_miss would fail when running the wheel tests. Temporarily, this test case is not being run because imagecodecs is not installed as part of the test dependencies during wheel testing.  Before release 23.12.00 we should enable install of imagecodecs and openslide-python again so that all cucim.clara submodule test cases get run.

#634 re-enables these additional test dependencies and can be used as a basis to start from when fixing this issue

Moving to 24.02 as we are already in code freeze for 23.12


Attempt to perform arithmetic on a nil value (upvalue 'transitionTime') client.lua:98

As the title says :)

Fixed in V1.2.0


Hack Session 517 ✼ Remotely

30.03.2022
Wrap-up of our Gōng-fu I/O Weekly · Hack Session #517 ✼ Remotely ✼ meetup.
Projects
• ‹Bouboucle› generative art with Javascript — @andreaskundig and @david-hodgetts
• ‹Distributed Arcade› Game World & Boards with H3 & hex-coordinate systems — @olange and @rudifa
See also

#516 Previous session
#518 Next session

Feedback on @olange and @rudifa's session
Fixed the docs script of our ‹h3-worldmap› web component, which was broken since last week.
Studied Lit documentation:

Lit › Reactive properties › Attributes › Providing a custom converter
Lit › Reactive properties › Customizing change detection
Lit › Reactive properties › Custom property accessors
Lit › Lifecycle › Reactive update cycle › willUpdate

as well as all examples of the Lit Playground.
See also

#516 Previous feedback


"Save Image" option no longer available

When sharing a Texture2D image on an iPhone 7 plus running the latest iOS 12.1.4 , the option on the share menu to "Save Image" is no longer available. The only option to save the image is "Save to Files" which does not add to the camera roll.

Is your Texture2D a readable texture? Can you share a screenshot of the sharing options provided by iOS?

I capture the screenshot with the following code:
`
Texture2D screenshot = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false);
screenshot.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0, false);
screenshot.Apply();
NatShare.Share(screenshot, () => {
isCapturing = false;
Destroy(screenshot);
});
`
I found that "SaveToCameraRoll(screenshot)" isn't working for me either, but if I share to a messaging or image editing app, it delivers the image properly.
For options to share I get: Copy, Assign to Contact, Print, Save to Files, Create Watch Face, and More. Under "More" there are two unchecked "Import to VSCO" and "Save to Dropbox" but no "Save Image". I used to have the save image asset in previous builds, but not sure where it went... It's likely that it's something dumb I'm doing. I can't test the build at the moment, but maybe it's the Destroy call in the callback?

I'll look into this. Your code looks good.

When trying on another iOS device, the "Save Image" button is the first option. I wonder why it's not there at all on my first device?

If this is device-specific, then it isn't a bug in NatShare itself. That said, what iOS versions are the original and new test devices running?


Default groups not working

I used /pex system default parent add Default
But when new players join they don't get added to that group

What are you trying to accomplish? Setting a default group or making so a player is apart of the default group and another group?
If you answered yes to the first one, try the command, "/pex set default group Default"
Without quotes

This is on Sponge -- the default handling changed a little while ago so the command is now /pex default user parent add Default


Running example data does not work due to KeyError: X_root

pip install excellxgene==2.6.3
....
Successfully installed excellxgene-2.6.3

excellxgene launch example-dataset/pbmc500.h5ad
Configuring multiprocessing spawner...
[cellxgene] Starting the CLI...
[cellxgene] Loading data from pbmc500.h5ad.
Loading and precomputing layers necessary for fast differential expression and reembedding...
Layer X ...
Finished loading the data.
Validating and initializing...
KeyError: 'X_root'

Error persists in latest version 2.7.4

Hi,
thanks for reporting this. While I take a look into this, can you try doing this with version 2.7.4?
best,
Alec

Hey, thanks for reporting this.
I’ll take a look and get back to you!

Hi there,
Please upgrade to 2.7.5 and try again. It should be fixed. Keep in mind that pbmc500 is a completely empty dataset (i.e. no UMAP embedding) so you'll see a blank screen ( attached image below). To generate a UMAP, you'll need to preprocess and embed using the reembedding dialog (second image attached below). Closing this issue for now, but feel free to reopen if you have any other related questions, concerns, or issues.


Add a LICENSE file

All open source projects should describe the terms under which they are licensed. Most JavaScript projects like jquery, Angular, Underscore, etc. are licensed under the MIT license, so that could be a good choice for this project.

Yes, the MIT license is generally what we use for our open-source repos. Thanks for the PR!


Report coverage to codecov.io

What problem are you facing?
Code coverage is not reported.

How could the Equinix Metal Crossplane Provider help solve your problem?
Include a GH action to report corbertura results, which Makefile can generate

https://github.com/codecov/codecov-action#codecov-github-action
make corbertura

I hope we can get this for free via #6 the common GH workflows in crossplane-contribs.

Closing for #69


fixing typo

Typo in preserving and resetting state: proposing "it's" instead of "its" :)

Can you resolve conflicts? Sorry for the delay!


No package 'sqlite3' found

when i ran ./configure
checking for SQLITE3... no
configure: error: Package requirements (sqlite3) were not met:
No package 'sqlite3' found
but i checked  with apt
sqlite3 is already the newest version (3.19.3-3).

Try to install libsqlite3-devel.
2017/11/25 午前3:53 "tribeiros"<EMAIL_ADDRESS>
when i ran ./configure
checking for SQLITE3... no
configure: error: Package requirements (sqlite3) were not met:
No package 'sqlite3' found
but i checked with apt
sqlite3 is already the newest version (3.19.3-3).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mattn/growl-for-linux/issues/81, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAnf0oEidXg1tvmMVx-SjU-Yhr8hfSoks5s5xCNgaJpZM4QqHZ3
.

worked , and after that i had to install libdbus-glib-1-dev too
thanks.


On dev, cannot always get to CWL workflows on search page

Describe the bug
In dev, or locally with your develop branch, If you select the CWL facet, the Workflows tab is not clickable. Works in staging/prod, phew.
To Reproduce
Steps to reproduce the behavior:

Go to https://dev.dockstore.net/search
Click the CWL facet
Click the Workflows tab
It's disabled -- nothing happens

If you instead click the workflows facet, then click the CWL facet, you can view workflows.
Expected behavior
You should be able to view workflows
Screenshots

Additional context
Webservice - 94a008a
UI - 2.7.1-23-g45bac73d
Compose Setup - f24bc92
Deploy - 1.10-14-g6f2de57
┆Issue is synchronized with this Jira Story
┆Fix Versions: Dockstore 1.11
┆Issue Number: DOCK-1701
┆Sprint: Backlog
┆Issue Type: Story

Confirmed that it now works for me as well. I'm guessing that Nina's open PR that Gary carried through fixed it. I would just close, but I'll leave that to you in case you're investigating still.


Update pytest and pytest-xdist to the latest versions

Overview
This work updates the cryptography module to the latest version in the setup.py file. The current version was set to be >=3.3.1 and the latest is 38.0.3. In Sept 2021, the cryptography releases went from 3.4.8 to 35.0.0 which is why the version bump seems so huge.
Rationale
The service I'm working on at work uses moto. The version of cryptography that gets installed triggers a dependabot warning: Vulnerable OpenSSL included in cryptography wheels. I noticed that the version in use in the moto dependencies was a ways off from the unaffected version, so I decided to make this PR to update it.

Hi @mikelane, thanks for the PR! As a library, we want to support the widest range of versions as possible. Other users may require an older version of cryptography for their project, and it is not be Moto's place to tell people to upgrade.
I'd suggest pinning the cryptography dependency manually in your project, if you want a more recent version.


Spike

-Took out stateLocation and region so that it would not constrain the map.
-move map now by animating to region
-fixed setListener function on friends

@tiffeli @jake-shasteen @bignell GREAT SPIKE TEAM


probe: representational bias

not sure if this is a security risk?
https://www.promptingguide.ai/risks/biases

general lm bias is (a) a serious problem with huge literature (b) difficult to describe & assess from a single point of view (c) out of security scope, when latent to a model, though definitely a potential failure mode


Merging with master and adding some java-doc comments

@Megala21 this looks bit bulky with the formatting changes. Shall we create a new PR with only java-doc comments additions?

@rasika - This PR is for application-mgt branch. Not master branch. Since the application-mgt branch is behind the master branch, it has resulted in this bulk PR.


[Ubuntu] Install docker compose v1 and v2 alongside

Description
Docker compose V2 was released as a docker cli plugin thus the installation and test commands are different.
Also, it looks like a good idea to preserve v1 for some time as v2 commands are different from v1 (for example docker compose  version vs docker-compose --version), which can be considered as breaking changes.
Related issue:
https://github.com/actions/virtual-environments/issues/4163
Check list

[x] Related issue / work item is attached
[x] Tests are written (if applicable)
[x] Documentation is updated (if applicable)
[ ] Changes are tested and related VM images are successfully generated

/azp run ubuntu1804, ubuntu2004


[kong] add example Enterprise DB-less config

What this PR does / why we need it:
Adds a beta example for K4K8S using the kong-enterprise-edition image.
Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] PR is based off the current tip of the next branch and targets next, not master
[x] New or modified sections of values.yaml are documented in the README.md
[x] Title of the PR and commit headers start with chart name (e.g. [kong])

@rainest Can we merge this in?


fix: ignore empty lines when using split_commits

Description
Prevent duplication of changelog when using split_commit and the commits have empty lines.
Motivation and Context
When using split commits, if there is a an empty line between commits, it will duplicate the commit prior to the empty line, and I noticed that it will sometimes assign it to a different scope, though I have not investigated the why at this point.
One of the reasons this is a problem is that in certain GUIs (like GitHub Desktop) if you enter the first line in the header and the second line in the body, it will automatically add a new line.
fixes #606
How Has This Been Tested?
Using the existing test (changelog_generator_split_commits) by adding a new line in one of the commits.
Screenshots / Logs (if applicable)
Types of Changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Documentation (no code change)
[ ] Refactor (refactoring production code)
[ ] Other

Checklist:

[x] My code follows the code style of this project.
[x] I have updated the documentation accordingly.
[x] I have formatted the code with rustfmt.
[x] I checked the lints with clippy.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 41.38%. Comparing base (c7001e9) to head (060c84d).
Report is 1 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #608      +/-   ##
==========================================
+ Coverage   41.27%   41.38%   +0.11%
==========================================
  Files          15       15
  Lines        1071     1073       +2
==========================================
+ Hits          442      444       +2
  Misses        629      629

Flag
Coverage Δ

unit-tests
41.38% <100.00%> (+0.11%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

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


build!: drop support for Node 6

BREAKING CHANGE: Drop support for Node.js 6.x which reaching EOL in a
couple of weeks.

Codecov Report

Merging #78 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #78   +/-   ##
=======================================
  Coverage   78.57%   78.57%
=======================================
  Files           4        4
  Lines         266      266
  Branches       41       41
=======================================
  Hits          209      209
  Misses         57       57

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 4347e53...7f24a6f. Read the comment docs.


Multi-Character Delimiter

The delimiter is not dividing correctly if more than 1 character. Need to be able to use multi character strings or \r\n for example. In which case, all characters in the delimiter should be removed from the constructed response.

confirmed and a fix is deployed but I am not sure it may break something on your side. tell me if so

closing


No SGEMM backend on CPU, RUY Backend on Android Termux

When I run faster-whisper via Termux on Android 9.0, I get the following error...

terminating with uncaught exception of type std::runtime_error: No SGEMM backend on CPU
terminating with uncaught exception of type std::runtime_error: No SGEMM backend on CPU
terminating with uncaught exception of type std::runtime_error: No SGEMM backend on CPU
terminating with uncaught exception of type std::runtime_error: No SGEMM backend on CPU

The number of errors changes based on the number of threads that I run it with.
Notably, I built CTranslate2 with these commands...
cmake -DWITH_MKL=OFF -DWITH_CUDA=OFF -DOPENMP_RUNTIME=NONE -DWITH_RUY=ON  -DCMAKE_INSTALL_PREFIX=/data/data/com.termux/files/usr ..
make -j$(nproc) && make install
cd .. && cd python
python setup.py bdist_wheel
pip install dist/*.whl

I also modified src/thread_pool.cc line 89 by replacing "pthread_setaffinity_np" with "sched_setaffinity".
Any idea what might cause this?
If it's useful, the full test code in Python is below...
from faster_whisper import WhisperModel
import time

base_dir = "faster.whisper"
model_size = "tiny.en"
input_file = f"{base_dir}/gb0.wav"
num_threads = 4
quant_str = "auto"

start = time.time()

# run on CPU
model = WhisperModel(model_size, device="cpu", cpu_threads=num_threads, download_root=base_dir, compute_type=quant_str)

segments, info = model.transcribe(input_file, beam_size=5)

for segment in segments:
    print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))

print(f'\nTime: {(time.time() - start):.2f} seconds\nModel: {model_size}\nThreads: {num_threads}\nQuantization: {quant_str}\n')

You should also compile with -DWITH_OPENBLAS=ON to provide a single precision GEMM implementation (Ruy only implements 8-bit GEMM).

Good to know. I changed it to...
cmake -DWITH_MKL=OFF -DWITH_CUDA=OFF -DOPENMP_RUNTIME=NONE -DWITH_RUY=ON -DWITH_OPENBLAS=ON -DCMAKE_INSTALL_PREFIX=/data/data/com.termux/files/usr ..
...But then I get the error...

CMake Error at CMakeLists.txt:380 (message):
OpenBLAS include directory not found

...So I tried...
cmake -DWITH_MKL=OFF -DWITH_CUDA=OFF -DOPENMP_RUNTIME=NONE -DWITH_RUY=ON -DWITH_OPENBLAS=ON -DOpenBLAS_INCLUDE_DIR=/data/data/com.termux/files/usr/include/openblas -DCMAKE_INSTALL_PREFIX=/data/data/com.termux/files/usr ..
... but still get the same error.
Then I tried to modify line 376 of CMakeLists.txt to...
find_path(OPENBLAS_INCLUDE_DIR NAMES /data/data/com.termux/files/usr/include/openblas/cblas.h)
... and still get the same error. I'm not sure what the issue is there. I confirmed that cblas.h exists in the expected location with...
cat /data/data/com.termux/files/usr/include/openblas/cblas.h
... which printed out the expected file contents. I imagine this has something to do with how the Android/Termux file system works. Any recommendations?

Can you try using -DCMAKE_PREFIX_PATH=/data/data/com.termux/files/usr instead of -DOpenBLAS_INCLUDE_DIR?

Unfortunately that brings back the same error. In all honesty modifying CMakeLists.txt is not too difficulty.

Probably there is a way to correctly configure the path from the CMake command line but I have not look into it. I'm closing this issue for now since you managed to compile at the end.


Disabled Insecure request warning after login

Issue link

Closes #319
What changes have been made

Disabled Insecure request warning after login when setting skip_tls=True
Verification steps

Following a guided demo
Login with skip_tls=True
You should get a warning message similar to...
warnings.warn(
/opt/app-root/lib64/python3.8/site-packages/urllib3/connectionpool.py:1045: InsecureRequestWarning: Unverified HTTPS request is being made to host <HOST>. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings

Follow the rest of the guided demo and you shouldn't see the warning again.
Checks

[x] I've made sure the tests are passing.
Testing Strategy

[ ] Unit tests
[x] Manual tests
[ ] Testing is not required for this change

/lgtm


Added Microsoft Word Shortcuts

Why is this branch showing conflicts? @yellowberard

Kindly resolve these conflicts @yellowberard, so that I could merge them.


Add support for .vash files

Can you please add support for .vash files or Vash template engine?
Vash, is gaining more attention now (espcially for those coming from .NET world) and already one of the available view engines in express generator .

That is going to be challenging to beautify.  Is Vash primarily a markup language with JavaScript thrown in or is it JavaScript with markup thrown in?  I cannot tell from looking at the code samples and a parser has to start somewhere.

I would also like to see this implemented.
To try and answer your question, @prettydiff, I see Vash as primarily markup with JavaScript added in (although, I feel that the "balance" between markup and JavaScript is about equal to EJS's, the only difference being Vash's delimiters).
Vash is modeled after Microsoft's Razor Syntax. Some things that I can see being a little difficult to implement for a beautifier would be that Vash's delimiters are tricky. To start an expression you use the @ character and to end an expression is either a } (if in a code block) or a space or an HTML entity (i.e.  ) or a number of other special characters (I don't have the RegEx that it uses in front of me, but it seems to mostly be non alphanumeric characters except for the period).
For instance, in EJS you would write something like this:
<% var val = "World" %>

Hello <%= val %>, how are you?

But in Vash, this would be the way to write the above:
@{ var val = "World" }

Hello @val, how are you

I hope this helps! I would really like to see this added, especially now that it is included in express generator as @Ebram-Tharwat mentioned.


Starting homebridge with elevated privileges

I am trying to run the plugin homebridge-amazondash. To use this plugin, homebridge needs to be run with elevated privileges (sudo). Is there any way to autostart homebridge with sudo?
By the way I installed sudo (apt-get install sudo), but when I runsudo homebridge, I get the following error:
sudo: unable to send audit message: Unknown error -1
sudo: pam_open_session: System error
sudo: policy plugin failed session initialization

Issue closed because problem was resolved. Issue was due to incorrect installation of homebridge-amazondash. Fixed by using --unsafe-perm when installing homebridge-amazondash.


feat(jellyfish-api-core): add network setNetworkActive RPC

What this PR does / why we need it:
Disable/enable all p2p network activity
Which issue(s) does this PR fixes?:
Added setNetworkActive rpc as part of ongoing #48

packages/jellyfish-api-core/tests/category/loan/placeAuctionBid.test.ts has failed in CI, but it passes locally and not related to the changes of this PR


index 0 is out of bounds error for a questionable signomial constraint

from gpkit import Variable, Model, SignomialsEnabled

x = Variable('x')
y = Variable('y', 1)
z = Variable('z', 4)
with SignomialsEnabled():
    m = Model(x, [x + z >= y])

m.localsolve()

I'm not sure how you would like to handle this case (arguably the constraint is valid, even if pretty dumb), but I think it would be good to at the very least have a useful error message, instead of the current:
IndexError: index 0 is out of bounds for axis 0 with size 0

:+1: issue title

fixed by #611


v1.16 Backports 2024-11-08

Author backport

[ ] #35690 (@YutaroHayakawa) Only one of the commit was backported

Once this PR is merged, a GitHub action will update the labels of these PRs:
 35690

/test-backport-1.16


feat: allow omitting of dates from date ranges

Allows the user to omit dates in date ranges using the logic:
#let daterange(start, end) = {
    if start != none and end != none [
        #start #sym.dash.en #end
    ]
    if start == none and end != none [
        #end
    ]
    if start != none and end == none [
        #start #sym.dash.en Present
    ]
}

Hello,
Initially I had intended to remove the dates from the projects fields because I found it difficult to remember when I started on many of them, and to be honest some have increased in scope so they're ongoing. I then extrapolated this to every date range field.
I understand if this is something you don't want to include or want the implementation details to be changed, however i took care to try to make sure it would handle every case and it remains optional for the user.
Here are some other reasons to exclude dates:

Employers can guess at the age of an employee
Gaps in employment can disqualify good candidates from getting their foot in the door, which can apply to people transitioning careers

Hello,
I just realized that the json schema needs to be updated to facilitate this.

I see, thanks for expanding. The context for me is a lot clearer now.
On a side note, over the implementation, I've looked over the utils.daterange() and all seems good to merge (now to just solve the merge conflict...). Thank you for also updating the JSON schema.
Let me know if it is all good for merging :>

Added in lines 44-54 of utils.typ but unmerged here because of recent changes/conflicts in repo.


do not abort shader on “unknown general shader parameter” warning

There is two possibilites:

if it's a warning, it does not have to return;
if it has to return, it's not a warning but an error.

After some testing it appeared it's a warning
so we just have to ignore the whole line and
let the parser read the next line.
It's very useful to ignore unknown dp* and xon* keywords
from darkplaces and xonotic when loading maps from them
for example.
It will help any project wanting to port existing game to
Dæmon to have a better partial support more quickly: this
kind of project would appreciate to be able to focusing on
implementing the ones required for gameplay while not having
any urge to implement the ones that are only needed for
eye candy.

This was discussed at first in https://github.com/Unvanquished/Unvanquished/pull/966#issuecomment-253390514 but this specific change was not part of the PR (the PR merged another similar change in another place of code).
Before:

After:

Other screenshots to have a look:

Note that there is probably some other places with a bizarre return after a warning, but I prefer to wait to encounter real use cases to test against before changing the return to something else in case the fix is not to not return but to raises an error instead of the warning.
In the precise case discusses in this PR, this is a true warning so the code does not have to return but just have to ignore the unknown stuff.

LGTM


Patch for issue 6 and 2.

Coverage increased (+0.5%) to 92.542% when pulling d25b8d664a8952d629eba587d993ca631cb9dc19 on issue-6-remove-makecancelable-reimplement-patch into 71de38449ed116ab11a7f493f32f0930e8941dad on master.


fix: remove WriteBuffer() returned parameter n.

for #48's PR

Thanks, we will merge it on v0.1.0

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Rubocop comments_controller.rb class length

My text editor now renders Rubocop class length violations so that the whole class is difficult to read. This one is easy to fix, and i needed to refer to methods here for the translations controller work.

coverage: 94.428% (+0.02%) from 94.41% when pulling 1aa7d66695ed5472c508e03bd3c18f70cabf2d82 on nimmo-comments-controller-class-length into 6b38a872e79f2a20cbfb3ac0f5fdad49eeb72d19 on main.


Import  not working

We have written the needed data into your clipboard because it was too large to send. Please paste.
Issue Type: Performance Issue
when i am trying to import class from another file with correct link the import doesnt work
VS Code version: Code 1.41.0 (9579eda04fdb3a9bba2750f15193e5fafe16b959, 2019-12-11T18:32:17.711Z)
OS version: Linux x64 5.0.0-37-generic

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz (4 x 2441)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: disabled_softwareskia_renderer: disabled_offsurface_control: disabled_offsurface_synchronization: enabled_onvideo_decode: unavailable_offviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
1, 1, 1

Memory (System)
3.76GB (0.38GB free)

Process Argv
--no-sandbox --unity-launch

Screen Reader
no

VM
0%

Process Info
CPU %	Mem MB	   PID	Process
    0	   123	  4729	code main
    0	    35	  4801	   zygote
    0	    92	  4835	   gpu-process
    0	   212	  4852	   window (cause_models.py - vms - Visual Studio Code)
    0	   243	  4906	     extensionHost
    0	    54	  4955	       electron_node server.js
    0	    85	  5019	       /home/yogesh/.vscode/extensions/ms-python.python-2019.11.50794/languageServer.0.4.127/Microsoft.Python.LanguageServer
    0	     4	  4914	     /bin/bash
    0	    62	  4936	     watcherService
    0	    62	  4978	     searchService
    0	   104	  4888	   shared-process
    0	     0	  5412	     /bin/sh -c /bin/ps -ax -o pid=,ppid=,pcpu=,pmem=,command=
    0	     0	  5413	       /bin/ps -ax -o pid=,ppid=,pcpu=,pmem=,command=
    1	   104	  5385	   window (Issue Reporter)

Workspace Info
|  Window (cause_models.py - vms - Visual Studio Code)
|    Folder (vms): 152 files
|      File types: py(46) pyc(45) html(6) css(5) map(4) js(4) eot(1) svg(1)
|                  ttf(1) woff(1)
|      Conf files:;

Extensions (11)

Extension
Author (truncated)
Version

html-snippets
abu
0.2.1

vscode-django
bat
0.19.0

django
big
1.0.2

vscode-html-css
ecm
0.2.3

prettier-vscode
esb
3.16.1

chat
kar
0.29.0

python
ms-
2019.11.50794

vsliveshare
ms-
1.0.1377

vsliveshare-audio
ms-
0.1.80

django-intellisense
sha
0.0.2

python
tht
0.2.3

Most likely you need to report this issue in https://github.com/microsoft/vscode-python/issues/ and provide more details about your setup if it is in Python files.

@yogesh1234567890 can you please provide the data that got copied into the clipboard in case you can reproduce. And if it happens in a Python file please report it against the owner of the extension.


Migration fails in pgsql

Pulse Version
1.0.0
Laravel Version
10.34.2
PHP Version
8.2
Database Driver & Version
postgres:13
Description
2023_06_07_000001_create_pulse_tables .................................................................................................. 20ms FAIL
Illuminate\Database\QueryException
SQLSTATE[42601]: Syntax error: 7 ERROR:  syntax error at or near ","
LINE 1: ...) not null generated always as (unhex(md5(key))), "value" ...
^ (Connection: pgsql, SQL: create table "pulse_values" ("timestamp" integer not null, "type" varchar(255) not null, "key" text not null, "key_hash" char(16) not null generated always as (unhex(md5(key))), "value" text not null))
Steps To Reproduce
I used postgres:13 image in docker-compose, and tried to run migration of pulse.

Please see https://laravel.com/docs/10.x/pulse#installation and #64


Ping, nmdc: invalid raw user command: "255 7 "

# dcping ping dchub://warlordshouse.no-ip.org:411
2019/03/07 23:51:56 invalid raw user command: "255 7 "
{"addr":["dchub://warlordshouse.no-ip.org:411"],"status":"error"}

Fixed in v0.8.8


Ubuntu support

Hi,
is there any way to make it run on Ubuntu? Thank you.
Best Regards,
Francesco Saverio Zuppichini

I had no problems running this on Ubuntu. You should probably wanna at least share what error if any you are getting.


Refactor init scripts / monitor

[ ] when issuing /etc/init.d/AlexaPi stop, the monitor should stop too

should we get rid of /tmp/dont_start?

[ ] merge initd_alexa.sh and initd_alexa_monitored.sh, because they're doing almost the same thing - use some configuration handling in the init script to find out if the monitor should be started too; where do we store the config option? setup script needs to reflect this too
[ ] use a .pid file which is unique - possibly /tmp/AlexaPi.pid

gets rid of pgrep python -a | grep main.py which could potentially hit another app
[ ] when the app starts a .pid file is written
[ ] the monitor checks that the file exists and a process with that PID exists, if not -> start an instance

@maso27 So if you want to take some of these things up, in #11, you can find a hint how the config should be handled. I'm not sure yet what the config variable (and section) should be called.
I've got a question - why is the monitor actually there? Did you encounter crashes of AlexaPi? What was the reason? Or is it there just in case?

Pulling a clean build still requires "root" to be edited to "opt" in two places. Both errors show up in the log. Verified at an Alexa Hackathon yesterday. Should this be rolled into an existing refactor issue or a new PR?

@illperipherals Are you pulling the master branch? I'm sorry for the misguided README.md in master, I don't know why I edited it before it the code was there.
There is currently a pending PR (#10) that gets rid of /root (or /opt for that matter) in the python code. You can clone it wherever you want. If you want AlexaPi to start on boot however, you have to clone it into /opt.
If you want to give it a try:
git clone -b universal-paths https://github.com/renekliment/AlexaPiNG.git AlexaPi
sudo ./AlexaPi/src/scripts/setup.sh

Also, if you're a developer, familiar with the project and want to make it better, you're more than welcome to join in on the project. I've got a lot of ideas (and code) for it, but I'm in a desperate need for someone to review my PRs.

I have it up in a battery-run unit using snowboy, but I like this initiative to bring everything together. I develop, and I would like to put more in, but I do not want to interfere with the whirlwind refactor going on. If you need someone for CR, however, I am very available.

To answer your question, master was pulled yesterday, but previously I was pulling in via the instructions given to Mason. I had two bad paths on that as well, but not related to what I am currently discussing.
Not sure why I am getting different results. (but got it working fine)

Notes to myself:

Move the silent option to the config file once #11 is merged.
We'll lose Alexa starting in silent mode when the service gets restarted by systemd, but whatever.


Added danielo515 as contributor

Just added danielo515 as contributor following repo guidelines

Codecov Report

Merging #81 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master    #81   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           2      2
  Lines          34     34
=====================================
  Hits           34     34

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 4799cc2...c531349. Read the comment docs.

Thanks!


Connected component won't re-render

I've been scratching my head as to why my connected component won't re-render.
From my understanding, after dispatching, a connected component will have forceUpdate() called on it if a shallow comparison of the state slice (of what you pass into mapStateToProps(x) compared to the next state) returns false.
My dispatch changes the store state, but does not re-render the connected ProfilePage component.   And I don't seem to be mutating state.user.profile , so I am not sure what the problem is.
Dispatched action:
dispatch(profile.actions.update({email: 'blah@blah.com'}));

Store structure:
{
  user: {
    profile:  {
      email: null
    }
  }
}

ProfilePage.js (the connected component):
//component omitted

function mapStateToProps(state) {
  return {
    initialFormValues: state.user.profile
  }
}

export default connect(mapStateToProps)(ProfilePage)

profileReducer.js (where the update action is intercepted):
export default function(state = { email: null }, action) {
  switch (action.type) {
    case t.UPDATE:
      return { ...state, ...action.values };  //this is a new object (not mutated)
    default:
      return state;
  };
};

userReducer.js:
import { combineReducers } from 'redux';
import session from './session';
import profile from './profile';

export default combineReducers({
  profile: profile.reducer
});

rootReducer.js:
import {combineReducers} from 'redux';
import {routerReducer as router} from 'react-router-redux';
import { reducer as form } from 'redux-form';
import user from './modules/user';

const rootReducer = combineReducers({
  form,
  user: user.reducer,
   router
})

export default rootReducer;

store.js
import reducer from './rootReducer';
import thunk from 'redux-thunk'
import logger from 'redux-logger'

import { createStore, compose, applyMiddleware } from 'redux';
import { routerMiddleware as router } from 'react-router-redux';

export default function(history) {
  return createStore(
    reducer,
    compose(
      applyMiddleware(
        router(history),
    thunk,
    logger
      )
    )
  )
}

Yeah, I saw your question over on SO and Reddit, and I'll admit to being a bit confused myself.  Based on the code snippets you've posted so far, that looks like it should work.
Any chance you can put up a repo that demonstrates the issue?

I was moments away from sharing the repo when I realized my error.
I initialized two separate store instances.  The dispatch was being called on the wrong store.  Doh.    On the plus side, I learned more about react-redux internals.  :/
class App extends Component {
  componentDidMount(props) {
    const jwt = localStorage.getItem('jwt');
    if(!!jwt) {
**      store(history).dispatch(user.actions.fetchUserData(jwt))    // the offending code
    }
  }

  render() {
    return (
      <Provider store={ store(history) }>
	<ConnectedRouter history={ history }>
          <AppWrapper>
	    { applyGlobalStyles(store(history).getState()) }
	    <MainNav />
	    <Main>
	      <Switch>
		<Route path="/login"
		       component={ LoginPage } />
		<Route path="/register"
		       component={ RegisterPage } />
	      </Switch>
	    </Main>
	  </AppWrapper>
	</ConnectedRouter>
      </Provider>
    );
  }
}

export default App;


AttributeError: 'Sphinx' object has no attribute 'extensions'

Hello, I'm having an error while compiling the docs.
This error only occurs when I add sphinxcontrib-django to extensions.
I'm using Django 1.10 and sphinxcontrib-django 0.3.1.
extensions = [
    'sphinx.ext.autodoc',
    'sphinx.ext.intersphinx',
    'sphinx.ext.todo',
    'sphinx.ext.coverage',
    'sphinx.ext.napoleon',
    'sphinx.ext.viewcode',
    'sphinx.ext.graphviz',
    'sphinx_autodoc_annotation',
    'sphinxcontrib_django',
]

Full traceback
# Sphinx version: 1.5.6
# Python version: 3.5.3 (CPython)
# Docutils version: 0.13.1 release
# Jinja2 version: 2.9.6
# Last messages:
#   WARNING: while setting up extension sphinx_autodoc_annotation: directive 'automethod' is already registered, it will be overridden
#   loading pickled environment...
#   done
#   building [mo]: targets for 0 po files that are out of date
#   building [html]: targets for 0 source files that are out of date
#   updating environment:
#   [extensions changed] 16 added, 0 changed, 0 removed
#   reading sources... [  6%] index
#   reading sources... [ 12%] modules/app
#   reading sources... [ 18%] modules/app1
# Loaded extensions:
#   sphinx.ext.coverage (1.5.6) from /home/APP_DIR/lib/python3.5/site-packages/sphinx/ext/coverage.py
#   sphinx.ext.viewcode (1.5.6) from /home/APP_DIR/lib/python3.5/site-packages/sphinx/ext/viewcode.py
#   sphinx_autodoc_annotation (unknown version) from /home/APP_DIR/lib/python3.5/site-packages/sphinx_autodoc_annotation.py
#   sphinx.ext.napoleon (1.5.6) from /home/APP_DIR/lib/python3.5/site-packages/sphinx/ext/napoleon/__init__.py
#   sphinx.ext.todo (1.5.6) from /home/APP_DIR/lib/python3.5/site-packages/sphinx/ext/todo.py
#   sphinx.ext.graphviz (1.5.6) from /home/APP_DIR/lib/python3.5/site-packages/sphinx/ext/graphviz.py
#   sphinxcontrib_django (unknown version) from /home/APP_DIR/lib/python3.5/site-packages/sphinxcontrib_django/__init__.py
#   sphinx.ext.intersphinx (1.5.6) from /home/APP_DIR/lib/python3.5/site-packages/sphinx/ext/intersphinx.py
#   alabaster (0.7.10) from /home/APP_DIR/lib/python3.5/site-packages/alabaster/__init__.py
#   sphinx.ext.autodoc (1.5.6) from /home/APP_DIR/lib/python3.5/site-packages/sphinx/ext/autodoc.py
Traceback (most recent call last):
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinx/cmdline.py", line 296, in main
    app.build(opts.force_all, filenames)
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinx/application.py", line 333, in build
    self.builder.build_update()
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinx/builders/__init__.py", line 251, in build_update
    'out of date' % len(to_build))
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinx/builders/__init__.py", line 265, in build
    self.doctreedir, self.app))
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinx/environment/__init__.py", line 556, in update
    self._read_serial(docnames, app)
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinx/environment/__init__.py", line 576, in _read_serial
    self.read_doc(docname, app)
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinx/environment/__init__.py", line 684, in read_doc
    pub.publish()
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/core.py", line 217, in publish
    self.settings)
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinx/io.py", line 55, in read
    self.parse()
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/readers/__init__.py", line 78, in parse
    self.parser.parse(self.input, document)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/parsers/rst/__init__.py", line 185, in parse
    self.statemachine.run(inputlines, document, inliner=self.inliner)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/parsers/rst/states.py", line 170, in run
    input_source=document['source'])
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/parsers/rst/states.py", line 2745, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/parsers/rst/states.py", line 326, in section
    self.new_subsection(title, lineno, messages)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/parsers/rst/states.py", line 394, in new_subsection
    node=section_node, match_titles=True)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/parsers/rst/states.py", line 281, in nested_parse
    node=node, match_titles=match_titles)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/parsers/rst/states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/parsers/rst/states.py", line 2745, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/parsers/rst/states.py", line 326, in section
    self.new_subsection(title, lineno, messages)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/parsers/rst/states.py", line 394, in new_subsection
    node=section_node, match_titles=True)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/parsers/rst/states.py", line 281, in nested_parse
    node=node, match_titles=match_titles)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/parsers/rst/states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/parsers/rst/states.py", line 2318, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/parsers/rst/states.py", line 2330, in explicit_construct
    return method(self, expmatch)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/parsers/rst/states.py", line 2073, in directive
    directive_class, match, type_name, option_presets)
  File "/home/APP_DIR/lib/python3.5/site-packages/docutils/parsers/rst/states.py", line 2122, in run_directive
    result = directive_instance.run()
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinx/ext/autodoc.py", line 1668, in run
    documenter.generate(more_content=self.content)
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinx/ext/autodoc.py", line 1013, in generate
    self.document_members(all_members)
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinx/ext/autodoc.py", line 935, in document_members
    check_module=members_check_module and not isattr)
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinx/ext/autodoc.py", line 1010, in generate
    self.add_content(more_content)
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinx/ext/autodoc.py", line 1383, in add_content
    ModuleLevelDocumenter.add_content(self, more_content)
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinx/ext/autodoc.py", line 736, in add_content
    for i, line in enumerate(self.process_doc(docstrings)):
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinx/ext/autodoc.py", line 698, in process_doc
    self.options, docstringlines)
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinx/application.py", line 589, in emit
    results.append(callback(self, *args))
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinxcontrib_django/docstrings.py", line 103, in improve_model_docstring
    _improve_class_docs(app, obj, lines)
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinxcontrib_django/docstrings.py", line 116, in _improve_class_docs
    _add_model_fields_as_params(app, cls, lines)
  File "/home/APP_DIR/lib/python3.5/site-packages/sphinxcontrib_django/docstrings.py", line 146, in _add_model_fields_as_params
    if 'sphinx.ext.inheritance_diagram' in app.extensions and \
AttributeError: 'Sphinx' object has no attribute 'extensions'

Let me know if you need more information to debug!
Thanks

Updated to 1.6 (1.6.7) and it did the charm! I would suggest you add that info to the readme file.
Thanks


Allow calling extrinsics of clients-info crate from authorized accounts

We should change the clients-info crate to allow calling the set...ClientRelease extrinsics from root or an authorized account. This way, we don't have to create an extra referendum each time we want to update our Spacewalk clients but can rely on using a multi-sig account instead.
Notes
For implementing the logic for the authorized accounts, you can draw inspiration from the implementation of the DIA oracle pallet.

@pendulum-chain/product this ticket is related to our improved release management described in this document. It has high priority.

Hey team! Please add your planning poker estimate with Zenhub @adelarja @b-yap @ebma @gianfra-t @TorstenStueber

@ebma considering this as a blocker for the public launch on Amplitude. Let me know if that's not the case?

Yes, I agree and would also consider this required for public launch.


Atom crashed when open a folder

Description
Atom crashed when open a folder. Please see screenshot of all files in my "bug" folder.
http://image.prntscr.com/image/90c1244fca1e41b88cdc50cd3339ea5a.png
I don't know why but it's working with other folders.
Steps to Reproduce

Open folder in Atom with folder context menu
Open folder in Atom from File -> Open Folder...

Expected behavior: Folder opened with Atom
Actual behavior: Please see this screenshot: http://image.prntscr.com/image/192d9121e71b4725a854ce07d138402c.png
Versions
I'm using Atom 1.9.8 on Windows 7 64 bit.

Getting the same error on a PHP project folder. Can't even open some files from withing the folder, but others work fine. Tried safe-mode with the same result.

Please upload the dump files from  %TEMP%\Atom Crashes here.

@50Wliu
I uploaded it in the link below:
https://drive.google.com/file/d/0B9lPIy1ftUvwT0FlbGdtdlA4RFE/view?usp=sharing


The subdomain data has been generated in the Linux background, and the WEB interface is blank. Do I need to wait for the scan to be completed before the WEB interface can view the data?

Yes, it imports the data to the DB at the end of the scan


PulsarSource does not publish in the correct tenant/namespace

Hello folks,
I'm using PulsarSource with RabbitMQ integration everything works ok, but I've noticed seems it's not publishing in the correct tenant/namespace. Instead it is publishing on public/default/<topicName>.
Here's my code:
apiVersion: resource.streamnative.io/v1alpha1
kind: PulsarSource
metadata:
  name: rabbitmq-source
spec:
  className: org.apache.pulsar.io.rabbitmq.RabbitMQSource
  connectionRef:
    name: pulsar-connection
  archive:
    url: https://archive.apache.org/dist/pulsar/pulsar-3.3.0/connectors/pulsar-io-rabbitmq-3.3.0.nar
  configs:
    host: rabbitmq.example.com
    port: "5672"
    virtualHost: myvhost
    queueName: myqueue
    username: myuser
    connectionName: pulsar-connection
    password: mypass
    passive: 'true'
  lifecyclePolicy: CleanUpAfterDeletion
  name: rabbitmq-source
  tenant: mytenant
  namespace: myns
  topicName: mytopic
  parallelism: 1
  processingGuarantees: ATLEAST_ONCE

@freeznet Rui, could you help take a look this?

Could you pls try replacing with topicName: persistent://mytenant/myns/mytopic instead of topicName: mytopic in your PulsarSource yaml.


ROD-163 Add UAN in the 'what you need' section at each start page

What?
ROD-163 - Add UAN in the 'what you need' section at each start page flow.
Why?
Allows the user to know the requirements before proceeding with the form.
How?
Added text to each flows MD file.
Testing?
Tested on local machine
Screenshots (optional)
Anything Else? (optional)
Check list

[x] I have reviewed my own pull request for linting issues (e.g. adding new lines)
[ ] I have written tests (if relevant)
[x] I have created a JIRA number for my branch
[x] I have created a JIRA number for my commit
[x] I have followed the chris beams method for my commit https://cbea.ms/git-commit/
here is an example commit
[x] Ensure drone builds are green especially tests
[x] I will squash the commits before merging

Looks fine


Update politics.md

🚀 🚀 🚀 🚀 🚀

Changed the sidebar panels, updated positions for Protesting/rioting and socialism/co-ops.

Changed the sidebar panels, updated positions for Protesting/rioting and socialism/co-ops.


Run First systems after TimeSystem in order to ensure minimum impact on delta time

Systems that are added to the First schedule run before TimeSystem runs, potentially delaying proper delta time computation / frame start.
Better solution would be to add a proper set for these systems and sort it against TimeSystem set.

Thanks (and thanks for bringing this up in Discord)! I'm going to close this in favor of the new set in #562 , as you've mentioned.


Boss/Mod/FundsMover/Attempter.cpp: Be less willing to pay extra for randomized routes.

Put as a PR so somebody else (@hosiawak?) can double-check my thinking.
lightningd actually has route randomization implemented in getroute, however its current pay implementation does not actually use it.  Route randomization gives privacy benefits, as (1) surveillors can trick naive pay implementations to going through their surveillance node by just advertising for tiny feerates (trading off fees for more information) and (2) always using the shortest route makes it trivial for surveillors to bound the possible destination of a payment to a small set of nodes.  Increased randomization also tends to mean we try out a wider variety of possible routes instead of retrying the same few ones.
Currently FundsMover uses rather high fuzzing of 99%.  This roughly translate to be willing to pay up to about double the fee compared to the cheapest route..
On the other hand, one can argue that a rebalance aka a self-payment "conveys no information", as you are paying yourself and therefore it does not link you to your actual economic partners.  It could theoretically leak an aggregate of other payments that went through your node, as rebalances are basically triggered due to forwards you facilitated unbalancing your channels, but aggregate information like that leaks very little information anyway.  So maybe lowering the route randomization parameter might be better; route randomization is needed for payments to other nodes, but maybe not so much for self-payments.

@ZmnSCPxj As I understand the code FundsMover will use 11% route randomization and if that fails 0% ? If so it looks ok to me and ok to merge.

@ZmnSCPxj As I understand the code FundsMover will use 11% route randomization and if that fails 0% ? If so it looks ok to me and ok to merge.